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,继续等待用户说话。
关键设计¶
-
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。
-
端侧 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 的细粒度语义判断。
-
服务端 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 对后续研究尤其有价值。