1. 唤醒词模型概述

各位同学好,我是你们这门课的老朋友。咱们今天聊的,是嵌入式AI里一个非常接地气的方向——唤醒词模型。

说白了,唤醒词就是让设备「醒过来」的那句话。你喊一声「小爱同学」,音箱亮了;你说一句「Hey Siri」,手机应了。这就是唤醒词。它不是一个复杂的语音识别系统,它只做一件事:判断用户是不是说了预设的那个词。

1.1 什么是唤醒词

唤醒词,也叫触发词(Trigger Word)或关键词(Keyword)。它是一个固定的、简短的语音指令。设备平时处于低功耗监听状态,一旦检测到这个词,就启动后续的交互流程。

我举个例子。你想想看,智能音箱如果一直开着完整的语音识别,电池撑不过半天。但只监听一个词,功耗就能降到微安级别。这就是唤醒词存在的意义——它是整个语音交互的「开关」。

核心特征:

  • 长度短:通常2-4个音节,比如「OK Google」只有3个音节
  • 发音清晰:避免容易混淆的音素组合
  • 计算量小:模型参数通常在几十KB到几百KB之间

我在项目中遇到过一件事。有个客户选了「小贝小贝」做唤醒词,结果发现「背」「杯」「北」这些音经常误触发。后来我们换成了「小波小波」,误报率直接降了一半。嗯,这里要注意:唤醒词的声学特性直接影响模型效果,选词的时候一定要做音素分析。

1.2 应用场景

唤醒词的应用场景比你想象的广。不只是智能音箱,很多嵌入式设备都在用。

场景 典型设备 唤醒词示例 功耗要求
智能家居 智能音箱、智能灯、空调 「小爱同学」「天猫精灵」 mW级
可穿戴设备 智能手表、TWS耳机 「Hey Siri」「小Bixby」 μW级
车载系统 车机、后视镜 「你好,奔驰」「小度小度」 mW级
工业控制 巡检仪、对讲机 「开始记录」「紧急呼叫」 μW~mW级

你可能会问:为什么可穿戴设备要求μW级,而智能家居只要mW级?

原因很简单。智能手表电池只有几百毫安时,还要撑一整天。智能音箱插着电,功耗压力小很多。我做过一个TWS耳机的项目,唤醒模型必须跑在10μA以下,否则用户听歌两小时就没电了。这种场景下,每一微安都得抠。

1.3 低功耗设计的必要性

好,咱们聊聊为什么低功耗设计这么重要。我直接说结论:唤醒词模型是永远在线的。

设备上电后,麦克风一直在采集声音,DSP或MCU一直在跑推理。这个「一直在跑」就是功耗的大头。你想想看,如果模型不做优化,一个Cortex-M4跑300MHz,光CPU就吃掉几十毫瓦。加上麦克风、ADC、内存,整机功耗轻松上百毫瓦。对于电池供电的设备,这根本扛不住。

我曾经踩过一个坑:

有个智能门锁项目,唤醒模型直接用了桌面级的DNN,参数500KB。结果电池续航只有3天。后来我把模型量化到8bit,剪枝掉40%的冗余连接,再换成定点运算,续航直接拉到30天。所以,低功耗设计不是锦上添花,是生存刚需。

低功耗设计的核心思路,我总结成三点:

  1. 减少计算量:模型越小、运算越少,功耗越低
  2. 降低频率和电压:动态电压频率调整(DVFS)是嵌入式设备的标配
  3. 优化数据流:减少内存访问次数,利用缓存和DMA

咱们这门课,就是围绕这三点展开的。我会带你从模型选型、量化剪枝、硬件加速、系统调度等角度,一步步把唤醒词模型的功耗压到极限。

下面这张图,是唤醒词模型低功耗设计的整体框架。你可以先有个印象,后面每一章都会对应到其中的一个模块。

唤醒词模型低功耗设计框架 唤醒词模型低功耗设计框架 麦克风音频输入 特征提取(MFCC/FBank) 唤醒词模型推理(DNN/CNN/TCN) 后处理 & 决策 唤醒事件触发 低功耗技术栈 模型量化(INT8) 剪枝 & 蒸馏 硬件加速(NPU/DSP) DVFS & 电源管理 流水线 & DMA 两级唤醒架构 设计目标 功耗 < 1mW 延迟 < 200ms 准确率 > 95% 误唤醒率 < 1次/天 模型 < 100KB RAM < 50KB 支持离线运行 无需联网

我的个人习惯:

做唤醒词项目时,我一般先定功耗预算,再反推模型大小和硬件选型。比如目标功耗1mW,那模型推理就得控制在0.5mW以内,剩下0.5mW给麦克风和外围电路。这样设计才不会跑偏。