命令词自学习方案开发¶
1 方案介绍¶
1.1 方案背景与目标¶
中国地域广阔,方言种类众多,主要分为七大类(如粤语、闽南语、吴语、湘语、赣语、客家话等),每种方言又细分为多个子方言和口音。由于这些方言在发音、词汇、语法上与普通话存在较大差异,传统的基于普通话训练的语音识别系统难以准确识别,为了解决这一痛点,启英泰伦为BNPU的发明者,采用BNPU的高效AI计算能力,推出了命令词自学习方案。
1.2 应用原理¶
将说话人语音特征通过深度神经网络进一步转化为深度声学特征,学习时,将该特征记录为模板,识别时提取的将深度声学特征与该模板采用DTW技术进行累积距离计算,从而进行识别。
1.3 学习流程¶
本方案中,启英泰伦AI语音芯片CI13XX或CI13LC通过语音指令或者其他主动指令开始进行自学习流程,学习流程如下:

参考视频链接:☞离线语音灯头自学习方案演示(国内版)
2 开发准备工作¶
开发前,请先准备好相关如下硬件,软件,如涉及量产,请从查看☞生产测试及☞联系我们启英泰伦官方获取生产支持:
2.1 开发硬件准备¶
2.1.1 本方案建议使用硬件模块D03GS01J或者F162GS02J进行:


2.1.2 下图是串口烧录工具

备注
开发者可以采用通用的串口工具进行固件烧录和查看日志,或进行点击购买链接
特别注意:为了数据稳定,尽量选择带晶振的串口,推荐选择CH341 的串口调试工具(启英泰伦AI语音uart串口调试工具)

2.2 软件开发准备¶
2.2.1 注册并登录AI开发平台:https://aiplatform.chipintelli.com
2.2.2 获取对应芯片的含有自学习功能的SDK软件开发包:https://aiplatform.chipintelli.com/attachment
CI 13XX算法SDK:CI13XX_SDK_ASR_ALG_Vx.x.x
CI 13LC普通SDK:CI13LC_SDK_ASR_Offline_Vx.x.x(该功能在SDK中的cwsl_sample工程中)
3 方案开发¶
3.1 方案一:语音识别固件及SDK开发¶
3.1.1 登陆启英泰伦语音AI平台,进入该组件。

3.1.2 选择语音识别固件及SDK开发。

3.1.3 新建一个工程,这边以1302芯片型号进行测试(需要选择13LC的自行更改芯片型号)。

3.1.4 创建一个工程,注意做自然说工程是没有自学习。

3.1.5 点击继续,该页面是对固件的参数进行配置,按照自己需求选择。

3.1.6 点击继续,下载附件样例表格,填写词条、播报音、协议。

3.1.7 同时在该页面勾选自学习选项。

3.1.8 根据提示填写自学习的词、播报音等,填写完毕后直接提交生成固件。


3.1.9 下载生成的固件,烧录到demo板,即可体验。
3.2 方案二:SDK+语言模型开发¶
该开发方案需要配合SDK和平台上的语言模型开发组件一起使用
3.2.1 软件准备
以下SDK可以支持命令词自学习功能:
CI 13XX算法SDK:CI13XX_SDK_ASR_ALG_Vx.x.x
CI 13LC普通SDK:CI13LC_SDK_ASR_Offline_Vx.x.x(该功能在SDK中的cwsl_sample工程中)
3.2.2 生成带有自学习命令词的语音模型
①登陆AI平台,选择语音模型开发组件

②新建一个项目,选择对应应用场景,芯片型号(13LC注意选择CI13LC系列)等。

③继续下一步,选择对应的模型,下载附件样例表格,填写对应的词

④表格里面需要填写除了基本命令词外,还需要常规的自学习词条,如下图

⑤填写完成后上传提交即可生语言模型,下载下来替换初始的文件

3.2.3 生成对应的播报音
①登陆AI平台,选择播报音合成组件

②新建一个项目,选好对应的音色,下载表格填写播报音

③填写相关的命令词回复播报和自学习的播报

④填写完成后上传提交即可生成对应的播报音文件,下载下来替换初始的文件。

3.2.4 语音模型文件和播报音移植(以130x为例)
①移植dnn文件

②移植asr文件

③移植表格cmd_info文件

④移植播报音voice

⑤所有文件移植完成,下面是关于cmd_info表格和播报对应关系说明,如图

⑥注意表格修改完成后,还有另一个表格需要同步一下修改的内容,如图表格

3.2.5 软件配置
①130x算法SDK:CI13XX_SDK_ASR_ALG_Vx.x.x,根据下图配置

②13LC普通sdk:直接使用CI13LC_SDK_ASR_Offline_Vx.x.x(该功能在SDK中的cwsl_sample工程中)

3.2.6 软件调试
调试以1302算法sdk:CI13XX_SDK_ASR_ALG_Vx.x.x为例子,同样的13LC调试步骤也是一样的。
①SDK相关自学习的配置在user_config.h里面,如图:

开发者可以根据上图注释,调整一些自学习相关配置,如可以学习唤醒词数量,灵敏度,学习的次数等。
②唤醒词就一个,不用调整,只需要调整对应的命令词即可

③匹配学习流程对应的命令词和播报音

④整个自学习修改完成,把修改的sdk程序编译打包即可烧录demo板体验