改进的轮次结束模型将语音 AI 中断减少 39%

我们很高兴发布我们基于 Transformer的轮次结束检测模型的新版本 v0.4.1-intl,该版本在准确性和响应速度方面实现了突破。本次更新侧重于检测结构化输入(structured inputs)的语音完成情况,并更好地推广到多种语言。

最新的 MultilingualModel 已部署到在LiveKit Cloud上运行的代理(agents)中,并可在 Agents Python 1.3.0 和 Agents JS 1.0.19 中使用。

轮次结束检测的挑战

轮次结束检测是语音AI中最具挑战性的问题之一。人类在对话中自然地通过以下三个主要线索来完成这项任务:

  • 语义内容(Semantic content):所说词语的含义
  • 上下文(Context):更广泛的对话历史,包括对方刚才所说的话
  • 韵律(Prosody):语调、停顿和节奏等表达元素

忽略任何这些线索都可能导致中断或尴尬的沉默。

对于语音AI代理,这需要对实时音频流进行处理,然后对生成的音频或文本进行分析。为了达到人类水平的性能,模型必须整合内容、上下文和表达线索。

在LiveKit,我们基于Transformer的模型使用LLM骨干来有效地结合内容和上下文。这一基础使得 v0.4.1-intl 中的改进成为可能。

主要改进:减少中断和多语言语音AI增益

基准测试表明,与 v0.3.0-intl 相比,v0.4.1-intl 的误报中断相对减少了39.23%,且响应延迟没有增加。这些改进在所有测试语言中均成立,如下所示(错误率定义为固定真阳性率99.3%时的假阳性率)。

语言v0.3.0 错误率v0.4.1 错误率相对改进
中文18.70%13.40%28.34%
荷兰语26.10%11.90%54.33%
英语16.60%13.00%21.69%
法语16.80%11.10%33.93%
德语23.40%12.20%47.86%
印地语5.40%3.70%31.48%
印度尼西亚语17.00%10.60%37.65%
意大利语20.10%14.90%25.87%
日语19.70%11.20%43.15%
韩语7.90%5.50%30.38%
葡萄牙语23.30%12.60%45.97%
俄语19.50%12.00%38.46%
西班牙语21.50%14.00%33.88%
土耳其语25.40%12.70%50.0%
所有语言18.66%11.34%39.23%

总体上39.23%的相对改进反映了训练策略、数据集组成和预处理方面的改进。特别是,这些变化增强了对结构化输入(如电子邮件、地址、电话号码和信用卡详细信息)的处理,最大限度地减少了过早中断。

随着此次发布,我们将弃用 EnglishModel。最新的 MultilingualModel 不仅在大多数情况下超过了旧版英语模型的性能,同时在所有支持的语言中提供了稳定准确性。未来,我们建议对英语和非英语用例都使用多语言模型,这样您的语音代理就可以从一个单一、性能最佳的模型中受益,无论您的用户身在何处。

处理结构化数据

考虑一个常见的语音AI场景,例如从用户那里收集信息。代理提示:“您的电话号码是多少?”用户背诵数字,可能伴随着犹豫或修正。与具有清晰语法结尾或韵律信号的自然语音不同,结构化数据缺乏明显的停顿——语调保持平稳,没有上升或下降来表示完成。

如果没有强大的上下文感知能力,模型可能会不完整地捕获信息,迫使用户重复。v0.4.1-intl通过推断代理提示中预期的格式来解决这个问题:

  • 美国电话号码通常由10位数字组成
  • 电子邮件遵循 user at domain dot com 这样的模式
  • 地址通常包括街道地址、城市、州和邮政编码

LLM骨干使模型能够等待格式完成,而较小的纯音频模型缺乏语义深度,难以处理这些细微差别。

下面的比较说明了对于一个口述的电话号码的这种情况。v0.3.0-intl 在每个数字后过早地检测到结束,而 v0.4.1-intl则保持到整个序列完成。

Visualization tool comparing predicted turn endings from LiveKit’s v.0.3.0-intl and v0.4.1-intl end of turn detection models for a phone number sequence

要亲自查看差异,请在Hugging Face上试用我们的可视化工具

这些功能源于扩展的训练数据集,其中包含了真实的呼叫中心转录和强调结构化数据(如地址、电子邮件、电话号码和信用卡)的合成对话。

适应现实世界的变异性

由于模型处理来自语音转文本(STT)系统的文本输出,不同提供商之间的一致性差异可能会影响性能。一个STT引擎可能将“forty two”转录为单词,而另一个则输出“42”作为数字。使用一种风格进行训练而部署另一种风格会导致准确性下降。

为了处理这种情况,我们改变了训练数据中常见的STT输出格式。这确保了在不同环境中进行一致的预测,而不会增加运行时开销。

在这种鲁棒性的基础上,该模型显示出强大的多语言泛化能力。尽管结构化数据增强仅添加到英语训练集中,但在其他语言中的性能也有所提高——例如,在西班牙语或法语中检测电话号码时,准确性下降极小。这种迁移源于Qwen2.5基础模型,该模型经过多语言语料库的预训练,编码了全球格式(例如国际地址)的知识,并减少了对特定语言数据集的需求。

实现效率:模型蒸馏

我们选择了Qwen2.5-0.5B-Instruct作为基础模型,因为它在轮次检测方面表现强劲,同时支持低延迟CPU推理。

然而,较大的模型提供了更好的跨语言泛化能力。为了平衡这一点,我们训练了一个70亿参数的Qwen2.5-7B-Instruct作为教师模型,并将其知识蒸馏到0.5B学生模型中。由此产生的模型以较小模型的效率提供了更高的多语言准确性。

下图跟踪了训练期间的评估AUC。蒸馏模型(橙色)的表现优于基线0.5B模型(绿色),并在大约1,500步后接近教师模型(蓝色)的性能。

Evaluation AUC curves comparing training performance for LiveKit’s baseline, distilled, and teacher models for end of turn detection

可观测性集成

LiveKit Agents现在包含了对轮次结束模型的内置可观测性。
当您启用代理可观测性时,每个轮次检测决策都会记录模型所看到的精确输入。

在会话回放视图中,单击 eou_detection 跟踪并查看产生预测的完整上下文。这使得调试生产问题变得简单明了。

Screenshot of an eou_detection trace span with Agent Observability insights in the LiveKit Cloud dashboard

展望未来

我们目前的模型依赖于转录文本,尚未包含原始音频特征(如停顿或重音)。未来的迭代将通过多模态架构整合这些特征,将韵律直接融合到预测中以实现更精确的检测。

随着我们不断完善这些工具,我们的目标是使语音AI交互更加自然和人性化。这项持续进行的工作将为下一代对话式AI提供动力,为开发人员和用户带来更直观、更高效的体验。

准备好使用最新的轮次检测模型进行构建了吗?从语音AI快速入门开始注册LiveKit Cloud