老平台产品开发流程指引¶
如果您使用的是老版本语音AI平台,请查看下列产品开发流程指引。
入门篇¶
1、初识语音¶
如果您是第一次接触智能语音产品,可以先了解下 ☞语音识别原理;
如果您已经了解了语音知识,接下来您可以登录语音AI平台,查看 ☞启英泰伦demo演示视频,让您对启英泰伦的语音芯片有所了解;
如果您对这些都有所了解,请直接查阅 ☞语音AI平台账号如何获取,在这个平台,您可以获得更多的资料以及进行产品的开发,推荐您申请注册平台账号并使用,目前该平台对用户免费开放。
2、获取开发板套件¶
对于新用户,推荐您直接选取我们的开发板套件进行开发,我们为您提供了配套的使用说明,软件SDK,固件及各类工具,您可以更容易上手进行开发。我司的开发板套件和模块相关联,如果您还没有模块相关联的开发板套件,或者还不知道选用哪种模块及开发板套件,请您阅览下列内容: ☞硬件选型指南,选好后可以按 ☞样品和批量采购 中的说明购买该模块及开发板套件。
如果您已拥有了开发板套件,但还不知道如何体验开发板套件,请查看下面的初体验识别交互章节的内容,来亲自体验语音的魅力。
3、初体验识别交互¶
准备好您的开发板,接上电源,听见欢迎播报的时候,您就可以开始您的语音交互之旅了。
如果您体验完后,意犹未尽想制作一个自己的demo固件,那么请查阅下述进阶篇的内容。
进阶篇¶
以采用我司CI110系列芯片开发为例,首先,您需要获取到 ☞SDK,如果您还没有自己的语言模型,那么您需要获取到 ☞语言模型;如果您还没有自己的播报音,那么您可以了解 ☞语音合成功能来定制您的播报音;最后再把播报音还有语言模型进行 ☞固件合成以及固件烧录,烧录完成后,您就可以体验您的第一个demo了。
1、SDK获取¶
1.1 SDK类型¶
为了应对不同的应用场景,同时简化SDK的配置和使用复杂度,目前SDK提供3个版本。分别是:
-
纯离线SDK:CI110X_SDK_ASR_Offline
-
算法SDK:CI110X_SDK_ALG_Application
-
离在线SDK:CI110X_SDK_Combine_Cloud.
1.2 SDK获取流程¶
第一步:登录平台账号;
第二步:如下图所示,选择左侧菜单栏的“开发资料”,进入开发资料主界面;
第三步:如下图所示,选择“软件和固件(SDK开发包,标准Demo固件等)”;
第四步:选择您需要下载的SDK版本,如下图所示(此图以“CI110X_SDK_ASR_Offline_V1.3.5”为例);
第五步:如下图所示,点击”CI110X_SDK_ASR_Offline_V1.3.5.zip”进行下载操作;
第六步:如下图所示,等待加载完成后,进行文件的另存;
请注意:加载的过程当中请勿退出或者刷新界面,否则制作进度将会终止!
第七步:如下图所示,选择指定文件夹存放SDK压缩包;
1.3 SDK使用方法¶
如果还不清楚SDK如何使用,请查阅 ☞软件开发下的内容,如在使用过程中有什么疑惑,也可以使用平台的“在线工单”功能,我司会有专门的工作人员为用户解答疑惑。
2、语言模型¶
2.1 概述¶
该功能模块为个人用户以及企业用户共有,用户可以根据自己的需求,在对应的样例表格中填写对应词条,平台会在线生成语言模型,完成后放入SDK开发包中编译生成固件。
用户可以在进入“语言模型”模块后,点击浏览器上方的“语言模型”进入该模块,如下图所示:
2.2 列表视图¶
点击进入语言模型界面后,首先进入语言模型功能模块的列表视图,在这里将会展示用户自己的语言模型记录。每条记录包含了客户名称、作者、创建日期以及输入的芯片型号等参数,如下图所示,用户能够在此处查询自己的语言模型制作记录。
2.3 语言模型主界面入口¶
请用户参考如下流程进行操作(注意下方数字标识对应下图中的数字标识),便可进入语言模型制作的主界面:
- ①左侧菜单栏中选择语言模型
- ②选中语言模型
- ③点击创建,进入语言模型制作主界面
2.4 语言模型制作¶
- ①项目所属客户名称:填写该语言模型对应的客户名称(请正确填写,后面如若需要查找时,方便搜索);
- ②芯片型号:选择对应的芯片型号(如对芯片型号不了解,可浏览 ☞硬件选型指南);
- ③产品类型:选择语言模型用于的产品,目前有大于100种产品类型,用户可以点击该下拉列表中的“搜索更多”按钮找到符合该语言模型的产品,如果列表中没有,可以选择“其他”;
- ④语言类型:选择语言模型对应的语言,目前有中文、英文、中混英、日文供用户选择;
- ⑤声学模型类型:在选择了芯片型号和语言类型后,该下拉列表会自动出现对应的可供选择的声学模型,用户可以根据自己的需求进行选择;
- ⑥下载样例:提供了命令词制作文件的模板,根据用户的语言类型选择,会自动生成对应语言样例的下载链接;
- ⑦上传命令词制作文件:用户可以按要求的格式将希望生成语言模型的命令词填入一个文件中,按此按钮上传到平台中,平台使用该文件制作对应的语言模型;
- ⑧注意事项:如若生成文件失败,可以查看注意事项里的内容,会帮助您快速找到问题所在;
- ⑨保存or丢弃:确认无误后,选择保存,进行文件生成。
2.5 上传命令词制作文件¶
上传的命令词制作文件格式模板可以通过创建表单界面中的“下载样例”获取。目前在语言模型功能模块中支持上传命令词制作和固件制作文件(固件制作文件请详见“语音固件”章节中相应描述)。用户可以按照该模板的格式,填写需要的命令词,注明其类型及其他功能,保存后上传。
中文样例如下图:
英文样例如下图:
日文样例如下图:
2.6 命令词规范¶
中文命令词
- 一般为4-6个字,4个字最佳,过短容误识高,过长不便用户呼叫和记忆;
- 命令词中相邻汉字的声韵母区分度越大越好;
- 符合用户的语言习惯,尽量采用常用说法,内容具体直接;
- 应避免使用日常用语,如:“吃饭啦”;
- 生僻字和零声母字应尽量避免,如“语音识别”中“语音”两个字均为零声母字;
- 命令词中的字最好不要有语气词,如“啊”、“呢”等;
- 应避免使用叠词,如:“你好你好”;
- 中文命令词中只能由汉字组成,不允许有空格,逗号等其他字符;
- 命令词中的数字需要以汉字表示,如“调高一度”;
- 若您还未确定命令词,建议您从文档中心的“命令词推荐”中选择。
英文命令词
- 建议由2-4个单词(4-6个音节)组成,过短容易出现高误识,过长不便用户记忆;
- 命令词间音节区分度越大越好;
- 符合用户的语言习惯,尽量采用常用说法,内容具体直接;
- 应避免使用日常用语,如:“HI、HELLO”;
- 避免使用相似音节,词的发音清晰响度要大,如避免同时使用TURN-ON和TURN-OFF;
- 应避免使用叠词,如:“HELLO-HELLO”。
日文命令词
- 一条日语命令词建议由4-6个音节的日文组成,过短容易出现高误识,过长不便用户呼叫和记忆;
- 命令词间音节区分度越大越好;
- 符合用户的语言习惯,尽量采用常用说法,内容具体直接;
- 应避免使用日常用语,如:“はい、おはよ”;
- 避免使用相似音节,词的发音清晰响度要大,如;下げて(sa ge te)、上げて(a ge te);
- 应避免使用叠词,如:“ラボ-ラボ”。
其他注意事项
- 中英日文命令词上传附件及格式参考样例。
- 为了保证唤醒率,降低误唤醒,一个模型仅允许一个唤醒词。
2.7 表单的提交¶
用户在制作语言模型时,需先新建表单,填写好表单中对应的内容,如下图所示:
填写完成后,点击“上传您的文件”,上传已经按照规范做好的命令词制作文件。
上传完成后,点击左上角的“保存”按键;
等待文件被平台加载;
请注意:加载的过程当中请勿退出或者刷新界面,否则制作进度将会终止!
2.8 语言模型下载¶
文件加载完成后,请点击“下载声学模型”和“下载语言模型”按钮,下载对应的声学模型和语言模型,放入SDK开发包中使用。
2.9 模型替换¶
9.1 语言模型压缩包内各文件夹说明
CmdWordStructure:该文件夹存放的内容为{cmd_info}表格,为用户词条置信度相关参数配置文件;
GfstCmd:该文件夹存放的内容为平台生成的命令词模型文件;
GfstWake:该文件夹存放的内容为平台生成的唤醒词模型文件;
9.2 SDK内文件替换
文件夹位置:CI110X_SDK_ASR_Offline_V1.x.x\sample\internal\sample_110x\firmware
下图为firmware文件夹的内容
用户需要将GfstCmd以及GfstWake这两个文件夹里的[x]asr_zn_SExxx_CI1103_normal.dat文件替换firmware内的asr文件夹里的内容。
同时用户将{cmd_info}配置文件放入user_file\cmd_info内并替换原先的内容;
将声学模型里的内容放到dnn文件夹内替换SDK原有的内容,即可使用。
3、语音合成¶
3.1 概述¶
该功能模块用于在线制作音频文件,可以用来做播报音。
用户可以点击左侧的菜单中的“播报音合成”进入该模块,如下图所示:
3.2 播报音合成主界面入口¶
请用户参考如下流程进行操作(注意下方数字标识对应下图中的数字标识),便可进入定制SDK的主界面:
- ①选择菜单栏左侧的“播报音合成”按键
- ②点击创建,即可进入主界面。
3.3 播报音合成界面说明¶
- ①语音合成项目名称:用户填写对应的项目名称;
- ②语言类型:目前提供中文以及英文播报音制作;
- ③人声分类:目前提供成年男声,成年女声,男童声,女童声这四种人声制作;
- ④语速:有20个等级,默认等级为10,等级越高语速越快;
- ⑤合成人声:选择完成人声分类后,选择对应的人声;
- ⑥下载样例:选择语言类型后,提供制作表格样例的下载链接;
- ⑦音量:有20个等级,默认等级为10,等级越高音量越大;
- ⑧语音合成文件上传:用户可以按要求的格式将希望生成播报音的词条填入一个文件中,按此按钮上传到平台中,平台使用该文件制作对应的播报音;
- ⑨试听样音:用户可以根据自己的合成人声进行样音试听;
- ⑩填写说明:用户可以及时查看相应的说明;
- ⑪保存or丢弃:确认无误后,选择保存,进行固件生成。
填写说明
- 该功能窗口可将文本批量转换成SDK中需要的播报语音。
- 根据需求选择相应的参数,点击试听按钮试听。
- 标注“推荐“字样的为推荐发音人。
- 语速:0最快-20最慢,推荐值10。
- 音量:0最小-10最大,推荐值10。
注意
- 上传的EXCEL中,第一列为音频序号,第二列为音频名,第三列为待合成文本。
- 音频名不宜过长且不能包含空格,待合成文本不宜超过四十字。
- 现仅支持上传EXCEL文件,请在“样例中”下载EXCEL模板。
3.4 上传播报音合成样例文件¶
上传的播报音样例文件格式模板可以通过创建表单界面中的“下载样例”获取。用户可以按照该模板的格式,填写需要的播报语句,以及其内容,保存后上传。
中文的样例如下图所示:
英文的样例如下图所示:
3.5 表单的提交¶
用户在合成播报音时,需先新建表单,填写好表单中对应的内容,如下图所示:
填写完成后,点击“上传你的文件”,上传已经按照规范做好的excel文件。
上传完成后,点击左上角的“保存”按键;
等待文件被平台加载;
请注意:加载的过程当中请勿退出或者刷新界面,否则制作进度将会终止!
3.6 播报音下载¶
播报音合成成功后,选择“下载语音合成文件”,便可得到生成的播报音。
3.7 播报音替换¶
文件夹位置:CI110X_SDK_ASR_Offline_V1.x.x\sample\internal\sample_110x\firmware\vocie
用户将新生成的播报音文件放入上述指定的目录中,替换掉里面的音频文件,并对{cmd_info}表格内的播报音选项进行对应修改,即可使用。
4、固件合成及烧录¶
4.1 前期准备¶
用户要烧录模块前,需要准备一下物品:
-
开发板套件
-
待烧录的模块
-
USB转串口工具(若您还没有串口工具,可选择下述 ☞购买链接进行串口工具获取)
-
软件SDK
-
杜邦线若干
4.2 开发板接线¶
以下图的CI-B02MB开发板套件为例,在烧录钱需要先将USB转串口的电源(5V)、地(GND)、串口(TXD、RXD)收发引脚分别和模块对应的引脚连接起来,注意USB转串口的RXD和TXD分别对应模块的UART0_TX和UART0_RX,连接方式如下图所示,接着短接模块的PG_EN和旁边的引脚(模块的背面有相关的丝印,可根据丝印提示查找相关的位置,采用启英泰伦标准底板烧录连接UART0口的排针)。
注意:如果您手上的开发板套件型号不是CI-B02MB,请查阅 ☞硬件选型指南下的“开发板套件说明”,找到您所使用的开发板套件的型号。
4.3 固件合成¶
第一步:打开“合成分区bin文件.bat”;
第二步:如下图所示,合并分区时会提示选择音频格式,新手用户请选择“adpcm”,选择完成后,按回车键,待加载完成后,该界面会自动关闭;
第三步:打开“打包升级.bat”;
第四步:选择您购买的开发板对应的芯片型号(此操作为第一次使用出现,后续使用请直接进行第五步);
第五步:确认好芯片型号后,点击“固件打包”按钮,进入升级界面;
第六步:固件升级信息填写:
-
在版本信息区填写软硬件相关信息。
-
选择或填写各分区bin文件路径。
-
点击“刷新地址”,点击“打包固件”。
-
如果弹窗提示地址冲突,调整各分区大小,重新执行上一步。
- 弹窗提示“固件已生成”表示打包成功。如下图所示
4.4 固件烧录¶
第一步:打开“打包升级.bat”;
第二步:选择您购买的开发板对应的芯片型号(此操作为第一次使用出现,后续使用请直接进行第三步);
第三步:确认好芯片型号后,点击“固件升级”按钮,进入升级界面;
第四步:固件升级
-
选择或填写固件路径。
-
勾选待升级的设备所连接的串口。
-
其他选择:强制更新所有分区,鉴权文件,加密。
-
待升级模块切换到升级模式(短接PG、EN两个引脚)。
-
重启待升级设备,开始升级。
-
等待升级完成,如果顺利的话,升级成功后,设备会自动引导进固件代码,如果有上电播报音,能听到上电播报。
5、实战演练¶
本文档以三色灯demo作为示例,为新用户讲解制作第一个语音产品demo的方法;
本文档适用于购买了CI-B02GS01S、CI-B02GS01S、CI-B03CS01S、CI-B02CS01S这四款芯片以及配套底板的用户学习使用;
若您还没有样品,请点击 ☞样品购买,购买您的开发板;
5.1 硬件接线¶
用户拿到开发板后,三色led灯亮灭需要将PWM3,PWM4,PWM5这三个引脚与它们旁边的led引脚短接,如下图所示:
开发板默认使用串口一升级,用户使用时,请连接TX0与RX0;
供电方式默认为5V供电,用户可以选择使用USB供电,也可选择用串口工具的5V供电;
5.2 模型制作¶
模型制作根据 ☞语言模型 内容进行修改,定制用户demo的命令词;
5.3 语音合成¶
语音合成根据 ☞语音合成 内容进行修改,定制用户demo的播报音
5.4 代码修改¶
在SDK内,用户实现三色灯demo需要修改如下代码,SDK中所有的应用可以通过IAR IDE开发软件编译以及使用,版本为8.30.1,用户可以自行联系IAR公司或其经销商采购该软件并使用。
代码修改完成后,用户需要对代码进行编译操作;
三色灯管脚配置宏:
路径: ..\components\led\color_light_control.c
#define COLOR_LIGHT_R_PWM_PIN_NAME PWM5_PAD
#define COLOR_LIGHT_R_PWM_PIN_PORT GPIO2
#define COLOR_LIGHT_R_PWM_PIN_BASE HAL_GPIO3_BASE
#define COLOR_LIGHT_R_PWM_PIN_NUMBER gpio_pin_4
#define COLOR_LIGHT_R_PWM_FUNCTION SECOND_FUNCTION
#define COLOR_LIGHT_R_PWM_NAME PWM5
#define COLOR_LIGHT_G_PWM_PIN_NAME PWM4_PAD
#define COLOR_LIGHT_G_PWM_PIN_PORT GPIO2
#define COLOR_LIGHT_G_PWM_PIN_BASE HAL_GPIO3_BASE
#define COLOR_LIGHT_G_PWM_PIN_NUMBER gpio_pin_3
#define COLOR_LIGHT_G_PWM_FUNCTION SECOND_FUNCTION
#define COLOR_LIGHT_G_PWM_NAME PWM4
#define COLOR_LIGHT_B_PWM_PIN_NAME PWM3_PAD
#define COLOR_LIGHT_B_PWM_PIN_PORT GPIO2
#define COLOR_LIGHT_B_PWM_PIN_BASE HAL_GPIO3_BASE
#define COLOR_LIGHT_B_PWM_PIN_NUMBER gpio_pin_2
#define COLOR_LIGHT_B_PWM_FUNCTION SECOND_FUNCTION
#define COLOR_LIGHT_B_PWM_NAME PWM3
三色灯初始化
路径: ..\sample\internal\sample_1102\src\user_msg_deal.c
#include "color_light_control.h"
#define COLOR_LIGHT_OFF 0,0,0
#define COLOR_LIGHT_ON 1.0,1.0,1.0
#define NVDATA_ID_LIGHT 0x50000005 /*'LIGHT INFO'*/
#define LIGHT_BRIGHTNESS_MAX 1.0
#define LIGHT_BRIGHTNESS_MIN 0.1
#define LIGHT_BRIGHTNESS_MID 0.6
#define LIGHT_BRIGHTNESS_STEP 0.1
#define LIGHT_BRIGHTNESS_DEFAULT 0.6
color_light_info_t light_info; /* 三色灯状态信息 */
xTimerHandle light_timer = NULL; /* 三色灯定时器 */
/**
* @三色灯初始化
*
*/
void light_init()
{
color_light_init();
color_light_control(COLOR_LIGHT_OFF);
color_light_set_level(0.0);
light_info.v = LIGHT_BRIGHTNESS_DEFAULT;
light_info.s = 1;
}
路径: ..\sample\internal\sample_1102\src\user_msg_deal.c
/**
* @brief 用户初始化
*
*/
void userapp_initial(void)
{
/*三色灯初始化*/
light_init();
#if CPU_RATE_PRINT
init_timer3_getresource();
#endif
#if MSG_COM_USE_UART_EN
vmup_communicate_init();
#endif
#if MSG_USE_I2C_EN
i2c_communicate_init();
#endif
#if IIS1_ENABLE == 0
//IIS1引脚配置为gpio
Scu_SetDeviceGate(HAL_GPIO3_BASE,ENABLE);
Scu_SetIOReuse(I2S1_LRCLK_PAD, FIRST_FUNCTION);
Scu_SetIOReuse(I2S1_SDO_PAD, FIRST_FUNCTION);
Scu_SetIOReuse(I2S1_SCLK_PAD, FIRST_FUNCTION);
#endif
}
三色灯应用任务处理(下述代码,为通过命令词ID控制三色灯的函数代码,用户需要修改对应的命令词ID(cmd_id))
路径: ..\sample\internal\sample_1102\src\user_msg_deal.c
uint32_t deal_asr_msg_by_cmd_id(sys_msg_asr_data_t *asr_msg, cmd_handle_t cmd_handle, uint16_t cmd_id)
{
uint32_t ret = 1;
int select_index = -1;
switch(cmd_id)
{
case 2://“红色模式”
{
light_info.h = 0;
color_light_set_color(light_info.h,light_info.s);
break;
}
case 3://“绿色模式”
{
light_info.h = 120;
color_light_set_color(light_info.h,light_info.s);
break;
}
case 4://“蓝色模式”
{
light_info.h = 240;
color_light_set_color(light_info.h,light_info.s);
break;
}
case 5://"关闭灯光"
{
color_light_control(COLOR_LIGHT_OFF);
break;
}
case 6://"打开灯光"
{
color_light_control(COLOR_LIGHT_ON);
break;
}
default:
ret = 0;
break;
}
if (ret && select_index >= -1)
{
#if PLAY_OTHER_CMD_EN
pause_voice_in();
prompt_play_by_cmd_handle(cmd_handle, select_index, default_play_done_callback,true);
#endif
}
return ret;
}
5.5 固件打包¶
第一步:打开“合成分区bin文件.bat”。
第二步:如下图所示,合并分区时会提示选择音频格式,新手用户请选择“adpcm”,选择完成后,按回车键,待加载完成后,该界面会自动关闭。
第三步:打开“打包升级.bat”。
第四步:选择您购买的开发板对应的芯片型号(此操作为第一次使用出现,后续使用请直接进行第五步)。
第五步:确认好芯片型号后,点击“固件打包”按钮,进入升级界面。
第六步:固件升级信息填写:
-
在版本信息区填写软硬件相关信息。
-
选择或填写各分区bin文件路径。
-
点击“刷新地址”,点击“打包固件”。
-
如果弹窗提示地址冲突,调整各分区大小,重新执行上一步。
- 弹窗提示“固件已生成”表示打包成功。如下图所示:
5.6 固件烧录¶
第一步:打开“打包升级.bat”。
第二步:选择您购买的开发板对应的芯片型号(此操作为第一次使用出现,后续使用请直接进行第三步)。
第三步:确认好芯片型号后,点击“固件升级”按钮,进入升级界面。
第四步:固件升级
-
选择或填写固件路径。
-
勾选待升级的设备所连接的串口。
-
其他选择:强制更新所有分区,鉴权文件,加密。
-
待升级模块切换到升级模式(短接PG、EN两个引脚)。
-
重启待升级设备,开始升级。
-
等待升级完成,如果顺利的话,升级成功后,设备会自动引导进固件代码,如果有上电播报音话,能听到上电播报。