wifi遙控車有時用手操控感覺上還有一層隔核,聽說用語音可以控制機器人或小車的動作
這讓我又有了興趣研究,於是翻了現有的機器人書和上網找些前輩們寫的資料,開始實作
為下一個機器人打點底子。機器人如果能看,能聽,能說,能聽命令行事,那已經是業餘
玩家夢昧以求的,我要努力朝這目標前進了。
首先得得先準備
1,錄音和喇叭共用的音效卡
2,可獨立供電的音响或喇叭
3,麥克風(建議買靈敏度不要超過-40db的,我之前買一個-58db的結果收音品質非常差,幾乎辨識不出來)
4,樹莓派
材料都有了,先檢測音效卡上的裝置是否都有被檢測到,接著就是安裝軟件
step1
$ cat /proc/asound/cards
step2:安裝兩個與ALSA相關軟件
$ sudo apt-get install alsa-base alsa utils
$ sudo apt-get install libasound2-dev
安裝完相關的庫之後重新啓動樹莓派
step3:重啓後在終端機下輸入
$ alsamixer
step4:按下F6(以我為例,如果是筆電操作則須搭配Fn+F6)
選擇usb-audio-decice
setp5:調整mic和音响的音量
左右鍵可選speaker/mic
mic初始值是"MM"表示靜音,要把它調為"00"(按字母鍵o來調整)
按Ese回到終端機
step6:終端機輸入
aplay -l(負的後面是字母)
step7:在主目錄新增編輯.asoundrc檔,使它做為預設組態
$ sudo nano .asoundrc
打開後輸入$ pcm.!default sysdefault:Device_1
(ps:上面要近增的字串最後Device實際情形要看你查詢到的來做更改,像我的上圖card2是顯示Device_1
組態設定字串打上後按ctrl+x儲存,按y確定並退出
這時先重啓樹莓派讓設定組態生效
這時假使你要試試是否音效卡已能播放聲音,可以在樹莓派上的網頁搜尋任何*.wav並下載來試播看看,
試播的方法是在終端機上打
$sudo aplay 檔名.wav
,然後就可以聽到播放的音效
接下來,不只要讓樹莓派播放音樂,還要讓它能賦予它能"說"的功能
接下來我們要安裝espeak這套開源語音軟件
在終端機裡打上
$ sudo apt-get install espeak
安裝完畢後,你可以在終端機裡打上
$ espeak "hello"
在" "裡可以打上任何你想要它說的字詞句,它都會說給你聽
step8:使用pocketsphinx接收語音命令
首先要下載兩個由卡耐基網站開發的軟件sphinxbase和pocketsphinx
https://sourceforge.net/projects/cmusphinx/files/
我選用的是0.8版本,因為感覺比較穩定,你也可以選用你喜好的版本
點選進去後有很多版本可供下載,將以上兩個檔案下載至樹莓派的/home/pi底下
step9:在此先安裝libasound2-dev和bison的庫
$ sudo apt-get install libasound2-dev
$ sudo apt-get install bison
step10:在終端機上解開剛下載的兩個封包sphinxbase和pocketsphinx
$ sudo tar -xzvf sphinx-base-0.8.tar.gz
$ sudo tar -xzvf pocketsphinx-0.8.tar.gz
step11:檢查和建立兩個檔案匣裡的所須檔案和安裝
$ cd sphnixbase-0.8
$ sudo make
$ sudo make install
$ cd~
進入pocketsphnix-0.8重覆step11的動作
ps:有些書裡是寫make,而不是sudo make,後來中間我有遇到一點權限問題
發現直接用make的話,往後要修改continuous.c這個c語言的文件會出狀況
step12:在終端機建立檔案的連結
$ sudo nano /etc/ld.so.cof
在第二行打入/usr/local/lib 按ctrl+x存檔後按y離開
輸入$ sudo /sbin/ldconfig讓系統注意到pocketsphnix庫
step13:測試麥克風讓pocketsphnix聽音辨識
$ cd /home/pi/pocketspnix-0.8/src/programs
$ pocketsphnix_continuous
執行後出現下圖即可對著mic講單字,出現ready...
表示它已在收集聲音,你對它講話,(你會發現他似乎不太能辨試的很準確,
有兩種方法可以訓練它,一種是用機器學習的方法讓它學習,但那很複雜,想
了解可以上卡耐基CMU網站看看。第二種方法是自己創建一個txt檔,裡面
加上你要讓它辨識的單字。
目前我寫這文章時的目標是放在控制往後我制作的智能車
或機器人上來應用。所以暫時在此告一段落。有空時再寫
如何實現語音控制智能車。
留言列表