语音与实时智能体。
一个语音智能体只要多迟疑半秒,就不再像对话,而像坏掉了。构建它的一切都围着一个约束打转——延迟——以及一个架构分岔:把语音转成文本再转回来,还是让一个模型直接听、直接说。本条目把这两者都讲清,再加上初学者总会低估的那一层实时控制(轮次交替、打断)。
语音智能体是什么——以及为何延迟就是全部。
语音/实时智能体是一个你用语音跟它说话、它近乎实时用语音回应的智能体:一来一回很自然,你可以打断它,它可以停顿思考,还能在对话中途调用工具去查点东西或执行动作。它就是你在别处见过的那个智能体循环,只是套上了语音界面,并且在跟秒表赛跑。
而秒表正是关键。在人类对话里,一个人说完、下一个人开口之间的间隙只有大约 200–300 ms。一个让人觉得自然的语音智能体,常见目标是把端到端的语音到语音延迟控制在大约一秒以内——即从你停止说话到你听见第一段回音之间的时间。超出这个预算,无论底层模型多聪明,对话的错觉都会崩塌。延迟在这里不是众多考量之一,而是塑造其他一切决定的那个决定性约束。(关于这一权衡的一般框架,见成本、质量与延迟。)
初学者常犯的错误:"语音智能体不就是把语音识别粘到聊天机器人上吗。"识别与合成是相对容易、基本已被解决的部分。难的是实时对话控制——判断你什么时候说完、处理你抢话打断、并把整个循环压在紧张的延迟预算之内。本页余下部分讲的正是这些。
核心选择:级联 vs 语音到语音。
构建这条流水线有两种方式,二者之间的取舍是第一个真正的决定。
- 级联(流水线):STT → LLM → TTS。语音先由语音转文本(STT)模型转成文本,一个普通的文本 LLM 在文本上推理(并调用工具),回复再由文本转语音(TTS)模型合成回音频。三个可替换的阶段。
- 语音到语音(实时多模态):一个模型直接吞入音频、直接吐出音频,完全跳过中间的文本瓶颈。
延迟正是二者都存在的原因。在级联里,总延迟是各阶段之和——STT + LLM + TTS 再加上它们之间的编排——这在结构上就处于劣势。语音到语音把这些阶段压成一次通过,因此它可能更快,也正因如此它才存在。
但更快并不等于更好,这正是要内化的权衡:
- 语音到语音赢在延迟与韵律——因为模型直接听见语气和情绪、也直接产生语气,它听起来更自然。你失去的是可观测性与可控性:没有一份干净的文本可供打分,你无法独立换上更好的 STT 或 TTS,而且工具调用与结构化输出更弱,因为它们必须编码进音频里。
- 级联赢在可控、可观测、合规与组件选择——你能检查文本、为每个阶段挑选专精的供应商、按阶段调试,并用任意你喜欢、工具调用可靠的 LLM。代价是额外的延迟,以及副语言细微之处的丢失(语气被压平成文本再重建)。
实时控制层——真正难的部分。
无论你选哪种架构,语音智能体都得管理一场实时对话的流动。工程精力真正花在这里。
- 轮次交替与 endpointing。智能体必须判断你什么时候说完(endpointing),以及它什么时候该开口。太急,它会在你话说到一半时抢断;太慢,则显得迟钝、发死。现代系统已从原始的静音检测,转向语义/基于模型的轮次检测——它考量的是你的句子听起来是否真的说完了,而不只是你停顿了没有。
- VAD(voice activity detection,语音活动检测)。一个轻量分类器,把每一小段音频标注为语音或静音。它决定何时把音频送去 STT,并帮助定位轮次边界——但 VAD 不是完整的轮次检测。仅靠基于停顿的 VAD 是个糟糕的轮次判断者,因为人的一次沉思停顿并不代表轮次结束。
- barge-in(打断)。属于基本盘。当你开始抢着说话,系统必须在很短的预算内停下 TTS 播放并取消正在进行的 LLM/TTS 生成,然后交出话语权、开始聆听。一个你无法打断的智能体不像对话——像一段占线录音。
这三个问题彼此不同,也与模型本身不同,把它们做对,才是把一个演示与一个人们真愿意跟它说话的产品区分开来的大部分所在。轮次交替与 barge-in 实战手册会深入讲怎么调这些。
落到实处的技术栈。
语音是一种迫使你采用流式架构的模态——音频在两个方向上连续流动,而不是彬彬有礼地一问一答。
- 传输。音频通过 WebRTC(面向浏览器与移动端 App 客户端)或 WebSocket(面向服务器到服务器的连接)连续流传。电话集成——接入真实的电话号码——通常经由 SIP 实现。
- 通话中的工具。函数调用发生在对话进行当中:智能体查点东西或执行动作,然后继续说下去——它不会挂断去干活。这就是在实时延迟预算下的普通工具调用。
- 真实的构件(举例,非排名)。做语音到语音,可用 OpenAI Realtime API 配 gpt-realtime 模型(2025 年 8 月 GA,原生音频输入/音频输出)。托管型语音平台有 ElevenLabs、Vapi、Retell AI。开源编排框架有 Pipecat 和 LiveKit Agents。做级联则要自己拼装:STT 用 Deepgram 或开源的 Whisper;TTS 用 Cartesia 或 ElevenLabs。
一旦你有了这套思维模型——延迟是首要约束、级联 vs 语音到语音的权衡、以及轮次交替/barge-in 控制层——实现细节就在 Voice & Realtime Agents 系列实战手册里:实时架构、延迟预算、轮次交替与 barge-in,以及语音技术栈。