从零开始构建开源语音助手:Speech To Speech完整指南 [特殊字符]️
从零开始构建开源语音助手Speech To Speech完整指南 ️【免费下载链接】speech-to-speechBuild local voice agents with open-source models项目地址: https://gitcode.com/GitHub_Trending/sp/speech-to-speech想用开源模型搭建自己的语音助手吗Speech To Speech项目为你提供了一条快速通道这是一个低延迟、模块化的语音对话流水线从语音识别到语音合成的完整解决方案让你轻松构建能与OpenAI Realtime API兼容的智能语音助手。为什么选择Speech To Speech想象一下这样的场景你想为你的机器人、智能家居设备或应用添加语音交互功能但不想依赖昂贵的云端服务又希望保持完全的隐私控制。Speech To Speech正是为此而生它采用VAD→STT→LLM→TTS四阶段流水线架构每个组件都可自由替换让你可以根据硬件条件和需求灵活搭配最佳组合。这个项目已经在数千台Reachy Mini机器人中作为对话后端运行证明了其生产就绪的稳定性。最棒的是它完全兼容OpenAI Realtime API协议这意味着任何支持该协议的应用都能无缝接入你的本地语音助手核心功能亮点 ✨1. 模块化架构随心搭配Speech To Speech的核心优势在于其完全模块化的设计。你可以像搭积木一样组合不同的语音识别、语言模型和语音合成组件语音活动检测(VAD)使用Silero VAD v5精准检测语音边界语音转文本(STT)支持Parakeet TDT、Whisper、Faster Whisper、Paraformer等多种模型语言模型(LLM)可连接本地模型(vLLM、llama.cpp)或云端API(OpenAI、Hugging Face)文本转语音(TTS)提供Qwen3-TTS、Kokoro、Pocket TTS、ChatTTS等多种选择2. 多种运行模式适应不同场景根据你的使用场景可以选择最适合的运行模式模式传输方式适用场景realtime(默认)WebSocket, OpenAI Realtime协议构建标准语音API应用local本地麦克风和扬声器直接与流水线对话无需客户端websocket原始PCM over WebSocket需要自定义客户端socket原始PCM over TCP远程服务器运行模型3. 多语言支持全球通用Speech To Speech支持多种语言组合根据你选择的STT和TTS模型自动适配# 自动语言检测 speech-to-speech --language auto # 指定中文对话 speech-to-speech --language zh --stt whisper-mlx --stt_model_name large-v3快速上手5分钟搭建本地语音助手 ⚡第一步安装与配置# 基础安装 pip install speech-to-speech # 可选组件按需安装 pip install speech-to-speech[faster-whisper] # Faster Whisper STT pip install speech-to-speech[kokoro] # Kokoro TTS pip install speech-to-speech[pocket] # Pocket TTS第二步启动服务最简单的启动方式使用默认配置export OPENAI_API_KEY你的API密钥 speech-to-speech这将在ws://localhost:8765/v1/realtime启动一个兼容OpenAI Realtime的服务器使用Parakeet TDT进行本地语音识别OpenAI兼容的LLM以及Qwen3-TTS进行本地语音输出。第三步开始对话在另一个终端中运行客户端脚本python scripts/listen_and_play_realtime.py --host 127.0.0.1 --port 8765现在你可以对着麦克风说话并听到AI的语音回复了深度配置打造专属语音助手 使用本地语言模型如果你想完全本地运行可以使用llama.cpp等本地推理服务器# 启动llama.cpp服务器 llama-server -hf ggml-org/gemma-4-E4B-it-GGUF -np 2 -c 65536 -fa on --swa-full # 连接本地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 优化Mac体验如果你是Mac用户可以使用优化配置speech-to-speech --local_mac_optimal_settings这个设置会自动配置使用MPS设备加速选择Parakeet TDT作为STT使用MLX LM作为LLM后端启用Qwen3-TTS的MLX优化版本自定义语音风格使用Pocket TTS进行语音克隆speech-to-speech \ --tts pocket \ --pocket_tts_voice jean \ --pocket_tts_device cpu支持的声音预设包括alba、marius、javert、jean、fantine、cosette、eponine、azelma。项目架构深度解析 ️Speech To Speech采用精心设计的流水线架构确保低延迟和高可靠性核心组件语音活动检测(VAD)- 位于src/speech_to_speech/VAD/vad_handler.py使用Silero VAD v5检测语音边界智能判断对话轮次切换可配置敏感度和阈值语音转文本(STT)- 位于src/speech_to_speech/STT/支持多种开源模型实时部分转录功能多语言自动检测语言模型(LLM)- 位于src/speech_to_speech/LLM/兼容OpenAI API协议支持工具调用和流式响应本地和云端模型无缝切换文本转语音(TTS)- 位于src/speech_to_speech/TTS/多种语音合成引擎支持语音克隆和风格控制实时音频流输出配置管理所有配置参数都在src/speech_to_speech/arguments_classes/目录中管理module_arguments.py- 模块级参数vad_arguments.py- VAD相关参数各组件专用参数文件上图展示了如何将OpenAI Realtime客户端端点从云端OpenAI切换到自托管的Speech To Speech服务器实战案例构建智能客服机器人 场景需求假设你要为电商平台构建一个智能客服语音助手需要支持中文和英文能够处理商品咨询、订单查询等常见问题。配置方案# 创建配置文件 cat customer_service_config.sh EOF #!/bin/bash export OPENAI_API_KEYyour_api_key speech-to-speech \ --mode realtime \ --stt paraformer \ --stt_model_name damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch \ --language auto \ --llm_backend responses-api \ --model_name gpt-4o-mini \ --tts qwen3 \ --qwen3_tts_language auto \ --qwen3_tts_speaker Aiden \ --chat_size 50 \ --enable_live_transcription \ --thresh 0.5 \ --min_speech_ms 384 \ --min_silence_ms 64 EOF chmod x customer_service_config.sh ./customer_service_config.sh客户端集成使用标准的OpenAI Realtime客户端即可连接from openai import OpenAI client OpenAI( base_urlhttp://localhost:8765/v1, websocket_base_urlws://localhost:8765/v1, api_keynot-needed, ) with client.realtime.connect(modellocal) as conn: # 设置会话指令 conn.send({ type: session.update, session: { type: realtime, instructions: 你是一个专业的电商客服助手负责回答商品咨询和订单查询问题。, audio: { input: { turn_detection: { type: server_vad, interrupt_response: True } } } } }) # 处理语音交互 for event in conn: if event.type response.audio.delta: # 播放AI语音回复 play_audio(event.delta)性能优化与最佳实践 延迟优化技巧选择合适的硬件配置GPU加速使用CUDA版本的STT和TTS模型Apple Silicon启用MLX后端获得最佳性能内存优化根据模型大小调整内存分配流水线参数调优# 降低VAD阈值提高响应速度 --thresh 0.3 # 调整语音检测参数 --min_speech_ms 256 --min_silence_ms 32 # 启用流式传输 --responses_api_stream模型选择策略低延迟场景选择轻量级模型如Parakeet TDT Qwen3-TTS高质量场景使用Whisper Large GPT-4 Kokoro TTS多语言需求搭配支持多语言的模型组合监控与调试项目提供了丰富的调试工具# 测试TTS性能 python scripts/benchmark_tts.py \ --handlers qwen3 \ --iterations 3 \ --qwen3_mlx_quantizations bf16 4bit 6bit 8bit # 测试STT性能 python scripts/benchmark_stt.py \ --handlers parakeet-tdt faster-whisper常见问题解答 ❓Q: 如何在不同设备间迁移配置A: Speech To Speech的所有配置都通过命令行参数管理你可以创建不同的启动脚本或使用环境变量来管理不同环境的配置。Q: 支持哪些操作系统A: 支持Linux、macOS和Windows但某些后端如MLX相关组件仅限macOS使用。Q: 如何处理多用户并发A: 可以通过--num_pipelines参数调整流水线数量支持多用户并发处理。Q: 如何扩展自定义模型A: 继承baseHandler.py中的基类实现对应接口即可轻松集成新的STT或TTS模型。社区与贡献 Speech To Speech是一个活跃的开源项目欢迎社区贡献报告问题在项目issue页面提交bug报告或功能请求提交PR修复bug或添加新功能改进文档帮助完善使用指南和教程分享用例在社区中分享你的成功案例本地开发环境搭建git clone https://gitcode.com/GitHub_Trending/sp/speech-to-speech cd speech-to-speech uv sync pytest ruff check结语开启你的语音AI之旅 Speech To Speech为开发者提供了一个强大而灵活的工具箱让你能够快速构建各种语音交互应用。无论你是想为机器人添加语音功能还是构建智能客服系统亦或是开发创新的语音应用这个项目都能为你提供坚实的技术基础。记住最好的学习方式是动手实践从简单的speech-to-speech命令开始逐步探索各个组件的配置选项你很快就能打造出属于自己的智能语音助手。Speech To Speech支持轻松切换不同语言和语音风格满足全球化应用需求现在就开始你的语音AI探索之旅吧如果有任何问题记得查阅项目文档或加入社区讨论。【免费下载链接】speech-to-speechBuild local voice agents with open-source models项目地址: https://gitcode.com/GitHub_Trending/sp/speech-to-speech创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考