python實現機器人專案中的自動語音識別以及物體檢測前關鍵字的判斷

python實現機器人專案中的自動語音識別以及物體檢測前關鍵字的判斷

本文記錄的是我幾天裡利用百度語音識別API進行的機器人專案中實時語音識別並提取使用者命令關鍵字的一些心得體會(當然還有一些走過的坑)

本人是一個程式設計小白,這次任務的第一目的是快速實現功能因此並未考慮最最有方案。首先以可以達到效果為目的。如有修改意見或者其他還請各位多多指點。

連結:https://pan.baidu.com/s/1ZBbM4ylambmIs5jemqdkBQ 密碼:jv98

下面就不如整正題。

先來捋一下整個實時語音識別的過程:

首先我們要有語音輸入,也就是進行語音命令的採集,那麼第一反應就是給電腦插上一個麥克風來進行命令的輸入,然後對於指令發出之後,麥克風採集需要對語音指令進行儲存,然後格式調整(因為利用百度的語音識別API來最語音識別,要求的語音檔案是16000K的wav格式),最後利用百度API進行識別並制定關鍵字,進行提取判斷。

以上就是整個流程。下面開始操作:

Step 1: 安裝程式中需要的python包。(如圖中所有包都需要提前安裝)

這裡要說,對於報的安裝注意:

並不是最新版本的包就一定最好,親身經歷哦。一開始是在ubuntu下做的,順利實現。程式碼貼上到windows下需要的包安裝後,執行報錯

求助百度君,並未解決。最後檢視Ubuntu下各個第三方庫版本發現requests的版本,才知道win下裝的是requests2.18.4 

pip uninstall之後 對指定版本 下載就可以了。(這裡是用的版本是2.9.1)

(ps:ubuntu下pyaudio這個包在下載時要注意使用命令 sudo pip install python-pyaudio python3-pyaudio)這樣會有兩個版本的pyaudio(ubuntu本身就是兩個版本的python)當然如果你已經確定了編譯器版本直接下相應的即可。

其他包的安裝使用很順利,並未出現問題,如果你在使用時有問題也歡迎留言一起討論解決。

Step 2: 調通利用百度語音識別API部分

這裡參考部落格:https://blog.csdn.net/a1368783069/article/details/54600774

需要注意的是,在這之前你需要去百度語音識別API建立自己的應用並獲得KEY。

然後對應到程式的相應位置。

你需要提前準備幾段16K wav格式的語音檔案,可以直接從百度語音識別技術文件中下載也可以自己錄製。但千萬記住格式一定是wav 16k(可以利用格式工廠進行音訊轉換)(其實最後實現這一步直接在採集語音命令時解決了)

分享的連線裡 baidu_asr.py執行後結果如下圖

如果是在這樣的報錯

說明你事先準備的語音檔案格式不符合,記得時16K wav

Step 3: 插入麥克風進行實時語音命令的採集

參考部落格https://blog.csdn.net/coder_ai/article/details/66010493

這裡用到的pyaudio,進行採集聲音

這一部分的設定就時在規定語音儲存時是16k的

這一步是通過實時採集的時間來作為語音檔名字進行儲存(規定了是wav格式)

連線裡分享的get&save_vioce.py執行就可以實現錄音生成。

Step 4: 整合所有部分,完成任務。

將各個部分整合,調整變數值,避免變數衝突。

最終任務程式是asr.py

整合時為了測試過程中語音檔案生成過多,中間加了一句清理資料夾下所有WAV檔案。如果需要儲存,可以改用移動到其他資料夾,如有需要可以自行改動。

最終結果如圖

基於任務需要,最後對語音識別結果進行了五樣物品關鍵字的判斷。未來會著重於關鍵字,語音識別上,因此目前為止,只是簡單的實現了小的功能。接下來會基於此進行語義識別以及與物體檢測部分通訊並控制機器人運動、識別物體、拿指定物體的功能實現。日後會繼續更新。。

本文大部分程式碼源於其他前輩的分享,再次感謝。

問題很多,請各位多多指教。