ROS下使用百度语音将文字转为语音
功能描述:往一个话题里发布文字然后读出改文字
功能包链接:https://github.com/DinnerHowe/baidu_speech.git
将该包放到自己的工作空间里编译一下。
需要安装的包:
1、安装requests模块
sudo pip install requests
2、安装两个Python库pyaudio和python-vlc
sudo apt-get install python-pip portaudio19-dev vlc libvlc-dev
sudo pip install pyaudio
sudo pip install python-vlc
3、测试百度语音包中,文本发音,向simple_speaker节点添加音频文件
roslaunch simple_voice simple_speaker.launch
如果不出问题往 “/speak_string std_msgs/String” 发布 “你好,世界”,就会被读出来。
4、测试百度语音包中,语音识别
roslaunch simple_voice simple_voice.launch
对着电脑说话,每次只识别一次,识别完成后需要按下Enter键才能继续识别
<launch>
<arg name="CTP" default="1" />
<arg name="LAN" default="zh"/>
<arg name="USER_ID" default="8168466"/>
<arg name="SPEED" default="6" /> <!-- 语速:0-9 默认:5-->
<arg name="PIT" default="5"/> <!-- 音调:0-9 默认:5-->
<arg name="VOL" default="9"/> <!-- 音量:0-9 默认:5-->
<arg name="Api_Key" default="pmUzrWcsA3Ce7RB5rSqsvQt2" />
<arg name="Secrect_Key" default="d39ec848d016a8474c7c25e308b310c3"/>
<arg name="Grant_type" default="client_credentials"/>
<arg name="Token_url" default="https://openapi.baidu.com/oauth/2.0/token" />
<arg name="Speeker_url" default="http://tsn.baidu.com/text2audio"/>
<arg name="FORMAT" default="mp3"/>
<arg name="ResponseSensitivity" default="1.5"/>
<arg name="WorkSpaces" default="Xbot"/>
<arg name="Gender" default="women" /> <!-- women:女声,man:男声 -->
<node pkg="simple_voice" type="simple_speek.py" name="speaker" output="screen">
<param name="Gender" value="$(arg Gender)" />
<param name="CTP" value="$(arg CTP)" />
<param name="LAN" value="$(arg LAN)" />
<param name="USER_ID" value="$(arg USER_ID)" />
<param name="SPEED" value="$(arg SPEED)" />
<param name="PIT" value="$(arg PIT)" />
<param name="VOL" value="$(arg VOL)" />
<param name="Api_Key" value="$(arg Api_Key)" />
<param name="Secrect_Key" value="$(arg Secrect_Key)" />
<param name="Grant_type" value="$(arg Grant_type)" />
<param name="Token_url" value="$(arg Token_url)" />
<param name="Speeker_url" value="$(arg Speeker_url)" />
<param name="FORMAT" value="$(arg FORMAT)" />
<param name="ResponseSensitivity" value="$(arg ResponseSensitivity)" />
<param name="WorkSpaces" value="$(arg WorkSpaces)" />
</node>
</launch>