Я пытался использовать синтез речи, предоставляемый Web Speech API. Ни один из примеров, которые я нашел в Интернете, не работал, за исключением случайного выбора голосов. Я понял, что работали только те голоса, которые были предоставлены Google, а не локальные голоса OSX. Я думаю, что есть какое-то разрешение OSX, которое мне нужно включить, чтобы браузер мог использовать эти голоса. Вот мой код:
let utterance = new SpeechSynthesisUtterance();
let voices = [];
let isLoaded = false;
window.speechSynthesis.onvoiceschanged = () => {
if (!isLoaded) {
voices = window.speechSynthesis.getVoices();
isLoaded = true;
console.log('Voices loaded!', voices);
utterance.voice = voices[50]; // Set your voice by index here
}
};
const setup = () => {
const button = document.getElementById('button');
button.addEventListener('click', e => {
if (isLoaded) {
synth.cancel();
utterance.text = 'Hello World';
utterance.volume = 1;
utterance.rate = 1;
utterance.pitch = 1;
utterance.lang = 'en-US';
console.log(utterance);
synth.speak(utterance);
}
});
};