1. 课程导入

各位同学好,我是老张。做语音算法这行十几年了,今天咱们聊聊唤醒词模型。说白了,唤醒词就是让设备「醒过来」的那句话——比如你对着智能音箱喊「小爱同学」,或者对着手机说「Hey Siri」。设备听到这个词,就知道该干活了。

我刚开始接触这个方向时,觉得不就是做个关键词检测嘛,能有多难?后来踩了不少坑才明白,唤醒词模型虽然看起来简单,但要在真实场景下跑得稳、跑得快,门道可不少。

1.1 什么是唤醒词

唤醒词(Wake-up Word / Keyword Spotting),也叫触发词。它是一段固定的语音指令,设备在待机状态下持续监听,一旦检测到这个词,就进入交互模式。

举个例子:

  • 智能音箱:天猫精灵、小度小度
  • 手机助手:Hey Siri、OK Google
  • 车载系统:你好,奔驰
  • 穿戴设备:手表上的「嘿,Siri」

嗯,这里要注意一点:唤醒词和语音识别(ASR)不一样。ASR 是把你说的所有话转成文字,而唤醒词只关心「有没有出现那个特定的词」。它更像一个守门员,只判断「是」或「否」。

核心区别:唤醒词模型是二分类问题(唤醒/非唤醒),ASR 是多分类序列问题。两者复杂度差了一个数量级。

1.2 应用场景

唤醒词的应用场景,其实比你想的广。我整理了一下,主要分这几类:

场景 典型设备 唤醒词示例 关键要求
智能家居 音箱、智能灯、空调 小爱同学 低功耗、远场识别
手机/平板 智能手机、平板 Hey Siri 低误唤醒、隐私保护
车载 车机、后视镜 你好,奔驰 抗噪、免唤醒
可穿戴 手表、耳机 嘿,Siri 超低功耗、小模型
工业/医疗 手术灯、操作台 开始记录 高精度、低延迟

我在做车载项目时遇到过一个问题:车内开着音乐,副驾在聊天,这时候唤醒词还能不能准确触发?说白了,真实场景比实验室复杂得多。

1.3 技术挑战

唤醒词模型看着简单,但真正落地时,挑战一个接一个。我挑几个最头疼的说说:

  • 远场衰减:人离设备3米和30厘米,音量差十几dB。模型得扛得住这种动态范围。
  • 噪声干扰:空调声、电视声、马路噪音……模型要在各种噪声里把唤醒词「捞」出来。
  • 误唤醒:这是用户最烦的。设备突然自己醒了,还回一句「我在」,尴尬不?
  • 功耗限制:尤其是手表、耳机这类设备,电池就那么点,模型得在几毫瓦下跑。
  • 口音/语速差异:同一个唤醒词,东北大哥和广东靓仔说出来,声学特征差很多。

我曾经踩过的坑:有一次做车载唤醒,测试时一切正常,结果用户一上车开空调,误唤醒率直接翻倍。后来发现是空调风声的频段和唤醒词某个音素撞了。从那以后,我每次做模型都会专门加一批「噪声+语音」的对抗样本。

1.4 评价指标

评价一个唤醒词模型好不好,不能只看准确率。我一般用这几个指标:

指标 全称 含义 理想值
FAR False Alarm Rate 误唤醒率:非唤醒词被误判为唤醒 < 0.5 次/小时
FRR False Rejection Rate 漏唤醒率:说了唤醒词但没识别 < 1%
Latency 响应延迟 从说完唤醒词到设备响应的时间 < 300ms
Model Size 模型大小 模型占用的存储空间 < 500KB
功耗 Power Consumption 模型推理时的平均功耗 < 10mW

你想想看,FAR 和 FRR 其实是矛盾的。阈值设得严,误唤醒少了,但漏唤醒就多了;阈值设得松,漏唤醒少了,但设备可能老自己醒。怎么平衡?这就是咱们这门课要讲的核心。

我的习惯:做模型调优时,我会先定一个「可接受的 FAR 上限」,比如每小时不超过 0.3 次,然后在这个约束下尽量降低 FRR。说白了,宁可漏一次,也别乱醒十次——用户对误唤醒的容忍度远低于漏唤醒。

1.5 唤醒词模型整体架构

为了让你有个全局感,我画了张图。唤醒词模型从麦克风到最终决策,大致走这么几步:

唤醒词模型处理流程 唤醒词模型处理流程 麦克风输入 VAD 语音检测 特征提取 模型推理 后处理/阈值 决策输出 关键点 VAD 可降低功耗 特征常用 MFCC 模型常用 DNN/CNN

从图上你能看到,整个流程是串行的。麦克风一直开着,VAD 先判断有没有人说话,有的话才提取特征、跑模型。这样做的好处是省电——没声音时模型不用跑。

我个人习惯在 VAD 和特征提取之间加一个「预筛选」模块,用简单的能量阈值先过滤掉明显不是唤醒词的片段。这个小技巧能减少模型推理次数,对功耗敏感的设备特别有用。

1.6 小结

这一章咱们把唤醒词模型的基本概念、应用场景、技术挑战和评价指标都过了一遍。说白了,唤醒词模型就是「在低功耗下,从连续语音流中准确检测出特定关键词」的任务。它不像大模型那么炫酷,但却是语音交互的第一道门——门没守好,后面再好的功能也白搭。

接下来的课程,我会带你一步步深入:从数据准备、特征工程,到模型结构设计、训练技巧,再到部署优化和精度调优。每个环节我都会把实际项目中踩过的坑、总结的经验分享给你。