ROS:语音识别与合成,让机器人会说话

智能机器人当然少不了语音功能,这篇文章将介绍一下ROS中的语音识别与合成。

参考《ros by example》 。

准备工作

1.运行以下命令:

sudo apt-get install gstreamer0.10-pocketsphinx
sudo apt-get install ros-indigo-pocketsphinx
sudo apt-get install ros-indigo-audio-common
sudo apt-get install libasound2
sudo apt-get install gstreamer0.10-gconf(indigo版本,必须安装)

2.下载pocketsphinx代码,地址:https://github.com/mikeferguson/pocketsphinx,记得编译。

$cd catkin_ws/src
$git clone https://github.com/mikeferguson/pocketsphinx
$cd ../
$catkin_make

3.了解topic /recognizer/output

pocketphinx软件包包括 Recognizer.py,这个脚本会处理电脑的音频输入流然后从现有的词库中匹配声音命令,匹配成功后会发送到/recognizer/output 这个话题上。其他程序可以通过订阅此话题获取识别的声音内容。

测试

最好使用带有麦克风的耳机,连接电脑,并将其选为音频输入设备,如果使用的是Ubuntu 14.04或更高版本,请转到系统设置,然后单击声音控制面板。在Input中从设备列表中选择你的耳机设备,说几句话测试一下,可以看到音量表响应。 然后点击Output选项卡,选择所需的输出设备,然后调整音量滑块。

运行launch

$roslaunch pocketsphinx robocup.launch

你会看到如下

现在可以说话了。正常情况如下:

$rostopic echo /recognizer/output

运行上面的命令可以更清楚的看到识别到的声音内容。

其他程序可以通过订阅这个topic 来获取识别的声音内容。另外,pocketsphinx只能识别词库里的单词或短语,因此有局限性。

机器人说话

1.安装

$sudo apt-get install ros-indigo-audio-common
$sudo apt-get install libasound2

2.运行

$rosrun sound_play soundplay_node.py

$rosrun sound_play say.py "Greetings Humans. Take me to your leader."

你会听到电脑发声:Greetings Humans. Take me to your leader.

默认的声音是kal_diphone,我们也可以更换其他的声音,查看电脑上其他的声音,运行

ls /usr/share/festival/voices/english

可以看到还有一个don_diphone(之前安装的).如果要更换成这个,运行下面命令

rosrun sound_play say.py "Welcome to the future" voice_don_diphone

查看所有可用的声音,运行下面命令

$sudo apt-cache search --names-only festvox-*

我们可以安装上面列表中的任意一个,eg:festvox-don,执行下面命令

$sudo apt-get install festvox-don

安装更多声音:

$ sudo apt-get install festlex-cmu
$ cd /usr/share/festival/voices/english/
$ sudo wget -c http://www.speech.cs.cmu.edu/cmu_arctic/packed/cmu_us_clb_arctic-0.95-release.tar.bz2
$ sudo wget -c http://www.speech.cs.cmu.edu/cmu_arctic/packed/cmu_us_bdl_arctic-0.95-release.tar.bz2
$ sudo tar jxfv cmu_us_clb_arctic-0.95-release.tar.bz2
$ sudo tar jxfv cmu_us_bdl_arctic-0.95-release.tar.bz2
$ sudo rm cmu_us_clb_arctic-0.95-release.tar.bz2
$ sudo rm cmu_us_bdl_arctic-0.95-release.tar.bz2
$ sudo ln -s cmu_us_clb_arctic cmu_us_clb_arctic_clunits
$ sudo ln -s cmu_us_bdl_arctic cmu_us_bdl_arctic_clunits

测试:

$ rosrun sound_play say.py "I am speaking with a female C M U voice"  voice_cmu_us_clb_arctic_clunits
$ rosrun sound_play say.py "I am speaking with a male C M U voice" voice_cmu_us_bdl_arctic_clunits

还可以使用sound_play播放wav文件或一些内置的声音。

rosrun sound_play play.py `rospack find rbx1_speech`/sounds/R2D2a.wav

注意:play.py需要wav文件的绝对路径,建议使用rospack find 如果不用也可以只输入完整的路径名。

播放内置声音,参数可以选择1-5之间的整数,友情提示,先调低你的音量。

rosrun sound_play playbuiltin.py 4

总结

pocketsphinx只识别英文,如果要识别中文要费不少周章,我们可以使用讯飞语音来识别中文,效果还不错。推荐https://github.com/ncnynl/xf-ros,直接用,感谢作者ncnynl!

时间: 12-14

ROS:语音识别与合成,让机器人会说话的相关文章

