2026 在线训练 ONNX 关键词识别模型:一个模型识别多个语音命令
KWS(Keyword Spotting)用于识别少量预先定义的固定语音命令。如果应用只需要“开始、停止、下一页、取消”之类的操作,可以使用紧凑的离线模型,不必持续运行完整语音转文字系统。
与唤醒词的区别:唤醒词通常只负责激活后续系统;多关键词模型可以把多个短语直接映射为应用动作。
为什么把多个关键词放进一个模型?
每个命令运行一个独立模型,会重复特征提取,也增加模型管理和阈值配置工作。多关键词模型共享一次音频特征计算,同时输出多个目标词的结果,适合智能家居、无障碍工具、机器人、展台、游戏以及免手操作的 App。
一个命令词集合示例
开始记录
停止记录
下一页
上一页
取消操作同一组命令之间应该尽量保持发音差异。不要轻易同时使用一个短词和包含该短词的长短语,否则需要重点验证二者是否混淆。
在线训练步骤
- 登录听词,选择目标语言。
- 选择多关键词模型。
- 依次添加两个或更多命令,确认文字和预期发音。
- 特殊发音可选择加入真人录音。
- 提交任务,等待语音生成、数据增强、训练和模型导出。
- 逐个测试命令,同时播放普通对话检查误触发,然后下载模型包。
在应用中映射语音动作
推理回调返回检测到的关键词标签,可以用一个简单的动作表连接业务功能:
ACTIONS = {
"开始记录": start_recording,
"停止记录": stop_recording,
"下一页": next_page,
"上一页": previous_page,
"取消操作": cancel_action,
}
def on_detected(word, probability, info):
action = ACTIONS.get(word)
if action:
action()桌面和移动端可以使用 ONNX Runtime,浏览器可以使用 ONNX Runtime Web,嵌入式设备使用兼容的轻量运行时。整个过程不生成完整文字转录,实时音频也不需要离开设备。
KWS、唤醒词还是 ASR?
| 需求 | 建议方案 |
|---|---|
| 识别几个固定语音命令 | 多关键词 KWS |
| 常驻监听一个激活短语 | 单唤醒词模型 |
| 自由说话、听写和对话 | ASR |
| 先唤醒,再理解复杂请求 | 唤醒词 + ASR |
模型上线前怎么测试?
使用未参与训练的说话人和最终麦克风逐个测试命令,同时播放普通对话、音乐和相似发音。阈值需要同时平衡漏识别和误触发,只追求召回率并不适合直接控制设备。
隐私边界:模型生成过程在线完成;下载 ONNX/TFLite 后,实际关键词检测在本地运行,不需要每次推理都连接训练服务。
在线训练 ONNX 关键词模型