跳转至

Speculative End-Turn Detector for Efficient Speech Chatbot Assistant

会议: ACL2026
arXiv: 2503.23439
代码: 论文说明释放处理代码和 OpenETD 数据脚本,正文未给出完整仓库 URL
领域: 语音对话 / End-Turn Detection / 高效推理
关键词: 端点检测、语音聊天、OpenETD、协同推理、低延迟

一句话总结

论文构建首个公开 end-turn detection 数据集 OpenETD,并提出 SpeculativeETD,让端侧 GRU 持续检测 speaking/non-speaking,只有遇到 200 ms 静音时才调用服务端 Wav2Vec2 区分 Gap 与 Pause,从而在真实语音上以 38 倍更低 FLOPs 和亚毫秒端侧延迟换取接近大模型的实时 turn-taking 效果。

研究背景与动机

领域现状:LLM 语音助手越来越强调自然对话,系统需要判断用户是已经说完,还是只是短暂停顿思考。这个任务称为 end-turn detection,直接影响语音助手是否会抢话、误打断或延迟响应。

现有痛点:现有 turn-taking 数据要么私有,要么如 Fisher corpus 一样使用成本较高,导致 ETD 研究难以复现。模型方面,Wav2Vec2 这类 transformer 音频模型准确率高但计算重,不适合每 100 ms 在端侧连续运行;小 GRU 可以实时部署,但准确率明显低,尤其难以区分真正的说话结束和犹豫停顿。

核心矛盾:ETD 需要高频、低延迟、低功耗地运行,但最难的 Gap/Pause 区分又需要更强的语音理解能力。若始终运行大模型,成本太高;若只用小模型,交互质量不稳。

本文目标:作者同时解决数据和推理两个瓶颈:构建公开 OpenETD 数据集,覆盖合成和真实对话音频;设计一个端云协同框架,让大模型只在必要静音段触发。

切入角度:ETD 的三分类状态可以拆成两个难度不同的问题。Speaking Unit vs non-SU 相对容易,小模型足够;Gap vs Pause 更难,只在出现静音段后才需要大模型判断。

核心 idea:把 speculative decoding 中“小模型快速筛选,大模型少量确认”的结构迁移到语音端点检测,但让大小模型负责不同类别粒度,而不是预测同一分布。

方法详解

SpeculativeETD 是一个两阶段实时音频分割系统。端侧模型以 100 ms chunk 为单位持续运行,服务器模型只在端侧连续检测到至少 200 ms non-SU 时被调用。输出状态包含 SU、Pause 和 Gap;Gap 代表用户 turn 结束,可以触发 LLM 回复,Pause 代表用户仍可能继续说。

整体框架

系统输入为流式语音。每 100 ms,端侧 GRU 读取 log-mel chunk,判断当前是否仍在 speaking unit。如果连续两个 chunk 被判为 non-SU,达到 turn-taking 文献常用的 200 ms threshold,就把从静音开始积累的音频段发送给服务端 Wav2Vec2。服务端只做二分类:这段静音是 Gap 还是 Pause。若是 Gap,语音助手可以开始生成回复;若是 Pause,继续等待用户说话。

关键设计

  1. OpenETD 数据集构建:

    • 功能:提供公开、可训练、可评估的 end-turn detection 数据。
    • 核心思路:合成部分基于 MultiWOZ 文本对话,用 TTS 生成三种变体:V1 无显式 pause,V2 注入 pause silence,V3 在 pause 前加入 filler words。真实部分来自 YouTube 和 Buckeye,两人对话通过 speaker diarization 切分,超过 200 ms 的静音根据前后 speaker 是否相同标为 Pause 或 Gap。
    • 设计动机:合成数据可控,能覆盖特定 pause/gap 模式;真实数据提供噪声、口音、情绪和语速变化,避免模型只学到干净 TTS。
  2. 端侧 GRU 粗筛:

    • 功能:以极低延迟持续判断 SU vs non-SU,减少大模型调用频率。
    • 核心思路:每个 100 ms 音频 chunk 采样为 16 kHz,提取 40 维 log-mel spectrogram。两层 Conv2D frontend 得到 960 维 chunk feature,单层 hidden size 64 的 GRU 自回归处理,线性头输出 SU/non-SU logits,总参数约 202K。
    • 设计动机:连续实时检测最消耗资源,必须放到端侧小模型。把任务简化为 SU/non-SU 后,小模型不必承担 Gap/Pause 的细粒度语义判断。
  3. 服务端 Wav2Vec2 精判与触发协议:

    • 功能:只在静音段出现时执行困难分类,判断是否真正 turn end。
    • 核心思路:当端侧 GRU 连续 200 ms 预测 non-SU,系统把静音开始后的音频片段发送到服务端 Wav2Vec2。Wav2Vec2 判断 Gap 或 Pause。由于触发只发生在静音段,Wav2Vec2 不需要每帧运行。
    • 设计动机:这与 speculative decoding 的结构类似,但不是让大模型 verify 小模型同一输出,而是让大模型处理条件触发后的细粒度子任务。这能把计算集中到最需要的时刻。

损失函数 / 训练策略

论文没有提出特殊损失,训练使用 AdamW,训练 10 epochs。学习率在 \([3\times10^{-6},3\times10^{-4}]\) 随机搜索,weight decay 在 \([0.01,2.00]\) 搜索;batch size 按模型大小分别调参。训练数据使用 synthetic 和 real training splits 的混合;评估在合成和真实 held-out test split 上进行。二分类任务评估 Precision、Recall、F1、Accuracy;实时分割任务每 100 ms 评估三类 macro F1 和 IoU。

实验关键数据

主实验

