使用annyang.js做语音识别时SpeechKITT.displayRecognizedSentence不是函数如何解决
问题解决方法
报错根因
你调用的SpeechKITT.displayRecognizedSentence是SpeechKITT早期测试版本的API,当前你引入的v1.0.0正式版已经废弃该方法,替换为功能完全一致的SpeechKITT.setRecognizedTextVisible(),入参规则不变,传true表示显示识别到的语句,传false表示隐藏。
修复方案
- 把代码中
SpeechKITT.displayRecognizedSentence(true);这一行替换为SpeechKITT.setRecognizedTextVisible(true);即可,其余配置无需改动,该报错和annyang库的引入方式无关 - 如果替换API后仍有同类报错,检查资源引入顺序,确保先加载annyang、再加载SpeechKITT,所有依赖库加载完成后再执行业务逻辑
修正后完整代码
var commands = { 'hello': function() { alert('Hello world!'); } }; // 给annyang添加指令 annyang.addCommands(commands); // 配置KITT使用annyang作为语音识别底层 SpeechKITT.annyang(); // 配置KITT的样式文件 SpeechKITT.setStylesheet('https://cdnjs.cloudflare.com/ajax/libs/SpeechKITT/1.0.0/themes/flat.css'); SpeechKITT.setInstructionsText('可以尝试以下指令…'); SpeechKITT.setSampleCommands(['说你好、Ok google等']); // 替换为正式版支持的显示识别结果方法 SpeechKITT.setRecognizedTextVisible(true); // 配置语音识别启动回调 SpeechKITT.setStartCommand(function() { console.info('语音识别已启动 ______________________________'); annyang.start(); }); // 配置语音识别终止回调 SpeechKITT.setAbortCommand(function() { console.info('正在停止识别 ............................'); annyang.abort(); }); // 渲染KITT交互界面 SpeechKITT.vroom();
内容的提问来源于stack exchange,提问作者ALEX1A
相关产品推荐
相关产品推荐

