App Inventor 內建有語音辨識元件, 不過以前因為這個元件會出現語音辨識的使用者介面, 而且如果逾時沒有說話, 也必須自己按按鈕才能繼續辨識語音, 在需要連續辨識語音的情境下並不適用:
但其實早在 2019/7/30 的 nb178 版本, 語音辨識元件就多了一個 UseLegacy
選項, 預設為勾選, 表示採用前述的使用者介面。如果不勾選, 就會暗中開啟麥克風辨識語音, 以下就來看看如何使用。
以下是我的簡易測試程式
請記得加入語音辨識元件後取消勾選 UseLegacy
屬性。
在程式設計介面中, 當按下畫面上的 StartRecog
鈕後叫用辨識語音
啟用語音辨識:
語音辨識元件會在辨識到內容時自動觸發 辨識完成
事件:
不過要注意的是, 不勾選 UseLegacy
時這個事件會在辨識到部分內容時就被觸發,因此實際得到完整內容前會觸發多次, 必須在程式中檢查部分
參數, 其值不為 真
時才是辨識告一段落。
如果要終止辨識, 就要叫用停止
:
要特別注意的是, 如果超過時間沒有辨識到語音, 未勾選 UseLegacy
時會產生編號 3806 的錯誤:
如果不處理, 就會結束語音辨識, 如果希望能夠持續辨識, 就要自行再叫用 辨識語音
重新啟用語音辨識功能。
利用這樣的方式, 就可以達到完全不用再觸碰螢幕, 就可以一直辨識, 即使中間沒有講話, 也不會中斷辨識程序了。