我正在玩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等到语音识别完成。像这样:
我该怎么做? 谢谢!
答案 0 :(得分:0)
Javascript编程是event-driven。代码不是要执行的语句序列,而只是对要处理的事件的描述和对它们的反应。
如果你想对识别的语音执行一些操作,你需要把它放到偶数处理程序中,在你的情况下:
?=
您可以访问处理程序函数中的变量并执行更复杂的操作。
网上有很多关于事件驱动编程的解释,但最完整的解释是第17章处理JavaScript: The Definitive Guide, 6th Edition的事件