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
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 的浏览器中加载。