一款内置有micro_ros的ROS2离线语音交互模块,用户可以自定义5个唤醒词,自定义300条离线命令词识别,自定义300条语音合成,同时支持10米远识别距离,抗噪音干扰能力强,识别响应时间小于100ms,性价比超高~

corvin_zhang 15009f01e0 更新README.md文档,修改格式错误 3 주 전
doc 6ce0e2287d 增加文档目录,后续添加使用手册 4 주 전
firmware 9d3f50337c 新增语音模块的micro_ros固件代码,放在firmware目录下,同时将设备规则文件放到rules目录下归类 3 주 전
rules 9d3f50337c 新增语音模块的micro_ros固件代码,放在firmware目录下,同时将设备规则文件放到rules目录下归类 3 주 전
.gitignore 0c66d62d9b Initial commit 4 주 전
LICENSE 0c66d62d9b Initial commit 4 주 전
README.md 15009f01e0 更新README.md文档,修改格式错误 3 주 전
ROS2_Offline_Voice_Module_Code.hd fda238fa67 更新语音代码,增加注释信息,方便用户修改代码 4 주 전

README.md

《ros2_offline_voice_module代码仓库介绍》

一款内置有micro_ros的ROS2离线语音交互模块,用户可以自定义5个唤醒词,自定义300条离线命令词识别,自定义300条语音合成,同时支持10米远识别距离,抗噪音干扰能力强,识别响应时间小于100ms,性价比超高~

doc目录

该目录存放ROS2离线语音交互模块的相关文档。

firmware目录

该目录存放ROS2离线语音交互模块的micro_ros固件文件,在使用代码仓库中代码时,确保语音交互模块的固件为最新版本的。

rules目录

该目录存放ROS2离线语音交互模块的设备规则文件,规则文件名为:99-ROS2-Offline-Voice-Module.rules,我们通过执行voiceModuleSetup.sh脚本可以自动配置该规则文件。

ROS2_Offline_Voice_Module_Code.hd源码

该源码文件为用户需要修改的语音代码,该部分代码需要使用天问Block编辑修改、编译下载到ROS2离线语音交互模块中。

《在ROS2环境下使用方法》

首先使用Type-C线连接到ROS2离线语音交互模块的对应通信接口上,然后将USB接口插到你的ROS2主控设备的USB接口上,然后就可以使用命令来建立连接使用了。

与ROS2系统建立连接命令

首先需要在你的ROS2主控系统上安装好micro_ros_agent软件包,因为我们这款ROS2离线语音交互模块需要通过micro_ros_agent才能与ROS2进行通信。这里要根据micro_ros_agent不同的安装方式,则与ROS2系统建立连接的命令也不一样。

1.源码编译安装micro_ros_agent

使用如下命令与ROS2离线语音交互模块建立连接:

ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/voiceModule

2.snap方式安装micro_ros_agent

使用如下命令与ROS2离线语音交互模块建立连接:

micro-ros-agent serial --dev /dev/voiceModule

3.查看语音模块话题列表

当使用以上命令建立连接后,可以使用如下命令查看话题列表: ros2 topic list

可以看到以下话题列表:

  • /voice_system/asr_cmd_topic
  • /voice_system/tts_cmd_topic
  • /voice_system/wakeup_status_topic

下面依次来介绍各话题的作用:

/voice_system/asr_cmd_topic

该话题消息类型为std_msgs/msg/Int32类型,语音模块将识别到的离线命令词ID发布到该话题上,命令词ID输出范围1~300,依次对应用户设置的要识别的300条命令。(ROS2离线语音交互模块最多可以识别300条命令)

/voice_system/tts_cmd_topic

该话题消息类型为std_msgs/msg/Int32类型,用户可以向该话题发布int32类型消息,例如向该话题发布1,则语音模块的TTS播放对应的语音内容;发布2,则语音模块TTS播放对应的语音内容。(ROS2离线语音交互模块最多可以识别300条TTS播放内容)

/voice_system/wakeup_status_topic

该话题消息类型为std_msgs/msg/Int32类型,语音模块将识别到的唤醒词ID发布到该话题,用户可以订阅该话题得知语音模块是否在唤醒状态,如果唤醒的话,使用哪个唤醒词唤醒的。如果话题消息内容为0,表明未在唤醒状态,如果话题消息内容为1,表面使用第一个唤醒词唤醒的语音模块。(ROS2离线语音交互模块最多可以设置5个自定义唤醒词)