我在玩HTML5语音识别。
目前,我有这样一个功能:
doSomething() {
listen("name");
console.log("done");
}
“侦听”功能目前的工作方式如下:
recognition = new webkitSpeechRecognition();
recognition.lang = "de-DE";
recognition.continuous = false;
//recognition.interimResults = true;
recognition.onresult = function(event) {
result = event.results[event.resultIndex];
confidence = result[0].confidence;
result = result[0].transcript.trim();
};
//TODO: remove old results, work with results
recognition.start();
正在发生的事情是,Chrome要求麦克风访问并直接执行console.log。我想让console.log等到语音识别完成。如下所示:
我怎么能这么做?谢谢!
发布于 2016-01-10 20:40:27
Javascript编程是事件驱动。代码不是要执行的语句序列,而是要处理的事件和对它们的反应的描述。
如果您想对已识别的语音执行某些操作,则需要将其放入偶数处理程序中,在您的示例中:
recognition.onresult = function(event) {
result = event.results[event.resultIndex];
confidence = result[0].confidence;
result = result[0].transcript.trim();
console.log("done")
};
您可以访问处理程序函数中的变量,并执行更复杂的操作。
对于web上的事件驱动编程有很多解释,但最完整的解释是第17章处理JavaScript:权威指南,第6版的事件。
https://stackoverflow.com/questions/34706830
复制相似问题