分享好友 最新动态首页 最新动态分类 切换频道
#第六届立创电赛#智能语音小黄人
2024-12-27 02:20

使用启英泰伦离线语音模块制作的一个智能语音小黄人。配合一个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个版本的迭代:

  1. 第一版测试了基本功能,但是LED律动功能不正常。

这个版本使用了两个喇叭,一个用于语音模块响应词的播放,一个用于MP3模块资源的播放。MP3模块喇叭输出设计了一个倍压电路,用于音频LED律动。但是因为串联了LED而且电压不足的原因,安装到外壳内部之后效果几乎看不到。

  1. 第二版将LED律动倍压电路电容更改为电解电容,但是仍然效果不好。
  2. 第三版在软件和硬件上都进行了进行了大幅改进:
    1.  直接使用MP3模块播放响应词,这样可以移除语音模块的喇叭,将原先的2个喇叭减少为1个。响应词播放音质也比使用语音模块播放有了较大提升。由此带来的另外一个好处是如果不变更命令词,而仅仅更新播报词,那么无需重新编译和烧录固件,只需更新MP3模块对应的播报词音频文件即可。
    2. LED律动倍压电路改为4倍压,律动功能可以正常工作了(参见演示视频)。
    3. 增加语音命令反馈眼部的物理运动。通过控制一个小型电磁铁来实现。第一次设计有一个小bug,割线+飞线后调试成功。第四版修复了此线路问题。
    4. 增加了TP4056锂电池充电电路。
    5. 增加了RGB彩色LED灯带,其中三个灯珠放在背面向外发光,其他灯珠在内部发光。RGB彩灯代码使用了官方SDKcolor_light组件的部分代码,但是移除了HSV相关代码,因为加入HSV代码之后引入了math库,会导致固件体积过大而编译报错。
    6. 增加警灯、彩灯、小夜灯功能。
    7. 增加了一个电源钮子开关。
    8. 为了实现以上功能,语音模块所有可用的GPIO都利用上了。包括RX0/TX0/RX1/TX1/MCLK和三路PWM。
  3. 第四版进行了如下升级:
       a. 修复了电磁铁电路的问题。
       b. 调整了RGB LED的插座类型。
       c. 增加了RGB LED的数量。
       d. 小夜灯同时打开RGB灯带和眼部LED。
       e. MP3 BUSY引脚增加一个跳线,烧录的时候需要断开此引脚,否则烧录的时候会干扰串口导致固件下载失败。
       f. 晚安自动打开小夜灯。
  4. 为了不再改动第三版的PCB面积,第四版将非常少量的元件贴在了背面。

 

 


离线资源均包括播报音的音频文件均放置在MP3模块的TF卡上,相同类型的音频资源放在同一个文件夹下,语音模块通过串口命令控制MP3模块播放指定文件。

1. 到启英泰伦AI平台注册账号。

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模块对文件访问的要求)。


从串口发送命令的函数如下:


其中校验计算部分可以参考MP3模块文档的调试手册。

 

语音模块SDK开发更多内容请参考启英泰伦AI平台文档。

 

创建语言模型

详细内容可以参考文档中心的新手指南相关部分

首先进入启英泰伦AI平台,左侧菜单栏中选择语言模型,点击创建,进入语言模型制作主界面。

英文样例如下图:

日文样例如下图:

保存后即可下载声学模型和语言模型,声学模型只需要第一次下载然后合并到固件即可。未来如果同一产品的命令词有更新,只需重新建立一个语言模型,然后再次下载并更新语言模型即可,声学模型可以保持不变。

 

播报音合成

点击左侧的菜单中的“播报音合成”进入该模块,如下图所示:

