标准版
#第六届立创电赛#智能语音小黄人

创建时间:3年前

描述

<div class="document"> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">* 1、项目功能介绍</h3> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">使用启英泰伦离线语音模块制作的一个智能语音小黄人。配合一个MP3-TF-16P模块实现播放离线音频资源,例如儿童音乐和童话故事,还能模仿消防车、警车、救护车,还有彩灯和小夜灯功能。</p> <p>本项目示例语音内容:</p> <p>1. 你好、晚安</p> <p>2. 小黄人魔性笑声</p> <p>3. 模仿消防车、警车、救护车</p> <p>4. 儿童诗歌朗诵</p> <p>5. 成语故事</p> <p>6. 童话故事</p> <p>7. 儿歌</p> <p>8. 童声歌曲</p> <p>9. 播放特定歌曲</p> <p>其他功能:</p> <p>RGB彩灯,小夜灯,眼部运动,播放音频眼睛LED律动</p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">*2、项目属性</h3> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">原创首次公开。</p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">* 3、开源协议</h3> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">GPL3.0</p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">*4、硬件部分</h3> <hr class="horizontal-splitline normal-bold-2"><p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><span style="font-size:16px;">离线语音识别使用启英泰伦的CI-C22GS02S模块,为了实现TF卡离线资源的播放,配合使用了型号为MP3-TF-16P的MP3模块,由语音模块通过串口1来发送命令进行控制。。</span></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><span style="font-size:16px;">本项目经过了4个版本的迭代:</span></p> <ol><li class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">第一版测试了基本功能,但是LED律动功能不正常。</li> </ol><p style="padding-left:40px;">这个版本使用了两个喇叭,一个用于语音模块响应词的播放,一个用于MP3模块资源的播放。MP3模块喇叭输出设计了一个倍压电路,用于音频LED律动。但是因为串联了LED而且电压不足的原因,安装到外壳内部之后效果几乎看不到。</p> <ol><li class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">第二版将LED律动倍压电路电容更改为电解电容,但是仍然效果不好。</li> <li class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">第三版在软件和硬件上都进行了进行了大幅改进:</li> <li style="list-style-type:none;"> <ol style="list-style-type:lower-alpha;"><li> <span style="font-size:14px;">直接使用MP3模块播放响应词,这样可以移除语音模块的喇叭,将原先的2个喇叭减少为1个。响应词播放音质也比使用语音模块播放有了较大提升。由此带来的另外一个好处是如果不变更命令词,而仅仅更新播报词,那么无需重新编译和烧录固件,只需更新MP3模块对应的播报词音频文件即可。</span></li> <li><span style="font-size:14px;">LED律动倍压电路改为4倍压,律动功能可以正常工作了(参见演示视频)。</span></li> <li><span style="font-size:14px;">增加语音命令反馈眼部的物理运动。通过控制一个小型电磁铁来实现。第一次设计有一个小bug,割线+飞线后调试成功。第四版修复了此线路问题。</span></li> <li><span style="font-size:14px;">增加了TP4056锂电池充电电路。</span></li> <li><span style="font-size:14px;">增加了RGB彩色LED灯带,其中三个灯珠放在背面向外发光,其他灯珠在内部发光。RGB彩灯代码使用了官方SDKcolor_light组件的部分代码,但是移除了HSV相关代码,因为加入HSV代码之后引入了math库,会导致固件体积过大而编译报错。</span></li> <li><span style="font-size:14px;">增加警灯、彩灯、小夜灯功能。</span></li> <li><span style="font-size:14px;">增加了一个电源钮子开关。</span></li> <li><span style="font-size:14px;">为了实现以上功能,语音模块所有可用的GPIO都利用上了。包括RX0/TX0/RX1/TX1/MCLK和三路PWM。</span></li> </ol></li> <li>第四版进行了如下升级:<br>  <span style="font-size:18px;"> <span style="font-size:14px;">a. </span></span><span style="font-size:14px;">修复了电磁铁电路的问题。</span><br><span style="font-size:14px;">   b. 调整了RGB LED的插座类型。</span><br><span style="font-size:14px;">   c. 增加了RGB LED的数量。</span><br><span style="font-size:14px;">   d. 小夜灯同时打开RGB灯带和眼部LED。</span><br><span style="font-size:14px;">   e. MP3 BUSY引脚增加一个跳线,烧录的时候需要断开此引脚,否则烧录的时候会干扰串口导致固件下载失败。<br>   f. 晚安自动打开小夜灯。</span></li> <li>为了不再改动第三版的PCB面积,第四版将非常少量的元件贴在了背面。</li> </ol><p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt pap-left-indent-1.6em" style="line-height:1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">*5、软件部分</h3> <hr class="horizontal-splitline normal-bold-2"><p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">离线资源均包括播报音的音频文件均放置在MP3模块的TF卡上,相同类型的音频资源放在同一个文件夹下,语音模块通过串口命令控制MP3模块播放指定文件。</p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><strong><span style="font-size:24px;">-- == 简易开发指南 == --</span></strong></h3> <h2 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><span style="font-size:24px;">获取SDK</span></h2> <p>1. 到<a href="http://platform.chipintelli.com/" target="_blank">启英泰伦AI平台</a>注册账号。</p> <p>2. 登录平台账号<br><img src="//" alt="登录" width="512" height="184"></p> <p>3.<span style="color:#333333;font-size:14px;font-family:'-apple-system', BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;">如下图所示,选择左侧菜单栏的“开发资料”,进入开发资料主界面;</span></p> <p><img class="center" src="//" alt="入口" width="841" height="442"></p> <p> </p> <p>4. 第三步:如下图所示,选择“软件和固件(SDK开发包,标准Demo固件等)”;</p> <p><img class="center" src="//" alt="下载" width="841" height="284"></p> <p>5. 选择您需要下载的SDK版本,如下图所示(此图以“CI112X_SDK_V1.2.9”为例);</p> <p><img src="//image.lceda.cn/pullimage/GGsbITFWXvYiIkuf109IUKG0gv05K8Jeoxy3AFHp.png" alt="GGsbITFWXvYiIkuf109IUKG0gv05K8Jeoxy3AFHp.png" width="840" height="414"></p> <p>6.如下图所示,点击”CI112X_SDK_V1.2.9.zip”进行下载操作;</p> <p><img src="//image.lceda.cn/pullimage/ADq7LRbibaWYpcr2Lg4C2ei9l5qvFCbzBpawaW3g.png" alt="ADq7LRbibaWYpcr2Lg4C2ei9l5qvFCbzBpawaW3g.png" width="840" height="369"></p> <p>7. 如下图所示,等待加载完成后,进行文件的另存;</p> <p><strong>请注意:加载的过程当中请勿退出或者刷新界面,否则制作进度将会终止!</strong></p> <p><img src="//image.lceda.cn/pullimage/cDqAKHwJC5daMmSqWv5v2FoOkY1fuNuAHZEk7orm.png" alt="cDqAKHwJC5daMmSqWv5v2FoOkY1fuNuAHZEk7orm.png" width="841" height="371"></p> <p>8. 选择指定文件夹存放SDK压缩包;</p> <p> </p> <p><strong><span style="font-size:24px;">获取IDE</span></strong></p> <p><span style="font-size:18px;">官方已经配置好了一个绿色版的Eclipse,在“开发资料”-“相关工具及手册”页面,获取百度网盘下载地址。</span></p> <p> </p> <p><span style="font-size:18px;"><img src="//image.lceda.cn/pullimage/vtdmlxA0sRE8M4gwvkFV1168tiAYpbvCTg8fm94g.png" alt="vtdmlxA0sRE8M4gwvkFV1168tiAYpbvCTg8fm94g.png" width="840" height="452"></span></p> <p> </p> <p><strong><span style="font-size:24px;">软件开发</span></strong></p> <p>将下载的Eclipse IDE 和 SDK 分别解压(注意必须是英文文件夹),然后使用Eclipse导入SDK项目,即可开始开发。</p> <p>关键是修改user_msg_deal.c文件,根据cmd_id执行函数。cmd_id就是“语言模型”中“命令词列表”前面的序号,其中cmd_id从2开始即为命令词(cmd_id=1是唤醒词)。</p> <p>语音模块使用的是freeRTOS,编程语言是C语言。</p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">核心业务逻辑代码如下所示:</p> <p><img src="//image.lceda.cn/pullimage/8eI9F7tvp0ZNW6SI6awKYNg0994eGSK8B98dClte.png" alt="8eI9F7tvp0ZNW6SI6awKYNg0994eGSK8B98dClte.png" width="371" height="537"></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">play_chengyu()这个函数我做了很多封装,但是实质是循环播放一个文件夹(文件夹参数dir是数字形式的文件夹名称,我把相同类型的文件放在数字文件夹里面,比如01,02,03,04,这是MP3模块对文件访问的要求)。</p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><code></code></p> <pre><code>#define DIR_CYCLING_CMD 0x17<br>mp3_send_cmd(DIR_CYCLING_CMD, 0x00, dir);</code></pre> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">从串口发送命令的函数如下:</p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><code></code></p> <pre><code>void mp3_send_cmd (uint8_t cmd, uint8_t high_arg, uint8_t low_arg) {<br>uint8_t i;<br>uint16_t checksum;<br>mp3_cmd_buf[3] = cmd;<br>mp3_cmd_buf[5] = high_arg;<br>mp3_cmd_buf[6] = low_arg;<br>checksum = mp3_checksum();<br>mp3_cmd_buf[7] = (uint8_t) ((checksum >> 8) & 0xFF);<br>mp3_cmd_buf[8] = (uint8_t) (checksum & 0xFF);<br>// Send command to UART1<br>for (i=0; i&lt;10; i++) {<br>        UartPollingSenddata(UART1,mp3_cmd_buf[i]);<br>    }</code></pre> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">其中校验计算部分可以参考MP3模块文档的调试手册。</p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">语音模块SDK开发更多内容请参考<a href="https://platform.chipintelli.com/web" target="_blank">启英泰伦AI平台文档</a>。</p> <p> </p> <h4 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><strong><span style="font-size:24px;">创建语言模型</span></strong></h4> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">详细内容可以参考文档中心的<a href="https://platform.chipintelli.com/web#action=235&menu_id=198" target="_blank">新手指南相关部分</a></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">首先进入<a href="https://platform.chipintelli.com/" target="_blank">启英泰伦AI平台</a>,左侧菜单栏中选择语言模型,点击创建,进入语言模型制作主界面。</p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><img src="//image.lceda.cn/pullimage/ul0VgEfHUsx4BgQ1Gl6w3Lmhvos7XhDqNVBh3fS0.png" alt="ul0VgEfHUsx4BgQ1Gl6w3Lmhvos7XhDqNVBh3fS0.png" width="433" height="263"></p> <h2>语言模型制作</h2> <ul><li>①项目名称:填写该语言模型对应的名称(请正确填写,后面如若需要查找时,方便搜索);</li> <li>②芯片型号:选择对应的芯片型号(如对芯片型号不了解,可浏览 ☞<a title="点击查看" href="https://document.chipintelli.com/%E7%A1%AC%E4%BB%B6%E5%BC%80%E5%8F%91/%E7%A1%AC%E4%BB%B6%E9%80%89%E5%9E%8B%E6%8C%87%E5%8D%97/" target="_blank">硬件选型指南</a>);</li> <li>③产品类型:选择语言模型用于的产品,目前有大于100种产品类型,用户可以点击该下拉列表中的“搜索更多”按钮找到符合该语言模型的产品,如果列表中没有,可以选择“其他”;</li> <li>④语言类型:选择语言模型对应的语言,目前有中文、英文、中混英、日文供用户选择;</li> <li>⑤声学模型类型:在选择了芯片型号和语言类型后,该下拉列表会自动出现对应的可供选择的声学模型,用户可以根据自己的需求进行选择;</li> <li>⑥上传命令词制作文件:用户可以按要求的格式将希望生成语言模型的命令词填入一个文件中,按此按钮上传到平台中,平台使用该文件制作对应的语言模型;</li> <li>⑦下载样例:提供了命令词制作文件的模板,根据用户的语言类型选择,会自动生成对应语言样例的下载链接;</li> <li>⑧添加明细行:也可以点击这里,直接编辑命令词列表。</li> <li>⑨保存or丢弃:确认无误后,选择保存,进行文件生成。<br><img src="//image.lceda.cn/pullimage/kOXa0x0DVZBCSHoKXZIZbuJ9cPiYL3IVcPqkUYua.png" alt="kOXa0x0DVZBCSHoKXZIZbuJ9cPiYL3IVcPqkUYua.png" width="747" height="349"><br><img src="//image.lceda.cn/pullimage/ITgnb5vTJ2zcHBlgZjcwAxGdnFx3T6t22ajcHC6L.png" alt="ITgnb5vTJ2zcHBlgZjcwAxGdnFx3T6t22ajcHC6L.png" width="749" height="339"><br>命令词样例如:<br><p>中文样例如下图:</p> <p><img class="center" src="//" alt="中文样例"></p> <p>英文样例如下图:</p> <p><img class="center" src="//" alt="英文样例"></p> <p>日文样例如下图:</p> <p><img class="center" src="//" alt="日文样例" width="445" height="98"></p> 保存后即可下载声学模型和语言模型,声学模型只需要第一次下载然后合并到固件即可。未来如果同一产品的命令词有更新,只需重新建立一个语言模型,然后再次下载并更新语言模型即可,声学模型可以保持不变。</li> </ul><p> </p> <h4 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><strong><span style="font-size:24px;">播报音合成</span></strong></h4> <p>点击左侧的菜单中的“播报音合成”进入该模块,如下图所示:</p> <p><img class="center" src="//" alt="概述"></p> <p>请用户参考如下流程进行操作(注意下方数字标识对应下图中的数字标识),便可进入定制播报音的主界面:</p> <ul><li>①选择菜单栏左侧的“播报音合成”按键</li> <li>②点击创建,即可进入主界面。</li> </ul><p><img class="center" src="//" alt="界面"></p> <h2>播报音合成界面说明</h2> <ul><li>①语音合成项目名称:用户填写对应的项目名称;</li> <li>②语言类型:目前提供中文以及英文播报音制作;</li> <li>③人声分类:目前提供成年男声,成年女声,男童声,女童声这四种人声制作;</li> <li>④语速:有20个等级,默认等级为10,等级越高语速越快;</li> <li>⑤合成人声:选择完成人声分类后,选择对应的人声;</li> <li>⑥下载样例:选择语言类型后,提供制作表格样例的下载链接;</li> <li>⑦音量:有20个等级,默认等级为10,等级越高音量越大;</li> <li>⑧语音合成文件上传:用户可以按要求的格式将希望生成播报音的词条填入一个文件中,按此按钮上传到平台中,平台使用该文件制作对应的播报音;</li> <li>⑨试听样音:用户可以根据自己的合成人声进行样音试听;</li> <li>⑩填写说明:用户可以及时查看相应的说明;</li> <li>⑪保存or丢弃:确认无误后,选择保存,进行固件生成。</li> </ul><p><img class="center" src="//" alt="制作流程" width="866" height="337"></p> <h2>填写说明</h2> <ol><li>该功能窗口可将文本批量转换成SDK中需要的播报语音。</li> <li>根据需求选择相应的参数,点击试听按钮试听。</li> <li>标注“推荐“字样的为推荐发音人。</li> <li>语速:0最快-20最慢,推荐值10。</li> <li>音量:0最小-10最大,推荐值10。</li> </ol><p><span style="font-size:18px;"><strong>注意</strong></span></p> <ol><li>上传的EXCEL中,第一列为音频序号,第二列为音频名,第三列为待合成文本。</li> <li>音频名不宜过长且不能包含空格,待合成文本不宜超过四十字。</li> <li>现仅支持上传EXCEL文件,请在“样例中”下载EXCEL模板。</li> </ol><p> </p> <p>传的播报音样例文件格式模板可以通过创建表单界面中的“下载样例”获取。用户可以按照该模板的格式,填写需要的播报语句,以及其内容,保存后上传。</p> <p>中文的样例如下图所示:</p> <p><img class="center" src="//" alt="中文"></p> <p>英文的样例如下图所示:</p> <p><img class="center" src="//" alt="英文"></p> <h2>表单的提交</h2> <p>用户在合成播报音时,需先新建表单,填写好表单中对应的内容,如下图所示:</p> <p><img class="center" src="//" alt="填写表单" width="849" height="332"></p> <p>填写完成后,点击“上传你的文件”,上传已经按照规范做好的excel文件。</p> <p><img class="center" src="//" alt="表单提交" width="840" height="328"></p> <p>上传完成后,点击左上角的“保存”按键;</p> <p><img class="center" src="//" alt="定制固件保存" width="843" height="329"></p> <p>等待文件被平台加载;</p> <p><img class="center" src="//" alt="加载" width="844" height="328"></p> <p><strong>请注意:加载的过程当中请勿退出或者刷新界面,否则制作进度将会终止!</strong></p> <h2>播报音下载</h2> <p>播报音合成成功后,选择“下载语音合成文件”,便可得到生成的播报音。</p> <p><img class="center" src="//" alt="固件下载" width="841" height="317"></p> <h2>语言模型配置文件修改</h2> <p>1. 打开下载的语言模型文件夹中 CmdWordStructure 目录下配置文件[60000]{cmd_info}.xls</p> <p>2. 将<strong><0>cmd</strong>这个表格中的“播报音1ID”,改为从0开始依次递增。如果你需要开机播放欢迎语,那就把<welcome>一行的播报音ID改为一个与表格上方不重复的数字,本例中改为68。<Inactive>和<beep>播报音ID改为文件名前缀不会使用的一个大数字,比如1000。</p> <p><img src="//image.lceda.cn/pullimage/ymNu6BPjFyAWUbi4EMSoe3CvA0hThuXNhept4FJj.png" alt="ymNu6BPjFyAWUbi4EMSoe3CvA0hThuXNhept4FJj.png" width="840" height="360"></p> <p><img src="//image.lceda.cn/pullimage/9WeZuXn6ACkD7EvBZh8R9xTkbFmiaAOO5KVrJd3d.png" alt="9WeZuXn6ACkD7EvBZh8R9xTkbFmiaAOO5KVrJd3d.png" width="841" height="312"></p> <p>3. 将<strong><1>wake</strong>表格中的“播报音1ID”的第一行改为0,即唤醒词“小黄人”的对应播报音ID为0,与第一个表格一致。如果你需要开机播放欢迎语,那就把<welcome>一行的播报音ID改为<strong><0>cmd</strong>表格中<welcome>一行相同的播报音ID,上面是68,所以这里也是68。<Inactive>和<beep>播报音ID改为文件名前缀不会使用的一个大数字,比如1000。</p> <p><img src="//image.lceda.cn/pullimage/P1TKGiON3zkUAyiR6iuQRn99PRWc3hDYWDJ1zirk.png" alt="P1TKGiON3zkUAyiR6iuQRn99PRWc3hDYWDJ1zirk.png" width="839" height="368"></p> <h2>播报音文件名修改</h2> <p>解压上面合成并下载的播报音压缩文件,里面的文件名前缀应该是对应了上面那个<0>cmd表格中的播报音ID。</p> <p><img src="//image.lceda.cn/pullimage/9o8y3G1FapjayDGCocnkYtEpXXtwu2XedCLEuSxq.png" alt="9o8y3G1FapjayDGCocnkYtEpXXtwu2XedCLEuSxq.png" width="246" height="223"> </p> <p>如果你在上面设置了欢迎语播报音ID,也可以在上面播报音合成步骤,将它加入播报音合成列表。或者也可以使用一段音乐作为开机欢迎语,关键是要将它的前缀改为<welcome>那一行设置的播报音ID,在上例中我们设置开机欢迎语播报音ID为68,那么开机欢迎语的文件名就应该是"[68]开机欢迎.wav"或者"[68]开机欢迎.mp3"。</p> <p> </p> <p>注:上述步骤是将播报音合成到固件中。而本项目中使用MP3模块播放所有播报音,所以本项目是把所有播报音放在TF卡上,由操作系统发出命令来控制MP3模块播放指定文件。虽然我使用MP3模块播放播报音,但是固件合成仍然需要对应的播报音(既然实际不使用模块播报,可以使用任意的文件替代,但是不能没有),如果固件内缺少播报音会无法正常运行。播放指定文件夹串口命令,请参考上文代码。</p> <p> </p> <h2>声学模型、语言模型、播报音文件替换</h2> <ul><li> 语言模型压缩包内各文件夹说明</li> </ul><p>CmdWordStructure:该文件夹存放的内容为{cmd_info}表格,为用户词条置信度相关参数配置文件;</p> <p>GfstCmd:该文件夹存放的内容为平台生成的命令词模型文件;</p> <p>GfstWake:该文件夹存放的内容为平台生成的唤醒词模型文件;</p> <ul><li>语言模型文件替换方式</li> </ul><p>SDK语言模型文件夹位置:CI112X_SDK_ASR_Offline_V1.x.x\sample\internal\sample_110x\firmware</p> <p>用户将下载的语言模型文件夹中 GfstCmd 以及 GfstWake 这两个文件夹里的[0]asr_chinese_SE292_CI1122_normal.dat和[1]asr_chinese_SE292_CI1122_normal.dat文件替换SDK语言模型文件位置内的asr文件夹里的内容。</p> <p>用户将下载的语言模型文件夹中 CmdWordStructure 目录下配置文件[60000]{cmd_info}.xls,放入SDK语言模型文件夹位置的 user_file\cmd_info 内并替换原先的内容;(文件名必须要"[60000]"开头,可以改为类似"[60000](小黄人{cmd_info}.xls"之类的名称)</p> <ul><li>声学模型文件替换方式</li> </ul><p>SDK声学模型文件夹位置:CI112X_SDK_V1.x.x\CI112X_SDK\sample\internal\sample_1122\firmware\dnn</p> <p>用户将下载的声学模型里的内容放到SDK声学模型夹位置内,替换SDK原有的内容,即可使用。</p> <ul><li> 播报音文件替换</li> </ul><p>文件夹位置:CI112X_SDK_ASR_Offline_V1.x.x\sample\internal\sample_110x\firmware\vocie</p> <p>用户将新生成的播报音文件放入上述指定的目录中。</p> <h2> </h2> <h2>固件合成与烧录</h2> <p>在烧录前需要先将USB转串口的电源地(GND)、串口(TXD、RXD)收发引脚分别和模块对应的引脚连接起来,<strong>注意USB转串口的RXD和TXD分别对应模块的UART0_TX和UART0_RX。</strong></p> <h2> </h2> <p>1. 第一步:打开“合成分区bin文件.bat”;</p> <p><img class="center" src="//" alt="分区合成"></p> <p>2. 第二步:如下图所示,合并分区时会提示选择音频格式,新手用户请选择“adpcm”,选择完成后,按回车键,待加载完成后,该界面会自动关闭;</p> <p><img class="center" src="//" alt="播报"></p> <p>3. 第三步:打开“打包升级.bat”;</p> <p><img class="center" src="//" alt="打包工具"></p> <p>4. 第四步:选择您购买的开发板对应的芯片型号(此操作为第一次使用出现,后续使用请直接进行第五步);</p> <p><img class="center" src="//" alt="芯片选型"></p> <p>5. 第五步:确认好芯片型号后,点击“固件打包”按钮,进入升级界面;</p> <p><img class="center" src="//" alt="固件打包选项"></p> <p>6. 第六步:固件升级信息填写:</p> <ul><li> <p>在版本信息区填写软硬件相关信息。</p> </li> <li> <p>选择或填写各分区bin文件路径。</p> </li> <li> <p>点击“刷新地址”,点击“打包固件”。</p> </li> <li> <p>如果弹窗提示地址冲突,调整各分区大小,重新执行上一步。</p> </li> </ul><p><img class="center" src="//" alt="升级界面"></p> <ul><li>弹窗提示“固件已生成”表示打包成功。如下图所示</li> </ul><p><img class="center" src="//" alt="成功"></p> <h2> </h2> <h2>固件烧录</h2> <p>第一步:打开“打包升级.bat”;</p> <p><img class="center" src="//" alt="打包工具"></p> <p>第二步:选择您购买的开发板对应的芯片型号(此操作为第一次使用出现,后续使用请直接进行第三步);</p> <p><img class="center" src="//" alt="芯片选型"></p> <p>第三步:确认好芯片型号后,点击“固件升级”按钮,进入升级界面;</p> <p><img class="center" src="//" alt="固件升级按键"></p> <p>第四步:固件升级</p> <ul><li>选择或填写固件路径。</li> <li>勾选待升级的设备所连接的串口。</li> <li>其他选择:强制更新所有分区,鉴权文件,加密。</li> <li>待升级模块切换到升级模式(短接PG、EN两个引脚)。</li> <li>重启待升级设备或者给设备重新上电,开始升级。</li> <li>等待升级完成,如果顺利的话,升级成功后会进度条会显示100%, 表示更新成功,设备会自动引导进固件代码,如果有上电播报音,能听到上电播报。</li> <li>首次烧录固件时间会较长,以后再次烧录就只会更新固件有改动的部分。</li> <li>如果烧录过程中不小心断电,可能会导致下次烧录后无法正常工作,此时勾选“强制更新所有分区”即可。</li> </ul><p><img src="//image.lceda.cn/pullimage/PA57aenRAaWMHK74OKf8omQ4COmH79M4c7qzKvsl.png" alt="PA57aenRAaWMHK74OKf8omQ4COmH79M4c7qzKvsl.png" width="642" height="386"></p> <p> </p> <p> </p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><code></code></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><code></code></p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">*6、BOM清单</h3> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"><img src="//image.lceda.cn/pullimage/Hecc72LljUBgW1VXWfe0No1Q1KLafczzfzhB9TAY.png" alt="Hecc72LljUBgW1VXWfe0No1Q1KLafczzfzhB9TAY.png" width="838" height="363"></p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">*7、大赛LOGO验证</h3> <hr class="horizontal-splitline normal-bold-2"><p style="line-height:1.8;">PCB裸板及Logo验证。</p> <p style="line-height:1.8;"><img src="//image.lceda.cn/pullimage/bHblHw4hsTKzOvv5q4Hg73oL4LQnOViRjWreNjR0.png" alt="bHblHw4hsTKzOvv5q4Hg73oL4LQnOViRjWreNjR0.png" width="568" height="437"></p> <p style="line-height:1.8;">焊接好的板子(第四版)</p> <table style="border-collapse:collapse;width:76.8612%;"><tr><td style="width:39.5831%;"><img src="//image.lceda.cn/pullimage/re5DhwameVMnCkFC3xLw6k3naxl6YB4qT8diHZTM.png" alt="re5DhwameVMnCkFC3xLw6k3naxl6YB4qT8diHZTM.png" width="401" height="261"></td> <td style="width:36.3326%;"><img src="//image.lceda.cn/pullimage/Oh1tSiuJcXeRNsnMesV0t4sJrLAdXQJ1wBA67O3I.png" alt="Oh1tSiuJcXeRNsnMesV0t4sJrLAdXQJ1wBA67O3I.png" width="371" height="267"></td> </tr></table><p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> 安装后小黄人内外部图片 </p> <table style="border-collapse:collapse;width:97.8062%;"><tr><td style="width:32.0137%;"><img src="//image.lceda.cn/pullimage/I5uce0sqFY6NzFUa71rGg7SfERSP32UVNbzLqoqr.png" alt="I5uce0sqFY6NzFUa71rGg7SfERSP32UVNbzLqoqr.png" width="341" height="442"></td> <td style="width:32.0137%;"><img src="//image.lceda.cn/pullimage/jt1vO1MpefOtbtmmaFnxyOmuwT94iuReegbIXoTc.png" alt="jt1vO1MpefOtbtmmaFnxyOmuwT94iuReegbIXoTc.png" width="334" height="443"></td> <td style="width:32.0151%;"><img src="//image.lceda.cn/pullimage/IhZALeurTu1ZcUenmxFmTjWpEj7y3xqZ5VeXfNti.png" alt="IhZALeurTu1ZcUenmxFmTjWpEj7y3xqZ5VeXfNti.png" width="348" height="436"></td> </tr></table><p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p> <h3 class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;">* 8、演示您的项目并录制成视频上传</h3> <hr class="horizontal-splitline normal-bold-2"><p style="line-height:1.8;">演示视频请参看B站链接,文件太大无法上传。</p> <p style="line-height:1.8;">https://www.bilibili.com/video/BV1V34y1X7jH/</p> <p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-3pt pap-spacing-after-3pt" style="line-height:1.8;"> </p> </div>

