HTML5语音识别,等待用户回答

时间:2016-01-10 14:57:05

标签: javascript html5 speech-recognition

我正在玩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等到语音识别完成。像这样:

  1. Chrome要求进行麦克风访问
  2. 用户说了些什么
  3. 用户所说的内容完成了
  4. console.log以及后面的所有内容都将被执行。
  5. 我该怎么做? 谢谢!

1 个答案:

答案 0 :(得分:0)

Javascript编程是event-driven。代码不是要执行的语句序列,而只是对要处理的事件的描述和对它们的反应。

如果你想对识别的语音执行一些操作,你需要把它放到偶数处理程序中,在你的情况下:

?=

您可以访问处理程序函数中的变量并执行更复杂的操作。

网上有很多关于事件驱动编程的解释,但最完整的解释是第17章处理JavaScript: The Definitive Guide, 6th Edition的事件