3步掌握开源语音转换工具:从零到实战

3步掌握开源语音转换工具:从零到实战 3步掌握开源语音转换工具从零到实战【免费下载链接】speech-to-speechBuild local voice agents with open-source models项目地址: https://gitcode.com/gh_mirrors/sp/speech-to-speechSpeech To Speech 是一个开源语音转语音项目能够构建本地语音助手系统。这个低延迟、完全模块化的语音代理流水线采用 VAD → STT → LLM → TTS 架构通过兼容 OpenAI Realtime 的 WebSocket API 暴露服务。每个组件都可替换LLM 槽位支持 OpenAI 兼容协议可连接托管提供商、HF Inference Providers或在你自己的硬件上运行 vLLM 或 llama.cpp 服务器实现完全本地化、完全开放的技术栈。核心功能概览 Speech To Speech 的核心价值在于其模块化设计和低延迟特性。项目采用四阶段流水线架构每个阶段都有多个可互换的后端实现语音活动检测 (VAD)使用 Silero VAD v5 检测语音边界和对话轮次语音转文本 (STT)转录用户语音支持实时部分转录语言模型 (LLM)生成响应流式传输文本和工具调用文本转语音 (TTS)合成音频并流式传输回客户端支持的后端组件组件后端平台安装方式VADSilero VAD v5全部内置STTParakeet TDT默认CUDA/CPU通过 nano-parakeetApple Silicon通过 MLX内置STTWhisper通过 TransformersCUDA/CPU内置STTFaster WhisperCUDA/CPUfaster-whisperSTTLightning Whisper MLXApple Siliconwhisper-mlxSTTParaformerCUDA/CPUparaformerLLMOpenAI 兼容 API托管提供商或自托管服务器内置LLMTransformersCUDA/CPU内置LLMmlx-lmApple SiliconmacOS 内置TTSQwen3-TTS默认GGML/CUDALinuxmlx-audiomacOS内置TTSKokoro-82MCUDA/CPUApple Silicon非 macOSkokoromacOS内置TTSPocket TTSCPU/CUDApocketTTSChatTTSCUDA/CPUchatttsTTSMMS TTSCUDA/CPUfacebook-mms快速上手指南 环境要求与安装项目需要 Python 3.10 环境。安装非常简单pip install speech-to-speech默认安装包含标准实时路径Parakeet TDT 用于 STTOpenAI 兼容 API 用于语言模型Qwen3-TTS 用于语音输出非 macOS 平台默认使用 GGML 后端Apple Silicon 使用 mlx-audio基础使用示例设置 OpenAI API 密钥并启动服务export OPENAI_API_KEYyour_api_key_here speech-to-speech这将启动一个 OpenAI Realtime 兼容服务器监听ws://localhost:8765/v1/realtime。从源码目录你可以在另一个终端中测试python scripts/listen_and_play_realtime.py --host 127.0.0.1 --port 8765运行模式选择Speech To Speech 支持多种运行模式适应不同场景模式传输方式适用场景realtime默认WebSocketOpenAI Realtime 协议构建基于标准语音 API 的应用或设备local本地麦克风和扬声器直接与流水线对话无需客户端websocketWebSocket 原始 PCM构建自定义客户端无需 Realtime 协议socketTCP 原始 PCM模型在远程服务器运行使用简单麦克风/播放客户端Docker 部署安装 NVIDIA Container Toolkit 后使用 Docker Compose 一键部署docker compose upCompose 文件将启动 llama.cpp 服务器使用 Gemma 4启动 TCP socket 服务器并暴露端口8080、12345和12346。高级配置详解 ⚙️如何快速配置语音识别模型Speech To Speech 提供了灵活的模型配置选项。以下是几个实用配置示例使用本地 llama.cpp 服务器# 终端1启动 llama.cpp 服务器 llama-server -hf ggml-org/gemma-4-E4B-it-GGUF -np 2 -c 65536 -fa on --swa-full # 终端2使用本地 LLM 服务器 speech-to-speech \ --mode realtime \ --stt parakeet-tdt \ --llm_backend responses-api \ --tts qwen3 \ --model_name ggml-org/gemma-4-E4B-it-GGUF \ --responses_api_base_url http://127.0.0.1:8080/v1 \ --responses_api_api_key \ --responses_api_stream \ --enable_live_transcriptionmacOS 优化配置speech-to-speech --local_mac_optimal_settings此设置自动配置添加--device mps为所有模型使用 MPS设置 Parakeet TDT 用于 STT设置 MLX LM 作为 LLM 后端设置 Qwen3-TTS 用于 TTS默认使用 mlx-audio 和 6bit MLX 变体设置--mode local多语言支持配置语言支持取决于你选择的 STT 和 TTS 后端组件后端语言支持STTParakeet TDT默认25 种欧洲语言STTWhisper 系列广泛的多语言覆盖取决于选择的检查点STTParaformer取决于选择的 FunASR 检查点默认面向中文TTSQwen3-TTS默认多语言默认--qwen3_tts_language autoTTSKokoro多种语言/语音映射取决于后端可用性TTSChatTTS英语和中文TTSMMS TTS通过 MMS 检查点实现广泛的多语言覆盖单语言配置示例中文speech-to-speech \ --stt whisper-mlx \ --stt_model_name large-v3 \ --language zh \ --llm_backend mlx-lm \ --model_name mlx-community/Qwen3-4B-Instruct-2507-bf16自动语言检测speech-to-speech \ --stt parakeet-tdt \ --language auto \ --llm_backend mlx-lm \ --model_name mlx-community/Qwen3-4B-Instruct-2507-bf16可选后端安装额外后端通过 pip extras 安装pip install speech-to-speech[kokoro] # 非 macOS 上的 Kokoro-82M TTS pip install speech-to-speech[pocket] # Pocket TTS pip install speech-to-speech[chattts] # ChatTTS pip install speech-to-speech[facebook-mms] # MMS TTS pip install speech-to-speech[faster-whisper] # Faster Whisper STT pip install speech-to-speech[whisper-mlx] # macOS 上的 Lightning Whisper MLX STT pip install speech-to-speech[paraformer] # 通过 FunASR 的 Paraformer STT pip install speech-to-speech[mlx-lm] # macOS 上的 mlx-vlm 视觉模型支持最佳实践与性能优化 实时 API 集成Speech To Speech 的实时模式通过 WebSocket 使用 OpenAI Realtime 协议传输音频支持实时转录和低延迟对话轮次。服务器暴露/v1/realtime端点任何 OpenAI Realtime 兼容客户端都可以连接图将 OpenAI Realtime 客户端端点从托管的 OpenAI 切换到自托管的 speech-to-speech 服务器服务器实现了核心 Realtime 事件集入站包括input_audio_buffer.append、session.update、conversation.item.create、response.create和response.cancel出站包括语音开始/停止、流式转录、音频增量、工具调用和response.done。LLM 后端选择策略LLM 是流水线中计算最密集、延迟最高的组件。大型模型的单次前向传播可能主导端到端响应时间因此根据硬件和延迟预算选择合适的后端至关重要本地推理transformers在 CUDA/CPU 上mlx-lm在 Apple Silicon 上自托管服务器responses-api和chat-completions可指向本地 vLLM 或 llama.cpp 服务器提供商 API相同后端适用于 OpenAI、HF Inference Providers、OpenRouter 和其他 OpenAI 兼容提供商性能调优建议设备选择使用--device参数为所有组件设置统一设备或为每个组件单独指定设备VAD 参数调优调整--thresh、--min_speech_ms、--min_silence_ms以优化语音检测模型量化对于 Apple Silicon使用 MLX 量化变体bf16、4bit、6bit、8bit平衡性能和质量流水线池大小通过--num_pipelines调整实时流水线池大小优化并发处理常见问题解决Qwen3-TTS CUDA 兼容性问题在 Linux 上Qwen3-TTS GGML 后端来自faster-qwen3-tts[ggml]。如果机器没有 PyPI wheel 期望的 CUDA 12 运行时请在安装speech-to-speech之前从 Hugging Face wheelhouse 安装匹配的 wheel# CUDA 13.x pip install qwentts-cpp-python0.3.1cu130 \ -f https://huggingface.co/datasets/andito/qwentts-cpp-python-wheels/tree/main/whl/cu130 # CUDA 12.4 pip install qwentts-cpp-python0.3.1cu124 \ -f https://huggingface.co/datasets/andito/qwentts-cpp-python-wheels/tree/main/whl/cu124 # 仅 CPU 回退 pip install qwentts-cpp-python0.3.1cpu \ -f https://huggingface.co/datasets/andito/qwentts-cpp-python-wheels/tree/main/whl/cpu pip install speech-to-speechDeepFilterNet 兼容性注意DeepFilterNet 用于 VAD 中的可选音频增强需要numpy2并且与需要numpy2的 Pocket TTS 冲突。仅在不使用 Pocket TTS 的环境中手动安装。项目架构与扩展Speech To Speech 采用模块化设计便于扩展和定制。主要目录结构src/speech_to_speech/ ├── LLM/ # 语言模型相关实现 ├── STT/ # 语音转文本处理器 ├── TTS/ # 文本转语音处理器 ├── VAD/ # 语音活动检测 ├── api/ # API 接口实现 ├── arguments_classes/ # 命令行参数类 ├── connections/ # 连接管理 ├── pipeline/ # 流水线核心逻辑 └── utils/ # 工具函数每个组件都有对应的参数类位于src/speech_to_speech/arguments_classes/目录下允许通过命令行参数进行细粒度控制。开发与贡献对于本地开发git clone https://gitcode.com/gh_mirrors/sp/speech-to-speech.git cd speech-to-speech uv sync pytest ruff check项目欢迎问题和 PR。对于较大的更改建议先开一个 issue 讨论方法。Speech To Speech 已在数千个 Reachy Mini 机器人中作为对话后端投入生产使用证明了其稳定性和实用性。通过灵活的配置选项和模块化设计Speech To Speech 为构建本地语音助手提供了强大而灵活的基础设施无论是用于研究、开发还是生产部署都能满足不同场景的需求。【免费下载链接】speech-to-speechBuild local voice agents with open-source models项目地址: https://gitcode.com/gh_mirrors/sp/speech-to-speech创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考