10

Dopo aver letto la documentazione di webkitSpeechRecognition (riconoscimento vocale in Javascript), ho provato a implementarlo in Angular 2.Angular2: Web Speech API - Riconoscimento vocale

Ma quando ho fatto questo:

const recognition = new webkitSpeechRecognition(); 

dattiloscritto dire questo errore:

[ts] Cannot find name 'webkitSpeechRecognition'. any 

E se cerco di estrarre webkitSpeechRecognition da finestra:

if ('webkitSpeechRecognition' in window) { 

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

    const { webkitSpeechRecognition } = window; // => TypeScript Error 
    const recognition = new webkitSpeechRecognition(); 
} 

Se Commento le ultime due righe che lo console.log è stampato, entra nella condizione! webkitSpeechRecognition esiste all'interno della finestra !! Ma se non commentare le ultime due righe l'errore tipografico ora è questo:

[ts] Type 'Window' has no property 'webkitSpeechRecognition' and no string index signature. 
const webkitSpeechRecognition: any 

Come si crea un nuovo riconoscimento angolare 2? Qualcuno l'ha provato?

risposta

15

Infine ho risolto la creazione di un'interfaccia !!

export interface IWindow extends Window { 
    webkitSpeechRecognition: any; 
} 

E:

const {webkitSpeechRecognition} : IWindow = <IWindow>window; 
const recognition = new webkitSpeechRecognition(); 
+1

Questo mi ha aiutato molto, grazie. –

+0

Ricevo un errore durante l'esportazione dell'interfaccia: la finestra nell'interfaccia non riesce a trovare Windo –

+0

Hai una demo funzionante? O almeno esempi di interfaccia e file di componenti? –

0

è possibile risolvere il problema

const speechRecognition = Window['webkitSpeechRecognition']; 

o se si sta utilizzando jQuery

const sr = $(window).get(0).webkitSpeechRecognition; 
Problemi correlati