2026 在线训练 ONNX 唤醒词模型:一键生成并离线使用
自定义唤醒词是激活语音助手、机器人或应用功能的固定短语。现在不必自己准备语音数据、搭建 GPU 环境和维护训练代码:输入目标词,在线完成 Basic 模型训练,先在控制台用自己的声音评估,再决定是否付费下载 ONNX/TFLite 模型并继续实机验证。
这篇文章的目标:生成一个“你好管家”之类的单唤醒词模型,下载后直接连接本地应用,不把实时麦克风音频发送到推理服务器。
唤醒词模型和 ASR 有什么区别?
唤醒词模型只判断指定短语是否出现,不负责把整句话转成文字。模型检测成功后,可以再启动 ASR、打开对话窗口、开始录音或者执行本地操作。这种两阶段结构适合低资源常驻监听。
在线训练流程
选择容易区分的唤醒词
建议使用三到六个字、发音比较独特、日常对话中不常出现的短语。太短和太常见的词更容易漏检或误触发。
选择语言和模型类型
听词目前支持中文、英文、日语、德语和法语。基础款完全使用合成语音;如果有口音、儿童声音或特殊品牌发音,可以选择真人增强并加入约 5 段录音。
提交训练
平台自动完成多说话人语音生成、声学增强、模型训练和导出。基础单关键词模型通常约 30 分钟完成,实际时间取决于训练队列。
购买前评估 Basic 模型
用自己的麦克风和自然发音测试模型,同时播放普通背景对话观察误触发。这个环节用于帮助购买决策,不代表模型已经完成生产环境优化。
决定是否付费下载
根据在线测试结果决定是否购买模型文件;下载后仍应在最终麦克风、距离和噪声环境中验证,必要时收集特定误触发声音作为自定义负样本进一步优化。
使用 Python 离线检测
git clone https://github.com/voicute/onnx-wakeword.git
cd onnx-wakeword
pip install onnxruntime numpy pyaudiofrom python.wakeword_engine import WakeWordEngine
engine = WakeWordEngine()
engine.load("models/model_info.json", "models/melspectrogram.onnx")
engine.set_L1(True)
engine.start(lambda word, probability, info:
print(f"检测到:{word},概率:{probability:.0%}"))检测回调可以连接语音助手、录音功能、智能家居或自己的业务逻辑。实时推理在设备本地完成,不需要运行时 AccessKey。
支持哪些部署平台?
| 平台 | 运行方式 | 应用场景 |
|---|---|---|
| Python | ONNX Runtime | Linux、Windows、macOS、树莓派 |
| Android | ONNX Runtime Android | App、平板和专用终端 |
| Web | ONNX Runtime Web / WASM | 网页语音控制 |
| ESP32-S3 | 兼容的 TFLite Micro 模型 | 智能开关和嵌入式设备 |
| Home Assistant | Wyoming 服务 | 本地智能家居语音助手 |
需要多个语音命令怎么办?
如果应用不仅需要“你好管家”唤醒,还要直接识别“开灯、关灯、调亮、调暗”,更适合使用多关键词 KWS 模型。参见《2026 在线训练 ONNX 关键词识别模型》。
Basic 模型边界:基础训练使用通用负样本,不同关键词可能对不同声音产生误触发。针对特定声音的自定义负样本训练目前仍在开发中;有需要可通过控制台联系支持。
训练并评估自己的 Basic 模型