Web Speech API

**Web Speech API** 使你能够将语音数据整合到 Web 应用程序中。Web Speech API 包含两个部分:SpeechSynthesis(文本转语音)和SpeechRecognition(异步语音识别)。

Web 语音概念和用法

Web Speech API 使 Web 应用程序能够处理语音数据。此 API 包含两个组件

  • 语音识别通过SpeechRecognition接口访问,该接口提供从音频输入(通常通过设备的默认语音识别服务)识别语音上下文并做出相应反应的能力。通常,你将使用接口的构造函数创建一个新的SpeechRecognition对象,该对象具有一些可用于检测何时通过设备的麦克风输入语音的事件处理程序。SpeechGrammar接口表示你的应用程序应该识别的特定语法集的容器。语法使用JSpeech 语法格式(**JSGF**)定义。
  • 语音合成通过SpeechSynthesis接口访问,这是一个文本转语音组件,允许程序朗读其文本内容(通常通过设备的默认语音合成器)。不同的语音类型由SpeechSynthesisVoice对象表示,而你希望朗读的文本的不同部分由SpeechSynthesisUtterance对象表示。你可以通过将它们传递给SpeechSynthesis.speak()方法来朗读它们。

有关使用这些功能的更多详细信息,请参阅使用 Web Speech API

Web Speech API 接口

语音识别

SpeechRecognition

识别服务的控制器接口;它还处理从识别服务发送的SpeechRecognitionEvent

SpeechRecognitionAlternative

表示语音识别服务已识别的单个单词。

SpeechRecognitionErrorEvent

表示识别服务的错误消息。

SpeechRecognitionEvent

用于resultnomatch事件的事件对象,包含与临时或最终语音识别结果关联的所有数据。

SpeechGrammar

我们希望识别服务识别的单词或单词模式。

SpeechGrammarList

表示SpeechGrammar对象的列表。

SpeechRecognitionResult

表示单个识别匹配,它可能包含多个SpeechRecognitionAlternative对象。

SpeechRecognitionResultList

表示SpeechRecognitionResult对象的列表,或者如果在continuous模式下捕获结果,则表示单个结果。

语音合成

SpeechSynthesis

语音服务的控制器接口;它可用于检索有关设备上可用的合成语音的信息、启动和暂停语音以及其他命令。

SpeechSynthesisErrorEvent

包含有关在语音服务中处理SpeechSynthesisUtterance对象时发生的任何错误的信息。

SpeechSynthesisEvent

包含有关已在语音服务中处理的SpeechSynthesisUtterance对象的当前状态的信息。

SpeechSynthesisUtterance

表示语音请求。它包含语音服务应读取的内容以及有关如何读取它的信息(例如语言、音调和音量)。

SpeechSynthesisVoice

表示系统支持的语音。每个SpeechSynthesisVoice都有自己的相对语音服务,包括有关语言、名称和 URI 的信息。

Window.speechSynthesis

指定为名为SpeechSynthesisGetter[NoInterfaceObject]接口的一部分,并由Window对象实现,speechSynthesis属性提供对SpeechSynthesis控制器的访问,因此也是语音合成功能的入口点。

错误

有关 Speech API 报告的错误(例如,“language-not-supported”和“language-unavailable”)的信息,请参阅以下文档

示例

GitHub 上的Web Speech API 示例包含演示以说明语音识别和合成。

规范

规范
Web Speech API
# speechreco-section
Web Speech API
# tts-section

浏览器兼容性

api.SpeechRecognition

BCD 表格仅在启用 JavaScript 的浏览器中加载。

api.SpeechSynthesis

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