【ChipIntelli 系列】4-命令词信息表[60000]{xxxx}.xls 文件详解
0. 背景知识
文件路径:%SDK_PATH%\projects\sample_xxx\firmware\user_file\cmd_info\[60000]{cmd_info}.xlsx
它的作用是可以控制命令词与播报语的匹配、播报语的组合和随机播报的效果。

1. 什么是命令词信息表呢?
如下图所示,麦克风将语音转换为数字信号,送到NN做识别。
NN识别需要两个资源,声学模型和语言模型,NN识别后输出字符串。
然后,在命令词信息表里查找NN输出的字符串(如果查找到,就是有效识别,反之则为误识别,不处理。)
最后,根据索引找到对应的播报语,完成播报。
语音识别的流程及所需资源
2. 尝试去编辑命令词信息表文件吧!
将之前下载得到的(之前进行组件开发的文件)命令词信息表文件:”[60000]{xxxx}.xls”拷贝到路径:%SDK_PATH%\projects\sample_xxx\firmware\user_file\cmd_info\,替换原来的[60000]{xxx}.xls文件,

并按照项目逻辑做相关修改,主要是关联播报音,设置唤醒词,调整识别灵敏度等。

图4-1 命令词信息表文件
注解
- 模型名:用于设置当前这套命令词对应的模型名称,目前就2个:NN ID(声学模型文件ID)、ASR ID(语言模型文件ID)。
- 模型ID:用于设置当前这套命令词对应的模型ID号。填写0及大于0的数字均可,但需与文件前缀[ID]号匹配。例如,[3]asr_xxx_cmd.dat文件标识ID为3,ASR ID的模型ID就填3。
- 命令词:命令词字符串。
- 命令词ID:开发者自定义的命令词ID ,方便快速开发实现逻辑。默认不支持不同命令词使用相同的命令词ID,如果一定要可以修改脚本文件“cmd_info.bat”,cmd_info.exe 命令后添加“- -no-cmd-id-duplicate-check”。
- 命令词语义ID:语义ID,启英泰伦自定义的字符串语义ID,具有唯一性,如果产品考虑家庭组网的话,可以用此ID解决多个设备的命令词冲突问题。
- 置信度:用于调整命令词的识别灵敏度,解决误识别等。
- 唤醒词:用于指定唤醒词。
- 组合词:用于指定组合词,既是唤醒词,又是命令词,少了唤醒一步。
- 期望词:用在某些命令词特别不容易识别时使用。
- 不期望词:用在某些命令词特别容易识别,而不能识别另外一个相似的正确命令词,导致误识别。
- 特殊词计数:用于短的命令词截获具有相同内容的长命令词的情况。比如:“加热”和“加热三分钟”,可能说“加热三分钟”,也会得到“加热”的结果。解决方法是给“加热”命令词设置特殊词计数,在识别到“加热”后,再等待一会,看后续是否有相近命令结果,如果有就丢弃“加热”。也不能设置的太大,否则会明显增大“加热”的响应时间。
- 播报音类型:主要用于多个选择播报时,指定选择的方式。当前支持两种,“随机选择”(调用播报接口时,select_index设置为-1),“自定义选择”(调用播报接口时,select_index设置为要选择的值)。
- 播报音ID:播报音文件ID(也就是第4章中的音频序号),组合播报用‘+’连接(最多支持16个音频组合),如果有多个选择播报,则起到随机效果,每个选择项占一列,最多127列。
![]()
- 模型分组ID:用于多模型切换。SDK demo中默认0为命令词模型,1为唤醒词模型。
扩展:什么是声学模型,什么是语言模型
以一个问题引入——声学模型能识别出具体的字符串吗?
启英泰伦中的声学模型和语言模型
声学模型如下:可见声学模型不是自定义的,而是固定的。(在表格中被称为ASR)

文件格式如下:后缀为 .fefixbinxxxx

语言模型是用户自定义的,在表格中被称为DNN (全称是 Deep Neural Network 深度神经网络)
文件格式如下:后缀为dat




浙公网安备 33010602011771号