文章

顯示從 8月, 2021 起發佈的文章

[應用] App Inventor 2 之語音辨識元件

圖片
        過去我們研究各種平台上的語音辨識功能,像是雲端服務的一文  雲運算之語音辨識 (Speech To Text)  [1],或者單晶片的離線辨識一文  LD3320 離線語音辨識晶片與 ESP32 無線傳輸  [2]。這次我們研究安卓系統的語音辨識,在 APP Inventor 2 的多媒體選單中提供語音辨識元件,元件屬性有 "UseLegacy",如果勾選它,每當調用這個元件時,手機畫面會彈出一個畫面,準備運行語音辨識。這個屬性只能允許一次性的辨識過程,需要再次調用元件才能進行下次辨識,如果要連續辨識的話,我們就必須 uncheck 這個屬性。         底下的積木流程圖採用連續語音辨識的屬性所設計的,不過開發過程中遇到一個問題,系統會不斷地彈跳出錯誤訊息,然後語音辨識過程就中斷了。在網路上也有人遇到同樣的情況[3][4], 現階段 處理的方式是把這些錯誤訊息抓出來,其中編號 3806 錯誤 (No Match) 出現時,重新呼叫語音辨識元件,讓系統再次進入辨識的狀態,但是每次出現錯誤訊息手機就會發出嗶嗶聲,有點惱人。或許,未來安卓系統會提供這個元件有更好的解決辦法,目前就先用上述的方式 work around 吧!最後一點,這個元件需要用到手機的網路,因為語音辨識的服務放在雲端上,如果沒有公眾網路,辨識是不起作用的。 圖一:APP 語音辨識積木流程圖 影片: App Inventor 語音辨識元件 參考資料 [1]  雲運算之語音辨識 (Speech To Text) [2]  LD3320 離線語音辨識晶片與 ESP32 無線傳輸 [3]  錯誤訊息 3806 [4]  App inventor : SpeechRecognizer 語音辨識