Angular (Text-to-Speech) не может читать текст на IPhone - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть 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 )

Может быть, у кого-нибудь есть предложения?

...