Я пытаюсь интегрировать собственный API веб-речи без любая сторонняя библиотека ngx.
Я смог успешно интегрировать API в свой сервис. Распознавание голоса также работает и может генерировать текст из распознанного голоса. Но единственная проблема, с которой я столкнулся в терминале, есть ошибка -
TypeError: speechRecognition не является конструктором
Вот мой интерфейс для доступа к window
-
export interface IWindow extends Window {
webkitSpeechRecognition: any;
webkitSpeechGrammarList: any;
webkitSpeechRecognitionEvent: any;
SpeechRecognition: any;
SpeechGrammarList: any;
SpeechRecognitionEvent: any;
}
Вот моя служебная функция, которая запускается в конструкторе служб:
initializeNativeVoiceRecognition(){
let speechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
this.recognition = new speechRecognition();
this.recognition.lang = 'en-US';
this.recognition.interimResults = false;
this.recognition.maxAlternatives = 1;
}
Я получаю сообщение об ошибке терминала в следующей строке -
this.recognition = new speechRecognition();
Просто для справки, вот обратные вызовы API веб-речи, которые работают нормально -
initializeVoiceRecognitionCallback(){
this.recognition.onresult = (event) => {
var last = event.results.length - 1;
var queryText = event.results[last][0].transcript;
this.voiceText$.next(queryText);
}
this.recognition.onspeechend = () => {
this.voiceActiveSectionStatus$.next(true);
}
this.recognition.onnomatch = (event) => {
this.voiceActiveSectionStatus$.next(true);
this.voiceText$.next('Voice does not match');
}
this.recognition.onerror = (event) => {
this.voiceActiveSectionStatus$.next(true);
this.voiceText$.next('Error when recognizing voice');
}
}