综合介绍
RealtimeVoiceChat 是一个开源项目,专注于通过语音与人工智能进行实时、自然的对话。用户使用麦克风输入语音,系统通过浏览器捕获音频,快速转为文字,由大型语言模型(LLM)生成回复,再将文字转为语音输出,整个过程接近实时。项目采用客户端-服务器架构,强调低延迟,支持 WebSocket 流式传输和动态对话管理。它提供 Docker 部署,推荐在 Linux 系统和 NVIDIA GPU 环境下运行,集成了 RealtimeSTT、RealtimeTTS 和 Ollama 等技术,适合开发者构建语音交互应用。
功能列表
- 实时语音交互:用户通过浏览器麦克风输入语音,系统实时转录并生成语音回复。
- 低延迟处理:使用 WebSocket 流式传输音频,优化语音转文字和文字转语音的延迟至 0.5-1 秒。
- 语音转文字(STT):采用 RealtimeSTT(基于 Whisper)快速将语音转为文字,支持动态转录。
- 文字转语音(TTS):通过 RealtimeTTS(支持 Coqui、Kokoro、Orpheus)生成自然语音,可选多种语音风格。
- 智能对话管理:集成 Ollama 或 OpenAI 的语言模型,支持灵活的对话生成和中断处理。
- 动态语音检测:通过
turndetect.py
实现智能沉默检测,适应对话节奏。 - Web 界面:提供简洁的浏览器界面,使用 Vanilla JS 和 Web Audio API,支持实时反馈。
- Docker 部署:通过 Docker Compose 简化安装,支持 GPU 加速和模型管理。
- 模型自定义:支持切换 STT、TTS 和 LLM 模型,调整语音和对话参数。
- 开源可扩展:代码公开,开发者可自由修改或扩展功能。
使用帮助
安装流程
RealtimeVoiceChat 支持 Docker 部署(推荐)和手动安装。Docker 方式适合 Linux 系统,尤其是配备 NVIDIA GPU 的环境;手动安装适用于 Windows 或需要更多控制权的场景。以下是详细步骤:
Docker 部署(推荐)
需要安装 Docker Engine、Docker Compose v2+ 和 NVIDIA Container Toolkit(GPU 用户)。推荐 Linux 系统以获得最佳 GPU 支持。
- 克隆仓库:
git clone https://github.com/KoljaB/RealtimeVoiceChat.git cd RealtimeVoiceChat
- 构建 Docker 镜像:
docker compose build
此步骤下载基础镜像、安装 Python 和机器学习依赖,并预下载默认 STT 模型(Whisper
base.en
)。耗时较长,请确保网络稳定。 - 启动服务:
docker compose up -d
启动应用和 Ollama 服务,容器在后台运行。等待约 1-2 分钟完成初始化。
- 拉取 Ollama 模型:
docker compose exec ollama ollama pull hf.co/bartowski/huihui-ai_Mistral-Small-24B-Instruct-2501-abliterated-GGUF:Q4_K_M
此命令拉取默认语言模型。用户可在
code/server.py
中修改LLM_START_MODEL
以使用其他模型。 - 验证模型可用性:
docker compose exec ollama ollama list
确保模型已正确加载。
- 停止或重启服务:
docker compose down # 停止服务 docker compose up -d # 重启服务
- 查看日志:
docker compose logs -f app # 查看应用日志 docker compose logs -f ollama # 查看 Ollama 日志
手动安装(Windows/Linux/macOS)
手动安装需要 Python 3.9+、CUDA 12.1(GPU 用户)和 FFmpeg。Windows 用户可使用提供的 install.bat
脚本简化流程。
- 安装基础依赖:
- 确保 Python 3.9+ 已安装。
- GPU 用户安装 NVIDIA CUDA Toolkit 12.1 和 cuDNN。
- 安装 FFmpeg:
# Ubuntu/Debian sudo apt update && sudo apt install ffmpeg # Windows (使用 Chocolatey) choco install ffmpeg
- 克隆仓库并创建虚拟环境:
git clone https://github.com/KoljaB/RealtimeVoiceChat.git cd RealtimeVoiceChat python -m venv venv # Linux/macOS source venv/bin/activate # Windows .\venv\Scripts\activate
- 安装 PyTorch(匹配硬件):
- GPU(CUDA 12.1):
pip install torch==2.5.1+cu121 torchaudio==2.5.1+cu121 torchvision --index-url https://download.pytorch.org/whl/cu121
- CPU(性能较慢):
pip install torch torchaudio torchvision
- GPU(CUDA 12.1):
- 安装其他依赖:
cd code pip install -r requirements.txt
注意:DeepSpeed 安装可能较复杂,Windows 用户可通过
install.bat
自动处理。 - 安装 Ollama(非 Docker 用户):
- 参考 Ollama 官方文档安装。
- 拉取模型:
ollama pull hf.co/bartowski/huihui-ai_Mistral-Small-24B-Instruct-2501-abliterated-GGUF:Q4_K_M
- 运行应用:
python server.py
注意事项
- 硬件要求:推荐 NVIDIA GPU(至少 8GB 显存)以确保低延迟。CPU 运行会导致显著性能下降。
- Docker 配置:修改
code/*.py
或docker-compose.yml
前,需重新运行docker compose build
。 - 许可合规:TTS 引擎(如 Coqui XTTSv2)和 LLM 模型有独立许可,需遵守其条款。
操作流程
- 访问 Web 界面:
- 打开浏览器,访问
http://localhost:8000
(或远程服务器 IP)。 - 授予麦克风权限,点击“Start”开始对话。
- 打开浏览器,访问
- 语音交互:
- 对麦克风说话,系统通过 Web Audio API 捕获音频。
- 音频经 WebSocket 传输至后端,RealtimeSTT 转为文字,Ollama/OpenAI 生成回复,RealtimeTTS 转为语音并通过浏览器播放。
- 对话延迟通常为 0.5-1 秒,支持随时中断和继续。
- 实时反馈:
- 界面显示部分转录文本和 AI 回复,方便用户跟踪对话。
- 可点击“Stop”结束对话,“Reset”清除历史记录。
- 配置调整:
- 调试与优化:
- 查看日志:
docker compose logs -f
(Docker)或直接查看server.py
输出。 - 性能问题:确保 CUDA 版本匹配,降低
realtime_batch_size
或使用轻量模型。 - 网络配置:如需 HTTPS,设置
USE_SSL = True
并提供证书路径(参考官方 SSL 配置)。
- 查看日志:
特色功能操作
- 低延迟流式处理:通过 WebSocket 传输音频分块,结合 RealtimeSTT 和 RealtimeTTS,延迟低至 0.5 秒。用户可流畅对话,无需等待。
- 动态对话管理:
turndetect.py
智能检测语音结束,支持自然中断。例如,用户可随时插话,系统会暂停生成并处理新输入。 - Web 界面交互:浏览器界面使用 Vanilla JS 和 Web Audio API,提供实时转录和回复显示。用户可通过“Start/Stop/Reset”按钮控制对话。
- 模型灵活性:支持切换 TTS 引擎(Coqui/Kokoro/Orpheus)和 LLM 后端(Ollama/OpenAI)。例如,切换 TTS:
START_ENGINE = "kokoro" # 在 code/server.py 中修改
- Docker 管理:通过 Docker Compose 管理服务,更新模型只需:
docker compose exec ollama ollama pull <new_model>
应用场景
- AI 语音交互研究
开发者可测试 RealtimeSTT、RealtimeTTS 和 LLM 的集成效果,探索低延迟语音交互的优化方案。开源代码支持自定义参数,适合学术研究。 - 智能客服原型
企业可基于项目开发语音客服系统。用户通过语音提问,系统实时回答常见问题,如技术支持或产品咨询。 - 语言学习工具
教育机构可利用多语言 TTS 功能,开发语音对话练习工具。学生与 AI 对话,练习发音和会话,系统提供实时反馈。 - 个人语音助手
技术爱好者可部署项目,体验与 AI 的自然语音交互,模拟智能助手,适用于个人娱乐或小型项目。
QA
- 需要什么硬件支持?
推荐 Linux 系统,配备 NVIDIA GPU(至少 8GB 显存)和 CUDA 12.1。CPU 运行可行,但延迟较高。最低要求:Python 3.9+,8GB 内存。 - 如何解决 Docker 部署问题?
确保 Docker、Docker Compose 和 NVIDIA Container Toolkit 正确安装。检查docker-compose.yml
的 GPU 配置,查看日志:docker compose logs -f
。 - 如何切换语音或模型?
修改code/server.py
中的START_ENGINE
(TTS)或LLM_START_MODEL
(LLM)。Docker 用户需重新拉取模型:docker compose exec ollama ollama pull <model>
。 - 支持哪些语言?
RealtimeTTS 支持多语言(如英语、中文、日语),需在code/audio_module.py
中指定语言和语音模型。