huggingface/speech-to-speech

Build voice agents with open-source models

它是什么

speech‑to‑speech 是一个开源的 Python 包,让你无需任何云 API 密钥即可在本地运行完整的语音助手。它连接了四个阶段——语音活动检测、语音转文本、语言模型和文本转语音——每个阶段都可以替换为替代模型。默认流水线使用 Silero VAD、Parakeet TDT 进行转录、Qwen‑3.5‑4B 大语言模型,以及 Qwen‑3 TTS 进行音频输出。

工作原理

  1. VAD – 检测你开始和停止说话的时间,让系统知道何时该听。
  2. STT – 将语音回合转换为文本(支持许多后端,如 Parakeet、Whisper、Faster‑Whisper 等)。
  3. LLM – 生成文本响应,流式传输 token 和可选的工具调用。
  4. TTS – 将 LLM 的回答转换为语音音频(默认 Qwen‑3‑TTS,带有许多可选的 TTS 模型)。

每个组件在自己的线程中运行,并通过队列进行通信,因此可以轻松地将任何部分替换为不同的模型或远程服务。

主要功能

  • 完全本地 首次运行后(无需互联网)。
  • OpenAI Realtime 协议 兼容性 – 服务器使用与 OpenAI Realtime 服务相同的 WebSocket/WebRTC API,因此现有客户端可以指向你的机器。
  • 跨平台 支持:Apple Silicon(基于 MLX 的模型)、NVIDIA GPU(CUDA)或仅 CPU 的回退。
  • 可扩展 – 数十个可选的 VAD、STT、LLM 和 TTS 后端可通过 pip extras 安装。
  • CLI 命令:
    • speech-to-speech local – 同时运行服务器和麦克风客户端。
    • speech-to-speech serve – 仅启动 Realtime 服务器。
    • speech-to-speech talk – 针对任何服务器运行打包的麦克风/扬声器客户端。
  • Docker 支持,实现快速容器化部署。
  • 可选 viseme 输出,用于头像口型动画。

入门(快速摘要)

python3 -m venv .venv && source .venv/bin/activate
pip install speech-to-speech
speech-to-speech local   # 通过扬声器和麦克风与你对话

首次运行会下载所需模型;后续运行均为离线模式。

谁可以使用它

  • 机器人开发者 构建支持语音的机器人(例如,Reachy Mini 机器人已使用此流水线)。
  • 应用开发者 想要无需支付云服务费用的即插即用语音助手。
  • 研究人员 在模块化框架中尝试不同的 STT/LLM/TTS 组合。
  • 注重隐私的用户 需要语音助手绝不离开设备。

需要注意的限制

  • 实时性能取决于硬件;仅 CPU 的机器上 LLM 会较慢。
  • 某些可选组件(例如 DeepFilterNet)存在版本冲突,需要手动安装。
  • 服务器不强制认证;如果暴露在可信网络之外,则需要外部网关。

简而言之: speech‑to‑speech 提供了一个开箱即用的本地托管语音助手堆栈,模仿 OpenAI 的 Realtime API,同时让你可以替换任何你喜欢的开源 VAD、转录、语言模型或 TTS 组件。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目