У меня есть Angular приложение, в котором я использую технологию преобразования текста в речь (отсюда https://github.com/tom-s/speak-tts). Я вызываю инициализацию речи в родительском конструкторе, но голос отсутствует.
constructor() {
this.initSpeechSyntesis();
}
protected initSpeechSyntesis() {
Speech.init({
'onVoicesLoaded': (data) => {
Speech.speak({
text: this.text,
onEnd: (e) => {
alert('speaking is finished');
},
});
}
});
}
В html шаблоне у меня есть кнопка , которая читает какой-то текст. Самое смешное, что голос звучит, если я нажимаю на кнопку.Я решил вызвать его после нажатия кнопки.
<button class="btn" (click)="sayText('Hi, Safari!')">Say 'Hi, Safari!'</button>
Я получаю его (кнопку) по имени класса в методе ngOnInit () и пытаюсь вызвать событие ' click 'на нем.
ngOnInit() {
const btn = this.elRef.nativeElement.querySelector('.btn');
btn.click();
}
После нажатия я вижу предупреждение, но не слышу звук.
private sayText(text) {
this.speakResponse(text);
alert(text);
}
Кодмой говорит метод:
protected speakResponse(text: string) {
Speech.speak({
text: text,
onError: (e) => {
console.log('The error occurred while speech syntesis.' + e.message);
}
});
}
Отлично работает в Android ( Chrome ), Linux ( Chrome ) и iMac ( Safari ). Но я не могу прочитать текст на IPhone ( Safari, Chrome )
Может быть, у кого-нибудь есть предложения?