从麦克风获得音频数据,通过模型分析语音内容,将识别结果文本通过主题发布。
语音识别分为在线识别和离线识别。
| 方案 | 类型 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| Google/Azure等云服务 | 在线 | 准确率最高,语言支持最广 | 需要网络,付费使用 | 服务机器人等精度要求高的场景 |
| Vosk | 离线 | 多语言支持较好,集成简单 | 精度略低,消耗本地算力 | 无网络环境、嵌入式设备 |
| Whisper | 离线 | 精度较高,支持语言多 | 算力要求较高 | 对精度要求极高的离线应用,算力充足的机器人 |
| PocketSphinx | 离线 | 极度轻量,完全离线 | 精度低,多语言支持差 | 教学演示、简单的关键字唤醒 |
内置节点 speech_recognition_model 支持不同精度和语言的模型,根据实际情况选择使用。
该节点默认绑定可以直接通过平台节点管理菜单启动。
| 参数名 | 描述 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
| model_path | 模型 | String | vosk-model-small-cn-0.22 | 模型文件路径。可使用相对文件路径,在src/model/下建立与节点同名文件夹,将模型放入该文件夹,可直接使用该文件名。 |
| sample_rate | 采样率 | int | 16000 | 音频采用频率 |
| wake_words | 唤醒词 | String | 设为空不启用唤醒词。如果设置只有监听到唤醒词,才能发布识别结果,配合wake_timeout使用。 | |
| wake_timeout | 唤醒超时 | int | 60 | 单位秒(s),唤醒词超时时间,超时后不再发布语音识别结果。 |