语音智能体:把听错变成训练信号,同一批任务成功率从 24% 翻倍到 53%

把一个流行的做法拆开看:拿一个已经能写会算的文本 agent,接上 ASR 把用户的话转成文字,接上 TTS 把回复念出来,再让模块之间用流式管道跑起来,这就是今天绝大多数生产环境里的"语音 agent"。它听起来能说会道,做起事来却一塌糊涂。同一批 278 个真实业务任务,GPT-5 用纯文本做能到 85%,换成语音通道后,最顶尖的三家 audio-native 商用模型在干净条件下只有 31% 到 51%,加点背景噪声和口音再掉到 26% 到 38%。信道一换,任务能力折掉一半还多,为什么?

答案不在"声音好不好听",而在反馈。听错、抢话、工具调用失败,这三类语音 agent 的主要错误都发生在音频通道里,却没有机制把它们归因回 agent 自身、变成可训练的信号,这正是语音与文本之间落差的结构性根源。实时语音智能体的分水岭,不在能否边生成边说话,而在能否把每一轮的听错、抢话与工具后果,闭合为可归因、可训练的反馈。这是全文唯一要论证的答案,后面每一章都是这条判断的下一步推进。

1. 语音 agent 不是「文本 agent + 音频 I/O」:听错一个字,整单任务就毁了

1.1 一个被听错的数字,如何毁掉整单任务

SpeechGym 论文(arXiv:2608.26432)里有一个专门的测试域叫 Banking,用来考账户、余额、转账金额这类高风险数值 slot,设计意图很直白:看你把波形里的一个数字听错之后会发生什么。开篇那个系统级的任务落差,在这里缩成了最小单位。测试里最常见的失败路径是这样的:caller 报了一句"把 1280 转给某某",agent 把 1280 听成了 12800,这个错误值直接落进了转账金额这个工具参数。数据库对这次工具调用的校验结果自然是失败,于是 agent 重试,还是同一个听错的参数,再次失败。几次重试之后,步数预算耗尽,整单任务判定失败。一个数字的落差,就足以把一单任务的结局从成功翻成失败。也正因为落差长在听错这个环节上,才逼出一句追问:为什么需要一道反馈闭环?

这条链值得单独画出来,因为它说明语音 agent 的主力失败不是"听不懂语义",而是"听错之后的连锁反应"。

图注:感知误差传播链。一个被听错的值进入工具调用后,单点错误会通过重试与步数预算放大成整单失败,这正是 SpeechGym 所说的 perceptual 失败模式(mishearing a slot value)。

这道追问的答案,要先从归因说起。SpeechGym 把语音 agent 的错误拆成两类:perceptual(感知错误),即把 slot 值听错;behavioural(行为错误),即选错工具或未经授权就写入。刻意之处在于,这两类错误可以被分开归因,因为数据库对每次工具调用的自动成败检查就是现成的标注。归因一旦可能,错误就具备了变成训练信号的前提,而把每一轮的听错、抢话与工具后果闭合为可归因、可训练的反馈,就是开篇说的那条闭环,也是全文唯一要论证的答案。同一条直觉在完全不同的任务家族里独立成立。SpeechAgent-R 用一句话把工具调用换成真值(oracle-tool 分析),在空间音频、重叠语音这类任务上,总分从 84.2 提到 91.4,其中 Tool-call 一项几乎没动(96.7 → 97.9,早已饱和),涨的全在 Answer(78.6 → 88.5)。也就是说瓶颈从来不在"会不会选工具",而在"能不能把听来的东西用对",而这正是闭环要回填的那一环。SpeechAgent-R

1.2 把「语音是 wrapper」的直觉摊开来看

先承认那个直觉的一半是对的:语音 agent 与文本 agent 确实共享同一条 agentic loop,聊天、调用工具、对着数据库操作,一样不少。SpeechGym 的架构图把这一半画得很清楚,然后再用另一半推翻它。

图注:图 (a) 中,无论是文本还是语音,agent 都跑同一条 agentic loop,唯一变化是承载对话的信道,工具与数据库完全一样。图 (b) 把循环本地闭合:用户模拟器、工具和奖励都搬进环境内部,没有任何外部 ASR/TTS 或专有 API 横在中间,梯度因此能穿过整个循环,训练才成为可能。注意图 (a) 只画了 agentic loop 本身,并不包含奖励塑形细节,不要从图上推断训练机制。SpeechGym

