Попытка использовать речевой синтез в Angular2 с интерфейсом IWindow

Я пытаюсь использовать речевой синтез http://blog.teamtreehouse.com/getting-started-speech-synchronous-api

Сначала я расширил окно интерфейсом:

окно.интерфейс.тс

export interface IWindow extends Window {
  webkitSpeechRecognition: any;
  speechSynthesis: any;
}

Затем я сделал оконный сервис:

окно.service.ts

import { Injectable } from '@angular/core';
import { IWindow } from '../interfaces/window-interface';

function _window() : IWindow {
   return window;
}
@Injectable()
export class WindowService {
   get nativeWindow() : any {
      return _window();
   }
}

Теперь в компоненте я пытаюсь его реализовать.... безуспешно..

app.component

import { Component, OnInit, ViewChild } from '@angular/core';
import { WindowService } from '../../providers/window.service';
@Component({
    selector: 'app-root',
    templateUrl: './app.component.html',
    styleUrls: ['.app.component.scss']
})
export class AppComponent implements OnInit {
   constructor(private _router: Router, private _window: WindowService ) { }

   sayIt() {
      var utterance = new SpeechSynthesisUtterance('Hello World');
      this._window.speechSynthesis.speak(utterance);
   }
}

Ошибка ТС:

Cannot find name 'SpeechSynthesisUtterance'.)
Property 'speechSynthesis' does not exist on type 'WindowService'.)

Я также использовал эту статью о распознавании речи в качестве справки: Angular2: Web Speech API - распознавание голоса

Все еще возникает ошибка - свойство «speechSynthesis» не существует для типа «Window»


person Craig O. Curtis    schedule 15.03.2017    source источник
comment
Все еще получаю сообщение об ошибке: свойство «speechSynthesis» не существует для типа «Window»   -  person Craig O. Curtis    schedule 02.04.2017
comment
У меня та же ошибка. Не удается найти имя «SpeechSynthesisUtterance». Проблема в TypeScript, я решил ее с помощью сценария Javascript в Angular. Посмотрите на это   -  person user8232093    schedule 29.06.2017


Ответы (1)


Это можно сделать, как показано ниже

 var msg = new SpeechSynthesisUtterance("hello world");
 (<any>window).speechSynthesis.speak(msg)

Получил помощь по ссылке

Распознавание речи и синтез речи в TypeScript

person BJ5    schedule 15.10.2017