ROS2与语音交互教程-整合sound_play实现播放语音
ROS2与语音交互教程-整合sound_play实现播放语音
说明:
- 介绍如何ros2下使用sound_play实现语音播放
- 测试:ubuntu20.04
步骤:
- 安装依赖
sudo apt install festival
- 安装audio-common
mkdir -p ~/ros2_common_ws/src
cd ~/ros2_common_ws/src
git clone -b ros2 https://github.com/ros-drivers/audio_common
#一起编译
colcon build --symlink-install
#如果不能一起编译单独按顺序每个包编译
#colcon build --symlink-install --packages-select=audio_common_msgs
#colcon build --symlink-install --packages-select=audio_play
#colcon build --symlink-install --packages-select=sound_play
#colcon build --symlink-install --packages-select=audio_common
#colcon build --symlink-install --packages-select=audio_capture
测试:
- 新终端,启动播放节点
. ~/ros2_common_ws/install/local_setup.bash
ros2 run sound_play soundplay_node.py
- 新终端,发布文字
$ ros2 run sound_play say.py 'Hello world'
[INFO] [1646982892.344203645] [say58245]: Saying: Hello world
[INFO] [1646982892.345140415] [say58245]: Voice: voice_kal_diphone
[INFO] [1646982892.346120288] [say58245]: Volume: 1.0
- 会播放'Hello world'的语音,默认使用voice_kal_diphone语音包
- 默认的声音比较粗糙,可以安装其他的语音包,参考教程,目前测试使用mbrola比较适合
- 通过更改say.py文件里面的voice为其他,如
voice = 'voice_us1_mbrola'
$ ros2 run sound_play say.py 'Hello world'
[INFO] [1646983273.658807743] [say59529]: Saying: Hello world
[INFO] [1646983273.659776227] [say59529]: Voice: voice_us2_mbrola
[INFO] [1646983273.660656179] [say59529]: Volume: 1.0
- 内置的声音
rosrun sound_play playbuiltin.py 2
- 数字2位敲两下的声音,1是其他
- 直接播放wav或ogg格式的声音文件
- 1.录制声音文件,比如使用text2wave
echo "It's such a beautiful day! Why are you in front of the computer?" | text2wave -scale 50 -o beautiful_day.wav
- text2wave是安装festival自带的功能,转换文字为语音文件
- festival的安装参考
- 2.播放
ros2 run sound_play play.py ~/tools/music/beautiful_day.wav
参考:
- http://wiki.ros.org/sound_play
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号