📅  最后修改于: 2023-12-03 15:15:33.888000             🧑  作者: Mango
HTML DOM(文档对象模型)提供了一组窗口语音合成属性,使您可以通过 JavaScript 与浏览器语音合成引擎进行交互。
window.speechSynthesis
window.speechSynthesis
属性返回一个 SpeechSynthesis
对象,该对象表示浏览器的语音合成引擎。
SpeechSynthesis
对象有许多属性,可以帮助您控制和设置语音合成的属性。下面是其中一些属性:
onvoiceschanged
: 访问 Web Speech API
时,当发现语音合成引擎的可用声音列表发生更改时,调用此事件处理程序。paused
:读取或设置语音合成是否已暂停。pending
:读取或设置是否正在等待语音合成。如果正在等待合成,则 pending
为 true
;否则为 false
。speaking
:读取或设置语音合成是否正在进行中。如果正在合成中,则值为 true
;否则为 false
。SpeechSynthesisUtterance
SpeechSynthesisUtterance
是一个全局构造函数,创建包含有关语音合成播放的信息的对象。
例如,以下代码创建一个包含要播放的字符串内容的 SpeechSynthesisUtterance
对象:
var msg = new SpeechSynthesisUtterance("Hello everyone!");
SpeechSynthesisUtterance
属性SpeechSynthesisUtterance
对象有许多属性,可以帮助您控制和设置语音合成的属性。下面是其中一些属性:
text
:要合成的文本内容。lang
:语音合成使用的语言。如果未指定,则使用默认设备语言。pitch
:用于语音合成的default语调。rate
:表示语音音调的默认语速。volume
:表示语音合成的音量大小。有两种方法可以通过 JavaScript 播放合成语音。
window.speechSynthesis.speak()
您可以通过识别要播放的 SpeechSynthesisUtterance
对象并将其作为参数传递给 window.speechSynthesis.speak()
方法,使语音合成引擎在运行时播放语音。
例如,以下代码段将会播放字符串 "Hello everyone!":
var msg = new SpeechSynthesisUtterance("Hello everyone!");
window.speechSynthesis.speak(msg);
SpeechSynthesisUtterance
的事件SpeechSynthesisUtterance
对象还有多个事件可以让您控制语音合成的播放。以下是其中一些事件:
onstart
:在语音合成开始播放之前触发。onend
:语音合成播放完成后触发。onpause
:在语音合成暂停时触发。onresume
:在语音合成恢复时触发。onerror
:在语音合成遇到错误时触发。例如,以下代码段将音量设置为 0.5,然后在语音合成结束时,输出 "Speech complete!":
var msg = new SpeechSynthesisUtterance("Hello everyone!");
msg.volume = 0.5;
msg.onend = function(e) {
console.log('Speech complete!');
};
window.speechSynthesis.speak(msg);
HTML DOM
提供了与浏览器的语音合成引擎进行交互的接口。通过使用 SpeechSynthesis
和 SpeechSynthesisUtterance
对象,您可以控制和设置语音合成的属性,包括语言,音调,音量和播放等。