跳转至

语音识别使用说明


语音识别(Automatic Speech Recognition),一般简称ASR,是将声音转化为文字的过程。本说明适用于所有CI23LC系列芯片的SDK。

SDK中与识别相关的算法文件需要特别注意,具体如下:

  • ASR语音识别解码库文件:该文件在SDK包中路径为 \components\asr\decoder\,以lib文件(*.a)格式存在,其功能在于通过深度学习算法将声音进行识别并输出对应字符串,由启英泰伦进行更新,用户不用修改该文件;

  • 声学模型文件:该文件在SDK包中路径为 \工程名称(如\projects\offline_asr_sample)\firmware\dnn\,以bin文件((*.fefixbin3632))格式存在,它是通过训练产生的二进制文件,由启英泰伦进行更新,用户可以根据不同的应用场景或者不同的语言种类使用启英泰伦提供的对应声学模型文件;

  • 语言模型文件:该文件包含唤醒词和命令词文件,唤醒词用于唤醒设备,命令词用于识别控制,在SDK包中路径为 \工程名称(如\projects\offline_asr_sample)\firmware\asr\,以bin文件(*.dat)格式存在,该文件需由用户通过启英泰伦语音AI平台进行在线生成,使用方法请参考本文档中心 ☞ 《命令词和固件制作指南》

语音识别相关的配置和操作:


1. 生成命令词语言模型文件

在使用SDK中语音识别功能时,需要先根据用户的唤醒词和命令词生成语言模型文件,生成方法请参考本文档中心 ☞ 《命令词和固件制作指南》


2. 配置命令词条的置信度阈值

使用生成的语言模型文件时,SDK会配合解码库文件进行识别,软件中已配置默认的置信度阈值(根据命令词发音长短,“offline_asr_sample”工程推荐阈值范围在35-45之间,“offline_asr_pro_sample”工程推荐阈值范围在35-95之间)。当命令词条的识别分数大等于其阈值时,则认为识别有效,否则拒识。如在实际应用中,发现某些命令词条容易误识别或者难以识别,可以通过调整置信度阈值的方法来优化识别效果。一般的,置信度阈值配置越小识别越灵敏,误识别风险增加;配置越大误识别越低,识别率也越低。

置信度阈值初略调节方法如下:

如命令词“打开空调”,其默认置信度为40,此时发现其误识别较高,故在不损害识别或略微损失识别的情况下,将其置信度阈值调整到42,以降低其误识别;再如“关闭电视”,其默认置信度为40,此时发现其识别较差(不易被识别),故在误识不会明显增加的条件下,将其置信度阈值调整到38,以提高其识别。置信度阈值范围“offline_asr_sample”工程建议在35-45之间进行调整,“offline_asr_pro_sample”工程建议在35-95之间进行调整。

置信度阈值的精准调节:

根据识别和误识别的最大尽收益原则进行调节,以保证识别效果最佳。

置信度阈值调节具体方法如下:

打开SDK包中cmd_info 目录的 [60000]{智能管家}cmd_info.xlsx表格文件,该表格文件的路径如下:\工程名称(如\projects\offline_asr_sample或\projects\offline_asr_pro_sample)\firmware\user_file\cmd_info\。针对需要修改的命令词条,修改表格中置信度阈值列中其对应的置信度阈值数值,修改后保存文件,然后重新打包合成固件后使用。


3. 配置命令词条特殊词计数

如果两命令词之间前半部分字相同(或发音一样)、一个包含另一个且同时出现在命令词集中,则必须对短词配置特殊词计数。计数方法:8+4*命令词相差字数,但特殊词计数最大不超过20。

例如: “上下扫风”和“上下扫风停止” 同时出现在命令词中时,命令词间相差2字,其特殊计数为:8+4*2=16;

再如:“打开空调”和“打开空调扇”同时出现在命令词中,命令词间相差1字,其特殊计数为:8+4*1=12;

上述列出了特殊计数计数的一般规律,实际应用中可根据识别情况进行上下浮动,最大不超过20即可(过大会影响识别的响应时间)。

特殊计数调整方式如下:

打开SDK包中cmd_info 目录的 [60000]{智能管家}cmd_info.xlsx表格文件,该表格文件的路径如下:\工程名称(如\projects\offline_asr_sample)\firmware\user_file\cmd_info\。修改表格中命令词的特殊词计数值,修改后保存文件,然后重新打包合成固件后使用。


4. 选取合适的声学模型

模型选择:

  • 命名规则:语言场景_类型_版本_模型大小_模型编号_备注

  • 例如:中文取暖器通用_pro3_V1_0.5M_V01052

使用注意事项:

  • (1)类型:不同的类型标识不同架构的模型,类型号码越高,同样大小的模型,表现力越好;
  • (2)版本:尽量使用版本最新的模型,如上面描述的V1,V2,。。。
  • (3)模型大小:例如都是pro3,越大的模型,里面的参数越多,识别约精准;
  • (4)模型编号:唯一,沟通交互时,可以用模型编号进行同步,如上面的V01052,可以简称为1052模型
  • (5)备注:技术不断迭代,有些新的模型架构只有新的sdk可以支持,请选择合适的sdk版本使用模型;