ai機器人聽覺

東拼西湊我的pythonAI機器人- 讓機器人能聽

語音辨識輸入的技術STT(Speak To Text)¶

STT技術就是讓聲音轉化成文字,當我用聲音說:生日快樂,電腦會把我的聲音送到google(本例使用google),google分析完之後把可能的文字(生日快樂)傳送回來,由於中文同音字很多,所以太簡略的聲音句子分析都不會太好,建議說話的句子要多一點的上下脈絡,在分析上比較準確。有了這個技術就能讓我們用聲音來跟機器人互動了。

環境設定

1.首先你要讓電腦可以進行錄音,所以最好擁有一個外接指向型麥克風,用內建的麥克風容易有干擾。當然如果你處在一個安靜的環境之下,內建的麥克風確實有夠用了。

2.再來是匯入讓python可以進行語音錄音分析的程式庫 speech_recognition 記得先到小黑窗執行pip install speechrecognition

3.最後確認是否有安裝pyaudio 若沒有安裝 請利用小黑窗執行 conda install pyaudio

程式碼部分

#匯入程式庫
import speech_recognition

#初始化一個語音辨識器
r = speech_recognition.Recognizer()

#利用麥克風錄音 並將聲音存給 audio
with speech_recognition.Microphone() as source:
    audio = r.listen(source)

#將audio送到google分析,回傳文字
r.recognize_google(audio,language='zh-tw')

當你執行上述程式時,你的麥克風就會啟動並等待你的聲音,當你說玩句子後,保持安靜,就會自動停止錄音,並將聲音檔送出等待回傳結果,這個階段一定要記住,錄音時若是環境音太多,系統就不會停止錄音,就會一直卡很久。想要順利測試時,挑選一個較安靜的地方試試。

*表示ˊ執行等待錄音中
成功送回文字顯示

簡化指令

現在自訂一個指令,方便我們執行,不用每次都打這麼多行。

#匯入程式庫
import speech_recognition

#自訂一個方便使用的指令getvoice()
def getvoice():
    #初始化一個語音辨識器

    r = speech_recognition.Recognizer()

    #利用麥克風錄音 並將聲音存給 audio
    with speech_recognition.Microphone() as source:
        audio = r.listen(source)

    #將audio送到google分析,回傳文字給變數 a  分析的語音可以調整 en 英文  ja 日文 es西班牙文...等
    a = r.recognize_google(audio,language='zh-tw')
    
    #將a丟出去,a就是分析完後的文字
    return a

當你這樣寫之後,以後只要執行getvoice(),就會啟動麥克風並錄下你的語音,並送回分析後的文字。

現在你的機器人會聽你說話了,會聽你說話之後就要開始教導它,聽到什麼話就要去做什麼事,準備到下一個篇文章

如何教導機器人聽懂你的話,機器人的回應─簡單的語意分析。

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *