我正在使用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系统上的某种错误吗?如果是这样,是否有任何解决方法?像某种组件上的反应?

最佳答案

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

关于ios - SpeechSynthesis无法在iOS设备上设置语音,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53114919/

10-10 00:50