AI个人学习
和实操指南
TRAE

RealtimeVoiceChat:低延迟与AI进行自然口语对话

综合介绍

RealtimeVoiceChat 是一个开源项目,专注于通过语音与人工智能进行实时、自然的对话。用户使用麦克风输入语音,系统通过浏览器捕获音频,快速转为文字,由大型语言模型(LLM)生成回复,再将文字转为语音输出,整个过程接近实时。项目采用客户端-服务器架构,强调低延迟,支持 WebSocket 流式传输和动态对话管理。它提供 Docker 部署,推荐在 Linux 系统和 NVIDIA GPU 环境下运行,集成了 RealtimeSTT、RealtimeTTS 和 Ollama 等技术,适合开发者构建语音交互应用。

RealtimeVoiceChat:低延迟与AI进行自然口语对话-1


 

功能列表

  • 实时语音交互:用户通过浏览器麦克风输入语音,系统实时转录并生成语音回复。
  • 低延迟处理:使用 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 支持。

  1. 克隆仓库
    git clone https://github.com/KoljaB/RealtimeVoiceChat.git
    cd RealtimeVoiceChat
  1. 构建 Docker 镜像
    docker compose build
    

    此步骤下载基础镜像、安装 Python 和机器学习依赖,并预下载默认 STT 模型(Whisper base.en)。耗时较长,请确保网络稳定。

  2. 启动服务
    docker compose up -d
    

    启动应用和 Ollama 服务,容器在后台运行。等待约 1-2 分钟完成初始化。

  3. 拉取 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 以使用其他模型。

  4. 验证模型可用性
    docker compose exec ollama ollama list
    

    确保模型已正确加载。

  5. 停止或重启服务
    docker compose down  # 停止服务
    docker compose up -d  # 重启服务
    
  6. 查看日志
    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 脚本简化流程。

  1. 安装基础依赖
    • 确保 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
      
  2. 克隆仓库并创建虚拟环境
    git clone https://github.com/KoljaB/RealtimeVoiceChat.git
    cd RealtimeVoiceChat
    python -m venv venv
    # Linux/macOS
    source venv/bin/activate
    # Windows
    .\venv\Scripts\activate
    
  3. 安装 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
      
  4. 安装其他依赖
    cd code
    pip install -r requirements.txt
    

    注意:DeepSpeed 安装可能较复杂,Windows 用户可通过 install.bat 自动处理。

  5. 安装 Ollama(非 Docker 用户)
    • 参考 Ollama 官方文档安装。
    • 拉取模型:
      ollama pull hf.co/bartowski/huihui-ai_Mistral-Small-24B-Instruct-2501-abliterated-GGUF:Q4_K_M
      
  6. 运行应用
    python server.py
    

注意事项

  • 硬件要求:推荐 NVIDIA GPU(至少 8GB 显存)以确保低延迟。CPU 运行会导致显著性能下降。
  • Docker 配置:修改 code/*.py 或 docker-compose.yml 前,需重新运行 docker compose build
  • 许可合规:TTS 引擎(如 Coqui XTTSv2)和 LLM 模型有独立许可,需遵守其条款。

操作流程

  1. 访问 Web 界面
    • 打开浏览器,访问 http://localhost:8000(或远程服务器 IP)。
    • 授予麦克风权限,点击“Start”开始对话。
  2. 语音交互
    • 对麦克风说话,系统通过 Web Audio API 捕获音频。
    • 音频经 WebSocket 传输至后端,RealtimeSTT 转为文字,Ollama/OpenAI 生成回复,RealtimeTTS 转为语音并通过浏览器播放。
    • 对话延迟通常为 0.5-1 秒,支持随时中断和继续。
  3. 实时反馈
    • 界面显示部分转录文本和 AI 回复,方便用户跟踪对话。
    • 可点击“Stop”结束对话,“Reset”清除历史记录。
  4. 配置调整
    • TTS 引擎:在 code/server.py 中设置 START_ENGINE(如 coquikokoroorpheus),调整语音风格。
    • LLM 模型:修改 LLM_START_PROVIDER 和 LLM_START_MODEL,支持 Ollama 或 OpenAI。
    • STT 参数:在 code/transcribe.py 中调整 Whisper 模型、语言或沉默阈值。
    • 沉默检测:在 code/turndetect.py 中修改 silence_limit_seconds(默认 0.2 秒)以优化对话节奏。
  5. 调试与优化
    • 查看日志: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>
    

 

应用场景

  1. AI 语音交互研究
    开发者可测试 RealtimeSTT、RealtimeTTS 和 LLM 的集成效果,探索低延迟语音交互的优化方案。开源代码支持自定义参数,适合学术研究。
  2. 智能客服原型
    企业可基于项目开发语音客服系统。用户通过语音提问,系统实时回答常见问题,如技术支持或产品咨询。
  3. 语言学习工具
    教育机构可利用多语言 TTS 功能,开发语音对话练习工具。学生与 AI 对话,练习发音和会话,系统提供实时反馈。
  4. 个人语音助手
    技术爱好者可部署项目,体验与 AI 的自然语音交互,模拟智能助手,适用于个人娱乐或小型项目。

 

QA

  1. 需要什么硬件支持?
    推荐 Linux 系统,配备 NVIDIA GPU(至少 8GB 显存)和 CUDA 12.1。CPU 运行可行,但延迟较高。最低要求:Python 3.9+,8GB 内存。
  2. 如何解决 Docker 部署问题?
    确保 Docker、Docker Compose 和 NVIDIA Container Toolkit 正确安装。检查 docker-compose.yml 的 GPU 配置,查看日志:docker compose logs -f
  3. 如何切换语音或模型?
    修改 code/server.py 中的 START_ENGINE(TTS)或 LLM_START_MODEL(LLM)。Docker 用户需重新拉取模型:docker compose exec ollama ollama pull <model>
  4. 支持哪些语言?
    RealtimeTTS 支持多语言(如英语、中文、日语),需在 code/audio_module.py 中指定语言和语音模型。
未经允许不得转载:首席AI分享圈 » RealtimeVoiceChat:低延迟与AI进行自然口语对话
zh_CN简体中文