SpeechSynthesisUtterance
Baseline 广泛可用 *
SpeechSynthesisUtterance 接口是 Web Speech API 的一部分,用于表示一个语音请求。它包含了语音服务应读取的内容以及如何读取的信息(例如,语言、音高和音量)。
构造函数
SpeechSynthesisUtterance()-
返回一个新的
SpeechSynthesisUtterance对象实例。
实例属性
SpeechSynthesisUtterance 还继承了其父接口 EventTarget 的属性。
SpeechSynthesisUtterance.lang-
获取和设置语音的语言。
SpeechSynthesisUtterance.pitch-
获取和设置语音的音高。
SpeechSynthesisUtterance.rate-
获取和设置语音的语速。
SpeechSynthesisUtterance.text-
获取和设置语音合成时将要朗读的文本。
SpeechSynthesisUtterance.voice-
获取和设置用于朗读语音的语音。
SpeechSynthesisUtterance.volume-
获取和设置语音的音量。
事件
使用 addEventListener() 或将事件监听器分配给此接口的 oneventname 属性来监听这些事件。
示例
在我们提供的基本 语音合成器演示中,我们首先使用 window.speechSynthesis 获取 SpeechSynthesis 控制器的引用。在定义了一些必要的变量后,我们使用 SpeechSynthesis.getVoices() 获取可用语音列表,并用它们填充一个 select 菜单,以便用户可以选择他们想要的语音。
在 inputForm.onsubmit 处理程序中,我们使用 preventDefault() 阻止表单提交,使用 constructor 创建一个新的语音实例,其中包含来自文本 <input> 的文本,将语音的 voice 设置为 <select> 元素中选择的语音,并通过 SpeechSynthesis.speak() 方法开始朗读语音。
js
const synth = window.speechSynthesis;
const inputForm = document.querySelector("form");
const inputTxt = document.querySelector("input");
const voiceSelect = document.querySelector("select");
let voices;
function loadVoices() {
voices = synth.getVoices();
for (const [i, voice] of voices.entries()) {
const option = document.createElement("option");
option.textContent = `${voice.name} (${voice.lang})`;
option.value = i;
voiceSelect.appendChild(option);
}
}
// in Google Chrome the voices are not ready on page load
if ("onvoiceschanged" in synth) {
synth.onvoiceschanged = loadVoices;
} else {
loadVoices();
}
inputForm.onsubmit = (event) => {
event.preventDefault();
const utterThis = new SpeechSynthesisUtterance(inputTxt.value);
utterThis.voice = voices[voiceSelect.value];
synth.speak(utterThis);
inputTxt.blur();
};
规范
| 规范 |
|---|
| Web Speech API # speechsynthesisutterance |
浏览器兼容性
加载中…