1、唤醒词技术概述

什么是语音唤醒

语音唤醒,说白了就是让设备「听到」特定的词或短语后,自动从休眠状态进入工作状态。

我经常跟团队新人这么解释:
你想想看,智能音箱平时是「睡着」的,只有你说出「小爱同学」或「天猫精灵」时,它才「醒」过来。这个从睡到醒的过程,就是语音唤醒。

从技术角度看,唤醒词系统是一个轻量级的语音识别引擎。它不像语音听写那样要识别所有内容,只需要判断「刚才说的词是不是我预设的那个」。所以它的模型更小、计算量更低、功耗也更小。

嗯,这里要注意:
唤醒词系统是始终在监听的。这意味着它必须一直运行在设备上,哪怕设备处于待机状态。所以低功耗、低延迟是它的核心要求。

唤醒词的应用场景

我这些年接触过的唤醒词项目,主要集中在三个场景:

智能音箱

这是最典型的场景。你喊「小度小度」,音箱就亮了。
我个人习惯把这类场景叫做「远场唤醒」——用户可能离设备3-5米,环境里还有电视声、空调声、人说话声。这对唤醒系统的抗噪能力要求很高。

我在项目中遇到过一个问题:
用户明明喊了唤醒词,但音箱没反应。后来发现是电视里正在播广告,广告里也出现了「小度」这个词。这就是典型的误唤醒问题。

车载场景

车载环境更复杂。风噪、胎噪、音乐声、乘客聊天声……
我建议车载唤醒词要选发音清晰、不易混淆的词。比如「你好,奔驰」就比「嘿,奔奔」好——后者容易被「嘿嘿」误触发。

车载还有一个特殊要求:安全优先
唤醒延迟不能太高,否则驾驶员会分心去操作屏幕。我见过一些方案,唤醒延迟做到200ms以内,体验就很流畅了。

手机端

手机上的唤醒词,比如「Hey Siri」或「小艺小艺」。
手机场景的特点是:近场为主,但功耗极其敏感。因为唤醒系统要一直开着,如果功耗太高,手机待机时间会大幅缩短。

我记得有一次,某款手机的唤醒功能被用户吐槽「耗电太快」。后来发现是唤醒模型没有做量化压缩,导致DSP芯片一直处于高负载状态。嗯,这就是后面要讲的模型压缩的重要性。

唤醒词系统的核心指标

评价一个唤醒词系统好不好,主要看三个指标。我习惯把它们叫做「铁三角」:

指标 定义 理想值 我的经验
唤醒率 用户说了唤醒词,系统正确响应的概率 ≥95% 实际量产中,90%以上就算不错了
误唤醒率 用户没说唤醒词,系统却误触发的概率 ≤1次/24小时 这个指标很难做,我见过最差的方案一天误唤醒几十次
响应延迟 从用户说完唤醒词到系统给出反馈的时间 ≤300ms 200ms以内用户几乎无感知

核心矛盾:

唤醒率和误唤醒率是互相制约的。
你越想提高唤醒率,就越容易误唤醒;你越想降低误唤醒率,唤醒率就可能下降。

我个人的经验是:先保唤醒率,再压误唤醒率
因为用户对「喊了没反应」的容忍度,远低于「没喊它自己醒了」。

唤醒率

唤醒率怎么测?
我一般会准备1000条唤醒词录音,包含不同口音、不同距离、不同噪声环境。然后看系统正确唤醒了多少次。

举个例子:
如果1000次里唤醒了950次,唤醒率就是95%。
但要注意,这个数字在实验室里测出来,和实际用户场景里测出来,可能差10个百分点以上。为什么?因为实验室的噪声是「干净」的,而真实环境里的噪声是「脏」的——有突发噪声、有混响、有回声。

避坑指南:

我曾经在项目里只用了实验室数据做评估,结果量产后被用户投诉「唤醒不灵敏」。后来我学乖了:一定要用真实场景数据做验证。哪怕只收集100条真实录音,也比1000条实验室数据有价值。

误唤醒率

误唤醒率是用户最烦的指标。
你想想看,半夜里智能音箱突然「哎」一声,吓不吓人?

误唤醒的常见来源:

  • 发音相似的词:比如「小度」和「小肚」、「小杜」
  • 环境噪声:电视里的广告词、路边的喇叭声
  • 多人说话:别人在聊天,突然有人说了类似唤醒词的音节

我建议的做法是:
在模型训练时,加入大量的负样本——也就是「不是唤醒词但容易混淆的语音」。比如训练「小爱同学」时,把「小艾同学」、「小爱童鞋」都加进去作为负样本。这样模型就能学会区分。

响应延迟

响应延迟包括三部分:

  1. 音频采集延迟:麦克风把声音变成数字信号的时间
  2. 模型推理延迟:神经网络计算的时间
  3. 后处理延迟:判断是否唤醒、触发后续动作的时间

其中模型推理延迟是最大的瓶颈。
我见过一些方案,模型推理占了总延迟的70%以上。所以模型压缩(量化、剪枝、蒸馏)就成了关键——这也是后面章节要重点讲的内容。

注意:

响应延迟不是越低越好。
如果延迟太短(比如50ms以内),说明模型可能过于简单,唤醒率和误唤醒率都会受影响。
我一般建议把延迟控制在150ms-250ms之间,这是一个比较合理的平衡点。

小结

这一章我们聊了:

  • 语音唤醒是什么——设备从睡到醒的过程
  • 三个典型场景——智能音箱、车载、手机,各有各的坑
  • 三个核心指标——唤醒率、误唤醒率、响应延迟,互相制约

下一章我会讲唤醒词模型的设计思路,包括怎么选网络结构、怎么设计特征、怎么平衡精度和速度。到时候我会拿一个实际项目里的案例来拆解,应该会挺有意思的。

嗯,今天就先到这里。有什么问题,欢迎在评论区留言。