请用户参考如下流程进行操作(注意下方数字标识对应下图中的数字标识),便可进入定制播报音的主界面:

  • ①选择菜单栏左侧的“播报音合成”按键
  • ②点击创建,即可进入主界面。
  • ①语音合成项目名称:用户填写对应的项目名称;
  • ②语言类型:目前提供中文以及英文播报音制作;
  • ③人声分类:目前提供成年男声,成年女声,男童声,女童声这四种人声制作;
  • ④语速:有20个等级,默认等级为10,等级越高语速越快;
  • ⑤合成人声:选择完成人声分类后,选择对应的人声;
  • ⑥下载样例:选择语言类型后,提供制作表格样例的下载链接;
  • ⑦音量:有20个等级,默认等级为10,等级越高音量越大;
  • ⑧语音合成文件上传:用户可以按要求的格式将希望生成播报音的词条填入一个文件中,按此按钮上传到平台中,平台使用该文件制作对应的播报音;
  • ⑨试听样音:用户可以根据自己的合成人声进行样音试听;
  • ⑩填写说明:用户可以及时查看相应的说明;
  • ⑪保存or丢弃:确认无误后,选择保存,进行固件生成。
  1. 该功能窗口可将文本批量转换成SDK中需要的播报语音。
  2. 根据需求选择相应的参数,点击试听按钮试听。
  3. 标注“推荐“字样的为推荐发音人。
  4. 语速:0最快-20最慢,推荐值10。
  5. 音量:0最小-10最大,推荐值10。

注意

  1. 上传的EXCEL中,第一列为音频序号,第二列为音频名,第三列为待合成文本。
  2. 音频名不宜过长且不能包含空格,待合成文本不宜超过四十字。
  3. 现仅支持上传EXCEL文件,请在“样例中”下载EXCEL模板。

 

传的播报音样例文件格式模板可以通过创建表单界面中的“下载样例”获取。用户可以按照该模板的格式,填写需要的播报语句,以及其内容,保存后上传。

中文的样例如下图所示:

英文的样例如下图所示:

用户在合成播报音时,需先新建表单,填写好表单中对应的内容,如下图所示:

填写完成后,点击“上传你的文件”,上传已经按照规范做好的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.xsampleinternalsample_110xfirmware

用户将下载的语言模型文件夹中 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_filecmd_info 内并替换原先的内容;(文件名必须要"[60000]"开头,可以改为类似"[60000](小黄人{cmd_info}.xls"之类的名称)

  • 声学模型文件替换方式

SDK声学模型文件夹位置:CI112X_SDK_V1.x.xCI112X_SDKsampleinternalsample_1122firmwarednn

用户将下载的声学模型里的内容放到SDK声学模型夹位置内,替换SDK原有的内容,即可使用。

  •  播报音文件替换

文件夹位置:CI112X_SDK_ASR_Offline_V1.x.xsampleinternalsample_110xfirmwarevocie

用户将新生成的播报音文件放入上述指定的目录中。

在烧录前需要先将USB转串口的电源地(GND)、串口(TXD、RXD)收发引脚分别和模块对应的引脚连接起来,注意USB转串口的RXD和TXD分别对应模块的UART0_TX和UART0_RX。

1. 第一步:打开“合成分区bin文件.bat”;

2. 第二步:如下图所示,合并分区时会提示选择音频格式,新手用户请选择“adpcm”,选择完成后,按回车键,待加载完成后,该界面会自动关闭;

3. 第三步:打开“打包升级.bat”;

4. 第四步:选择您购买的开发板对应的芯片型号(此操作为第一次使用出现,后续使用请直接进行第五步);

5. 第五步:确认好芯片型号后,点击“固件打包”按钮,进入升级界面;

6. 第六步:固件升级信息填写:

  • 在版本信息区填写软硬件相关信息。

  • 选择或填写各分区bin文件路径。

  • 点击“刷新地址”,点击“打包固件”。

  • 如果弹窗提示地址冲突,调整各分区大小,重新执行上一步。

  • 弹窗提示“固件已生成”表示打包成功。如下图所示

第一步:打开“打包升级.bat”;

第二步:选择您购买的开发板对应的芯片型号(此操作为第一次使用出现,后续使用请直接进行第三步);

第三步:确认好芯片型号后,点击“固件升级”按钮,进入升级界面;

