DEV Community

codemee
codemee

Posted on

在 App Inventor 中連續進行語音辨識

App Inventor 內建有語音辨識元件, 不過以前因為這個元件會出現語音辨識的使用者介面, 而且如果逾時沒有說話, 也必須自己按按鈕才能繼續辨識語音, 在需要連續辨識語音的情境下並不適用:

但其實早在 2019/7/30 的 nb178 版本, 語音辨識元件就多了一個 UseLegacy 選項, 預設為勾選, 表示採用前述的使用者介面。如果不勾選, 就會暗中開啟麥克風辨識語音, 以下就來看看如何使用。

以下是我的簡易測試程式

請記得加入語音辨識元件後取消勾選 UseLegacy 屬性。

在程式設計介面中, 當按下畫面上的 StartRecog 鈕後叫用辨識語音啟用語音辨識:

語音辨識元件會在辨識到內容時自動觸發 辨識完成 事件:

不過要注意的是, 不勾選 UseLegacy 時這個事件會在辨識到部分內容時就被觸發,因此實際得到完整內容前會觸發多次, 必須在程式中檢查部分 參數, 其值不為 時才是辨識告一段落。

如果要終止辨識, 就要叫用停止

要特別注意的是, 如果超過時間沒有辨識到語音, 未勾選 UseLegacy 時會產生編號 3806 的錯誤:

如果不處理, 就會結束語音辨識, 如果希望能夠持續辨識, 就要自行再叫用 辨識語音 重新啟用語音辨識功能。

利用這樣的方式, 就可以達到完全不用再觸碰螢幕, 就可以一直辨識, 即使中間沒有講話, 也不會中斷辨識程序了。

Top comments (0)