【speech-to-speech】告别高延迟!用开源模型轻松搭建你的专属实时语音助手

这是一个低延迟且完全模块化的开源语音交互管道,通过将语音检测、语音识别、大语言模型和语音合成四个阶段串联,解决了开发者在构建实时语音助手时面临的组件耦合与高延迟问题。

主要功能与特性

  • 四阶段流水线设计:将语音交互拆分为四个独立步骤:语音活动检测(判断人是否在说话)、语音识别(语音转文字)、大语言模型(思考并生成回复)和语音合成(文字转语音)。每个步骤在独立线程运行,有效降低整体延迟。
  • 组件像积木一样可替换:不绑定任何单一模型。你可以自由更换每个环节的底层模型,例如语音识别可选 Parakeet 或 Whisper,大模型可接入云端 API 或本地运行的开源模型,语音合成可选 Qwen3、Kokoro 或 Pocket TTS 等。
  • 兼容主流实时接口:提供兼容 OpenAI Realtime 协议的 WebSocket 接口,前端开发者可以使用现有的标准客户端轻松接入,无需重新开发底层通信逻辑。
  • 多种运行模式:支持标准的实时服务器模式(Realtime)、直接调用本地麦克风和扬声器的本地模式(Local),以及传输原始音频流的 WebSocket 和 TCP Socket 模式,满足不同开发和部署阶段的需求。
  • 多语言与跨平台适配:支持自动检测并切换对话语言;同时完美适配 NVIDIA 显卡 (CUDA)、普通 CPU 以及苹果 Mac 芯片 (Apple Silicon/MLX)。

安装与快速使用

项目需要 Python 3.10 及以上版本。可以通过 pip 快速安装基础依赖:

pip install speech-to-speech

安装完成后,配置好你的大模型 API 密钥,即可一键启动默认的实时交互服务器:

export OPENAI_API_KEY=...
speech-to-speech

启动后,服务会在 ws://localhost:8765/v1/realtime 运行(默认使用 Parakeet 进行本地语音识别,Qwen3 进行本地语音合成)。你可以在另一个终端使用项目提供的脚本,直接通过麦克风和它进行语音对话测试:

python scripts/listen_and_play_realtime.py --host 127.0.0.1 --port 8765

注:如果你希望将大语言模型也完全在本地运行(例如使用 llama.cpp 部署开源模型),只需在启动时通过 --responses_api_base_url 等参数将 LLM 后端指向你的本地服务地址即可。

适用场景与目标用户

  • 适用场景:非常适合需要低延迟、实时语音交互的场景。例如:智能语音助手、交互式实体机器人(该项目已作为 Reachy Mini 机器人的对话后端在生产环境运行)、智能客服,以及需要完全本地化部署以保护数据隐私的语音应用。
  • 目标用户:AI 应用开发者、机器人研发人员,以及希望摆脱对单一闭源 API 依赖、追求高度自定义和私有化部署的技术极客与团队。

总结

总体而言,该项目为构建实时语音代理提供了一套极其灵活且开箱即用的解决方案。其最大的亮点在于彻底的模块化和对标准实时协议的兼容,让开发者可以像搭积木一样自由组合各种开源模型,在控制延迟和成本的同时实现高度自定义。无论是想要快速验证语音应用原型,还是在生产环境中部署完全本地化的语音服务,它都是一个非常值得尝试的优秀工具。

类似文章