第四步:固件升级

  • 选择或填写固件路径。
  • 勾选待升级的设备所连接的串口。
  • 其他选择:强制更新所有分区,鉴权文件,加密。
  • 待升级模块切换到升级模式(短接PG、EN两个引脚)。
  • 重启待升级设备或者给设备重新上电,开始升级。
  • 等待升级完成,如果顺利的话,升级成功后会进度条会显示100%, 表示更新成功,设备会自动引导进固件代码,如果有上电播报音,能听到上电播报。
  • 首次烧录固件时间会较长,以后再次烧录就只会更新固件有改动的部分。
  • 如果烧录过程中不小心断电,可能会导致下次烧录后无法正常工作,此时勾选“强制更新所有分区”即可。

 

 

 


PCB裸板及Logo验证。


演示视频请参看B站链接,文件太大无法上传。

https://www.bilibili.com/video/BV1V34y1X7jH/

最新文章
摩登天使商家版软件 1.1.2
没有加固或未知加固INTERNET访问网络连接,可能产生GPRS流量WRITE_EXTERNAL_STORAGE允许程序写入外部存储,如SD卡上写文件ACCESS_NETWORK_STATE获取网络信息状态,如当前的网络连接是否有效ACCESS_WIFI_STATE获取当前WiFi接入的状态以及WLA
诗词已解“怀素身长五尺四祢生词赋抛江夏”代表什么动物最新热门
生肖字谜诗怀素才情深似海身长五尺四传扬。祢生词赋如蛇舞智慧灵性显光芒。抛却凡尘如江夏生肖之谜隐其中。五尺身躯藏玄机蛇影藏于热门词。诗解:此诗以怀素的才情开始暗指生肖中的蛇象征智慧与灵性。五尺身躯暗示龙的雄伟但结合整体语境更
揭秘花茶前十大品种排名!了解花茶的世界,让你不再茶饮白痴!
花茶,作为一种别具特色的茶类,蕴含着丰富的文化底蕴和独特的品味体验。它不同于传统的茶叶,将茶叶与花朵巧妙融合,赋予茶饮以花香的独特韵味,给人带来耳目一新的感受。这种独特的制作工艺和口感特点,引发了人们对其品种排名的好奇心理
seo伪原创违法吗(seo伪原创 有用吗)
大家好,今天小编关注到一个比较有意思的话题,就是关于seo伪原创违法吗的问题,于是小编就整理了3个相关介绍seo伪原创违法吗的解答,让我们一起看看吧。SEO靠采集站赚钱现在还行不行?百中搜优化靠谱吗?伪原创文章要怎么写?现在的话靠采
用Linux云服务器搭建网站,看这一篇就够了!
搭建网站,很多人会选择手动搭建,或者直接选购镜像,一键部署网站。如果需要将网站发布到网络并对用户提供访问服务,则还需进行注册域名、网站备案、域名解析。 如果有小伙伴对这类内容有兴趣,留言区举手&
高清屏幕设计_今日电脑高清屏幕设计教程
摘要:高清屏幕设计,今日电脑高清屏幕设计教程,新片场素材小编罗雯菲高清屏幕设计,今日电脑高清屏幕设计教程相关内容整理,如果您对高清屏幕设计,今日电脑高清屏幕设计教程感兴趣欢迎访问免费阅读。高清屏幕设计,今日电脑高清屏幕设计教程
蛙漫网页漫画在线登录页面免费漫画入口
姑姑:我是医生!我告诉你,这不是病,是报应的时辰到了,那些讨债鬼们,到了他们跟我算总账的时候了。每当夜深人静时,那只猫头鹰在树上哇哇叫的时候,他们就来了。他们浑身是血,哇哇号哭着,跟那些缺腿少爪的青蛙混在一起。他们的哭声与
统计学习导论 基于R应用 pdf epub mobi txt 电子书 下载 2024
  统计学习是一套以复杂数据建模和数据理解为目的的工具集,是近期才发展起来的统计学的一个新领域。本书出自统计学习领域声名显赫的几位专家,结合R语言介绍了分析大数据必不可少的工具,提供一些重要的建模和预测技术,并借助丰富的实
相关文章
推荐文章
发表评论
0评