直觉的后一半是"只是换了信道,所以能力应该差不多"。τ-Voice 用数字否掉了它。同一批任务,文本 GPT-5 做到 85%,语音在干净条件下只有 31% 到 51%,Realistic 条件下再掉到 26% 到 38%,只保留了三到四成文本能力。更关键的是失败归因:在 91 个失败仿真里,人工标注者(rater,一致率 84%)判定 79% 到 90% 的失败根因在 agent 自身行为,主要是逻辑错误、转写错误和幻觉补全,而不是 ASR 识别率的锅。论文原话是,voice-text 差距不纯粹是语音识别问题,推理与接地(grounding)的挑战独立于音频质量存在。τ-Voice

到这里,"语音只是换了信道的文本 agent"这个直觉已经被戳破:语音与文本的差距是系统性的,且被归因到 agent 自己身上。那么自然的补救是换更强的 ASR、更快的 TTS?下一章会说明,这条路走不通,因为实时性本身是一道更硬的约束,而它恰恰是这两条直觉被推翻的深层原因。

2. 实时性是一道在线因果约束:流式系统为什么不能偷看未来?

2.1 梯度要穿过,环境就必须本地

SpeechGym 的架构图里那句"梯度因此能穿过整个循环"不是修辞。一个语音 agent 如果背后是商业 API 级联,语音滚过 ASR 转文字、LLM 产出文本、TTS 再合成语音,模型权重与环境的交互被三道外部边界隔开,梯度根本过不去,训练无从谈起。SpeechGym 让两个开源的 omni-modal 模型直接用原生音频对话,中间没有 ASR/TTS 边界,梯度才能从奖励一路穿到 agent 参数。

为什么这件事如此要紧?因为语音本质上是流式到达的。系统在每一刻只能消费已经到达的音频片段,没有"先听完、再决定"的机会。听错一个字的时候没有后悔药,抢话之后也无法回收已经说出去的词。这就是在线因果约束:决策只能基于已到达的输入,这是实时性真正的含义,它比任何延迟指标都硬。

2.2 把约束工程化:tick 与 audio-time

这条约束要落进评测基础设施,需要一个具体的工程形态。τ-Voice 的做法是把连续音频流离散化成 200ms 的仿真步(tick),每个 tick 双方各交换恰好 200ms 的音频。事件按音频时间(audio time)登记,而不是按墙钟时间,也就是"音频里的第几秒"而不是"现实中的几点几分"。

图注:τ-Voice 在 τ²-bench 之上叠加语音组件。灰色块是继承下来的任务设施(指令、工具、数据库、领域策略),绿色块是语音用户模拟器与按仿真 tick 离散化的全双工音频信道,右侧是接入三家语音 API 的 provider adapter。这是评测基础设施的架构,不是某个 audio-native 模型的架构。τ-Voice

"只能看过去"不能只是推理时的一句口号,它必须是训练时就存在的结构。Super Star 的在线手势生成就把它焊死在模型里:causal masked audio-conditioned cross-attention,当前时刻的 motion token 只能 attend 到 $y \le t$ 的语音特征,而且这个因果掩码在训练时就生效,不是推理时补的 hack。模型必须学会在语音还不完整时就做时序连贯的预测。SuperStar

2.3 胜负手不在模型推理快慢,在能否重叠

在线因果约束还有一个工程侧的现实校准。Salesforce 的实验把级联管线(Deepgram STT + vLLM 的 LLM + ElevenLabs TTS)各组件流式重叠起来,实测首个词延迟(TTFA,time-to-first-audio)约 755ms;而 Qwen2.5-Omni 的 sentence-streaming 全流程要约 13.2 秒(RTF 1.93×,即处理比生成慢近一倍)。差距的根源不是哪个模型推理更快,而是级联可以通过 sentence buffer 把 STT、LLM、TTS 三段并发跑起来:LLM 只要攒出一句完整的话,就立刻送 TTS 合成,不必等全文。CascadeTutorial

