Кажется, в 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';
});
}