一篇读懂端侧语音助手链路:唤醒词、VAD、流式 ASR、TTS 与打断

对着智能音箱说一句话,两秒内它开始回答——这两秒里,声音走完了一条五工位的流水线:唤醒词、语音活动检测(VAD)、流式语音识别(ASR)、大模型(LLM)、语音合成(TTS)。任何一道工位慢半拍,整条链路的体验就塌掉。语音助手工程的本质,就是把这张接力棒时刻表压进人类对话的节奏里。本文逐工位拆解端侧语音链路(云端链路的通用延迟构成可先读站内《语音链路地图》,本文聚焦端侧架构与打断处理这道暗桩)。

先立标尺:人类对话的节奏

要压延迟,先知道压到多少才算「自然」。对话科学的经典结论(Stivers et al., 2009,PNAS)是:人类对话轮替的间隔约 200 毫秒——英语对答平均约 239 毫秒,几乎不给大脑留思考时间。业界由此形成两个实用目标:语音识别层的预算约 300 毫秒,一次完整对话轮的端到端延迟控制在 1 秒上下。超过这个数,用户就会觉得「它在装死」。

工位一:唤醒词——永远在线的哨兵

唤醒词(「小爱同学」「Hey Siri」「Jarvis」)模型的工作模式很特殊:24 小时运行,却只允许消耗毫瓦级功耗。所以它必然是极小的专用模型(百 KB 量级),通常跑在音频 DSP 或 NPU 的低功耗域,先于主 SoC 醒来。设计要点是两个方向的误报率:误唤醒(电视里喊了一句也答应你)与漏唤醒(喊三遍不理人),厂商要在两者间按场景调阈值——智能音箱宁可误报率高些,车载系统则相反(高速上误唤醒很危险)。

一个容易忽略的细节:唤醒词命中后,系统要回放缓冲区——你说「今天天气怎么样」的「今天」可能在唤醒词出口之前就说完了,哨兵必须把唤醒前的几百毫秒音频一起交给 ASR,否则每句话都丢开头。

工位二:VAD——决定「你说完了没」

VAD(Voice Activity Detection)判断音频里「有人说话 / 没人说话」,看似简单,实则是体验的隐形裁判:

  • 切尾(endpointing):你说完后 VAD 要等一个静音窗口才判定「说完了」。窗口短了会把中间停顿当句尾(「让我想想……好吧」被拦腰截断),长了则每句都多等半秒。现代方案用双重窗口:短静音先做「初步断句」,长静音才「正式移交」;
  • 抗噪:冰箱嗡嗡声、风扇声不能被当成语音。经典 WebRTC VAD 用统计模型、极轻量;Silero VAD 这类小型神经模型精度更高,已是事实上的开源标配。

流式 ASR 时代 VAD 与 ASR 的边界在模糊——识别器自带「说话概率」输出,VAD 越来越多变成「置信度门控」而非独立哨兵。但在端侧,独立 VAD 仍是省电刚需:没人的时候,大模型一个 token 都不该跑。

工位三:流式 ASR——边说边出字

端侧 ASR 的关键约束是模型体积与实时率(RTF):识别 1 秒音频耗的算力必须远小于 1 秒(RTF ≪ 1),否则音频堆积、延迟滚雪球。2026 年端侧选型主流是 Whisper 家族的小型号(tiny/base/small,几十 MB 到几百 MB)或专门的流式 RNN-T 架构——前者离线批处理精度好但天然非流式,需要滑动窗口 tricks;后者为流式而生,出字延迟低。识别层预算是全链路里最明确的:约 300 毫秒内要出首个稳定的部分结果。

工位四:LLM——全链路最慢的一道

多项延迟测量(如 2025 年 8 月的端到端语音智能体研究)表明:ASR 可以压到几十毫秒、TTS 首包约 300 毫秒,大头全在 LLM。优化手法因此都围绕「别等整句话」:

  • 首 token 延迟才是真实指标,不是总生成时间。prefill 阶段(处理 prompt)决定多久吐出第一个字;
  • 流式衔接:LLM 每生成一个逗号/句号就切一段文本喂给 TTS 边说边合成,把「写完全文再念」改成「边写边念」——这一招通常砍掉秒级的感知延迟;
  • 端侧模型选型(1B–4B 甜点区)的带宽账,见站内《端侧 NPU 军备竞赛 2026》。

工位五:TTS——首包延迟优于音质

端侧 TTS 的排序原则很明确:首包延迟 > 音质。用户能容忍稍机械的声音,不能容忍一秒的空白。主流端侧方案(VITS 系、轻量流式 TTS)能把首包压到一两百毫秒。若走云端 TTS(音质更好),首包预算放宽到约 300 毫秒,再多用户就会觉得卡顿。

暗桩:打断(barge-in)——自然对话的分水岭

用户说到一半就插话(「停停停,我问的是明天」),系统必须立刻闭嘴听新的——这叫 barge-in,是机器语音体验与「录音机」的分水岭。它比看起来难,因为有个物理学陷阱:音箱自己正在播 TTS,麦克风会把自己说的话录回来,VAD 一看「有人在说话」,系统自己打断自己,陷入无限自嗨。解法是三件套:

  1. 回声消除(AEC):把「我知道自己正在播放的信号」从麦克风录音里减掉,剩下的才可能是真人插话;
  2. 打断锁窗(lockout):TTS 开头几百毫秒内抑制打断判定,防止音首爆音被误判为插话(阈值需可调);
  3. 语义仲裁:低端方案听到人声就打断;高端方案先流式识别插话内容,判断是「打断意图」还是「嗯嗯、对」这类附和,再决定停不停——误打断一次,用户的耐心掉一截。

打断还牵连状态机:被打断的 TTS 队列要清空、LLM 生成要取消(省算力)、上下文要记住「我刚才说到哪」,半句话的话轮下次要能接上。

全链路时刻表与优化优先级

把各工位拼起来(典型端到端配置,目标 1 秒内开口):

唤醒词命中          ~0 ms     (常驻,不占对话预算)
回放缓冲区交接      +200–300 ms(音频前置,不可避免)
VAD 判定句尾        +200–300 ms(双重窗口)
ASR 首个稳定结果     累计 ~500 ms(流式,与 VAD 并行)
LLM 首 token        +300–600 ms(最大头,边写边喂下游)
TTS 首包出声        +150–300 ms
──────────────────────────────
合计感知延迟         ~1–1.7 s

优先级排序(按「每毫秒工程量换来的体验收益」):流式衔接 > 首包优化 > 断句窗口调参 > 模型升级。先让每一棒边跑边交棒,再去抠每一棒的绝对速度——顺序反了,常见结局是单工位很快、整体依然两秒半。

结语

端侧语音链路是一门「在带宽、功耗与延迟的三面墙里排队形」的工程学:唤醒词管省电,VAD 管节奏,ASR/LLM/TTS 管速度,AEC 管礼貌。五道工位单拎出来都不难,难的是让它们像一个人在听你说话——而打断处理得自然与否,就是那个「像人」的最后一厘米。

参考资料

← 返回资讯列表

读者留言

COMMENTS 暂无
仅本站原创文章开放留言 · 请勿留下手机号、邮箱等个人信息

还没有留言,来说第一句?