ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision
在小强中使用语音识别和语音合成
-
为小强添加语音识别和语音合成功能,安装之后小强就能说会道了。当然首先要给小强添加话筒和喇叭。
处理后端可以设置为科大迅飞语音或百度语音。也可以利用audio_capture实时的处理从话筒中收到的数据。
安装,小强已经默认安装好了
cd [到你的工作空间的src文件夹中] git clone https://gitee.com/BluewhaleRobot/xiaoqiang_tts # 对于python3环境需要切换至python3分支 cd xiaoqiang_tts git checkout python3 git clone https://gitee.com/BluewhaleRobot/xiaoqiang_audio cd xiaoqiang_audio git checkout noetic cd ../.. catkin_make -DCATKIN_WHITELIST_PACKAGES="xiaoqiang_tts"
程序使用的是我自己申请的百度和迅飞参数,最好自己再去百度和迅飞的官网申请一个。然后在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
现在你说一句话机器人就会跟着你说一句话。
和机器人对话
roslaunch xiaoqiang_nlp talk_bot.launch
执行这个指令后机器人会和你对话交流,快和它说说话吧。
参数说明
详细的参数说明请参照launch文件内的注释
-
-
@weijiz 运行rosdep install xiaoqiang_tts 时提示
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
xiaoqiang_tts: Cannot locate rosdep definition for [xiaoqiang_audio] -
已经运行了这个 rosdep install xiaoqiang_audio
#All required rosdeps installed successfully -
@robot0612 这个错误可以忽略,继续进行
-
此回复已被删除! -
此回复已被删除! -
此回复已被删除! -
此回复已被删除! -
语音识别,内容过长,比如讲故事,就会报错:可有办法解决
-
@robot0612 在 在小强中使用语音识别和语音合成 中说:
更新代码到最新版,这个问题已经修复了
-
@weijiz 谢谢
-
@weijiz
您好,运行roslaunch asr_xunfei.launch遇到这个错误该如何解决,感谢您
File “/home/zhk2/catkin_ws/src/xiaoqiang_tts/src/xiaoqiang_asr_node.py”, line 30, in
from engines.baidu_tts import BaiduTTS as bd_client
File “/home/zhk2/catkin_ws/src/xiaoqiang_tts/src/engines/baidu_tts.py”, line 29, in
from aip import AipSpeech
File “/usr/local/lib/python2.7/dist-packages/aip/init.py”, line 6, in
from .ocr import AipOcr
File “/usr/local/lib/python2.7/dist-packages/aip/ocr.py”, line 12, in
from .base import AipBase
File “/usr/local/lib/python2.7/dist-packages/aip/base.py”, line 14, in
requests.packages.urllib3.disable_warnings()
AttributeError: ‘module’ object has no attribute ‘packages’
[xiaoqiang_asr-2] process has died [pid 6074, exit code 1, cmd /home/zhk2/catkin_ws/src/xiaoqiang_tts/src/xiaoqiang_asr_node.py ~audio:=/audio/audio ~text:=/xiaoqiang_tts/text ~audio_status:=/xiaoqiang_audio/audio_status __name:=xiaoqiang_asr __log:=/home/zhk2/.ros/log/dc555cb2-79dc-11e9-a2e6-f4ec3802170a/xiaoqiang_asr-2.log].
log file: /home/zhk2/.ros/log/dc555cb2-79dc-11e9-a2e6-f4ec3802170a/xiaoqiang_asr-2*.log -
ubuntu20.04 ros-noetic版本,python3.8,编译xiaoqiang_tts时报错:
/home/lly/catkin_ws/src/xiaoqiang_tts/src/engines/xunfei/sdk/src/xunfei_tts.cpp:231:8: error: ‘StaticInit’ was not declared in this scope
231 | if (!StaticInit())
请问这个该如何解决呢?貌似是python版本的问题 -
@joy checkout到python3版本再编译
-
你好,请问输入roslaunch xiaoqiang_tts asr_xunfei.launch指令会出现如下问题:ImportError: No module named aip
[xiaoqiang_tts-2] process has died [pid 5287, exit code 1, cmd /home/cyl/catkin_ws/src/xiaoqiang_tts/src/xiaoqiang_tts_node.py ~audio:=/xiaoqiang_audio/audio __name:=xiaoqiang_tts __log:=/home/cyl/.ros/log/5cf44666-297d-11eb-bcc9-000c29c76404/xiaoqiang_tts-2.log].
log file: /home/cyl/.ros/log/5cf44666-297d-11eb-bcc9-000c29c76404/xiaoqiang_tts-2*.log -
@林林林语 你的依赖包没有安装
sudo pip install baidu-aip
-
-
语音合成测试,运行成功,但是一直处于time.sleep中,出不来了,怎么办?