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 进行音频输出。
工作原理
- VAD – 检测你开始和停止说话的时间,让系统知道何时该听。
- STT – 将语音回合转换为文本(支持许多后端,如 Parakeet、Whisper、Faster‑Whisper 等)。
- LLM – 生成文本响应,流式传输 token 和可选的工具调用。
- TTS – 将 LLM 的回答转换为语音音频(默认 Qwen‑3‑TTS,带有许多可选的 TTS 模型)。
每个组件在自己的线程中运行,并通过队列进行通信,因此可以轻松地将任何部分替换为不同的模型或远程服务。
主要功能
- 完全本地 首次运行后(无需互联网)。
- OpenAI Realtime 协议 兼容性 – 服务器使用与 OpenAI Realtime 服务相同的 WebSocket/WebRTC API,因此现有客户端可以指向你的机器。
- 跨平台 支持:Apple Silicon(基于 MLX 的模型)、NVIDIA GPU(CUDA)或仅 CPU 的回退。
- 可扩展 – 数十个可选的 VAD、STT、LLM 和 TTS 后端可通过
pipextras 安装。 - 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 组件。
相关
- 项目
- 项目
- 项目
- 项目
- 项目