【语音交互】从语音唤醒(KWS)聊起

“Hi siri”、“天猫精灵”、“小爱同学”——我们的生活里已经塞满了可以被名字叫醒的设备。

但唤醒词不仅仅是给音箱取个名字那么简单。作为语音交互的入口,它决定了用户第一次开口时的体验。叫不醒、误叫醒、或者叫了三次才应一声,这些都不是产品设计的问题,是技术方案的选择问题。

这篇文章从几个相对实际的角度聊聊语音唤醒,不深入算法细节,只讲做产品或者自己折腾时需要了解的东西。

一、语音唤醒到底是什么

语音交互前设备需要先被唤醒,从休眠状态切到工作状态。唤醒的本质是一个触发器——在连续音频流里检测到预设的那个特定的声学模式,然后把系统从什么都不做的低功耗模式拉进正常工作模式。

它跟通用语音识别最大的区别在于:通用语音识别要"听懂所有话",唤醒词检测只需要"等那一个声音"。两者对算力和功耗的要求差了不止一个数量级。

二、唤醒词的应用场景

最出圈的应用是智能音箱,每个品牌都有自己的名字,名字本身就是一个唤醒词。手机上也基本标配了语音助手,iPhone 的 Siri、安卓的 Google Assistant、小米的小爱同学,随时等着被叫醒。

除了消费电子,这些年唤醒词在几个不太起眼的场景里也用得越来越多:

车载。 开车的时候双手放在方向盘上,通过唤醒词激活导航或者接电话,是安全刚需。

智能家居。 智能开关、86 盒、智能窗帘——这些设备体积小、不带屏幕,唤醒词加几个命令词,几乎是最自然的交互方式。

工业设备。 操作员戴手套或者双手不能离开工位的时候,用唤醒词加指令词控制设备启停,简洁且不容易误触。

可穿戴。 手表、耳机,功耗要求极高,KWS 模型的百 KB 级别体积在这些设备上刚好对路。

儿童玩具。 三四岁的孩子可能还不太会操作按钮,但叫一声"小恐龙"就能让玩具动起来,对这个用户群体来说,语音几乎是最低门槛的交互路径。

写这篇文章的过程中留意到一个现象:智能穿戴和老人呼叫器这几年接语音的比例明显在上升,后面"应用场景"那部分可以再展开一些实际案例。

三、唤醒词的工作原理

唤醒模型是核心,它负责在听到唤醒词后马上把系统切为工作状态。由于需要实时监听,并且一次推理的计算量很小,唤醒模型一般都做在本地。这也是没联网的时候叫"小爱同学"她依然会应你的原因。

唤醒模型的算法大致经历了三个阶段:最早的模板匹配(DTW)把音频特征序列跟标准模板做对齐比较;后来用隐马尔可夫模型分别给唤醒词和非唤醒词各建一个模型、比较概率;再后来神经网络成为主流,从特征提取到判别可以端到端完成。

近几年比较主流的是 DSCNN(深度可分离卷积),参数量可以压到两万多,几十到一百 KB 的模型体积对延迟和功耗都比较友好。

四、2026 年怎么弄到一个唤醒词模型

几年前说要训练一个唤醒词,通常的第一步是准备数据集——千人千时,至少几百个发音人的录音,加上标注、清洗、增强。对个人开发者或者小团队来说,这是不太现实的。

这几年变化比较大,市面上已经有三条相对可行的路:

自己训练

OpenWakeWord、WeKws、nanoWakeWord 是目前比较活跃的几个开源训练框架。它们都输出 ONNX 格式,不存在绑定问题。用 TTS 合成数据加噪声增强,不需要录真人数据也可以训练。不过从搭环境到调参数到训出能用的模型,仍然需要几天到两周不等,取决于经验。

在线生成

直接输入关键词,后台自动合成训练数据、完成数据增强、训练、导出 ONNX,十来分钟。国内有听词(www.voicute.com),海外有 openwakeword。出口都是标准 ONNX,不绑定任何硬件。听词有个基础款(39 元)和一个增强款(99 元),增强款会在训练中加入用户的真人录音,对口音比较重的用户改善会比较明显。

硬件模组

海凌科、涂鸦、机芯智能这些方案,几块钱到十几块钱一片。网页上配置唤醒词和命令词,生成固件烧录进去就能用。零代码。局限性在于绑定芯片——换了芯片就要重新适配。

五、唤醒词怎么测试

测试最好模拟用户实际使用场景,因为不同环境下的效果差别很大。在安静的会议室里测出来的唤醒率意义有限。

几个核心指标:

唤醒率。 同样条件下叫了 N 次,成功唤醒多少次。安静场景下 3 米内基本能做到 95% 以上,60-75dB 噪音场景(日常交谈的音量)能做到 90% 以上就比较不错了。

误唤醒率。 日常对话或者环境噪声下,设备被误叫醒的频率。一般用 24 小时内误唤醒次数来衡量。一个商用水平的 KWS 引擎,安静环境应该做到每天一次以内。

响应时间。 说完唤醒词到设备给出反馈的时差,纯唤醒词响应一般在 0.5 秒以内。

功耗。 对于电池供电的设备这尤其重要。百 KB 级别的 KWS 模型跑在 CPU 上,24 小时监听对续航几乎不构成明显影响。

六、自定义唤醒词和品牌唤醒词

品牌唤醒词是产品定义的一环。"小爱同学"不只是个名字,它是小米生态的识别符号。用户习惯了叫这个名字,品牌归属感也慢慢建立起来。

自定义唤醒词给了用户更高的自由度——智能开关可以叫"打开灯光",老人呼叫器可以叫"呼叫小张",儿童玩具可以叫"小恐龙"。名字跟使用场景绑定,交互更自然,且不少公司逐渐把它作为品牌差异化的一部分。

做自定义唤醒词功能时,需要限制字数(一般 3-5 个字)、检测多音字并提醒、定义阈值和唤醒策略。技术上最需要注意的是发音差异——纯 TTS 训练的模型偏好标准普通话,对于有地方口音的用户,召回率可能会降到只有一半左右。解决办法之一是让用户额外提供较少次的真人录音,以权重形式加入已有的训练流程进行混合训练。

七、总结

语音唤醒作为语音交互的前置步骤,主要做一件事:等一个特定的声音,等到了就唤醒设备,等不到就继续低功耗守着。这件事听起来很简单,但真正落地过程中,唤醒词从哪来、用什么引擎跑、误触发了怎么控——这三件事决定了整个产品体验的下限,也是产品和研发同学在早期就需要一起想清楚的问题。

相关链接:

  • 在线训练平台:www.voicute.com
  • 开源训练框架:github.com/dscripka/openWakeWord
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