У меня есть веб-приложение speech.synthesis, которое работает хорошо, но я хочу изменить текст на мужской голос и наоборот. Он отлично работает на настольных компьютерах Chrome и Mac , но я не могу заставить его работать на мобильных устройствах iOS (iPhone 11.3.1), как на iphone, так и на ipad.
Вот соответствующий бит (реакция):
createSpeech(text) {
let speech = new SpeechSynthesisUtterance(text);
let gender = this.state.gender;
speech.volume = 1;
speech.rate = 1;
speech.pitch = 1;
speech.lang = 'en-US';
speech.voice = voices[gender];
speech.voiceURI = voices[gender].voiceURI;
return speech;
}
Голоса загружаются (один мужчина и одна женщина) в переменную, называемую голосами. Это работает. Затем указанный бит запускается в каждом предложении.
Опять же, это прекрасно работает на настольных компьютерах Chrome и Mac, которые я тестировал . Однако на моем iPhone я всегда получаю голос по умолчанию, установленный на самом телефоне.
Странно то, что я могу переключиться на другой язык, отличный от английского, скажем на итальянский или испанский, и получить правильный голос, но английский всегда играет только как внутренний голос по умолчанию.
Кто-нибудь знает, ПОЧЕМУ это происходит? Это ошибка? Я что-то пропустил? Кто-нибудь получил iphone, чтобы получить другой голос на английском языке, кроме одного набора?