ROS语音识别-----pocketsphinx安装和使用
2016-11-03 18:06
1006 查看
目前对pocketsphinx能支持的最高ROS版本是jade,本文主要介绍pocketsphinx在ROS Kinetic版本上的安装和使用。
1 系统软件环境
Ubuntu16.04+ROS Kinetic
2 安装过程
2.1
安装ros-kinetic-audio-common
sudo apt-get install ros-kinetic-audio-common
2.2 安装libasound2
sudo apt-get install libasound2
2.3 安装libgstreamer0.10
sudo apt-get install gstreamer0.10-*
2.4 安装libsphinxbase1
sudo dpkg -i libsphinxbase1_0.8-6_amd64.deb
2.5 安装libpocketsphinx1
sudo dpkg -i libpocketsphinx1_0.8-5_amd64.deb
2.6 gstreamer0.10-pocketsphinx
从https://packages.debian.org/jessie/gstreamer0.10-pocketsphinx下载gstreamer0.10-pocketsphinx
sudo dpkg -i gstreamer0.10-pocketsphinx_0.8-5_amd64.deb
2.7 安装pocketsphinx
git clone https://github.com/mikeferguson/pocketsphinx
下载之后拷贝到ROS安装目录/opt/ros/kinetic/share/下,tree pocketsphinx输出如下信息:
tree pocketsphinx/
pocketsphinx/
├── CHANGELOG.rst
├── CMakeLists.txt
├── demo
│ ├── robocup.corpus
│ ├── robocup.dic
│ ├── robocup.launch
│ ├── robocup.lm
│ ├── robocup_r1.launch
│ ├── robocup_r2.launch
│ ├── turtlebot_voice_cmd.launch
│ ├── voice_cmd.corpus
│ ├── voice_cmd.dic
│ ├── voice_cmd.launch
│ └── voice_cmd.lm
├── nodes
│ ├── recognizer.py
│ └── voice_cmd_vel.py
├── package.xml
└── README.md
注意:由于ROS Kinetic不支持(sudo apt-get install ros-kinetic-pocketsphinx),所以才有以上2.4 ~ 2.7步骤。
3 测试pocketsphinx
3.1 首先检查系统耳机和麦克风设备设置是否正常(我使用的USB外置声卡)
3.2 启动pocketsphinx测试
目前不知道是否是是由于pocketsphinx与ROS Kinetic兼容性导致,如果直接运行pocketsphinx启动脚本命令“roslaunch pocketsphinx robocup.launch”会出现如下错误,
为此,首先我对recognizer.py做了如下修改:
1)注释掉self.asr.set_property('configured', True)
2)添加lm,dict,hmm支持英语和普通话识别
self.asr.set_property('lm', '/home/siriansu/Downloads/model/usr/share/pocketsphinx/model/lm/en/tidigits.DMP')
self.asr.set_property('dict', '/home/siriansu/Downloads/model/usr/share/pocketsphinx/model/lm/en/tidigits.dic')
self.asr.set_property('hmm', '/home/siriansu/Downloads/model/usr/share/pocketsphinx/model/hmm/en/tidigits')
#self.asr.set_property('lm', '/home/siriansu/Downloads/model/usr/share/pocketsphinx/model/lm/zh_TW/gigatdt.5000.DMP')
#self.asr.set_property('dict', '/home/siriansu/Downloads/model/usr/share/pocketsphinx/model/lm/zh_TW/mandarin_notone.dic')
#self.asr.set_property('hmm', '/home/siriansu/Downloads/model/usr/share/pocketsphinx/model/hmm/zh/tdt_sc_8k')
其次,下载特定词典,声学和语言学模型
普通话:
pocketsphinx-hmm-zh-tdt
pocketsphinx-lm-zh-hans-gigatdt
英语:
pocketsphinx-hmm-en-tidigits
这些安装好之后,可以开始测试pocketsphinx的语音识别功能了:
1)在一个终端运行启动文件
roslaunch pocketsphinx robocup.launch
2)对着麦克风说些东西吧(如果使用英文库,说一些数字;如果使用普通话库讲中文),哦这里这里列举英语case测试
3)可以用rostopic echo进行查看识别的输出
4 总结
1)实验中难点主要是由于ROS kinetic不支持pocketsphinx直接安装,引出众多依赖包的安装,以及默认pocketsphinx包中robotcup声学模型无法识别而需要下载其它模型
2)从实验结果看语音识别率不是很高(或许是由于麦克风设备和我发音不准导致吧:))
1 系统软件环境
Ubuntu16.04+ROS Kinetic
2 安装过程
2.1
安装ros-kinetic-audio-common
sudo apt-get install ros-kinetic-audio-common
2.2 安装libasound2
sudo apt-get install libasound2
2.3 安装libgstreamer0.10
sudo apt-get install gstreamer0.10-*
2.4 安装libsphinxbase1
sudo dpkg -i libsphinxbase1_0.8-6_amd64.deb
2.5 安装libpocketsphinx1
sudo dpkg -i libpocketsphinx1_0.8-5_amd64.deb
2.6 gstreamer0.10-pocketsphinx
从https://packages.debian.org/jessie/gstreamer0.10-pocketsphinx下载gstreamer0.10-pocketsphinx
sudo dpkg -i gstreamer0.10-pocketsphinx_0.8-5_amd64.deb
2.7 安装pocketsphinx
git clone https://github.com/mikeferguson/pocketsphinx
下载之后拷贝到ROS安装目录/opt/ros/kinetic/share/下,tree pocketsphinx输出如下信息:
tree pocketsphinx/
pocketsphinx/
├── CHANGELOG.rst
├── CMakeLists.txt
├── demo
│ ├── robocup.corpus
│ ├── robocup.dic
│ ├── robocup.launch
│ ├── robocup.lm
│ ├── robocup_r1.launch
│ ├── robocup_r2.launch
│ ├── turtlebot_voice_cmd.launch
│ ├── voice_cmd.corpus
│ ├── voice_cmd.dic
│ ├── voice_cmd.launch
│ └── voice_cmd.lm
├── nodes
│ ├── recognizer.py
│ └── voice_cmd_vel.py
├── package.xml
└── README.md
注意:由于ROS Kinetic不支持(sudo apt-get install ros-kinetic-pocketsphinx),所以才有以上2.4 ~ 2.7步骤。
3 测试pocketsphinx
3.1 首先检查系统耳机和麦克风设备设置是否正常(我使用的USB外置声卡)
3.2 启动pocketsphinx测试
目前不知道是否是是由于pocketsphinx与ROS Kinetic兼容性导致,如果直接运行pocketsphinx启动脚本命令“roslaunch pocketsphinx robocup.launch”会出现如下错误,
为此,首先我对recognizer.py做了如下修改:
1)注释掉self.asr.set_property('configured', True)
2)添加lm,dict,hmm支持英语和普通话识别
self.asr.set_property('lm', '/home/siriansu/Downloads/model/usr/share/pocketsphinx/model/lm/en/tidigits.DMP')
self.asr.set_property('dict', '/home/siriansu/Downloads/model/usr/share/pocketsphinx/model/lm/en/tidigits.dic')
self.asr.set_property('hmm', '/home/siriansu/Downloads/model/usr/share/pocketsphinx/model/hmm/en/tidigits')
#self.asr.set_property('lm', '/home/siriansu/Downloads/model/usr/share/pocketsphinx/model/lm/zh_TW/gigatdt.5000.DMP')
#self.asr.set_property('dict', '/home/siriansu/Downloads/model/usr/share/pocketsphinx/model/lm/zh_TW/mandarin_notone.dic')
#self.asr.set_property('hmm', '/home/siriansu/Downloads/model/usr/share/pocketsphinx/model/hmm/zh/tdt_sc_8k')
其次,下载特定词典,声学和语言学模型
普通话:
pocketsphinx-hmm-zh-tdt
pocketsphinx-lm-zh-hans-gigatdt
英语:
pocketsphinx-hmm-en-tidigits
这些安装好之后,可以开始测试pocketsphinx的语音识别功能了:
1)在一个终端运行启动文件
roslaunch pocketsphinx robocup.launch
2)对着麦克风说些东西吧(如果使用英文库,说一些数字;如果使用普通话库讲中文),哦这里这里列举英语case测试
3)可以用rostopic echo进行查看识别的输出
4 总结
1)实验中难点主要是由于ROS kinetic不支持pocketsphinx直接安装,引出众多依赖包的安装,以及默认pocketsphinx包中robotcup声学模型无法识别而需要下载其它模型
2)从实验结果看语音识别率不是很高(或许是由于麦克风设备和我发音不准导致吧:))
相关文章推荐
- Pocketsphinx语音识别--使用流程, 安装,使用
- ROS中PocketSphinx语音识别_安装arbotix simulator仿真环境_turtlebot的仿真语音控制
- PocketSphinx语音识别系统的编译、安装和使用
- MEMO:Sphinx学习笔记——安装与使用入门(+在ROS中的使用)
- Ubuntu下 PocketSphinx安装使用
- ros语音识别:pocketsphinx_continuous工作正常而gst-pocketsphinx不能识别相同语音的问题。
- PocketSphinx语音识别系统的编译、安装和使用
- PocketSphinx语音识别系统的编译、安装和使用
- PocketSphinx语音识别系统的安装和使用
- PocketSphinx语音识别系统声学模型的训练与使用
- 关于sphinx的中文索引版本coreseek的安装使用总结
- sphinx 在windows 环境下安装与使用
- Sphinx在windows下安装使用[支持中文全文检索]
- sphinx 全文搜索 软件 工具 的安装使用
- sphinx在windows下的简单安装与使用
- ROS学习(十七)安装ARDUINO IDE使用rosserial
- sphinx中文分词搜索coreseek windows下安装与基本使用简介
- windows+sphinx+php 安装+配置+使用
- Sphinx在windows下安装使用[支持中文全文检索]
- Sphinx在windows下安装使用[支持中文全文检索]