Ошибка iOS13 Safari WebSpeechApi: SpeechSynthesisUtterance не будет использовать предоставленную локаль

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

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

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

       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';
       });
  }


person Stefan Norberg    schedule 14.01.2020    source источник


Ответы (1)


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

person Stefan Norberg    schedule 14.01.2020