语音Agent的打断功能,绝大多数部署方案用的是Voice Activity Detection(VAD)——持续分析用户端音频流的能量,超过阈值就停止TTS播报、切换到监听。这个方案的假设很简单:有能量等于在说话。但在PSTN电话线路上,这句假设很难成立。
合力亿捷的通话Agent进入真实客服电话环境后,VAD的误判率显著高于实验室数据。户外风噪、车间背景噪声、旺铺周边的人声、客户清嗓咳嗽——这些声音的能量值可能和用户开口说话的前几个音节完全相同。VAD只看能量这一个维度,判断不了的场景太多了。
一、纯VAD的三种误判模式
纯VAD在电话客服场景中的误判,不是"偶尔扣不准能量阈值"的问题,而是三个结构性问题。
问题一:VAD无法区分"人声"和"人发出的非言语声"。电话里用户的嗯、啊、哦、嗯哼、叹气、清嗓、咳嗽——这些信号和说话的开头在能量层面难以区分。Decagon的Barge-in指南直接指出这个难点:回声消除(AEC)去除AI播报回声后,VAD仍需要一个最低语速时长来确认是真正说话,但客服电话里大量非言语信号恰好落在这个时长区间内。
问题二:VAD无法区分"用户要插话"和"背景有人在说话"。用户在车里、开放办公区、街边打电话时,广播声、旁人的对话片段、打字声都可能触发VAD阈值。LiveKit在自适应打断检测的论文中明确指出:纯VAD在中度噪声环境下会把大量非打断性信号当作barge-in处理——嗯哼、叹气、键盘声都可能触发。
问题三:灵敏度和稳定性的矛盾不可调和。把VAD阈值调低——背景声和嗯哼都触发打断,False Barge-in飙升,AI不断中断自己的播报,电话里频繁空白。把阈值调高——用户必须很大声才能打断,体验差。PolyAI从真实部署数据中总结出一条规律:False Barge-in比Missed Barge-in更致命。一次假触发让AI中断播报、电话空白,用户困惑;两三次假触发,用户基本就要求转人工了。

二、从"有没有声音"到"声音像不像打断"
自适应打断检测改变的是问题定义。VAD问的是"用户有没有发出声音",自适应方案问的是"用户发出的这段声音像不像在打断"。两者需要的判断维度不在同一个级别。
2.1 四个声学特征维度
自适应方案在检测到用户音频信号的初始数百毫秒内,提取一组多维特征,而非单一能量值。
特征维度 | 声学定义 | 对打断判断的区分能力 |
波形形状 | 信号波形包络的轮廓形态 | 真打断的波形起始通常陡峭;嗯哼等反馈信号的波形更平缓 |
语音起始锐度 | 从静音到有声的能量变化率 | 真打断的起始更干脆,像敲门;背景人声的起始更模糊 |
信号持续时间 | 音频片段连续存在的长度 | <200ms的信号几乎都是无意识发声,不应触发打断 |
韵律特征 | 音高变化模式与节奏 | 真打断的语调更接近自然语音开头,非打断性声音的韵律模式不同 |
这四个特征构成声学指纹。自适应模型不再用固定阈值做二值判定,而是学习真实对话中"真打断"和"非打断"的声学模式差异。输出也从"是/否"变为0到1的概率分数。
2.2 CNN推理管线
特征提取后,数据进入音频编码器+CNN层的轻量级网络。LiveKit的公开数据表明,整条推理在约30ms内完成,模型在500ms重叠语音条件下达到86%的Precision和100%的Recall。最关键的性能指标不是推理速度,而是中位触发时长为216ms——比纯VAD靠能量积累到触发阈值更快,因为自适应方案在接近触发条件时就能给出高概率分数,不需要等能量完全达标。
用户音频 → 特征提取 → 音频编码 → CNN层 → 概率分数 → 阈值判断 → 触发/忽略
自适应方案的训练数据构成和VAD有本质区别。它不靠人工标注的"说话/不说话"标签训练,而是用几百小时真人双人对话录音训练——标注了"真打断""嗯哼""背景声"等精细标签。模型学到的是对话交互中的通用节奏模式,不依赖特定语言的词汇特征,因此具备跨语言泛化能力。
2.3 False Barge-in过滤的三个调参维度
生产部署中,自适应方案需要调三个参数:
灵敏度阈值。偏灵敏时Recall接近100%——用户确实要打断时系统一定响应;但约14%的触发可能是假打断。偏稳定时假打断几乎全部过滤,但部分微弱真打断可能漏检。没有通用最优值,取决于业务场景。
最小时长保护。False Barge-in的主要来源是<100ms的信号——清嗓、咬字、气流声。设一个150-300ms的最小触发时长可以过滤掉绝大多数非打断性短信号。这是最直接有效的一层保护。
AEC回声消除的配合。电话线路中AI自己的播报声音可能从用户端麦克风泄漏回来。这听起来像是另一个房间的人在说话——能量值可以骗过VAD,波形特征也可能骗过自适应模型。AEC在分析用户音频前先减去播报回声——如果AEC没校准,自适应模型再先进也会被AI自己的回声骗到。合力亿捷的呼叫中心通信底座在音频流进入打断判断之前,先由AEC完成回声抑制,这在PSTN和400热线场景中尤其关键。
三、自适应不是唯一出路
自适应CNN方案有它的局限:需要专用推理基础设施、训练数据获取门槛高、未见过的噪声类型可能退化。还有另一条工程路线——语义VAD。它不是分析波形声学特征,而是利用已有的ASR和语义理解链路:ASR先转写用户说的内容,系统再判断这句话是否构成有效打断输入。
合力亿捷在通话Agent的语言拟人化体系中走的是这条路。语义VAD的判停窗口控制在300-500ms内,依靠语义判断而非能量检测来确认打断意图。用户说"等一下"或"不是这个"——系统识别到的是语义层面的打断信号而非单纯的能量波动。这条路线不需要额外的打断推理模型,可以更自然地融入企业呼叫中心已有的技术架构。
FAQ
Q:自适应打断检测和语义VAD有什么区别?
A:自适应方案分析音频的波形形状、起始锐度等声学特征来判断打断意图,依赖专用CNN推理模型,在跨语言场景中有优势。语义VAD不分析波形,而是在ASR转写完成后判断用户说出的内容是否构成有效打断,更适合已有ASR和语义理解链路的呼叫中心架构,不需要额外的推理基础设施。
Q:False Barge-in 比 Missed Barge-in 更致命,这个结论可靠吗?
A:PolyAI从真实部署数据中得出的结论:AI被假打断后会中断播报、电话出现空白,用户反而不确定发生了什么。漏打断(用户说话AI没停)虽然体验差,但用户通常会再说一遍,对话还能继续。一次通话中两三次假打断,基本就会触发转人工或挂断。
Q:纯VAD方案能不能通过调参解决打断问题?
A:不能根本解决。VAD调参是在灵敏度和稳定性之间做单维度取舍,但真实客服电话中的噪声类型多变——风噪、车间噪声、广播声、旁人插话——单一能量阈值无法同时应对。自适应方案和语义VAD方案的本质改变在于从"单维度阈值"转向"多维度特征判断"——这是调参无法实现的跨越。
适用边界:自适应方案在安静到中度噪声环境下优于纯VAD,但无法取代AEC对回声的预处理。极端噪声场景下自适应和语义VAD都会退化,此时打断检测不应作为唯一的可靠性保障——转人工兜底仍然是最稳妥的策略。