所以实时性不是延迟指标,而是一道在线因果约束。它同时决定训练(本地闭环才可微)、架构(causal mask 必须训练时就有)与工程(流式重叠加 sentence buffer)。在这道约束下,最难的决策是什么?什么时候开口。因为换轮窗口只有百毫秒,这是下一章的主题。

3. 什么时候开口?百毫秒级换轮,把「何时说」逼成一个预测问题

3.1 轮次转换的三种时间关系

两个人对话时说话权怎么交接,是会话分析(conversation analysis)研究了五十年的老问题。先把"轮次转换"这个说法拆成可操作的定义:任一时刻,两个说话人的语音在一根时间轴上只有三种摆法,要么重叠,要么中间有空隙,要么先停后接。

图注:轮次转换的时间关系分类示意。两行分别是 SPK₁ 与 SPK₂ 的语音段:within-overlap 是重叠穿插、gap 是中间留空、between-overlap 是先停后叠。这是操作化示意图,没有数字轴,也不代表任何语料的真实频率。Levinson & Torreira

3.2 200 毫秒的换轮间隔,装不下 600 毫秒的生产延迟

Sacks、Schegloff 与 Jefferson 在 1974 年提出,一次会话由可变长度的构成单元(TCU,turn-constructional unit,一次说话中能构成完整回应的最小单位)组成,一个单元的结尾就是一个"转换相关位置"(TRP,transition relevance place),那是对方可以合法接话的时机。这套规则本身不复杂,真正要命的是它的时间学含义。

跨语料库的测量显示,人类换轮间隔的众数约 200ms,51% 到 55% 的转换在 200ms 内完成。而人要生产回应里的第一个词,至少需要约 600ms,Indefrey 与 Levelt 的分解是概念准备 175ms、词条提取 75ms、音系编码 80ms、音节化 125ms、语音编码 145ms,加起来正好 600ms。把两个数字并排看,反常之处就出来了:200ms 的间隔装不下 600ms 的生产过程。逻辑上只有一个出口,说话者必须在对方还在讲的时候就开始预测对方什么时候结束,边听边准备,不可能等静音出现再反应。这就是投射(projection)。Levinson & Torreira

语音 agent 撞上的正是同一堵墙。它不能等 VAD 检测到静音再开始回应,那至少损失一个换轮窗口。必须像人一样,在用词、韵律、句法的线索里提前预测对方的结束点,并且在自己这一侧提前准备内容,等确认信号一到就开口。

3.3 当代旁证:因果窗口与静音类口误

这条理论在 2026 年有了多模态实证。Real-TurnTurk 收录了 11 场非脚本对话,在严格 2.0 秒、截止到 t 时刻的因果窗口内,用视觉、声学与语言三类特征预测轮次切换。它用遗传算法演化出的 AND-OR 判定规则拿到 F1 57.0%,高于 always-positive 基线的 50.0%,论文自陈这只是 modest 的提升、未声明统计显著性,但它的意义在于把"只能看过去"真正做成了预测任务。Real-TurnTurk

而投射失败的预期后果,在今天的商用系统评测里能看到对应迹象。Full-Duplex-Bench-v3 用真实人类口误录音评测后发现,静音(pause)类口误是多数模型的共性最弱点,Grok 与 Ultravox 都只有 0.333。静音恰恰是端点检测的项目,等静音再反应等于把 200ms 的窗口白白浪费掉;该基准能显示的只是 pause 场景下的行为弱点,这与系统未能稳定完成投射的诊断相一致,而不是对这一内部机制的直接测量。FDB-v3

现在我们已经知道错误都发生在哪里了:听错、抢话、轮次误判。下一个问题是,这些错误能变成训练信号吗?给一个终局奖励行不行?下一章用 SpeechGym 回答。

4. 听错能变成训练信号吗?逐轮过程奖励如何让成绩翻倍

4.1 一个本地、可微、会自动打分的环境

SpeechGym 的环境设计把上一章埋的归因需求落成了结构。同一个 omni-modal 模型扮演两个角色:一份冻结的副本(π_U)说 caller 的话,一份可训练的副本(π_θ)在每一步决定是发出结构化工具调用还是开口说话。只有 user 与 agent 之间的通道是音频,工具接口保持文本。

