SpeechSynthesisUtterance
Базовая Широко доступная *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с сентября 2018 года.
* Некоторые части этой функции могут иметь разный уровень поддержки.
Интерфейс SpeechSynthesisUtterance из Web Speech API представляет собой запрос на озвучивание. Он содержит текст, который должна прочитать служба озвучивания, а также информацию о том, как его прочитать (например, язык, тембр и громкость).
Конструктор
SpeechSynthesisUtterance()-
Возвращает новый экземпляр объекта
SpeechSynthesisUtterance.
Свойства экземпляра
SpeechSynthesisUtterance также наследует свойства от своего родительского интерфейса, EventTarget.
SpeechSynthesisUtterance.lang-
Получает и устанавливает язык высказывания.
SpeechSynthesisUtterance.pitch-
Получает и устанавливает тембр, с которым будет произнесено высказывание.
SpeechSynthesisUtterance.rate-
Получает и устанавливает скорость произнесения высказывания.
SpeechSynthesisUtterance.text-
Получает и устанавливает текст, который будет синтезирован при озвучивании высказывания.
SpeechSynthesisUtterance.voice-
Получает и устанавливает голос, который будет использоваться для озвучивания высказывания.
SpeechSynthesisUtterance.volume-
Получает и устанавливает громкость, с которой будет произнесено высказывание.
События
Прислушивайтесь к этим событиям с помощью addEventListener() или назначив обработчик событий свойству oneventname этого интерфейса.
boundary-
Срабатывает, когда произносимое высказывание достигает границы слова или предложения. Также доступно через свойство
onboundary. end-
Срабатывает, когда высказывание закончено. Также доступно через свойство
onend. error-
Срабатывает, когда возникает ошибка, которая препятствует успешному озвучиванию высказывания. Также доступно через свойство
onerror mark-
Срабатывает, когда произносимое высказывание достигает именованного тега SSML "mark". Также доступно через свойство
onmark. pause-
Срабатывает, когда высказывание приостановлено в процессе озвучивания. Также доступно через свойство
onpause. resume-
Срабатывает, когда приостановленное высказывание возобновлено. Также доступно через свойство
onresume. start-
Срабатывает, когда высказывание начинает озвучиваться. Также доступно через свойство
onstart.
Примеры
В нашей демонстрации базового синтезатора речи Демонстрация синтезатора речи, мы сначала получаем ссылку на контроллер SpeechSynthesis, используя window.speechSynthesis. После определения необходимых переменных, мы получаем список доступных голосов, используя SpeechSynthesis.getVoices(), и заполняем им выпадающий список, чтобы пользователь мог выбрать голос.
Внутри обработчика inputForm.onsubmit мы останавливаем отправку формы с помощью preventDefault(), используем constructor для создания нового экземпляра высказывания, содержащего текст из текстового <input>, устанавливаем голос высказывания voice на выбранный в элементе <select> и запускаем озвучивание высказывания через метод SpeechSynthesis.speak().
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 (let i = 0; i < voices.length; i++) {
const option = document.createElement("option");
option.textContent = `${voices[i].name} (${voices[i].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 |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
SpeechSynthesisUtterance |
33 | 14 | 49 | 21 | 7 | 33 | 62 | Нет | 7 | 3.0 | Нет |
SpeechSynthesisUtterance |
33 | 14 | 49 | 21 | 7 | 33 | 62 | Нет | 7 | 3.0 | Нет |
boundary_event |
14 | 49 | 21 | 7 | 62 | Нет | 7 | 3.0 | Нет | ||
end_event |
33 | 14 | 49 | 21 | 7 | 33 | 62 | Нет | 7 | 3.0 | Нет |
error_event |
33 | 14 | 49 | 21 | 7 | 33 | 62 | Нет | 7 | 3.0 | Нет |
volume |
33 | 14 | 49 | 21 | 7 | 33 | 62 | Нет | 7 | 3.0 | Нет |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance