SpeechSynthesis не может установить голос на устройствах iOS - PullRequest
0 голосов
/ 02 ноября 2018

Я использую реагирую, и вот некоторый код для TTS (текст в речь). Он отлично работает на Windows и MacOS и некоторых версиях iOS-устройств. Но для некоторых iOS-устройств настройка голоса просто не работает.

<a
    className="button"
    onClick={() => {
      var u = new SpeechSynthesisUtterance();
      var voices = speechSynthesis.getVoices();

      const voice = voices.filter(voice => {
        return voice.lang === "zh-CN";
      });
      u.voice = voice[0];
      u.lang = "zh-CN";
      u.text = "1234";
      speechSynthesis.speak(u);
    }}
>
    Speak!!
</a>


Вот что я получил от отладки. Если я использую getVoices (), я могу получить много голосов (включая те, которые мне нужны). Но установка свойства lang или свойства voice в Utterance просто не имеет никакого эффекта. И он всегда будет использовать системный голос по умолчанию.

Это какая-то ошибка в системе iOS? Если да, есть ли обходные пути? Как какие-то компоненты реагируют?

1 Ответ

0 голосов
/ 05 ноября 2018

Кажется, что эта проблема характерна для системы iOS 12. Пришлось переключиться на AWS Polly.

...