Web Speech API - не работают локальные голоса - Ma c OSX - PullRequest
0 голосов
/ 05 марта 2020

Я пытался использовать синтез речи, предоставляемый 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);
    }
  });
};
...