在ROS中使用中文语音交互(百度语音baidu_speech)

本文介绍了一款基于ROS的百度语音API功能包,该工具支持语音识别与TTS功能,并适用于英语、普通话及粤语等多种语言环境。文章详细阐述了安装步骤、软件硬件需求、功能包编译及使用方法。

目前,ROS可以用的中文语音工具还是有一些的,功能也越来越丰富,但有一些有使用的限制,有一些用起来不是很方便。

这里以百度语音为例具体说明,参考链接如下:

1 http://wiki.ros.org/baidu_speech

2 https://github.com/DinnerHowe/baidu_speech

----

1. 概述

使用百度语音API实现语音识别和TTS的功能包,可以修改或自定义参数的示例代码。在开始本教程之前需要保证安装完成两个必须的Python库pyaudiopython-vlc。这个功能包提供了在ROS中使用百度语音的解决方案,可以同时应用于英语、汉语普通话和粤语,经过多台配置电脑的测试,包括indigo和kinetic,thinkpad、acer等。

注意:

$ sudo apt-get install python-pip portaudio19-dev vlc libvlc-dev

$ sudo pip install pyaudio

$ sudo pip install python-vlc

----

2. 软硬件需求

可以运行ROS的笔记本或硬件设备,麦克风和扬声器等并正确配置。

----

3. 功能包下载并编译

这个和之前所有ROS包非常类似。

relaybot@relaybot-desktop:~/Rob_Soft/Baidu_Speech$ catkin build

----------------------------------------------------------------------------
Profile:                     default
Extending:          [cached] /home/relaybot/catkin_ws/devel:/opt/ros/kinetic
Workspace:                   /home/relaybot/Rob_Soft/Baidu_Speech
----------------------------------------------------------------------------
Source Space:       [exists] /home/relaybot/Rob_Soft/Baidu_Speech/src
Log Space:          [exists] /home/relaybot/Rob_Soft/Baidu_Speech/logs
Build Space:        [exists] /home/relaybot/Rob_Soft/Baidu_Speech/build
Devel Space:        [exists] /home/relaybot/Rob_Soft/Baidu_Speech/devel
Install Space:      [unused] /home/relaybot/Rob_Soft/Baidu_Speech/install
DESTDIR:            [unused] None
----------------------------------------------------------------------------
Devel Space Layout:          linked
Install Space Layout:        None
----------------------------------------------------------------------------
Additional CMake Args:       None
Additional Make Args:        None
Additional catkin Make Args: None
Internal Make Job Server:    True
Cache Job Environments:      False
----------------------------------------------------------------------------
Whitelisted Packages:        None
Blacklisted Packages:        None
----------------------------------------------------------------------------
Workspace configuration appears valid.
----------------------------------------------------------------------------
[build] Found '1' packages in 0.0 seconds.                                     
[build] Package table is up to date.                                           
Starting  >>> baidu_speech                                                     
Finished  <<< baidu_speech                [ 0.5 seconds ]                      
[build] Summary: All 1 packages succeeded!                                     
[build]   Ignored:   None.                                                     
[build]   Warnings:  None.                                                     
[build]   Abandoned: None.                                                     
[build]   Failed:    None.                                                     
[build] Runtime: 0.5 seconds total. 

----

4. 功能包使用

relaybot@relaybot-desktop:~/Rob_Soft/Baidu_Speech$ roslaunch baidu_speech
simple_speaker.launch   simple_voice.launch     warning_speaker.launch

分别有三个示例launch:simple_speaker.launch,simple_voice.launch,warning_speaker.launch。

4.1. 文本发音-simple_speak

$ roslaunch baidu_speech simple_speaker.launch Gender:=man

参数等具体说明参考wiki,这里使用男声,运行过程如下。


----

4.2. 语音识别-simple_voice

$ roslaunch baidu_speech simple_voice.launch


----

发布、订阅主题以及详细的参数信息请参考wiki。当然还可以使用更多复杂应用,包括用中文语音控制机器人运动等,自行探索即可。


~End~

【资源说明】 基于ros语音识别源码(采用python与科大讯飞语音听写api)+项目使用说明.zip 基于ros语音识别使用python与科大讯飞语音听写api实现实时的语音识别,并利用节点发布话题控制进程。 环境要求: * ros1,python3.x * 声卡:```sudo apt install libasound2-dev``` * requirement: * pass 项目结构: ``` XF_PYROS_IAT │ .gitattributes │ CMakeLists.txt │ package.xml │ README.md │ ├─launch │ main_node.launch │ ├─others │ node.png │ node_main.png │ ├─scripts │ close_switch_node.py │ main_node.py │ open_switch_node.py │ reset_node.py │ └─src func_open_node.cpp func_pause_node.cpp func_reset_node.cpp ``` 节点说明: ![节点图](others/node.png "节点图") * `main_node.py`是主程序,承担语音识别模块,对应节点为:/main_node,只运行该节点不会直接开始语音识别 * `open_switch_node.py`用于开启主程序语音识别,对应节点为:/open_node * `close_switch_node.py`用于关闭主程序语音识别,对应节点为:/pause_node * `reset_node.py`用于重置整个进程,使其恢复到休眠状态,对应节点为:/reset_node,运行一次该节点后就可以通过open_switch_node.py或/open_node再次开启语音识别 * src中的cpp生成的节点实际上就是用于控制以上节点,可有可无,根据自己需求使用,对应关系如下:(主要由于本人不会c++,故才加了src中的三个节点,如果你会C++可以自己把以上其他节点改写为C++) * _`func_open_node.cpp` --> `open_switch_node.py` 、`func_pause_node.cpp` --> `close_switch_node.py` 、`func_reset_node.cpp` --> `reset_node.py`_ 使用步骤: ***注意:请提前修改 main_node.py 中的科大讯飞APPID,APIKey,APISecret!*** 终端一: ``` roslaunch xf_pyros_iat main_node.launch ``` 终端二: * 发布话题:/func_switch_op启动语音识别,data: ' '里可以是任何字符串,没有也行 ``` rostopic pub /func_switch_op std_msgs/String "data: ''" ``` * 发布话题:/func_switch_cl关闭语音识别,data: ' '里可以是任何字符串,没有也行 ``` rostopic pub /func_switch_cl std_msgs/String "data: ''" ``` * 发布话题:/func_switch_re重置语音识别,data: ' '里可以是任何字符串,没有也行 ``` rostopic pub /func_switch_re std_msgs/String "data: ''" ``` * 此外通过:/func_op_node、/func_cl_node、/func_re_node三个节点也可以控制开、关、重置语音识别,命令如下: ``` rosrun xf_pyros_iat func_op_node ``` ``` rosrun xf_pyros_iat 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangrelay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值