Web Speech API

Web Speech API 使您能夠將語音資料整合到 Web 應用中。Web Speech API 包含兩個部分:SpeechSynthesis(文字轉語音),和 SpeechRecognition(非同步語音識別)。

Web 語音概念和用法

Web Speech API 使 Web 應用能夠處理語音資料。它有兩個組成部分:

  • 語音識別透過 SpeechRecognition 介面訪問,該介面提供了從音訊源識別語音上下文的能力,並允許您的應用程式做出適當響應。通常,您會使用該介面的建構函式建立一個新的 SpeechRecognition 物件。此物件提供了一系列事件處理程式,用於檢測何時有來自裝置麥克風(或音訊軌道)的語音輸入。您可以指定語音識別是使用使用者平臺提供的服務(預設)還是在瀏覽器本地進行。
  • 語音合成透過 SpeechSynthesis 介面訪問,這是一個文字轉語音元件,允許程式讀出其文字內容(通常透過裝置的預設語音合成器)。不同的語音型別由 SpeechSynthesisVoice 物件表示,您希望被朗讀的文字的不同部分由 SpeechSynthesisUtterance 物件表示。您可以透過將它們傳遞給 SpeechSynthesis.speak() 方法來讓它們被朗讀。

有關使用這些功能的更多詳細資訊,請參閱 使用 Web Speech API

Web Speech API 介面

語音識別

SpeechRecognition

識別服務的控制器介面;它還處理從識別服務傳送的 SpeechRecognitionEvent

SpeechRecognitionAlternative

表示語音識別服務識別出的單個單詞。

SpeechRecognitionErrorEvent

表示識別服務中的錯誤訊息。

SpeechRecognitionEvent

用於 resultnomatch 事件的物件,包含與臨時或最終語音識別結果相關的所有資料。

SpeechRecognitionPhrase

表示可以傳遞給語音識別引擎以用於上下文偏見的短語。

SpeechRecognitionResult

表示單個識別匹配,其中可能包含多個 SpeechRecognitionAlternative 物件。

SpeechRecognitionResultList

表示一個 SpeechRecognitionResult 物件列表,或者在 continuous 模式下捕獲結果時表示單個物件。

語音合成

SpeechSynthesis

語音服務的控制器介面;可用於檢索有關裝置上可用合成語音的資訊、啟動和暫停語音以及其他命令。

SpeechSynthesisErrorEvent

包含在語音服務中處理 SpeechSynthesisUtterance 物件時發生的任何錯誤的有關資訊。

SpeechSynthesisEvent

包含有關在語音服務中已處理的 SpeechSynthesisUtterance 物件當前狀態的資訊。

SpeechSynthesisUtterance

表示一個語音請求。它包含語音服務應朗讀的內容以及如何朗讀的資訊(例如,語言、音高和音量)。

SpeechSynthesisVoice

表示系統支援的語音。每個 SpeechSynthesisVoice 都有其自身的相對語音服務,包括有關語言、名稱和 URI 的資訊。

Window.speechSynthesis

指定為名為 SpeechSynthesisGetter[NoInterfaceObject] 介面的一部分,並由 Window 物件實現。speechSynthesis 屬性提供了對 SpeechSynthesis 控制器的訪問,因此是語音合成功能的入口點。

已棄用的介面

語法(grammar)的概念已從 Web Speech API 中移除。規範中相關的特性仍然保留,並且出於向後相容性,仍被支援的瀏覽器識別,但它們對語音識別服務沒有影響。

SpeechGrammar 已棄用

表示供識別服務識別的單詞或單詞模式。

SpeechGrammarList 已棄用

表示一個 SpeechGrammar 物件列表。

錯誤

有關 Speech API 報告的錯誤(例如 "language-not-supported""language-unavailable")的資訊,請參閱以下文件:

安全注意事項

對 Web Speech API 的裝置上語音識別功能的訪問由 on-device-speech-recognition Permissions-Policy 指令控制。

具體而言,如果已定義的策略阻止使用,任何嘗試呼叫 API 的 SpeechRecognition.available()SpeechRecognition.install() 方法都將失敗。

示例

我們的 Web Speech API 示例 展示了語音識別和合成。

規範

規範
Web Speech API
# speechreco-section
Web Speech API
# tts-section

瀏覽器相容性

api.SpeechRecognition

api.SpeechSynthesis

另見