前言
今天閒來無事查看下語音識別在ROS中的應用,之前在ROS中玩過一段時間的Pocket Sphinx,關於Pocket Sphinx的學習過程以後會介紹,或者可以去網上搜索一些教程,都是比較不錯的。現在講述下在ROS中百度語音的使用情況,由於百度語音的作者寫了一些文章在Github上,但是步驟不是很清楚,在此記錄一下防止以後忘記,也和大家分享下,避免出現一些失誤而導致半途而廢。
需求
操作系統: Ubuntu 14.04.2
ROS版本:Indigo
ROS語音識別介紹
關於一些在ROS中如何使用語音識別庫,大家可以自行搜索下,基本上都是在ROS官網上的一些資料,目前官網上的語音識別庫一共有四個,分別爲
目前講述的是百度的語音識別,目前百度語音已經支持ROS,大家可以學習下。以後會介紹其他三個語音庫。
百度語音識別在ROS中的應用
在Github上下載百度語音識別包
$ git clone https://github.com/DinnerHowe/simple_voice.git
下載完成後其實就可以使用,但是會提示錯誤,例如:No module named pyaudio 或者 Nomodule named vlc
其實作者也已經說過了,要想使用simple_voice這個包,需要Python庫,也就是pyaudio和vlc-python。下面安裝需求包。
安裝百度語音識別包的需求包
$ sudo apt-get install python-pyaudio
$ cd
$ git clone https://github.com/geoffsalmon/vlc-python.git
$ sudo cp vlc-python/generated/vlc.py /usr/lib/python2.7/
運行並測試百度語音包中的說話者(simple_speaker.launch)和語音識別(simple_voice.launch)
$ roslaunch simple_voice simple_speaker.launch
$ roscd simple_voice/src
$ rostopic pub /speak_string std_msgs/String -- '請讓一下.mp3'
這個步驟就是加載給出的“請讓一下.mp3”到節點,關於rostopic pub的使用方法在此就不介紹了,大家可以查看rostopic的使用。
$ roslaunch simple_voice simple_voice.launch
每次只識別一次,識別完成後需要橋下Enter鍵才能繼續識別,當然大家也可以對voice_node.py進行改造,變成實時語音識別。