我正在使用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/