wifi遙控車有時用手操控感覺上還有一層隔核,聽說用語音可以控制機器人或小車的動作

這讓我又有了興趣研究,於是翻了現有的機器人書和上網找些前輩們寫的資料,開始實作

為下一個機器人打點底子。機器人如果能看,能聽,能說,能聽命令行事,那已經是業餘

玩家夢昧以求的,我要努力朝這目標前進了。

首先得得先準備

1,錄音和喇叭共用的音效卡

2,可獨立供電的音响或喇叭

3,麥克風(建議買靈敏度不要超過-40db的,我之前買一個-58db的結果收音品質非常差,幾乎辨識不出來)

4,樹莓派

材料都有了,先檢測音效卡上的裝置是否都有被檢測到,接著就是安裝軟件

 

step1

        $ cat /proc/asound/cards

1.jpg


step2:安裝兩個與ALSA相關軟件

        $ sudo apt-get install alsa-base alsa utils

        $ sudo apt-get install libasound2-dev

安裝完相關的庫之後重新啓動樹莓派


step3:重啓後在終端機下輸入

       $ alsamixer

2.jpg


step4:按下F6(以我為例,如果是筆電操作則須搭配Fn+F6)

         選擇usb-audio-decice

3-1.png


setp5:調整mic和音响的音量

      左右鍵可選speaker/mic

      mic初始值是"MM"表示靜音,要把它調為"00"(按字母鍵o來調整)

      按Ese回到終端機

4.jpg


step6:終端機輸入

        aplay -l(負的後面是字母)

5-1.png


step7:在主目錄新增編輯.asoundrc檔,使它做為預設組態

        $ sudo nano .asoundrc

打開後輸入$ pcm.!default sysdefault:Device_1

(ps:上面要近增的字串最後Device實際情形要看你查詢到的來做更改,像我的上圖card2是顯示Device_1

6.jpg

組態設定字串打上後按ctrl+x儲存,按y確定並退出

這時先重啓樹莓派讓設定組態生效

這時假使你要試試是否音效卡已能播放聲音,可以在樹莓派上的網頁搜尋任何*.wav並下載來試播看看,

試播的方法是在終端機上打

            $sudo aplay 檔名.wav

,然後就可以聽到播放的音效


接下來,不只要讓樹莓派播放音樂,還要讓它能賦予它能""的功能

接下來我們要安裝espeak這套開源語音軟件

在終端機裡打上

            $ sudo apt-get install espeak

安裝完畢後,你可以在終端機裡打上

            $ espeak "hello"

在" "裡可以打上任何你想要它說的字詞句,它都會說給你聽


step8:使用pocketsphinx接收語音命令

首先要下載兩個由卡耐基網站開發的軟件sphinxbasepocketsphinx

https://sourceforge.net/projects/cmusphinx/files/

我選用的是0.8版本,因為感覺比較穩定,你也可以選用你喜好的版本

pocketsphinx.jpg

點選進去後有很多版本可供下載,將以上兩個檔案下載至樹莓派的/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離開

7-1.jpg

輸入$ sudo /sbin/ldconfig讓系統注意到pocketsphnix庫


step13:測試麥克風讓pocketsphnix聽音辨識

         $ cd /home/pi/pocketspnix-0.8/src/programs

         $ pocketsphnix_continuous

執行後出現下圖即可對著mic講單字,出現ready...

表示它已在收集聲音,你對它講話,(你會發現他似乎不太能辨試的很準確,

有兩種方法可以訓練它,一種是用機器學習的方法讓它學習,但那很複雜,想

了解可以上卡耐基CMU網站看看。第二種方法是自己創建一個txt檔,裡面

加上你要讓它辨識的單字。

7.jpg


目前我寫這文章時的目標是放在控制往後我制作的智能車

或機器人上來應用。所以暫時在此告一段落。有空時再寫

如何實現語音控制智能車。

 

 

arrow
arrow
    文章標籤
    espeak cmu卡耐基
    全站熱搜
    創作者介紹
    創作者 定凱 的頭像
    定凱

    大的人身,小的心靈…保持赤子之心。

    定凱 發表在 痞客邦 留言(0) 人氣()