Я использую реагирую, и вот некоторый код для 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? Если да, есть ли обходные пути? Как какие-то компоненты реагируют?