语音交互中的 KWS:用多个唤醒词启动 ASR
在语音交互中,KWS 不一定负责理解整句话,它可以作为一个轻量启动层:先识别唤醒词,再打开 ASR 和后续对话。
为什么不让 ASR 一直运行
完整 ASR 常驻运行会带来更多算力、内存、功耗、隐私和云端成本。一个轻量 KWS 模型可以在本地监听短唤醒词,只有检测成功后,产品才把接下来的语音交给 ASR。
Javis、Jarvis 和多个唤醒别名
假设用户可以说“Javis”“Jarvis”“你好助手”中的任意一个来启动语音交互。多关键词 KWS 可以把这些短语放进一个模型,并统一输出 start_assistant 事件:
Javis / Jarvis / 你好助手 → 多关键词 KWS → start_assistant() → 启动 ASR这样用户可以选择更自然、更容易发音或更符合品牌的叫法,而不是只能记住一个固定唤醒词。
两种产品架构
| 架构 | 适合场景 |
|---|---|
| 单唤醒词 KWS → ASR | 品牌希望统一一个官方唤醒词 |
| 多关键词 KWS → ASR | 支持多个别名、语言或家庭成员叫法 |
多关键词启动的注意事项
- 不同唤醒词需要分别测试召回和误触发;
- 相似发音过多可能增加混淆;
- 启动后要设置超时和冷却,避免重复打开 ASR;
- ASR 仍然负责理解开放式内容,KWS 不替代 ASR;
- 多语言产品应按语言和真实口音分别验证。
这种架构把低功耗监听和开放式交互结合起来:KWS 负责“什么时候开始听”,ASR 负责“用户具体说了什么”。
生成多关键词唤醒模型 →View the open-source inference engine and demo models →
ONNX / TFLite · Android · ESP32 · Web · Python · Home Assistant