图注:四组件归因结构。frozen 的 π_U 与可训练的 π_θ 是同一架构模型的两份副本,user 与 agent 之间走音频;工具执行器 E 对数据库操作,奖励 R 来自 benchmark 自带的自动任务完成检查。工具接口保持文本,使"听错 slot 值"(perceptual)与"选错工具或越权写入"(behavioural)两类错误可以被分开归因。SpeechGym

这里有个极干净的设计:数据库对每次工具调用的成败检查是自动完成的,它不需要人工标注,就是一个免费的逐轮错误标签。工具调用失败,这一轮就是坏轮;调用成功,这一轮就得分。上一章说"错误要变成训练信号",信号源就在这里。

4.2 终局奖励下,梯度全军覆没

但把这些免费的逐轮标签白白扔掉,只用终局奖励,训练就瘫掉了。GRPO 的更新强度取决于组内回报差:每组采样 K=4 条轨迹,用组内平均回报做基线做差分。如果一组四条轨迹的回报一模一样,标准差 σᵢ=0,差分后梯度为零,这一组直接被跳过。

语音场景下的问题是,一旦某个关键数字被听错,几乎所有轨迹都会在同一处翻车,终点奖励区分不出好坏。SpeechGym 的测量是:只用终局奖励时,84% 的群组 σᵢ=0,即大部分轨迹组无梯度可学。听错导致的全军覆没,不是数据量不够,是信号不可分。SpeechGym

4.3 逐轮过程奖励:σᵢ>0 从 16% 到 99.6%,成绩从 24% 到 53%

SpeechGym 的解法是把工具调用的成败改造成逐轮过程奖励(process reward,过程中每一步就打分,而不是最后才结账):每次工具调用成功 +0.1,失败 −0.1,终局的完整任务检查仍然保留在最后一步。同一条四轮失败的轨迹,在终局奖励下是 {0,0,0,0},σᵢ=0 没有梯度;换成过程奖励后可能变成 {0.30, −0.10, 0.20, 0.10},组内出现差异,梯度方向就回来了。结果是把 σᵢ>0 的群组占比从 16% 抬到 99.6%。

这根恢复的梯度,在完全独立的评测管线上兑现成了成绩。τ-Voice 有自己实现的用户模拟器、声学与评分代码,SpeechGym 训练出的 agent 直接投进去跑,不做任何微调,任务集是同一批,唯一变量是权重。

图注:跨管线 transfer 到 τ-Voice 的结果。四组柱状(Airline / Retail / Telecom / Overall),浅灰为训练前 base,深青为经 SpeechGym GRPO 之后。整体 pass@1 从 24% 翻倍到 53%,三个域同向上升:Airline 24→62、Retail 45→73、Telecom 4→24。图内未绘误差棒。SpeechGym

Telecom 的 6 倍是相对增益:基线只有 4%,翻到 24%。绝对值最低、相对涨幅最大,这是双控任务域里"agent 学会在不稳定的电话语音里坚持核对"的可量化结果。

4.4 但 per-turn 不是越细越好

过程奖励家族里有一个时必须说清的取舍:粒度不是越细越好。TARL 用 LLM 当裁判给每一轮打 −1/0/+1 的分,再把轮级奖励喂进 PPO,发现逐轮分配给每个 token 反而把训练搞坏了,训练期平均奖励跌到 vanilla PPO 之下;而把轮级奖励聚合成轨迹级再分配,效果最好。原因是逐轮分配过度依赖裁判的准确性,主偏差之后的那几轮几乎没有惩罚,训练会失稳。同一个结论的另一个侧面是训练模态:只拿文本轨迹微调,语音评估的 pass@1 从 37.4% 掉到 11.3%,说明语音能力在纯文本训练下会退化,混合模态 rollout 是必要的。TARL

这套"逐轮归因"也不是语音圈的新发明。AgentPRM 把 agent 任务的过程奖励重新定义为 Promise 与 Progress 双轴:Promise 衡量这一步达成目标的概率,Progress 衡量前后步骤的相互依赖,损失是两轴加权之和。它的意义在于给"逐轮打分"提供了方法论血统,语音只是让这个代价现形的第一个场景。AgentPRM

