如何正确停止和重新启动网络语音api?

com*_*lez 6 webkitspeechrecognition

每次演讲后是否需要创建新的 SpeechRecognition 实例?

var recognition = new SpeechRecognition();
recognition.start();
Run Code Online (Sandbox Code Playgroud)

或者只是 stop() 并再次调用 start() 函数?

recognition.stop();
recognition.start();
Run Code Online (Sandbox Code Playgroud)

Isa*_*Pak 4

只需 1 个实例即可与 SpeechRecognition 对象交互。

您可以使用start()启动侦听器。您可以使用stop()abort()停止侦听器。

abort() 方法与 stop 方法略有不同:

Web Speech API 的 abort() 方法会停止语音识别服务侦听传入的音频,并且不会尝试返回 SpeechRecognitionResult。

这是直接来自文档的示例:

var recognition = new SpeechRecognition();
var speechRecognitionList = new SpeechGrammarList();
speechRecognitionList.addFromString(grammar, 1);
recognition.grammars = speechRecognitionList;

var diagnostic = document.querySelector('.output');
var bg = document.querySelector('html');

document.body.onclick = function() {
  recognition.start();
  console.log('Ready to receive a color command.');
}

abortBtn.onclick = function() {
  recognition.abort();
  console.log('Speech recognition aborted.');
}

recognition.onspeechend = function() {
  recognition.stop();
  console.log('Speech recognition has stopped.');
}
Run Code Online (Sandbox Code Playgroud)

从语音识别文档中了解更多信息。