多关键词语音识别方案 — 一个模型同时识别10个命令词

2026年7月 · 听词 Voicute

一个设备通常不止需要一个词

大多数语音控制产品需要的不只是一个唤醒词。智能开关需要"开灯""关灯""调亮""调暗"四个指令。智能音箱需要"播放""暂停""下一首""声音大一点"等十个命令。车载助手需要"导航""电话""音乐"等场景切换。

过去做这件事,得训 N 个模型、部署 N 个 ONNX 文件、跑 N 次推理。模型多了,推理延迟叠上去,资源受限的平台上(ESP32、树莓派)直接撑不住。

现在不用了——多关键词语音识别,一个模型搞定全部。

一个模型 vs 一堆模型

10 个独立模型1 个多关键词模型
总参数~250,000~31,000
总体积~1.28 MB167 KB
推理次数10 次1 次
跨词误触发需后处理抑制接近 0%
加新命令词训一个新模型只加一个分类头

参数减少 8 倍,推理快 10 倍。关键在于架构设计。

怎么做到的:共享 Backbone + 独立分类头

核心思路很简单:所有命令词共享同一个特征提取网络(Backbone),每个词只挂一个微型分类头。推理的时候,Backbone 只跑一遍,所有分类头同时出结果。


音频输入 → 共享 Backbone (23K参数) → 特征向量
                          │
          ┌───────────────┼───────────────┐
          ▼               ▼               ▼
      分类头: 播放      分类头: 暂停    ...  分类头: 静音
      (770参数)        (770参数)            (770参数)
          │               │               │
          ▼               ▼               ▼
   [B, 10] — 10个独立概率,1次推理

Backbone 只需要学一次"怎么从 Mel 频谱提取声学特征"。分类头只负责判断自己那个词:"这个特征像不像'播放'?" 每个头才 770 个参数。

你实际上能拿到什么

以 10 命令词模型为例:

指标数值
模型体积167 KB
总参数30,946
关键词数10 个
推理方式1 次前向传播出 10 个结果
负样本准确率96.5%
跨词误触发几乎全部 0%
部署平台Android / Linux / ESP32 / Web

哪些场景适合多关键词

场景命令词举例推荐词数
智能开关开灯/关灯/调亮/调暗/全开/全关4-6 个
智能音箱播放/暂停/下一首/上一首/音量+/-/静音8-10 个
车载助手导航/电话/音乐/回家/去公司5-8 个
老人呼叫器呼叫/喝水/紧急2-3 个
工业设备开始/停止/急停/确认/取消3-5 个

怎么拿到模型

跟单关键词一样简单——在 听词 Voicute 上输入多个命令词,逗号分隔(比如"播放,暂停,下一首,声音大一点"),十来分钟自动出 ONNX 模型。3 词 ¥169,5 词 ¥199,8 词 ¥249,10 词 ¥299。一次付费,不限设备。

模型是标准 ONNX 格式,配合 开源推理引擎 onnx-wakeword 部署到所有平台。更多细节见 自定义唤醒词在线训练指南

免费生成一个多关键词模型 →