模型 / 数据 Synthetic F1 Synthetic Acc. / IoU Real F1 Real Acc. / IoU 说明
VAP 二分类 92.1 Acc. 92.3 59.1 Acc. 69.6 开源 turn-taking baseline
GRU 二分类 78.1 Acc. 79.7 49.8 Acc. 69.0 轻量但精度低
Wav2Vec2 二分类 99.2 Acc. 99.3 75.2 Acc. 81.2 精度最高但重
VAP 实时三分类 90.6 IoU 84.8 33.2 IoU 25.9 真实数据泛化弱
GRU 实时三分类 58.0 IoU 52.2 34.2 IoU 31.7 端侧可跑但不够准
Wav2Vec2 实时三分类 94.7 IoU 90.2 58.4 IoU 46.2 准确但计算重
SpeculativeETD 94.0 IoU 88.9 45.6 IoU 37.8 合成接近 Wav2Vec2,真实显著优于 VAP/GRU

消融实验

配置 关键指标 说明
OpenETD synthetic 122,481 samples, 148.26 h V1/V2/V3 覆盖基础、pause、filler word pause
OpenETD real 166 h 来自 YouTube 和 Buckeye,两人对话
Mixed training Real F1 45.6, Real IoU 37.8 synthetic + real 效果最好
Real only Real F1 43.1, Real IoU 36.3 相比 mix 下降 2.5 F1
Synthetic only Real F1 44.0, Real IoU 36.7 相比 mix 下降 1.6 F1
SpeculativeETD FLOPs 919.64 MFLOPs / 100 samples Wav2Vec2 为 34,971.68 MFLOPs,约 38x 更低
SpeculativeETD W2V calls real audio 上 26.7x fewer W2V calls 大模型只在必要静音段触发
GRU 端侧 latency execute 0.26 ms Wav2Vec2 execute 1500.32 ms

关键发现

  • OpenETD 合成数据总计 148.26 小时,其中训练集 96,773 samples / 116.83 h,测试集 12,868 samples / 15.68 h。真实数据来自自然双人对话,补足合成数据的域差距。
  • Synthetic vs real 的 gap/pause duration 分布接近,gap duration KS=0.083、Cohen's d=0.12,说明 Erlang 拟合能较好模拟静音长度;但 pause/gap 位置分布差异较大,合成数据更适合作 augmentation 而非完全复制真实对话。
  • 人工验证显示自动 label 总体 human-auto agreement 为 85.4%,Pause 为 94.0%,Gap 为 76.1%,diarization quality 平均 4.17/5,说明 Gap 边界更难但整体可用。
  • 端到端音频传输 RTT 在 5G 下约 106-116 ms,Wi-Fi 下约 98-140 ms,均低于 200 ms turn-taking threshold;payload 从 3.1 KB 增至 312.5 KB 在 5G 上只增加约 10 ms。

亮点与洞察

  • 把 ETD 拆成 coarse on-device 和 fine server-side 两个阶段非常自然。它符合任务本身的不均匀难度,也符合移动端部署的算力约束。
  • OpenETD 的价值不低于方法本身。过去很多 ETD 工作被私有数据限制,这篇提供了合成与真实数据混合的公开基准。
  • SpeculativeETD 的“speculative”并非简单照搬 LLM decoding,而是重新定义大小模型分工:小模型负责触发条件,大模型负责困难子问题。这种结构可迁移到其他流式感知任务。
  • 实验同时报告精度、FLOPs、端侧 latency 和网络 RTT,比只报告 F1 更贴近真实语音助手部署。

局限与展望

  • 数据主要是英语对话,不同语言和文化中的 turn-taking pattern、pause 长度和 filler word 都可能不同。
  • Gap/Pause 分类依赖服务端 Wav2Vec2,虽然 RTT 测量低于 200 ms,但真实生产系统还会有模型排队、网络波动、隐私和断网问题。
  • 合成数据的 pause/gap 位置和真实分布仍有差距,且 TTS 只有有限口音和声音,多样性不足以覆盖真实用户。
  • 真实数据 label 依赖 diarization 与 200 ms 规则,Gap human-auto agreement 只有 76.1%,说明训练目标本身存在边界噪声。
  • SpeculativeETD 在真实三分类上 F1 45.6,明显低于 Wav2Vec2 的 58.4。它是效率优先的折中,若应用对误打断极敏感,仍需更强 server verifier 或上下文语言理解。

相关工作与启发

  • vs VAP: VAP 是经典 turn-taking 模型,合成数据表现较好但真实数据 F1 只有 33.2;SpeculativeETD 通过数据和两阶段推理提升真实分割。
  • vs Wav2Vec2 全量运行: Wav2Vec2 精度最高,但每 100 samples 约 34,971.68 MFLOPs 且端侧执行约 1500 ms;SpeculativeETD 用条件触发把计算降到 919.64 MFLOPs。
  • vs 纯 GRU 端侧模型: GRU latency 极低但准确率不足;SpeculativeETD 保留端侧实时性,同时用服务端补足 Gap/Pause 难点。
  • 启发: 对流式多模态 agent,可以把任务拆成“端侧廉价哨兵 + 云端困难判别”。例如视觉唤醒、异常检测、语音情绪转折或移动端隐私过滤都可借鉴。

评分

  • 新颖性: ⭐⭐⭐⭐ 两阶段 ETD 设计简洁有效,主要创新在任务拆分和公开数据集。
  • 实验充分度: ⭐⭐⭐⭐ 覆盖二分类、实时分割、FLOPs、端侧 latency、RTT 和数据质量分析,很完整。
  • 写作质量: ⭐⭐⭐⭐ 结构清楚,部署动机强,数据和方法解释直接。
  • 价值: ⭐⭐⭐⭐ 对实时语音助手很实用,OpenETD 对后续研究尤其有价值。