SpeechRecognition
SpeechRecognition 介面是 Web Speech API 中用於控制識別服務的介面;它還負責處理從識別服務傳送的 SpeechRecognitionEvent。
注意: 在某些瀏覽器(如 Chrome)上,在網頁中使用語音識別涉及基於伺服器的識別引擎。您的音訊會被髮送到 Web 服務進行識別處理,因此它無法離線工作。
建構函式
SpeechRecognition()-
建立一個新的
SpeechRecognition物件。
例項屬性
SpeechRecognition 還繼承了其父介面 EventTarget 的屬性。
SpeechRecognition.lang-
返回並設定當前
SpeechRecognition的語言。如果未指定,則預設為 HTMLlang屬性值,或者如果該屬性也未設定,則為使用者代理的語言設定。 SpeechRecognition.continuous-
控制是為每次識別返回連續的結果,還是僅返回單個結果。預設為單個結果(
false)。 SpeechRecognition.interimResults-
控制是否返回中間結果(
true)或不返回(false)。中間結果是指尚未確定的結果(例如,SpeechRecognitionResult.isFinal屬性為false)。 SpeechRecognition.maxAlternatives-
設定每個結果提供的
SpeechRecognitionAlternative的最大數量。預設值為 1。 SpeechRecognition.phrases實驗性-
設定一個
SpeechRecognitionPhrase物件陣列,用於 上下文偏置。 SpeechRecognition.processLocally實驗性-
指定語音識別是否必須在使用者裝置上本地進行。
已廢棄的屬性
語法(grammar)的概念已從 Web Speech API 中移除。相關的特性仍然保留在規範中,並且仍然被支援的瀏覽器識別以實現向後相容,但它們對語音識別服務沒有影響。
SpeechRecognition.grammars-
返回並設定一個
SpeechGrammar物件集合,這些物件代表當前SpeechRecognition理解的語法。
靜態方法
SpeechRecognition.available()實驗性-
檢查指定的語言是否可用於語音識別。
SpeechRecognition.install()實驗性-
安裝指定語言的本地語音識別所需的語言包。
例項方法
SpeechRecognition 還繼承了其父介面 EventTarget 的方法。
SpeechRecognition.abort()-
停止語音識別服務監聽傳入音訊,並且不嘗試返回
SpeechRecognitionResult。 SpeechRecognition.start()-
啟動語音識別服務以監聽傳入音訊(來自麥克風或音訊軌道)並返回識別結果。
SpeechRecognition.stop()-
停止語音識別服務監聽傳入音訊,並嘗試基於迄今為止捕獲的結果返回
SpeechRecognitionResult。
事件
使用 addEventListener() 或透過將事件監聽器分配給此介面的 oneventname 屬性來監聽這些事件。
audiostart-
當用戶代理開始捕獲音訊時觸發。
audioend-
當用戶代理完成捕獲音訊時觸發。
end-
當語音識別服務斷開連線時觸發。
error-
當發生語音識別錯誤時觸發。
nomatch-
當語音識別服務返回一個最終結果,但沒有顯著的識別內容時觸發。這可能涉及一定程度的識別,但未達到或超過
confidence閾值。 result-
當語音識別服務返回一個結果時觸發——一個單詞或短語已被積極識別,並且已將此資訊傳達給應用程式。
soundstart-
當檢測到任何聲音(無論是否可識別為語音)時觸發。
soundend-
當檢測到聲音(無論是否可識別為語音)停止時觸發。
speechstart-
當檢測到被語音識別服務識別為語音的聲音時觸發。
speechend-
當被語音識別服務識別的語音停止被檢測到時觸發。
start-
當語音識別服務開始監聽要識別的音訊時觸發。
示例
在我們 Speech color changer 的示例中,我們使用 SpeechRecognition() 建構函式建立了一個新的 SpeechRecognition 物件例項。
在定義了一些其他值之後,我們將識別服務設定為在點選按鈕時啟動(參見 SpeechRecognition.start())。當一個結果被成功識別後,會觸發 result 事件,我們從事件物件中提取所說的顏色,然後將 <html> 元素的背景顏色設定為該顏色。
const recognition = new SpeechRecognition();
recognition.continuous = false;
recognition.lang = "en-US";
recognition.interimResults = false;
recognition.maxAlternatives = 1;
const diagnostic = document.querySelector(".output");
const bg = document.querySelector("html");
const startBtn = document.querySelector("button");
startBtn.onclick = () => {
recognition.start();
console.log("Ready to receive a color command.");
};
recognition.onresult = (event) => {
const color = event.results[0][0].transcript;
diagnostic.textContent = `Result received: ${color}`;
bg.style.backgroundColor = color;
};
規範
| 規範 |
|---|
| Web Speech API # speechreco-section |
瀏覽器相容性
載入中…