【ROS總結】ROS下的百度語音識別應用

前言


今天閒來無事查看下語音識別在ROS中的應用,之前在ROS中玩過一段時間的Pocket Sphinx,關於Pocket Sphinx的學習過程以後會介紹,或者可以去網上搜索一些教程,都是比較不錯的。現在講述下在ROS中百度語音的使用情況,由於百度語音的作者寫了一些文章在Github上,但是步驟不是很清楚,在此記錄一下防止以後忘記,也和大家分享下,避免出現一些失誤而導致半途而廢

需求

操作系統: Ubuntu 14.04.2

ROS版本:Indigo


ROS語音識別介紹


關於一些在ROS中如何使用語音識別庫,大家可以自行搜索下,基本上都是在ROS官網上的一些資料,目前官網上的語音識別庫一共有四個,分別爲

目前講述的是百度的語音識別,目前百度語音已經支持ROS,大家可以學習下。以後會介紹其他三個語音庫。


百度語音識別在ROS中的應用


關於如何在ROS中使用百度語音識別呢,作者也已經在wiki上介紹了,大家可以先查看下,網址是:http://wiki.ros.org/baidu_speech
不過作者貌似沒有提供在線安裝,也就是apt-get來安裝百度語音包,不過不妨礙今天的教程,安裝百度語音包的過程如下:
·在Github上下載百度語音包
·安裝百度語音包的需求包
·運行並測試百度語音包中的說話者(simple_speaker.launch)和語音識別(simple_voice.launch)
下面根據步驟來進行操作

在Github上下載百度語音識別包


在下載之前,你應該有一個catkin工作空間,我的工作空間名字就是catkin_ws。然後在catkin_ws/src下下載百度語音識別包(simple_voice)
$ git clone https://github.com/DinnerHowe/simple_voice.git	


下載完成後其實就可以使用,但是會提示錯誤,例如:No module named pyaudio 或者 Nomodule named vlc
其實作者也已經說過了,要想使用simple_voice這個包,需要Python庫,也就是pyaudio和vlc-python。下面安裝需求包。

安裝百度語音識別包的需求包


安裝pyaudio其實是比較簡單的,直接使用下面的命令就可以安裝:
        $ sudo apt-get install python-pyaudio
 
這個步驟直接就在線安裝了需求包pyaudio。
安裝vlc其實比較坑,或許是我的電腦的問題,沒有找到在線安裝命令也就是python-vlc這個包,就算安裝了vlc所有的包也還是提示No module named vlc。
不過最終還是解決了,使用如下方式,首先在你的home下,下載vlc的封裝庫:
$ cd
$ git clone https://github.com/geoffsalmon/vlc-python.git

下載完成後,使用如下命令加載vlc模型到Python中
	$ sudo cp vlc-python/generated/vlc.py /usr/lib/python2.7/

Indigo的Python是2.7版本,大家也可以替換成你當前版本,路徑還是/usr/lib。
添加完成需求包後,就可以測試運行百度語音識別包了。

運行並測試百度語音包中的說話者(simple_speaker.launch)和語音識別(simple_voice.launch)


測試simple_speaker.launch

首先打開一個終端,輸入如下命令來啓動simple_speaker.launch
	$ roslaunch simple_voice simple_speaker.launch

作者在網上說直接運行這個launch就可以聽到說話,其實還少一步,需要添加音頻文件纔可以。作者在語音包中給出了一個“請讓一下.mp3”,其他音頻文件沒有測試,大家可以測試下都支持什麼音頻文件,在此就不講述了。
運行完simple_speaker.launch後,多出了一個/speak_string的話題,該話題就是接收音頻文件,需要手動的添加音頻文件到simple_speaker節點,其中該launch文件只開啓了一個節點就是simple_speaker。
打開另一個終端,向simple_speaker節點添加音頻文件:

	$ roscd simple_voice/src
	$ rostopic pub /speak_string std_msgs/String -- '請讓一下.mp3'

這個步驟就是加載給出的“請讓一下.mp3”到節點,關於rostopic pub的使用方法在此就不介紹了,大家可以查看rostopic的使用
這兩步完成後,就可以聽到電腦發出“請讓一下,謝謝!”的語音了。

測試simple_voice.launch

關於測試simple_voice.launch是容易的,直接一條命令搞定:
	$ roslaunch simple_voice simple_voice.launch

然後對着電腦說話就可以了,比如:


每次只識別一次,識別完成後需要橋下Enter鍵才能繼續識別,當然大家也可以對voice_node.py進行改造,變成實時語音識別。







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章