iOS13 Safari WebSpeechApi Ошибка: SpeechSynthesisUtterance не будет использовать предоставленную локаль - PullRequest
2 голосов
/ 14 января 2020

Кажется, есть ошибка в iOS 13 (Safari и WkWebView), из-за которой iOS использует голос языка устройства и не находит подходящий голос, взглянув на "язык", предоставленный в SpeechSynthesisUtterance.

Я решил эту проблему самостоятельно, настроив подходящий голос.

Это не требуется в других браузерах / платформах (например, macOS Safari, iOS <13, Chrome et c.) </p>

       this._getUtteranceRate().then((rate) => {
          let utterance = new SpeechSynthesisUtterance(words);
          utterance.rate = rate;
          utterance.lang = 'sv-SE';
          utterance.voice = this.voice; //IOS13 fix
          window.speechSynthesis.speak(utterance);
        });


       window.speechSynthesis.onvoiceschanged = () => {
         this.setVoice();
       }

       setVoice() {
            this.voice = window.speechSynthesis.getVoices().find((voice) => {
              return voice.lang === 'sv-SE';
       });
  }

1 Ответ

0 голосов
/ 14 января 2020

Кажется, нужно явно установить голос в SpeechSynthesisUtterance для iOS13, так как локаль не используется для поиска голоса.

...