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天。所以,低功耗设计不是锦上添花,是生存刚需。
低功耗设计的核心思路,我总结成三点:
- 减少计算量:模型越小、运算越少,功耗越低
- 降低频率和电压:动态电压频率调整(DVFS)是嵌入式设备的标配
- 优化数据流:减少内存访问次数,利用缓存和DMA
咱们这门课,就是围绕这三点展开的。我会带你从模型选型、量化剪枝、硬件加速、系统调度等角度,一步步把唤醒词模型的功耗压到极限。
下面这张图,是唤醒词模型低功耗设计的整体框架。你可以先有个印象,后面每一章都会对应到其中的一个模块。
我的个人习惯:
做唤醒词项目时,我一般先定功耗预算,再反推模型大小和硬件选型。比如目标功耗1mW,那模型推理就得控制在0.5mW以内,剩下0.5mW给麦克风和外围电路。这样设计才不会跑偏。