voice-chat-ai
与 AI 角色进行实时语音对话,支持 OpenAI、Claude、xAI、Ollama 多模型,Spark-TTS/Kokoro/ElevenLabs 等 TTS 方案,开箱即用的 WebUI。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
与 AI 角色进行实时语音对话,支持 OpenAI、Claude、xAI、Ollama 多模型,Spark-TTS/Kokoro/ElevenLabs 等 TTS 方案,开箱即用的 WebUI。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你戴着耳机,对着一个虚拟的阿尔伯特·爱因斯坦角色随口提问——它不仅用爱因斯坦的口吻回答,还配有匹配的音色和情感语气。这不是科幻电影里的对白,而是 Voice Chat AI 已经实现的功能。这是一个开源的本地 AI 语音对话框架,用户可以用中文或英文,与各种预设好的 AI 角色进行实时语音互动。
2024 年,AI 对话产品遍地开花,但大多数体验仍停留在「打字输入、文本输出」的层面。bigsk1(项目作者)在 GitHub 的个人介绍里写着「I build things」,他最初只是想做一个能「跟爱因斯坦聊天」的个人项目——一个可以扮演不同角色、会「说话」的 AI 助手。让他意外的是,这个小工具在 GitHub 上迅速传播,star 数从 0 涨到了 445(截至分析时),fork 数达 106,成为同类开源语音对话项目中增长最快的之一。
这个项目的爆发式增长背后有几个关键因素:2024 年下半年 OpenAI Realtime API 和 WebRTC 技术的成熟,让实时语音对话首次可以在浏览器里低延迟运行;同年 Spark-TTS 和 Kokoro 等开源 TTS 模型的发布,使得无需商业 API 也能实现高质量本地语音合成;而大语言模型成本的大幅下降,则让普通用户在本地也能跑得起一个「会说话的角色扮演 AI」。
Voice Chat AI 的核心是一个模块化的语音处理管道,数据流如下:
用户语音 → ASR(语音识别)→ LLM(对话生成)→ TTS(语音合成)→ 用户
具体来说,系统支持两条并行的语音识别路径:OpenAI Whisper API(默认,需网络)和本地 Faster Whisper(完全离线,首次使用自动下载约 1GB 模型文件)。对话生成层则支持四种主流 LLM 提供者——OpenAI GPT 系列、Anthropic Claude、xAI Grok 和本地运行的 Ollama(支持几乎所有开源模型,如 Llama、Qwen、Mistral 等)。
语音输出层的选择最为丰富:OpenAI TTS(gpt-4o-mini-tts)、ElevenLabs(商业 API,支持数千种音色和情感控制)、Spark-TTS(本地零样本声音克隆)、Kokoro TTS(开源 82M 参数模型)、Typecast(韩国产,支持细粒度情感调节)、xAI Grok TTS,以及 OpenAI Realtime API(基于 WebRTC 的端到端实时语音协议,支持打断和即时响应)。
代码结构方面,app/ 目录是核心:app/main.py 是 FastAPI 入口,app/app.py 处理 Web 路由,app/app_logic.py 包含主对话逻辑,app/enhanced_logic.py 负责 OpenAI Enhanced 增强模式,app/transcription.py 处理语音识别,app/shared.py 是共享状态管理,app/story_time.py 处理故事模式。cli/ 目录提供终端模式,sparktts/ 是本地语音克隆模块。
这是 Voice Chat AI 最有趣的设计。它不只是一个对话机器人,而是一个角色扮演引擎。用户可以切换不同的 AI 人格——预设的角色包括爱因斯坦(HER 电影里的 OS)、各种游戏主持人角色,甚至还有互动故事模式(炸弹拆除、侦探破案、穿越1920年代灵车等)。
每个角色由三部分组成:一个 *.txt 文件定义角色提示词(包含对话风格、说话语气);一个 prompts.json 文件定义情绪响应规则(基于 TextBlob 情感分析得分,映射到 happy/sad/angry/neutral 等情绪,角色据此调整回复风格);一个 .wav 文件(用于 Spark-TTS 声音克隆,可以是 6-10 秒的清晰语音样本)。添加新角色只需在 characters/ 目录下新建文件夹,放入这三个文件即可。
除了自由对话,项目还内置了结构化的互动体验:
游戏模式涵盖 15 种以上的游戏类型,由 AI 角色担任主持人,包括字谜游戏(Hangman、Word Weaver)、知识问答(电影台词、动物知识、历史谜题)、逻辑创意游戏(逃生大师、反义词大师、猜谜语)等。
故事模式则是沉浸式叙事体验,AI 角色引导用户经历预设的情节分支——例如「炸弹危机:最后时刻」(炸弹时钟与真实墙钟同步)、记者困在昏迷中的「清醒间歇」、黑客风格的「Flux觉醒」(致敬黑客帝国)以及经典的「俄勒冈之旅」西部生存冒险。这些故事都有多个分支结局,AI 动态引导叙事走向。
项目提供了两种部署路径,各有优劣。
Docker 部署(推荐服务器场景):提供两个预构建镜像——bigsk1/voice-chat-ai:latest(CPU 版本,体积较小,不含 Spark-TTS)和 bigsk1/voice-chat-ai:cuda(NVIDIA GPU 版本,含 CUDA 加速)。使用 docker-compose.yml 可以一键启动 WebUI 服务。需要注意的是,Windows WSL2 环境下音频路由较为复杂,文档提供了详尽的 PulseAudio 配置指南;本地 Linux/Mac 反而更简单。
本地安装(推荐交互场景):官方明确建议需要麦克风和音频输出的用户选择本地安装——直接的系统音频驱动能避免 Docker 容器内的音频设备映射问题。安装流程:Python 3.11+ → PyTorch(按硬件选 CPU/CUDA 版本)→ pip install -r requirements.txt → ffmpeg → 启动 uvicorn app.main:app。GPU 用户首次运行 Faster Whisper 和 Spark-TTS 会自动下载模型(约 1-5GB)。
这是项目最令人印象深刻的技术亮点之一。传统的语音对话需要经历完整的「语音→文本→LLM→文本→语音」四步延迟,而 OpenAI Realtime API 基于 WebRTC 直连,语音流直接进入模型,模型输出直接流式返回,中间无需文本转录。实测延迟可以低到几百毫秒,用户可以像打电话一样打断 AI 的发言,AI 也能即时响应。
Voice Chat AI 也存在一些明显的局限。首先是复杂的依赖环境:项目需要 Python 3.11+、ffmpeg、PyTorch、多个可选 TTS 后端,任何一个环节配置错误都可能导致静默失败(比如 PyAudio 在某些 Linux 发行版上的兼容问题)。其次,Docker 环境下的音频路由是高频踩坑点——PulseAudio 配置在不同操作系统差异巨大,文档虽详尽但排查仍需耐心。第三,商业 API 的成本:ElevenLabs 和 OpenAI 的 TTS 并非免费使用,本地方案(Spark-TTS/Kokoro)虽然免费但需要额外 GPU 资源。最后,中文语音的自然度:大多数预设角色和 TTS 模型的默认语言是英文,中文对话体验取决于所选 TTS 模型对中文的支持程度。
Voice Chat AI 的出现代表了一个趋势:LLM 应用正在从「文本交互」向「多模态语音交互」快速演进。2024 年之前,语音 AI 的典型形态是智能音箱的简单指令执行;2024 年之后,随着 Realtime API、开源 TTS 模型和端侧 LLM 的成熟,「有情感的 AI 语音角色」正在成为新的人机交互范式。
这个项目的 445 个 stars 和 106 个 forks 说明了一件事:开源社区对「好玩、有个性、可定制」的 AI 应用的兴趣,远大于对「更强大但无聊」的 AI 工具的兴趣。bigsk1 的做法——把复杂的多模态管道封装成开箱即用的 WebUI,让普通用户不需要写代码就能跟爱因斯坦「通话」——正是开源 AI 应用最正确的打开方式之一。