语音Agent vs 文字Agent:同源不同命的技术分野与选型地图

📅 2026/4/26 ✍️ 小文 📖 约 1 分钟

同样叫AI Agent,语音和文字在延迟预算、打断处理、错误恢复上完全是两套工程。拆开语音栈的7个环节,给出延迟预算表与选型决策树。

一句话结论

文字 Agent 的瓶颈是质量,语音 Agent 的瓶颈是延迟。这条差异会传导到架构的每个角落:模型选型、上下文策略、错误恢复方式全都不一样。把文字架构直接搬到电话场景,几乎必然翻车。

一条语音要过 7 道工序

环节典型耗时优化手段
VAD 端点检测150–400ms语义 VAD,不用纯能量 VAD
ASR 识别100–300ms流式增量识别,不等整句
对话编排300–2000ms小模型 + 首 token 优先
工具调用200–3000ms预取、并行、超时降级
TTS 首包150–400ms流式合成,边生成边播
网络往返50–200ms就近节点、WebRTC

人对话能容忍的静默约 700ms,超过 1.2 秒用户会怀疑掉线。如果给 LLM 的预算只有 500ms,基本只剩小中模型可选,旗舰模型必须配”填充语”(“好的,我看一下”)掩护。

坑一:VAD 判停是最被低估的环节

文字里”说完了”是回车键,语音里这是猜测。三个真实问题:

  • 纯能量 VAD 抢话:用户说”嗯……我觉得”后停顿,系统就插话。解法是语义加权——上下文出现”因为/然后/就是”这类连接词时,把阈值延长到 900ms。
  • 背景噪音:键盘声、空调声被判成人声,需要 ASR 置信度参与判停。
  • 专名后停顿:报号码”138…1234”中间的停顿不该判停,需热加载领域词表。

较稳的做法:VAD 输出”疑似结束”,再由极小分类模型或规则做二次确认,成本几乎为零。

坑二:打断不是”停播”,是状态回滚

打断真正的难点是:已经说出去的半句话,算不算进对话历史?

  1. 完整保留——模型以为自己说完了,下一轮基于错误前提,出现重复回答。
  2. 完全丢弃——用户说”不,我问的是……”,模型忘了自己说过什么,衔接生硬。
  3. 截断标记(推荐)——历史里记”助手说了前半句被打断”,模型能自然承接。

第 3 种只需在历史层加 interrupted: true 字段并在系统提示里解释它,30 行代码换来的体验差异。

坑三:语音里没有”重试”按钮

文字答错了用户往上翻重问成本很低;电话里用户只会沉默或骂人。所以必须有:

  • 置信度追问:“您是说尾号 4412 对吗?“ASR 置信度低时主动确认,比猜错强十倍。
  • 兜底话术而非兜底报错:工具超时别报”系统错误”,要说”我转人工帮您查,稍等 10 秒好吗”。
  • 静默上限:连续 2 次未识别必须转人工,不能让用户在死循环里耗。

实测:加了置信度追问后,某外呼场景信息采集准确率从 82% 提到 96%,代价是通话时长多 11 秒。这笔交易通常值得。

什么时候该用语音,什么时候别用

适合:用户在移动中或双手被占用(开车、巡检);情感浓度高的沟通(关怀、投诉安抚);无障碍场景;高频短交互(预约确认、地址确认)。

别用:需要展示复杂信息(价格对比、长列表,用户记不住也听不清);精细操作(填表单、选日期);需要可回溯文本记录的确认;口音极重的多语言场景——ASR 错误会拖垮整条链路。

务实的形态是语音 + 短信/小程序混合:电话里完成意图识别和关键信息采集,复杂内容发链接。这不是妥协,是正确分工。

选型决策树

  1. 用户能否单手操作?不能 → 语音优先
  2. 交互是否以短回答为主(短于 15 秒)?否 → 语音 + 文本混合
  3. 有强合规留痕要求?是 → 语音必须同步转文本存档
  4. 并发 少于 50 路?→ 自建三段式(ASR + LLM + TTS)更可控
  5. 高并发且无运维团队 → 用托管语音平台,接受模型限制

最后一句实话

端到端语音大模型正在逼近,但工程坑并没有减少,只是从”拼接三段式”变成”控制端到端模型的不可控性”。只做过文字 Agent 的团队,上语音前先做 200 通真实电话灰度,把 VAD、打断、兜底三关跑通,再谈规模化。

📤 分享到