自定义唤醒词误唤醒怎么办?从选词、阈值到真人增强
“叫不醒”和“总被误触发”不能只靠反复拖动阈值解决。应先确认音频与模型正确,再区分词本身、说话人覆盖和运行时后处理问题。
先判断是哪一类故障
| 现象 | 优先检查 |
|---|---|
| 所有人都完全叫不醒 | 模型加载、采样率、帧长度、音频是否全零 |
| 部分人叫不醒 | 发音差异、训练覆盖、真人增强 |
| 电视或普通对话触发 | 选词、相似词、阈值、连续帧和能量过滤 |
| 一次发音触发多次 | 冷却时间、突发抑制、回采 |
正确的排查顺序
- 确认音频:16 kHz、16-bit、单声道,音量正常且没有重采样错误。
- 查看原始分数:分别记录安静、普通对话、相似词和目标词,不要一开始就叠加所有过滤器。
- 检查选词:太短、太常见、叠词或与媒体内容重合的短语天然更难控制误报。
- 调整后处理:先连续帧,再阈值和冷却;每次只改一个参数并保存结果。
- 补充真人覆盖:若某些真实发音稳定低分,加入少量目标说话人的录音做增强,而不是无限降低阈值。
为什么降低阈值会越调越坏?
降低阈值可能救回漏唤醒,同时也会让普通对话和底噪越过门槛。好的参数应在同一套测试集中同时比较召回和误触发。目标设备、麦克风增益和环境变化后,需要重新验证。
发布前建立固定回归集
- 每位测试者的多次目标词录音;
- 容易混淆的近音词和日常句子;
- 电视、人声、音乐、安静底噪和设备自身播放;
- 目标距离与不同音量;
- 每次模型或参数变化后跑同一批样本。
实用原则:如果某个词无论如何都需要非常低的阈值才能工作,换一个声学差异更明显的唤醒词,通常比继续堆规则更可靠。
生成或增强自定义唤醒词