< >
Home » ROS2与语音交互教程 » ROS2与语音交互教程-整合sound_play实现播放语音

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

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros2与语音交互教程