android语音识别和合成第三方 .

讯飞语音云 http://open.voicecloud.cn/index.php 目前支持6大类型的SDK下载,包括Android. iPhone平台移动应用的接入,Windows.Linux平台PC应用的接入,以及Flash.Java网页应用的接入 开发文档和API下载:http://open.voicecloud.cn/download.php http://blog.csdn.net/goodshot/article/details/9966713 android语音识别和合成第三方 .

MRCP协议相关学习及语音识别、合成

MRCP,媒体资源控制协议,其学习中,涉及到SIP.RTP等协议,常涉及语音识别语音合成等相关知识. 推荐其学习网站:http://www.ctiforum.com/html/special/mrcp2018/forum/type-488.html MRCP协议具体内容见下面网站:https://tools.ietf.org/html/rfc6787#section-9 MRCP协议相关学习及语音识别.合成 原文地址:https://www.cnblogs.com/zhangxingcomeon

ROS语音识别

一.语音识别包 1.安装 安装很简单,直接使用ubuntu命令即可,首先安装依赖库: $ sudo apt-get install gstreamer0.10-pocketsphinx $ sudo apt-get install ros-indigo-audio-common //我安装的是indigo版本的 $ sudo apt-get install libasound2 $ sudo apt-get install gstreamer0.10-gconf 然后来安装ROS包: sudo

人工智能 1. 语音合成,语音识别,相似度,图灵机器人,智能对话

目录 一.准备工作(基于百度ai) 二.语音合成 三.语音识别 四.相似度 五.图灵机器人 六. 识别+合成+图灵 七.智能对话 一.准备工作(基于百度ai) 1.创建应用 ① ② ③ ④ 2.用python时,下载模块  baidu-aip 二.语音合成 将 文本 转换成 音频 1.基本框架 from aip import AipSpeech """ 你的 APPID AK SK """ # 接口信息 APP_ID = '16027159' A

ROS(9):机器人开源项目poppy-project

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/48661397 未经博主允许不得转载. 博主地址是:http://blog.csdn.net/freewebsys 1,关于poppy-project poppy是一个机器人的开源项目,一个人型机器人的项目,设计cad啥的都是开源的. 项目使用GPL v3开源的. 总成本在 5万RMB,60%的成本在Dynamixel 舵机上面,需要25个舵机. 不知道国产舵机能补能替代. 2,

一套基于模板匹配的语音识别技术 提取语音的特征,并建立模板库 可以将语音识别技术应用于机器人

视图类,废话少说,看看带注释的源码 #include "stdafx.h" #include "robot.h" #include"Label.h" #include "robotDoc.h" #include "robotView.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE

ROS入门实例(中文版)pdf

下载地址:网盘下载 内容简介 本书是一部介绍机器人操作系统(机器人系统编程)的专业性读物.全书内容包括ROS基础知识,操作系统以及相关代码.模拟器安装,导航与路径规划,语音识别与合成,机器人视觉系统与视觉组合,Dynamixel伺服机.本书指导读者如何利用编程使机器人做一些神奇的事情. 作者简介 R.PatrickGoebel,1991年获得认知心理学博士学位,现担任美国斯坦佛大学网络工程师职务,对机器人的设计构建与编程有深入的研究. 下载地址:网盘下载 搜索 复制 原文地址:https://w

在ROS中开始自主机器人仿真 - 1 概述

建立自主机器人是很难的,特别是在刚开始的时候. ROS 仿真有助于帮助我们从宏观上对机器人系统进行把握,帮助我们学习如何可以让机器人学会自己去适应环境. 明白机器人从测量和激光数据采集到转变为电机运动的过程. 机器人如何利用传感器进行感知, 找出好的路径, 应该执行什么样的命令. 这不是一套完整的自主机器人仿真的指导内容,但希望是一个好的开始. 所介绍的是小项目的一部分, 主要集中于如何开始自己的自主机器人仿真. 首先, 我们用ROS自带的turtlebot库,让机器人跑起来,这样我们有了直观的

ROS机器人程序设计(原书第2版)补充资料 (柒) 第七章 3D建模与仿真 urdf Gazebo V-Rep Webots Morse

ROS机器人程序设计(原书第2版)补充资料 (柒) 第七章 3D建模与仿真 urdf Gazebo V-Rep Webots Morse 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中使用. 提供ROS接口的3D软件比较多,本章以最典型的Gazebo介绍为主,从Player/Stage/Gazebo发展而来,现在独立的机器人仿真开发环境,目前2016年最新版本Gazebo7.1配合ROS(kinetic)使用. 补充内容:http://blo