文档

原理图_#第六届立创电赛#智能语音小黄人

原理图_#第六届立创电赛#智能语音小黄人_Rev1.3

BOM

ID Name Designator Footprint Quantity Manufacturer Part Manufacturer Supplier Supplier Part
1 100uF C1 CAP-SMD_BD5.0-L5.3-W5.3-FD 1
2 10uF C2,C8,C9,C10 C0603 4
3 100nF/50V C3,C11 C0603 2
4 470uF C4,C6 CAP-TH_BD8.0-P3.50-D0.6-FD 2
5 220uF C5,C7 CAP-TH_BD6.3-P2.50-D1.0-FD 2
6 1.25T-4P CN1 CONN-SMD_4P-P1.25_1.25T-4P 1
7 1.25T-2P-WV CN2 CONN-SMD_1.25T-2P-WT 1
8 B340A D1 SMA_L4.3-W2.6-LS5.2-RD 1
9 SMAJ60CA_C964935 D2 SMA_L4.4-W2.6-LS5.0-BI 1
10 P4SMA6.8A D3,D4 SMA_L4.4-W2.6-LS5.0-RD 2
11 SMFJ3.3CA D5,D6 SOD-123_L2.8-W1.8-LS3.7-BI 2
12 MBR0530 D7,D8,D9,D10,D11 SOD-123_L2.8-W1.8-LS3.7-RD 5
13 Header-Male-2.54_1x2 H1,H3 HDR-TH_2P-P2.54-V 2
14 2.54-3P H2 HDR-TH_3P-P2.54-V-M-1 1
15 333-2SYGC/S530-E2 LED1,LED2,LED3,LED4 LED-TH_BD6.2-P2.54-FD 4
16 Red/LED LED5 LED0603_RED 1
17 Green/LED LED6 LED0603_GREEN 1
18 XH2.5 2P P1,P2,SW XH2.50 2P 3
19 XH2.5 2P P3 CONN-TH_2501R-2P 1
20 XH_250_2PJX P4 XH2.50 2P 1
21 XH2.5 2P P5 CONN-SMD_2P-P2.54_XH2.54-2AB 1
22 NCE6003 Q1 SOT-23-3_L2.9-W1.6-P1.90-LS2.8-BR 1
23 SS8050_C2150 Q3,Q4,Q5 SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BR 3
24 NCE6003 Q6 SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BR 1
25 30R R1,R2,R4,R5 R0603 4
26 4.7K R3 R0603 1
27 2k/1% R7 R0603 1
28 10k/1% R8 R0603 1
29 1.2k/1% R9 R0603 1
30 680 R10,R11,R12,R13 R0603 4
31 30R R14 R0603 1
32 CI-C22GS02S U1 SMD-17_L20.0-W1.80-CI-C22GS02S 1
33 DFPLAYER-MINI-MODULE U2 DFPLAYER MINI 1
34 TP4056 U3 SOP8_150MIL_JX 1
35 M3螺丝孔 U4,U5,U6,U7 M3螺丝孔 4