到这里训练闭环已经成形:听错被逐轮标记、梯度被恢复、成绩翻倍。但还有一个问题悬着:这个闭环里,"听""说""动"是不是三套分别训练的东西?下一章把它们压回同一个控制回路。

5. 语音、动作、轮次:同一个在线控制回路的三副面孔

5.1 说话、动作、轮次共享同一道只能看过去的流

Super Star 是给数字人做实时共语手势的,表面上看离语音 agent 很远,但它把"在线因果生成"和"反馈回填训练"两件事同时画在了一张图里。

图注:Super Star 全景。(a) 离线数据合成与自演化闭环:话题与情感段驱动 LLM 合成对话,离线手势生成器产出动画,在线用户偏好反馈回填 Data Library,下一轮训练自动包含新合成的 in-context 示例。(b) 在线实时交互:多模态输入进 streaming speech 模块,语音 token 流送入带 cross-attention 与 motion history 的因果手势生成器,产出低延迟的共语动作。panel (b) 中"看不到未来帧"是结构性因果掩码,不是图示省略。SuperStar

这张图的重点不是手势生成,而是"说话、动作、轮次决策共享同一道只能看过去的流"。手势与语音在同一在线协议下被一起训练,当前动作 token 只能看到已经到达的语音,训练时就用因果掩码把这条约束焊死。数字人如此,语音 agent 同理:听、说、动不是三个附属模块,而是同一个在线控制回路的不同观测与输出。

5.2 轮次判定规则实际长什么样

因果约束落到轮次决策上,需要一个具体到能写进代码的判定规则。Real-TurnTurk 的标注流程提供了模板。

图注:轮次切换的标注规则流。t 时刻判定"对方换轮"是四个条件的 AND:说话人发生切换、新段落时长 ≥0.5 秒、内容不是 filler、长度超过 3 个字符。所有特征都取自 t 时刻之前的因果窗口。这是打标准则,不涉及模型架构或训练数据。Real-TurnTurk

这条规则把第三章的投射问题变成了一个可执行的判定:轮次决策也被压进"只能看过去"的回路,且全部输入来自一个 2.0 秒的因果窗口。

5.3 训练器里的闭环,与部署后的系统回路是同一件事

回到 SpeechGym。它的行为分析显示,修复策略是 RL 自发学出来的:caller 拼读名字、用纠正后的拼写重做 lookup、切换查询键,agent 都学会了。而奖励只关心任务完成与工具调用成败,从没直接提过拼写和重试。这意味着在线交互产生的反馈,最终可以回填成下一轮训练数据,闭环不只在训练器里,也在部署后的系统里。Self-evolving loop 与逐轮 RL 是同一个原则的两端:系统的每一次失败都应该流回下一次训练。SpeechGym

既然在线闭环这么好,为什么今天的生产系统还是级联主导?答案不在训练侧,在工程侧。这是最后一章要拆的取舍。

6. 端到端可训练 vs 级联可替换:路怎么选,评测又该测什么?

6.1 工程现实:级联还是主流,但换来可训练性

先看两组数字。Salesforce 实测的级联管线(Deepgram STT + vLLM LLM + ElevenLabs TTS,sentence buffer 流式重叠)TTFA 约 755ms;Qwen2.5-Omni 的 sentence-streaming 全流程约 13.2 秒;而 Qwen3-Omni 的 Transformers 全流程更是到 146 秒的量级。级联能压到亚秒,靠的不是哪个模型更快,而是 STT、LLM、TTS 三段并发,LLM 每攒出一句就立刻送 TTS。CascadeTutorial

级联的取舍不是"更先进或更落后",而是拿训练信号换工程便利:组件可独立替换、天然支持 function calling、每段的延迟和错误都可观测。代价是梯度被三道外部边界切断,逐轮错误无法回灌。端到端恰恰反过来:SpeechGym 用一台本地 8×H200 pod 把 rollout 的 API 成本降到 0,同一套 rollout 用 API 级联跑一千个 epoch 接近 20 万美元。它用可替换性换了可训练性。两条路各换各的,没有谁更先进。SpeechGym

6.2 差距在哪:行为归因,而不是声学

端到端与级联的争论容易跑偏成"哪个音质好",τ-Voice 的对比图把焦点拉回任务完成本身。

图注:各模型在全部领域上的 pass@1。GPT-5 文本 85% 用横线标出。三家 audio-native 商用模型在干净条件下做到 31% 到 51%,Realistic 条件下掉到 26% 到 38%。注意三家的绝对水平并不低,这张图证明的是差距,不是"audio-native 不可用"。τ-Voice

再叠加 79% 到 90% 的失败根因归在 agent 行为,结论需要比「不是声学问题」说得更克制:语音与文本的差距、以及从 Clean 到 Realistic 的进一步退化,不能简单归为声学问题;现有归因显示,还需修复 agent 行为与反馈闭环,改进 ASR/TTS 本身不足以解决全部差距。这正是前几章那条闭环要补的东西。

6.3 评测三维与合格线

那么合格的评测该测什么?Full-Duplex-Bench-v3 直接给出了三维框架。

图注:FDB-v3 的评测三维框架。用户在带自然口误(filler、self-correction 等)的情况下连续说话,agent 持续监听并同时输出语音、调用工具。评估沿三个维度展开:Tool-use Performance(工具选择的精度与执行)、Turn-Taking Dynamic(打断与会话流)、Latency Breakdown(从听、到工具、到生成的时序分解)。图中只有框架,不含任何模型分数。FDB-v3

真实口误评测暴露了两类端到端特产的失败模式。一类是 eager speaking,过早开口,Ultravox 的打断率高达 47.9%;另一类是 silent worker,只做事不说话,Gemini 3.1 有 22% 的例子完全没有语音输出,其中超过八成确实执行了工具调用,却因为没说话被判失败。而最薄弱的是 self-correction:用户中途改口时,连最强的 GPT-Realtime 也只有 0.588,级联因为 ASR 在用户修正之前就定稿了转录,更是只有 0.176。这些都不是音质指标能暴露的问题。FDB-v3

行文至此,把整条论证收拢。判断一个系统是不是真正的语音 agent,不是听它说话多自然,而是问三件事:它是否在评测音频,而不只是转录后的文本?它是否在训练音频参数,让梯度穿过听错的那一环?它能否把每一轮的失误归因回去并修正,让下一次训练接得住?评测必须覆盖打断、修复、授权边界与跨轮稳定性,而非只测音质或单轮响应的延迟。分水岭从来不在"能不能边生成边说话",而在把每一次听错、抢话与越权闭合回训练信号的这条闭环上。读懂这条闭环,再去看任何宣称"语音 agent"的系统,你都会先问一句:它从失败里学到东西了吗?

参考文献

本专题引用的核心资料如下,建议深入学习时阅读原文:

  1. SpeechGym: An Audio-Native Gym for Training Voice Agents via Reinforcement Learning — arXiv:2608.26432
  2. Process-Supervised Reinforcement Learning for Interactive Multimodal Tool-Use Agents (TARL) — arXiv:2509.14480
  3. AgentPRM: Process Reward Models for LLM Agents via Step-Wise Promise and Progress — arXiv:2511.08325
  4. Super Star: Towards Streaming Real-time Interactive Agents for Digital Humans — arXiv:2608.24909
  5. Timing in turn-taking and its implications for processing models of language (Levinson & Torreira 2015) — doi:10.3389/fpsyg.2015.00731
  6. Real-TurnTurk: A Multimodal Turkish Corpus for Turn-Taking Prediction — arXiv:2608.22071
  7. Hear, Invoke, and Understand: A Skill-Calling Multimodal Agent for Large Audio Language Models (SpeechAgent-R) — arXiv:2608.01881
  8. Building Enterprise Realtime Voice Agents from Scratch: A Technical Tutorial — arXiv:2603.05413
  9. τ-Voice: Benchmarking Full-Duplex Voice Agents on Real-World Domains — arXiv:2603.13686
  10. Full-Duplex-Bench-v3: Benchmarking Tool Use for Full-Duplex Voice Agents Under Real-World Disfluency — arXiv:2604.04847
语音智能体:把听错变成训练信号,同一批任务成功率从 24% 翻倍到 53%