ROS语音识别-----pocketsphinx安装和使用

   目前对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)从实验结果看语音识别率不是很高(或许是由于麦克风设备和我发音不准导致吧:))



评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值