Angular2:Web Speech API - 语音识别

Ara*_*oca 13 javascript voice-recognition webspeech-api typescript1.8 angular

在阅读了webkitSpeechRecognition(Javascript中的语音识别)的文档后,我尝试在Angular 2中实现它.

但是当我这样做时:

const recognition = new webkitSpeechRecognition();
Run Code Online (Sandbox Code Playgroud)

TypeScript说这个错误:

[ts] Cannot find name 'webkitSpeechRecognition'. any
Run Code Online (Sandbox Code Playgroud)

如果我尝试从窗口中提取webkitSpeechRecognition:

if ('webkitSpeechRecognition' in window) {

    console.log("Enters inside the condition"); // => It's printing

    const { webkitSpeechRecognition } = window; // => TypeScript Error
    const recognition = new webkitSpeechRecognition();
}
Run Code Online (Sandbox Code Playgroud)

如果我评论console.log打印的最后两行,请进入条件!webkitSpeechRecognition存在于窗口内!但是如果没有注释最后两行,那么TypeScript错误就是这样:

[ts] Type 'Window' has no property 'webkitSpeechRecognition' and no string index signature.
const webkitSpeechRecognition: any
Run Code Online (Sandbox Code Playgroud)

如何在Angular 2中创建新的识别?有人试过吗?

Ara*_*oca 21

最后我解决了创建界面 !!

export interface IWindow extends Window {
  webkitSpeechRecognition: any;
}
Run Code Online (Sandbox Code Playgroud)

和:

const {webkitSpeechRecognition} : IWindow = <IWindow>window;
const recognition = new webkitSpeechRecognition();
Run Code Online (Sandbox Code Playgroud)

  • 尝试直接执行以下操作:`const {webkitSpeechRecognition} =(任意窗口) (2认同)