离线语音唤醒怎么做:自定义唤醒词从训练到端侧部署
离线语音唤醒由“唤醒词模型 + 实时音频管线 + 检测后处理”共同完成。训练出模型只是第一步,能否在目标麦克风和真实环境中稳定工作才是上线标准。
第一步:选择容易区分的唤醒词
避免太短、日常对话高频、叠词或与产品播放内容高度重合的短语。多个唤醒词放在同一模型时,还要避免相似发音。先确定书写、预期读音和语言,再进入训练。
第二步:生成并测试模型
- 选择语言并输入自定义唤醒词。
- 生成合成语音和噪声增强训练数据。
- 训练并导出 ONNX 或 TFLite。
- 在浏览器测试页用真人、不同距离和普通对话验证。
- 效果不足时加入少量目标说话人的真人录音增强。
隐私边界:训练任务在服务端完成;模型下载后的实时检测可以完全在设备本地运行。
第三步:选择端侧运行时
| 平台 | 建议路径 |
|---|---|
| Android | ONNX Runtime + AudioRecord;当前开源 Demo 为 Android 8+ |
| Windows/Linux/macOS | Python + ONNX Runtime + 麦克风采集 |
| 浏览器 | Web Audio + ONNX Runtime Web |
| ESP32-S3 | TFLite Micro;需适配具体音频硬件 |
第四步:不要绕过后处理
原始模型分数不应该直接触发业务。连续多帧确认可以过滤瞬时尖峰,冷却时间避免一次发音重复触发,能量门限和动态基线可以降低安静底噪误报。参数应基于目标设备录音调整,而不是从另一台设备照抄。
上线前的最小验收
- 多位未参与训练的说话人各测试多次;
- 安静、背景音乐、电视人声和相似发音分别测试;
- 近场和预期最远距离测试;
- 记录漏唤醒、误唤醒和重复触发,而不只记录“成功过一次”;
- 确认断网后仍能加载模型并触发。