附件

附件名 下载
BOM_#第六届立创电赛#智能语音小黄人_2021-09-19.csv

评论(22)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
嘉立创EDA-小A 回复
<p>小黄人,连续笑不要停</p>
simonliu009 回复
<p>可以有,回头我更新一下。音乐律动已经改好,更多语音等板子到了再一起升级。</p>
a183365762 回复
<p>有开放资料,可以自己DIY的吗</p>
simonliu009 回复
<p>使用官方SDK编译,自行添加串口指令即可。</p>
Because of you 回复
<p>UP主,你的自定义的函数可以给我看一眼吗?就是play_chengyu();第一接触MP3模块,不知道咋写,或者你看的MP3模块资料能让我看看嘛?</p>
simonliu009 回复
<p>资料可以参考这个  <span class="colour" style="color:rgb(0,0,0);"><span class="colour" style="color:rgb(0,0,255);"><strong><a href="https://pan.baidu.com/s/1X1W6912ayvROnIVTD_I3LA" target="_blank">https://pan.baidu.com/s/1X1W6912ayvROnIVTD_I3LA</a></strong></span></span><br/>play_chengyu()这个函数我做了很多封装,但是实质是循环播放一个文件夹(文件夹参数dir,实际我把相同类型的文件放在数字文件夹里面,这是MP3模块对文件访问的要求,比如01,02,03,04)。</p><br/><pre><code>#define DIR_CYCLING_CMD 0x17<br/><br/>mp3_send_cmd(DIR_CYCLING_CMD, 0x00, dir);</code></pre><br/><p>从串口发送命令的函数如下:</p><br/><pre><code>void mp3_send_cmd (uint8_t cmd, uint8_t high_arg, uint8_t low_arg) {<br/>uint8_t i;<br/>uint16_t checksum;<br/>mp3_cmd_buf[3] = cmd;<br/>mp3_cmd_buf[5] = high_arg;<br/>mp3_cmd_buf[6] = low_arg;<br/>checksum = mp3_checksum();<br/>mp3_cmd_buf[7] = (uint8_t) ((checksum &gt;&gt; 8) &amp; 0xFF);<br/>mp3_cmd_buf[8] = (uint8_t) (checksum &amp; 0xFF);<br/>// Send command to UART1<br/>for (i=0; i&lt;10; i++) {<br/>        UartPollingSenddata(UART1,mp3_cmd_buf[i]);<br/>    }<br/>}</code></pre><br/><p>其中校验计算可以参考上面网盘资料里面的调试手册。</p>
simonliu009 回复
<p><span class="colour" style="color:rgb(51,51,51);">下面的代码已经更新到正文,先前由于复制原因有部分乱码,请以正文为准。</span></p>
Because of you 回复
<p>大佬,我现在遇到一个问题了<br/>就是mp3不是在播放音乐吗??怎么避免mp3播放音乐输入到麦克风中去</p>
Because of you 回复
<p>怎么mp3播放音乐导致启英泰伦芯片的误识别</p>
simonliu009 回复
<p>目前我这里没发现音乐有误识别现象。但是如果你MP3播报词包含了命令词,那么容易误识别,所以你在设定播报词的时候要避免包含命令词。</p>
Because of you 回复
<p>大佬,我的意思是这样的,就是mp3在播放童话故事时,你突然想切换成成语故事。你咋切换哈大佬?直接在mp3输出音乐时,说出“成语故事”这个语音命令,他会不会识别不了(是不是要等成语故事讲完才能切换)</p>
Because of you 回复
<p>大佬,能让我看看你的SDK,文件吗??可以发到这个邮箱里面吗?<a href="mailto:1293443955@qq.com" target="_blank">1293443955@qq.com</a>,加这个qq也行呢</p>
simonliu009 回复
<p>播放过程中当然需要再次唤醒才行,当然音乐声大的时候不容易唤醒,这即便是市面上的智能音箱也是如此。</p>
Because of you 回复
<p>  case 2://“播放音乐”<br/>         {<br/>         UartPollingSenddata(UART1,0x7E);<br/>         UartPollingSenddata(UART1,0xFF);<br/>         UartPollingSenddata(UART1,0x06);<br/>         UartPollingSenddata(UART1,0x0D);<br/>         UartPollingSenddata(UART1,0x00);<br/>         UartPollingSenddata(UART1,0x00);<br/>         UartPollingSenddata(UART1,0x00);<br/>         UartPollingSenddata(UART1,0xEF);<br/>break;<br/>}<br/>大佬,程序这样写可以吗??</p><br/><p>数据手册是这样的<br/><img src="//image.lceda.cn/pullimage/NSDEWy5zEGynB1zuaphXRKjl4XgxJccexca1CRNA.png" alt="image.png"></p>
simonliu009 回复
<p>可以参照我写的函数。这几个字节可以放在一个数组里面一次性发送。</p>
SDSGD 回复
<p>请问有pcb各个模块的作用介绍吗</p>
simonliu009 回复
<p>原理图上都写了各部分的作用了。</p>
DFSDFDF 回复
<p>作者 下载不了程序 端口没有5V 求解</p>
simonliu009 回复
<p>我没遇到过这个问题,你要检查电源输入电压和电流,看看是否有短路。</p>
PLOVi 回复
<p>你好,这个小黄人有什么途径可以获得呢?</p>
simonliu009 回复
<p>我的这个是很久以前电信积分兑换的,你要买的话,TB关键词“正版 小黄人 挎包”</p>
karry.kerry 回复
<p>这个程序是用哪个软件编的呀,我们执行是每次都要到启英泰伦AI平台执行吗?</p>
goToTop
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow