SpeechRecognition

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

SpeechRecognition 介面是 Web Speech API 中用於控制識別服務的介面;它還負責處理從識別服務傳送的 SpeechRecognitionEvent

注意: 在某些瀏覽器(如 Chrome)上,在網頁中使用語音識別涉及基於伺服器的識別引擎。您的音訊會被髮送到 Web 服務進行識別處理,因此它無法離線工作。

EventTarget SpeechRecognition

建構函式

SpeechRecognition()

建立一個新的 SpeechRecognition 物件。

例項屬性

SpeechRecognition 還繼承了其父介面 EventTarget 的屬性。

SpeechRecognition.lang

返回並設定當前 SpeechRecognition 的語言。如果未指定,則預設為 HTML lang 屬性值,或者如果該屬性也未設定,則為使用者代理的語言設定。

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> 元素的背景顏色設定為該顏色。

js
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

瀏覽器相容性

另見