1、简单易用,可快速上手
2、流畅支持300个器件或1000个焊盘以下的设计规模
3、支持简单的电路仿真
4、面向学生、老师、创客
1、全新的交互和界面
2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计
3、更严谨的设计约束,更规范的流程
4、面向企业、更专业的用户
标准版 #第六届立创电赛#智能语音小黄人
简介:使用启英泰伦离线语音模块制作的一个智能语音小黄人。配合一个MP3-TF-16P模块实现语音互动,能够播放音乐、故事,以及模仿警车、救护车、消防车。
开源协议: GPL 3.0
使用启英泰伦离线语音模块制作的一个智能语音小黄人。配合一个MP3-TF-16P模块实现播放离线音频资源,例如儿童音乐和童话故事,还能模仿消防车、警车、救护车,还有彩灯和小夜灯功能。
本项目示例语音内容:
1. 你好、晚安
2. 小黄人魔性笑声
3. 模仿消防车、警车、救护车
4. 儿童诗歌朗诵
5. 成语故事
6. 童话故事
7. 儿歌
8. 童声歌曲
9. 播放特定歌曲
其他功能:
RGB彩灯,小夜灯,眼部运动,播放音频眼睛LED律动
原创首次公开。
GPL3.0
离线语音识别使用启英泰伦的CI-C22GS02S模块,为了实现TF卡离线资源的播放,配合使用了型号为MP3-TF-16P的MP3模块,由语音模块通过串口1来发送命令进行控制。。
本项目经过了4个版本的迭代:
这个版本使用了两个喇叭,一个用于语音模块响应词的播放,一个用于MP3模块资源的播放。MP3模块喇叭输出设计了一个倍压电路,用于音频LED律动。但是因为串联了LED而且电压不足的原因,安装到外壳内部之后效果几乎看不到。
离线资源均包括播报音的音频文件均放置在MP3模块的TF卡上,相同类型的音频资源放在同一个文件夹下,语音模块通过串口命令控制MP3模块播放指定文件。
1. 到启英泰伦AI平台注册账号。
2. 登录平台账号
3.如下图所示,选择左侧菜单栏的“开发资料”,进入开发资料主界面;
4. 第三步:如下图所示,选择“软件和固件(SDK开发包,标准Demo固件等)”;
5. 选择您需要下载的SDK版本,如下图所示(此图以“CI112X_SDK_V1.2.9”为例);
6.如下图所示,点击”CI112X_SDK_V1.2.9.zip”进行下载操作;
7. 如下图所示,等待加载完成后,进行文件的另存;
请注意:加载的过程当中请勿退出或者刷新界面,否则制作进度将会终止!
8. 选择指定文件夹存放SDK压缩包;
获取IDE
官方已经配置好了一个绿色版的Eclipse,在“开发资料”-“相关工具及手册”页面,获取百度网盘下载地址。
软件开发
将下载的Eclipse IDE 和 SDK 分别解压(注意必须是英文文件夹),然后使用Eclipse导入SDK项目,即可开始开发。
关键是修改user_msg_deal.c文件,根据cmd_id执行函数。cmd_id就是“语言模型”中“命令词列表”前面的序号,其中cmd_id从2开始即为命令词(cmd_id=1是唤醒词)。
语音模块使用的是freeRTOS,编程语言是C语言。
核心业务逻辑代码如下所示:
play_chengyu()这个函数我做了很多封装,但是实质是循环播放一个文件夹(文件夹参数dir是数字形式的文件夹名称,我把相同类型的文件放在数字文件夹里面,比如01,02,03,04,这是MP3模块对文件访问的要求)。
#define DIR_CYCLING_CMD 0x17
mp3_send_cmd(DIR_CYCLING_CMD, 0x00, dir);
从串口发送命令的函数如下:
void mp3_send_cmd (uint8_t cmd, uint8_t high_arg, uint8_t low_arg) {
uint8_t i;
uint16_t checksum;
mp3_cmd_buf[3] = cmd;
mp3_cmd_buf[5] = high_arg;
mp3_cmd_buf[6] = low_arg;
checksum = mp3_checksum();
mp3_cmd_buf[7] = (uint8_t) ((checksum >> 8) & 0xFF);
mp3_cmd_buf[8] = (uint8_t) (checksum & 0xFF);
// Send command to UART1
for (i=0; i<10; i++) {
UartPollingSenddata(UART1,mp3_cmd_buf[i]);
}
其中校验计算部分可以参考MP3模块文档的调试手册。
语音模块SDK开发更多内容请参考启英泰伦AI平台文档。
详细内容可以参考文档中心的新手指南相关部分
首先进入启英泰伦AI平台,左侧菜单栏中选择语言模型,点击创建,进入语言模型制作主界面。
中文样例如下图:
英文样例如下图:
日文样例如下图:
保存后即可下载声学模型和语言模型,声学模型只需要第一次下载然后合并到固件即可。未来如果同一产品的命令词有更新,只需重新建立一个语言模型,然后再次下载并更新语言模型即可,声学模型可以保持不变。
点击左侧的菜单中的“播报音合成”进入该模块,如下图所示:
请用户参考如下流程进行操作(注意下方数字标识对应下图中的数字标识),便可进入定制播报音的主界面:
注意
传的播报音样例文件格式模板可以通过创建表单界面中的“下载样例”获取。用户可以按照该模板的格式,填写需要的播报语句,以及其内容,保存后上传。
中文的样例如下图所示:
英文的样例如下图所示:
用户在合成播报音时,需先新建表单,填写好表单中对应的内容,如下图所示:
填写完成后,点击“上传你的文件”,上传已经按照规范做好的excel文件。
上传完成后,点击左上角的“保存”按键;
等待文件被平台加载;
请注意:加载的过程当中请勿退出或者刷新界面,否则制作进度将会终止!
播报音合成成功后,选择“下载语音合成文件”,便可得到生成的播报音。
1. 打开下载的语言模型文件夹中 CmdWordStructure 目录下配置文件[60000]{cmd_info}.xls
2. 将<0>cmd这个表格中的“播报音1ID”,改为从0开始依次递增。如果你需要开机播放欢迎语,那就把<welcome>一行的播报音ID改为一个与表格上方不重复的数字,本例中改为68。<Inactive>和<beep>播报音ID改为文件名前缀不会使用的一个大数字,比如1000。
3. 将<1>wake表格中的“播报音1ID”的第一行改为0,即唤醒词“小黄人”的对应播报音ID为0,与第一个表格一致。如果你需要开机播放欢迎语,那就把<welcome>一行的播报音ID改为<0>cmd表格中<welcome>一行相同的播报音ID,上面是68,所以这里也是68。<Inactive>和<beep>播报音ID改为文件名前缀不会使用的一个大数字,比如1000。
解压上面合成并下载的播报音压缩文件,里面的文件名前缀应该是对应了上面那个<0>cmd表格中的播报音ID。
如果你在上面设置了欢迎语播报音ID,也可以在上面播报音合成步骤,将它加入播报音合成列表。或者也可以使用一段音乐作为开机欢迎语,关键是要将它的前缀改为<welcome>那一行设置的播报音ID,在上例中我们设置开机欢迎语播报音ID为68,那么开机欢迎语的文件名就应该是"[68]开机欢迎.wav"或者"[68]开机欢迎.mp3"。
注:上述步骤是将播报音合成到固件中。而本项目中使用MP3模块播放所有播报音,所以本项目是把所有播报音放在TF卡上,由操作系统发出命令来控制MP3模块播放指定文件。虽然我使用MP3模块播放播报音,但是固件合成仍然需要对应的播报音(既然实际不使用模块播报,可以使用任意的文件替代,但是不能没有),如果固件内缺少播报音会无法正常运行。播放指定文件夹串口命令,请参考上文代码。
CmdWordStructure:该文件夹存放的内容为{cmd_info}表格,为用户词条置信度相关参数配置文件;
GfstCmd:该文件夹存放的内容为平台生成的命令词模型文件;
GfstWake:该文件夹存放的内容为平台生成的唤醒词模型文件;
SDK语言模型文件夹位置:CI112X_SDK_ASR_Offline_V1.x.x\sample\internal\sample_110x\firmware
用户将下载的语言模型文件夹中 GfstCmd 以及 GfstWake 这两个文件夹里的[0]asr_chinese_SE292_CI1122_normal.dat和[1]asr_chinese_SE292_CI1122_normal.dat文件替换SDK语言模型文件位置内的asr文件夹里的内容。
用户将下载的语言模型文件夹中 CmdWordStructure 目录下配置文件[60000]{cmd_info}.xls,放入SDK语言模型文件夹位置的 user_file\cmd_info 内并替换原先的内容;(文件名必须要"[60000]"开头,可以改为类似"[60000](小黄人{cmd_info}.xls"之类的名称)
SDK声学模型文件夹位置:CI112X_SDK_V1.x.x\CI112X_SDK\sample\internal\sample_1122\firmware\dnn
用户将下载的声学模型里的内容放到SDK声学模型夹位置内,替换SDK原有的内容,即可使用。
文件夹位置:CI112X_SDK_ASR_Offline_V1.x.x\sample\internal\sample_110x\firmware\vocie
用户将新生成的播报音文件放入上述指定的目录中。
在烧录前需要先将USB转串口的电源地(GND)、串口(TXD、RXD)收发引脚分别和模块对应的引脚连接起来,注意USB转串口的RXD和TXD分别对应模块的UART0_TX和UART0_RX。
1. 第一步:打开“合成分区bin文件.bat”;
2. 第二步:如下图所示,合并分区时会提示选择音频格式,新手用户请选择“adpcm”,选择完成后,按回车键,待加载完成后,该界面会自动关闭;
3. 第三步:打开“打包升级.bat”;
4. 第四步:选择您购买的开发板对应的芯片型号(此操作为第一次使用出现,后续使用请直接进行第五步);
5. 第五步:确认好芯片型号后,点击“固件打包”按钮,进入升级界面;
6. 第六步:固件升级信息填写:
在版本信息区填写软硬件相关信息。
选择或填写各分区bin文件路径。
点击“刷新地址”,点击“打包固件”。
如果弹窗提示地址冲突,调整各分区大小,重新执行上一步。
第一步:打开“打包升级.bat”;
第二步:选择您购买的开发板对应的芯片型号(此操作为第一次使用出现,后续使用请直接进行第三步);
第三步:确认好芯片型号后,点击“固件升级”按钮,进入升级界面;
第四步:固件升级
PCB裸板及Logo验证。
焊接好的板子(第四版)
安装后小黄人内外部图片
演示视频请参看B站链接,文件太大无法上传。
https://www.bilibili.com/video/BV1V34y1X7jH/
展开
加载中...
是否需要添加此工程到专辑?