在ROS中使用语音识别和语音合成

原链接: https://community.bwbot.org/topic/492

语音识别是一个很常见的技术,ROS中也有一些语音识别的功能包,但是效果都不太好。没有实时识别的功能。对于科大迅飞ROS的支持也很不好。为了解决这些问题于是就有了下面的软件包 xiaoqiang_tts

使用这个软件包可以轻松的实现语音识别和语音合成。所有数据都是通过ROS topic发出来。参数也可以方便的在launch文件内修改。
软件包处理后端可以设置为科大迅飞语音或百度语音。也可以利用audio_capture实时的处理从话筒中收到的数据。

安装

cd [到你的工作空间的src文件夹中]
git clone https://github.com/bluewhalerobot/xiaoqiang_tts
git clone https://github.com/bluewhalerobot/xiaoqiang_audio
rosdep install xiaoqiang_audio
rosdep install xiaoqiang_tts
cd ..
catkin_make -DCATKIN_WHITELIST_PACKAGES="xiaoqiang_tts"

程序使用的是我自己申请的百度和迅飞参数,最好自己再去百度和迅飞的官网申请一个。迅飞的sdk下载完成后覆盖至src/engines/xunfei/sdk内,注意保留其中的src文件夹。然后在launch文件中设置自己的appid,再catkin_make一下就可以了。

使用

使用语音合成功能

启动百度语音合成

roslaunch xiaoqiang_tts tts_baidu.launch
输入Topic 消息类型
/xiaoqiang_tts/text std_msgs/String
输出Topic 消息类型
/xiaoqiang_audio/audio audio_common_msgs/AudioData

发布消息,测试语音

rostopic pub /xiaoqiang_tts/text std_msgs/String 测试一下语音合成 -1

此时如果正常应该能够听到”测试一下语音合成”的声音

启动科大迅飞语音合成

注意要先关闭百度tts节点

roslaunch xiaoqiang_tts tts_xunfei.launch

测试方法和上面一样。正常应该会听到合成的声音。

使用语音识别功能

启动百度语音识别

roslaunch xiaoqiang_tts asr_baidu.launch

新开一个终端接收语音识别结果

rostopic echo /xiaoqiang_tts/text

现在可以开始说话了,程序会自动监听环境声音并进行分句。当你停止说话时会开始处理你的这一句的结果。

输入Topic 消息类型
/xiaoqiang_audio/audio audio_common_msgs/AudioData
输出Topic 消息类型
/xiaoqiang_tts/text std_msgs/String

启动迅飞语音识别

roslaunch xiaoqiang_tts asr_xunfei.launch

使用方法和上面的一样

同时启动语音识别和语音合成

使用科大迅飞语音合成和语音识别

roslaunch xiaoqiang_tts tts_xunfei.launch
roslaunch xiaoqiang_tts asr_xunfei.launch

现在你说一句话机器人就会跟着你说一句话。

参数说明

详细的参数说明请参照launch文件内的注释

猜你喜欢

转载自blog.csdn.net/bluewhalerobot/article/details/80829354