Web Speech API(2)—— SpeechSynthesis

Web Speech API(2)—— SpeechSynthesis

码农世界 2024-05-27 前端 74 次浏览 0个评论

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

Speech synthesis

语音合成 (也被称作是文本转为语音,英语简写是 tts) 包括接收 app 中需要语音合成的文本,再在设备麦克风播放出来这两个过程。

Web Speech API 对此有一个主要控制接口——SpeechSynthesis ,外加一些处理如何表示要被合成的文本 (也被称为 utterances),用什么声音来播出 utterances 等工作的相关接口。

语音合成

1.SpeechSynthesis

语音合成服务的控制器接口,可用于获取设备上可用的合成语音,开始、暂停以及其他相关命令的信息。

属性

SpeechSynthesis.paused 只读

当SpeechSynthesis 处于暂停状态时, Boolean 值返回 true 。

SpeechSynthesis.pending 只读

当语音播放队列到目前为止保持没有说完的语音时, Boolean 值返回 true 。

SpeechSynthesis.speaking 只读

当语音谈话正在进行的时候,即使SpeechSynthesis处于暂停状态, Boolean 返回 true 。

事件操作

SpeechSynthesis.onvoiceschanged

当由SpeechSynthesis.getVoices()方法返回的SpeechSynthesisVoice列表改变时触发。

方法

SpeechSynthesis.cancel()

移除所有语音谈话队列中的谈话。

SpeechSynthesis.getVoices()

返回当前设备所有可用声音的 SpeechSynthesisVoice列表。

SpeechSynthesis.pause()

把 SpeechSynthesis 对象置为暂停状态。

SpeechSynthesis.resume()

把 SpeechSynthesis 对象置为一个非暂停状态:如果已经暂停了则继续。

SpeechSynthesis.speak()

添加一个 utterance 到语音谈话队列;它将会在其他语音谈话播放完之后播放。

2.SpeechSynthesisErrorEvent

包含了在发音服务处理 SpeechSynthesisUtterance 对象过程中的信息及报错信息。

3.SpeechSynthesisEvent

包含了经由发音服务处理过的 SpeechSynthesisUtterance 对象当前状态的信息。

4.SpeechSynthesisUtterance

表示一次发音请求。其中包含了将由语音服务朗读的内容,以及如何朗读它(例如:语种、音高、音量)。

5.SpeechSynthesisVoice

表示系统提供的一个声音。每个 SpeechSynthesisVoice 都有与之相关的发音服务,包括了语种、名称 和 URI 等信息。

Window.speechSynthesis

由规格文档指定的,被称为 SpeechSynthesisGetter 的 [NoInterfaceObject] 接口的一部分,在 Window 对象中实现,speechSynthesis 属性可用于访问 SpeechSynthesis 控制器,从而获取语音合成功能的入口。

浏览器兼容性

目前主流浏览器版本(截止2024-5-21)

Firefox (126.0)

Chrome(125.0.6422.61)

Safari(15.6.1)




转载请注明来自码农世界,本文标题:《Web Speech API(2)—— SpeechSynthesis》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,74人围观)参与讨论

还没有评论,来说两句吧...

Top