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

另见