谁需要自托管语音AI?

先说结论:如果你对数据主权、定制化工作流、或成本有硬性要求,自托管值得折腾。否则,直接用Vapi/Retell这类云服务更省事——它们的ASR/TTS质量经过生产验证,延迟也低。

典型适用场景

  • 金融/医疗/法律:通话录音、客户意图识别等涉及敏感数据,不能出企业网络。
  • 重度定制:需要自己的LLM(比如用微调后的Llama 3.1)或自定义TTS音色(比如用GPT-SoVITS克隆特定人声)。
  • 高并发成本优化:云服务按分钟计费,自托管在自有GPU上运行Whisper+Faster-Whisper+本地TTS可将单分钟成本压到1/10以下。

不适用场景

  • 快速原型验证:从零搭建STT→LLM→TTS管线至少需要一周,而Vapi 30分钟搞定。
  • 单一场景且对延迟敏感(<500ms):自托管引入网络波动、模型加载等不确定性,很难稳定在500ms以内。

Dograh的整体架构

Dograh是一个开源的语音AI平台,核心设计是 模块化 + 可视化工作流。它没有绑定具体模型,而是允许你通过Workflow Builder将各个组件拖拽连接。

![VOICE AI ARCHITECTURE]

架构从上到下分为四层:

  1. 接入层:支持Telephony(PSTN/SIP)WebRTC,可直接对接Twilio、Asterisk等。
  2. 工作流引擎:Node-based可视化构建器,节点包括:STT , LLM , TTS , Function call, Condition, Switch, Loop等。
  3. 模型层:通过BYOK(Bring Your Own Key)机制,你可以指定自己的模型端点。比如STT用Whisper API或本地部署的Faster-Whisper,TTS用ElevenLabs或本地Edge-TTS。
  4. 基础设施:On-Prem部署,数据不出网,支持Docker Compose/Kubernetes。

关键设计亮点:MCP native。MCP(Model Context Protocol)是Anthropic提出的模型与工具交互协议。Dograh原生支持MCP,意味着你可以让语音助手直接调用外部工具(如查询数据库、创建工单),通过Function Calling实现。


关键技术选型与配置

STT(语音转文字)

模型 参数量 实时率(RTF) 词错误率(WER) 部署方式
Whisper large-v3 ~1.5B 0.3-0.5 (T4) 9.1% (LibriSpeech) 本地/API
Faster-Whisper same 0.1-0.2 (T4) 9.3% 本地
Deepgram (云) - 0.05 8.5% API

建议:多数场景用Faster-Whisper(基于CTranslate2),在T4上可达实时。如果对中文或方言有要求,可用Whisper large-v3中文微调版。

python
1 2 3 4 5 6 7
# Dograh配置STT节点示例(YAML)
stt:
  provider: faster_whisper
  model: large-v3
  device: cuda
  compute_type: float16
  language: zh

TTS(文字转语音)

模型 延迟(首句) 音质MOS 支持语言 部署难度
Edge-TTS ~200ms 3.8 多语言 极低
Coqui AI ~500ms 4.0 多语言 中等
GPT-SoVITS ~1.5s 4.5+ 中文/克隆
ElevenLabs (云) ~300ms 4.3 多语言 极低

建议:通用场景先用Edge-TTS(免费且延迟低)。需要高自然度且能忍受首包延迟时,用GPT-SoVITS。

LLM(对话引擎)

Dograh不绑定LLM,通过BYOK支持任何兼容OpenAI API的模型。常见选型:

  • 性能优先:GPT-4o mini(低延迟+高智能)
  • 数据安全:Llama 3.1 8B(本地部署,vLLM吞吐可达1500 token/s)
  • 长上下文:GLM-4 9B(128K上下文,适合对话历史)
python
1 2 3 4 5 6 7 8 9
# Dograh LLM节点配置示例
llm:
  provider: openai_compatible
  base_url: http://localhost:8000/v1
  model: /models/llama-3.1-8b
  api_key: your-key
  params:
    temperature: 0.7
    max_tokens: 512

实测效果与调优记录

我在T4 GPU上部署了Dograh,使用Faster-Whisper large-v3 + Llama 3.1 8B + Edge-TTS,模拟客户电话问询。

场景:"帮我查一下上个月的账单" → 触发Function Call查询数据库 → 返回金额 → TTS播报。

阶段 耗时 说明
STT 0.8s 用户说话3秒音频,实时率0.27
LLM推理 1.2s 生成15个token的回复
TTS 0.3s Edge-TTS首包延迟
总延迟 2.3s 不含网络往返

调优点

  • STT启用VAD(语音活动检测),减少空转。
  • LLM使用vLLM搭配--max-model-len 4096和预热请求,避免冷启动。
  • TTS选择流式(Chunked Streaming)可提前播放,将感知延迟压到1.5s。

常见坑与解决方案

1. 语音打断的时序问题

对话中用户可能打断TTS播放。Dograh没有内置voice activity detection for interruption,需要外部集成Silero VAD。我在工作流中加入一个VAD节点,检测到用户说话时立即终止TTS并重新开始STT。

2. MCP调用超时

LLM通过MCP调用外部工具时,如果工具响应慢(如数据库查询2s),LLM会因超时返回空回复。解决:在LLM配置中设置tools_timeout_ms: 5000,并在工具节点中加流式提示。

3. 中文TTS咬字问题

Edge-TTS中文偶尔读错多音字。我的方案:用Coqui XTTS-v2本地部署,首包延迟虽高(~800ms),但中文准确性更好。Dograh支持按语言分流:用Condition节点判断语言,中文走Coqui,英文走Edge。


总结

Dograh提供了一个扎实的自托管语音AI框架,关键价值在数据主权可定制工作流。选型上:

  • STT:本地用Faster-Whisper,云用Deepgram
  • TTS:对延迟敏感用Edge-TTS,对音质有追求用GPT-SoVITS
  • LLM:隐私优先用Llama 3.1,智能优先用GPT-4o mini

注意:自托管不等于低成本,你需要维护GPU集群、处理模型更新、监控延迟。如果团队没有运维能力,先上Vapi这种托管服务踩坑,再考虑迁到Dograh。