四、修改ROS2离线语音交互模块代码

0x00 开发软件下载

这款ROS2离线语音交互模块的语音代码需要使用特定的IDE进行开发,代码修改很简单,只需要拖拉代码模块就可以完成。这里的IDE软件是天问Block软件,下载链接地址如下:

https://www.yuque.com/twen51/twblock/gnqm2nz8n9gzr68t

四、修改ROS2离线语音交互模块代码 - 第1张
天问block下载页面

在下载页面往下拖动后,可以看到软件的版本更新记录,这里只显示当前的最新版本,后面软件肯定还会不断维护更新,大家到时候下载当时最新版本即可,IDE使用方法不会有太大变化。在下载时需要注意,由于软件放在语雀平台上,所以需要先微信扫码登录,然后就可以自动下载了,虽然软件很大,但是下载速度也很快,大约1分钟下载完成。

当然除了在语雀上下载,也可以从官方网站上下载该软件,只不过下载速度会慢不少,毕竟官网的带宽有限,官网下载地址如下:

http://www.twen51.com/new/twen51/art_show.php?id=230

四、修改ROS2离线语音交互模块代码 - 第2张
官网下载天问Block软件

0x01 软件安装

需要注意这款开发软件目前只能在Windows系统上运行,在Linux和Mac系统上都无法运行。这款软件安装其实也很简单,我们将下载好的zip压缩包软件解压后,就可以看到exe安装软件包,如下图所示:

四、修改ROS2离线语音交互模块代码 - 第3张
解压后天问Block软件

接下来就可以双击软件安装了,安装选项尽量不要修改,安装过程很简单,具体的安装步骤如下各图所示:

四、修改ROS2离线语音交互模块代码 - 第4张
安装步骤一
四、修改ROS2离线语音交互模块代码 - 第5张
安装步骤二
四、修改ROS2离线语音交互模块代码 - 第6张
安装步骤三
四、修改ROS2离线语音交互模块代码 - 第7张
安装完成后安装驱动
四、修改ROS2离线语音交互模块代码 - 第8张
驱动安装完成
四、修改ROS2离线语音交互模块代码 - 第9张
软件启动页面

0x02 软件配置

为了正常编译后面提供给大家的语音程序,需要先配置下软件才行,具体的配置步骤也比较简单,首先选择好语音主板模块为ASRPRO,然后配置编译模式,如下各图所示:

四、修改ROS2离线语音交互模块代码 - 第10张
选择ASRPRO主板
四、修改ROS2离线语音交互模块代码 - 第11张
ASRPRO编译模式配置
四、修改ROS2离线语音交互模块代码 - 第12张
配置完成界面

0x03 语音代码下载

对于我们这款ROS2离线语音交互模块的语音代码,我已经准备好一个demo代码,大家后续在该代码基础上修改即可。目前我们为这款语音模块创建了代码仓库,大家可以从如下地址中下载,需要重点关注ROS2_Offline_Voice_Module_Code.hd源码,该源码可以在天问Block中进行编辑修改:

https://code.xturtle.cn/corvin_zhang/ros2_offline_voice_module.git

四、修改ROS2离线语音交互模块代码 - 第13张
语音代码仓库

我们可以使用git clone将代码仓库下载到本地,然后使用天问Block打开ROS2_Offline_Voice_Module_Code.hd源码编辑修改。


0x04 语音代码修改

当将语音代码仓库下载到本地后,我们就可以使用天问Block打开语音仓库中语音代码进行编辑修改,具体如下图所示:

四、修改ROS2离线语音交互模块代码 - 第14张
打开语音代码编辑
四、修改ROS2离线语音交互模块代码 - 第15张
用户可根据需要修改的代码

如果想修改播报音,可以直接从下拉菜单选择其他发音人(当前默认为“湾湾小何-台湾口音女声”)。如果没有满意的,那可以从左侧的“语音识别”中选择其他语音模块,具体如下图所示:

四、修改ROS2离线语音交互模块代码 - 第16张
发音人列表
四、修改ROS2离线语音交互模块代码 - 第17张
更换发音人模块

如果在“播报音设置(虾哥语音)”模块里没有喜欢的发音人,那可以直接将代码里的该模块删掉。拖动一个其他播报音模块使用,例如“播报音设置(百度TTS)”模块,如下图所示:

四、修改ROS2离线语音交互模块代码 - 第18张
百度TTS选择其他发音人

0x05 代码编译上传

当我们修改好语音代码后,接下来就可以使用Type-C线连接好语音模块,然后将代码编译上传。这需要需要先注意连接的Type-C接口,如下图所示连接下载语音程序:

四、修改ROS2离线语音交互模块代码 - 第19张
更新语音程序的TypeC接口

在连接好接口后,需要先生成语音模型,因为我们这款语音模块的语音功能都是提前生成好,不是在程序运行时实时生成的语音、唤醒词、命令词。在将程序上传到语音模块时,语音代码都是固定的,所以会节约硬件资源,上传程序的各步骤如下图所示:

四、修改ROS2离线语音交互模块代码 - 第20张
生成语音模型
四、修改ROS2离线语音交互模块代码 - 第21张
生成语音模型
四、修改ROS2离线语音交互模块代码 - 第22张
语音代码编译下载

到这里我们就已经介绍完了整个语音代码编译下载流程,然后将TypeC接口接到与ROS2系统通信的接口上,然后就可以使用micro_ros_agent来与我们这款ROS2离线语音交互模块建立连接通信了。


0x06 参考资料

[0]. 天问五幺官网-一站式单片机开发. http://www.twen51.com/new/twen51/index.php

[1]. ASRPRO资料下载. http://www.twen51.com/new/twen51/learning_show.php?id=565

本文原创,作者:corvin_zhang,其版权均为ROS小课堂所有。
如需转载,请注明出处:https://www.corvin.cn/3488.html