ros语音识别实现

一、先创建一个文件夹功能包

打开终端(Ctrl+Alt+T或者手动右键),创建一个文件夹(注意文件夹的名称可以根据自己的喜好而定)

mkdir -p ~/voice_recognition/src

初始化工作空间

cd ~/voice_recognition/src
catkin_init_workspace

跳转到voice_recognition编译工作空间

cd ~/voice_recognition/
catkin_make

二、语音识别

克隆ros功能包代码到工作空间src

cd voice_recognition/src/
git clone https://gitee.com/bingda-robot/robot_voice.git

安装音频录制播放有关的库(libasound2-dev)和mplayer播放器

sudo apt-get install libasound2-dev mplayer

修改mplayer播放器配置文件

echo "lirc=no" > ~/.mplayer/config

接下来打开麦克风(适用于16.04,其它的版本可能操作不同)

把所有柱子的音量都调到最大

alsamixer

跳转到voice_recognition编译工作空间并且配置环境

cd ~/voice_recognition/
catkin_make
source devel/setup.bash

注意:为了避免每一次使用功能包的代码之前要记得配置环境输入source devel/setup.bash

我们可以来到Home目录,按(Ctrl+H)打开隐藏文件,找到.bashrc文件打开,在最后添加代码

source /home/“你的主机名称”/voice_recognition/devel/setup.bash

三、语言转文字

打开终端输入

roslaunch robot_voice iat_publish.launch

四、文字转语音

打开终端输入

roslaunch robot_voice tts_subscribe.launch

再打开一个新的终端发布话题

下面的代码在单引号内输入你想要机器人说的话

rostopic pub /tts_text std_msgs/String "data: 'hello robot'" 

五、语言控制小车

打开终端输入

roslaunch robot_voice iat_publish.launch

 打开新的终端输入

roslaunch robot_voice tts_subscribe.launch

  打开新的终端输入

roslaunch robot_voice voice_control.launch

他们的关系 

然后在iat_publish.launch的端口说出“前进”“停止”“左转”“右转”的指令就可以控制机器人

【资源说明】 基于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、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值