唤醒词识别塞进单片机:为什么只盯准确率会踩坑
编译自 arXiv:2509.07051 · 预印本开放获取
带语音的设备里,有一段代码是从不掉线的。麦克风一直开着,唤醒词检测一直在跑,等你说出那一句话。这个功能叫关键词识别,英文缩写 KWS,它的功耗直接决定了设备要靠多大的电池。把这件事塞进单片机执行,约束就更紧了。一篇被 IEEE Sensors 2025 收录的论文把这条流水线从头到尾测了一遍,得出的结论有点反直觉:光看模型准确率,选出来的方案可能并不省电。
常在线监听的成本压在 MCU 上
关键词识别是语音交互的第一道门。设备听到唤醒词,才启动后面的语音识别和云端请求。为了让响应足够快、隐私不出设备,这一段通常在本地做,不联网。手机和智能音箱算力充裕,跑这一段没什么压力;但电池供电的玩具、穿戴设备、传感器节点用的是单片机,内存和算力都按最低标准配,情况就不同了。
单片机的约束是硬性的。RAM 通常只有几百 KB,闪存几 MB,没有动态调频的余量。KWS 要在这上面常驻运行,还要留出余量给别的任务,所以它对内存占用和能耗的要求比在手机上苛刻得多。这不是把手机上的模型缩小一点就能解决的事,整个处理链的每一段都要重新算账。
特征提取这一段,长期被忽略
KWS 的流水线分成两段:前端做特征提取,后端做分类识别。
后端是神经网络,近年各种轻量模型都在往小了做。前端做的是把原始音频变成神经网络能吃的特征,最常用的是梅尔频率倒谱系数,简称 MFCC。它的步骤是先把音频转成梅尔刻度的频谱图,再用离散余弦变换降维。
论文指出的问题是,过去的研究大多把力气花在后端模型上,前端特征提取的开销被当成固定成本跳过去了。但前端并不便宜:它要做分帧、加窗、滤波和变换,每一步都是运算。在一个算力紧张的 MCU 上,前端的运算量可能和后端推理在一个量级。只看模型参数量选方案,等于把一半的开销放在视线之外。
图1 KWS 流水线在 MCU 上的两段开销:特征提取与神经网络推理(依据原文第 1、2 节绘制)
把整条流水线一起算
论文的做法是把整条链一起评估。范围从 MFCC 特征提取开始,到神经网络推理结束,中间不含任何跳过。测试平台选了三款 STM32 单片机:N6、H7 和 U5。这三款覆盖了不同的算力档次,其中 N6 内置神经网络加速单元,属于高端;H7 和 U5 靠通用内核跑。
这三款芯片的定位差别很大。U5 是超低功耗系列,主打待机功耗,适合常年靠电池运行、算力需求不高的场景。H7 是高性能系列,主频高、内存大,靠通用内核跑神经网络。N6 是较新的一代,内置专做神经网络推理的加速单元,能在不拉高主频的前提下完成同样的计算。三者的差别不在某一项参数上,而在于把同一个任务放到哪一颗芯片上,能耗和延迟的组合会不一样。
模型这边,论文对比了几种轻量结构:DS-CNN、LiCoNet、TENet,以及论文自己提出的 TKWS。TKWS 基于 MobileNet 的思路改造,用三个残差块堆起来,参数量只有 14.4k。
评测的指标不只是准确率,还有能量延迟积,简称 EDP。这个指标把一次识别花的时间和能量乘在一起,用来衡量"又快又省"的综合表现。论文的理由是,KWS 是周期性触发的任务,单看一次识别的能耗不够,还要看它在多大时间窗里完成,因为设备的唤醒响应时间由它决定。
三款单片机测下来,差距在加速器
结果的层次分得比较清楚。
模型这一层,TKWS 用 14.4k 的参数做到 92.4% 的 F1 分数。这个参数量在同类里算很小,精度没有明显掉队,说明基于 MobileNet 的改造在 KWS 任务是成立的。
平台这一层,差距比模型更大。带神经加速单元的 N6,能量延迟积最好,即便把特征分辨率提上去,它也能保持低延迟运行。H7 和 U5 靠通用内核,处理同样的特征要花更多时间和能量。论文由此得出一个判断:在高分辨率特征下,有没有硬件加速,决定了系统能不能跑得动。
还有一个结论关于特征提取参数。论文发现,MFCC 的分辨率、帧长这些参数不是设得越细越好。分辨率提高,前端运算量上升,后端输入维度也变大。在缺少加速器的平台上,这个代价可能吃掉精度带来的收益。所以特征参数的选取要贴着硬件的特性来定,不能照搬论文里的默认值。
这处取舍值得展开。MFCC 的计算要先分帧,帧长和帧移决定特征的时间分辨率,梅尔滤波器的个数决定频率分辨率。这些参数往细里调,特征表达能力变强,识别精度有提升空间,但前端运算量和后端网络的输入维度都会跟着涨。在带加速器的平台上,多出来的运算能被加速器吸收,这笔账划得来;在没有加速器的平台上,同样的参数会直接推高延迟和能耗。特征参数因此不是模型内部的一部分,它要和芯片一起定。
图2 三款 STM32 平台上关键词识别的相对能量延迟积对比(依据原文对比趋势绘制)
端侧语音比的是什么
这篇论文的价值在于把评估的口径摆正了。过去比 KWS 方案,常看的是模型有多少参数、准确率多少。这两个指标都只覆盖了流水线的一半。真正的方案选型要问的是:在你选定的那颗芯片上,整条链跑一次要多少能量、多少时间。
这个口径对做端侧语音的人有直接用处。比如同一套模型,换一颗带加速器的芯片,可能比在原芯片上继续压模型更划算。反过来,如果芯片本身没有加速能力,那把特征分辨率降下来、把模型简化,比追求高准确率更实际。
把范围再放宽一点,这个领域的整体走向也印证了同样的逻辑。有的方案干脆不用乘加运算,改用纯逻辑运算去做识别,把能耗压到十几微瓦的量级,代价是准确率落在八成多;有的方案把前端的数据量砍掉一半以上,换来多通道同时处理的能力,精度损失控制在 1% 以内。这些方案的共同点是,它们优化的不是模型本身,而是整条链上的某一处瓶颈。
端侧语音的竞争点,正在从"模型能做多小"转到"整条流水线的能效怎么分配"。对一颗电池供电的芯片来说,这可能是更值得算的一笔账。
内容来源:arXiv:2509.07051(cs.SD),收录于 IEEE Sensors 2025
原文标题:End-to-End Efficiency in Keyword Spotting: A System-Level Approach for Embedded Microcontrollers
作者:Pietro Bartoli, Tommaso Bondini, Christian Veronesi, Andrea Giudici, Niccolò Antonello, Franco Zappa
原文链接:https://arxiv.org/abs/2509.07051
许可协议:arXiv 预印本,依 arXiv 默认许可公开
配图说明:图1、图2 为本文依据原文献数据自行绘制。
改动声明:本文在其基础上进行了中文编译与删节,未改变技术结论与原始数据。
来源:21ic电子网
作者:Ayase





