SpeechSynthesis无法在iOS设备上设置语音

时间:2018-11-02 08:18:25

标签: ios reactjs text-to-speech speech-synthesis

我正在使用react,这是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(),我会得到很多声音(包括我想要的声音)。但是在Utterance中设置lang属性或voice属性只是没有任何效果。并且它将始终使用系统默认的语音。

这是iOS系统上的某种错误吗?如果是这样,是否有任何解决方法?像某些组件上的反应?

1 个答案:

答案 0 :(得分:0)

似乎此问题特定于iOS 12系统。不得不切换到AWS Polly。