speech-to-speech Skill:开源模块化语音代理框架,低延迟全本地运行
huggingface/speech-to-speech 是 Hugging Face 官方开源的模块化语音代理(Voice Agent)框架,核心是一个四阶段级联流水线:VAD(语音活动检测)→ STT(语音转文字)→ LLM(大语言模型)→ TTS(文字转语音)。它通过 OpenAI Realtime 兼容的 WebSocket API 暴露服务,所有组件均可自由替换——STT 可选 Parakeet/Whisper/Faster-Whisper,TTS 可选 Qwen3-TTS/Kokoro/ChatTTS/Pocket/MMS,LLM 可接 OpenAI API、vLLM、llama.cpp 或本地 Transformers。目前已生产落地于数千台 Reachy Mini 机器人。本周 GitHub Trending 期间日增 177 星,是近期语音 AI 开发者生态中热度最高的开源项目之一。
功能与原则
核心能力: 提供一个低延迟、全模块化、支持自托管的语音代理开发框架,开发者无需从零拼装 VAD/STT/LLM/TTS,即可获得一个可插拔的语音对话 pipeline,并通过 OpenAI Realtime 兼容协议与现有语音应用快速集成。
设计原则:
– 模块化优先:每个 stage 独立可替换,不绑定特定厂商
– 本地优先:默认组件(Parakeet STT + Qwen3-TTS)均为开源模型,可完全私有部署
– 协议兼容:暴露 OpenAI Realtime 兼容 WebSocket API,客户端无需改动即可接入
– 生产验证:已在真机器人(Reachy Mini)生产环境运行,非概念性项目
认可度
- GitHub Star:约 7,176 颗(截至 2026-07-28)
- 日增星数:177 颗/天(2026-07-28 GitHub Trending)
- 生产部署:数千台 Reachy Mini 机器人实际使用
- 所属生态: Hugging Face 官方项目,位于 huggingface/ 命名空间
- Trending 记录: 2026-07-28 登榜 GitHub trending Python 项目
链接
GitHub:https://github.com/huggingface/speech-to-speech
PyPI:https://pypi.org/project/speech-to-speech/
原作者
Hugging Face 官方(https://github.com/huggingface)
Hugging Face 是全球最大的开源 AI 模型平台,speech-to-speech 是其官方语音代理工具库,依托 Transformers 生态和 HF Inference Providers,主打”让任何人都能 Build 自己的语音 AI”。
介绍
speech-to-speech 解决的核心问题是:构建一个语音对话代理需要同时搞定语音检测、语音识别、大模型对话、语音合成四个环节,每个环节都有多个模型选择和工程坑。传统方案需要大量自研 glue code 将这些组件串起来,而本项目将这一过程高度标准化。
流水线四个阶段各有多个可互换后端。VAD 阶段默认使用 Silero VAD v5,这是目前开源社区最流行的语音活动检测模型之一。STT 阶段可选 Parakeet TDT(NVIDIA 开源,GPU 高效)、Whisper(OpenAI 开源,原生支持多语言)、Faster-Whisper(Whisper 的 CTranslate2 加速版)、Lightning Whisper MLX(Apple Silicon 优化)等。LLM 阶段通过 OpenAI 兼容 API 接入,支持 OpenAI、OpenRouter、HuggingFace Inference Providers、vLLM、llama.cpp 等任意 provider。TTS 阶段默认 Qwen3-TTS(阿里开源,支持自定义音色),还支持 Kokoro-82M、Pocket TTS、ChatTTS、MMS 等。
Pipeline 的输出通过 WebSocket 暴露为 OpenAI Realtime 兼容协议(/v1/realtime),这意味着任何已有的 OpenAI Realtime 客户端(如官方 SDK、LangChain、LlamaIndex 等)只需改一个 base_url 就能连上本地运行的 speech-to-speech 服务,实现完全私有的语音 AI 部署。
特点
- 全本地开源栈:STT(TTS 默认 Qwen3)+ LLM(可自托管 vLLM/llama.cpp)+ TTS(默认 Qwen3-TTS),无需任何闭源 API
- OpenAI Realtime 协议兼容:标准 WebSocket 接口,现有语音应用迁移成本极低
- 多后端自由替换:STT 支持 6 种后端,TTS 支持 5 种后端,LLM 支持任意 OpenAI 兼容 provider
- 跨平台:Linux(CUDA/CPU)、macOS(Apple Silicon via MLX)、Docker 一键部署
- 生产验证:已在 Reachy Mini 机器人商业产品中大规模部署,不是实验性项目
- 多语言支持:STT 和 TTS 均支持多语种,覆盖主流语言
使用方法
安装(Python 3.10+):
pip install speech-to-speech
快速启动(使用 OpenAI API):
export OPENAI_API_KEY=sk-...
speech-to-speech
服务启动后监听 ws://localhost:8765/v1/realtime,用客户端连接即可开始语音对话。
完全本地部署(llama.cpp + 自托管 LLM):
# 启动本地 LLM 服务
llama-server -hf ggml-org/gemma-4-E4B-it-GGUF -np 2 -c 65536 -fa on
# 启动 speech-to-speech,指向本地 LLM
speech-to-speech
--model_name "ggml-org/gemma-4-E4B-it-GGUF"
--responses_api_base_url "http://127.0.0.1:8080/v1"
--responses_api_api_key ""
macOS 优化配置:
speech-to-speech --local_mac_optimal_settings
自动使用 MPS(Apple Silicon GPU)加速所有模型。
Docker 部署(一键):
docker compose up
启动本地 llama.cpp 服务器 + speech-to-speech 流水线。
使用场景与人群
适用场景:
– 语音助手 / 聊天机器人私有化部署(不需要任何云服务)
– 机器人对话系统(已在 Reachy Mini 商用落地)
– 语音 AI 应用开发原型快速搭建
– 企业内部 AI 助手(数据完全留在本地)
目标用户:
– AI 应用开发者(需要快速集成语音能力的团队)
– 语音 AI 研究者(模块化架构便于实验不同 STT/TTS/LLM 组合)
– 隐私敏感型用户/企业(不愿将语音数据送往第三方云 API)
– 机器人开发者(需要低延迟、本地化的语音交互方案)
输入与输出案例
案例 1:本地语音对话
用户对着麦克风说:”What’s the weather in Tokyo?”
Pipeline 处理路径:
– VAD 检测到语音开始 → Parakeet TDT 转写为文本 → 发送给 LLM(本地 vLLM/Gemma4)→ LLM 生成回复 “It’s sunny in Tokyo, 28 degrees…” → Qwen3-TTS 合成语音流式回传 → 用户听到语音回答
案例 2:切换 LLM Provider
同一物理机器,通过修改参数从 OpenAI API 切换到本地 llama.cpp:
# 原来(用 OpenAI)
speech-to-speech --model_name "gpt-4o-mini"
# 改为本地模型(不改客户端代码,只改启动参数)
speech-to-speech
--model_name "Qwen/Qwen3-4B"
--responses_api_base_url "http://localhost:8080/v1"
--responses_api_api_key ""
无需修改任何客户端逻辑,OpenAI Realtime 协议保证了接口一致性。
评论区
登录后可评论。