← 返回文章目录

ONNX 格式是什么?自定义唤醒词模型可以部署到哪些平台?

ONNX 是一种可移植的模型格式。它可以帮助同一个唤醒词模型进入不同的推理环境,但 ONNX 文件本身不是完整的语音助手,也不等于所有设备都能直接安装。

一、ONNX 到底是什么

ONNX(Open Neural Network Exchange)描述了神经网络的结构、权重、输入和输出。推理运行时加载 ONNX 文件后,才能在 CPU、手机、电脑或浏览器中执行模型。

对于自定义唤醒词,完整链路通常是:

麦克风采集 → 音频预处理 → Mel 特征 → ONNX 模型 → 阈值与防误触 → 业务动作

因此,ONNX 只解决“模型如何保存和推理”,不会自动完成麦克风采集、阈值设置、连续帧确认、冷却时间和设备控制。

二、ONNX 唤醒词和 ASR 有什么区别

项目KWS / 唤醒词ASR / 语音识别
任务判断固定短语是否出现把连续语音转换成文字
典型模型几十 KB 到几百 KB几十 MB 到数百 MB
运行方式常驻监听、低延迟被唤醒后临时启动
适合场景唤醒词、开灯、暂停、下一首自由对话和开放式语音输入

如果产品只需要识别几个固定词,不需要把每句话转成文字,那么 KWS 通常比完整 ASR 更轻量,也更容易在本地运行。

三、哪些平台可以运行 ONNX 唤醒词模型

平台推理方式说明
AndroidONNX Runtime / TFLite适合 App 内本地监听和离线控制。
Linux / Raspberry PiONNX Runtime / Python / C++适合网关、机器人、桌面设备和 Home Assistant 外部服务。
Windows / macOSONNX Runtime适合桌面工具、测试程序和本地自动化。
WebONNX Runtime Web + WASM/WebGL只能在网页或网页应用获得权限后监听。
iPhoneiOS runtime / Core ML 适配可以在自有 App 中开发接入,不能替换 Siri。
Home AssistantWyoming 或外部本地服务只影响你自己的 Home Assistant 语音链路。

四、ESP32 能不能直接运行 ONNX

ESP32-S3 是一个重要例外:通常不是直接运行完整 ONNX Runtime,而是把模型转换、量化为 INT8 TFLite,再使用 TensorFlow Lite Micro 或对应嵌入式 runtime。

因此更准确的说法是:同一个训练结果可以面向 ONNX 和 TFLite 等目标格式导出;ESP32-S3 使用适合微控制器的 INT8 TFLite 版本,而不是直接把桌面端 ONNX 文件复制进去。

五、Amazon Echo、Google Home 和 Siri 能不能改唤醒词

不能把 Voicute 模型直接安装进现有 Amazon Echo、Google Home/Nest 或 Siri,也不能把它们的原厂唤醒词任意替换。

自定义模型需要运行在你控制的 App、电脑、树莓派、ESP32-S3 或自制语音设备中。之后可以由外部网关调用 Home Assistant、SwitchBot、Nature Remo 或其他 API 执行动作。

也就是说,“模型可以跨平台推理”和“可以修改第三方产品固件”是两件不同的事。

六、如何把 ONNX 模型作为 Wake Word 使用

  1. 确定唤醒词或固定命令,并生成 ONNX/TFLite 模型。
  2. 选择目标设备和对应的音频采集方式。
  3. 接入推理 runtime,按照模型要求生成 Mel 特征。
  4. 在回调中加入连续帧确认、阈值、冷却时间和误触发保护。
  5. 识别成功后再启动 ASR,或者直接执行固定动作。

开源 onnx-wakeword 推理引擎提供 Android、Web、Python、桌面和嵌入式方向的示例;最终仍要在目标麦克风、距离和噪声环境中测试召回率与误触发率。

七、从哪里获得自定义模型

如果有算法团队,可以自行准备正负样本、训练 KWS 模型并导出目标格式。如果希望快速验证产品词,也可以直接在 Voicute 输入关键词,训练并下载模型,再配合开源推理引擎部署。

在线生成自定义唤醒词模型 →

查看开源推理引擎 →
ONNX / TFLite · Android · Web · Linux · ESP32-S3 · Home Assistant