angular - Angular - 集成本机 Web Speech API 的问题
问题描述
我正在尝试在没有任何 3rd 方 ngx 库的情况下集成本机Web Speech API 。
我可以成功地将 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');
}
}
解决方案
您需要确保保持正确的大小写:它是SpeechRecognition()
大写的S
。
这应该是正确的说法:
let recognition = new window.SpeechRecognition();
推荐阅读
- amazon-web-services - AWS 账单和成本管理与 AWS 成本浏览器有什么区别?
- javascript - JavaScript 事件侦听器对单选按钮上的标签的作用不同
- javascript - 如何在 Django 模板中使用 localStorage 中的值?
- powerbi - 如何使用 DAX 创建滚动的 3 个月平均值
- xcode - 为什么我没有在编辑区域中获得堆栈跟踪与代码?
- android - 是否可以在 Android Studio 中以编程方式更改“layout_constraintTop_toBottomOf”?
- php - 比较字符串 PHP 的前 4 个字符
- bash - Shell脚本ssh登录并在远程执行命令
- c++ - 初始化一个 long double;打印不同的值
- arrays - 根据行重复 Numpy 数组可变次数