简体   繁体   English

webkitSpeechRecognition 自动停止

[英]webkitSpeechRecognition automatically stops

I am using webkitSpeechRecognition.我正在使用 webkitSpeechRecognition。 But when recognition is initiated, it stops after 1-2 mins of inactivity.但是当识别开始时,它会在 1-2 分钟不活动后停止。 I am trying to firing it back after it is ended.我试图在它结束后将其击退。 When I execute start_transcript(language), it keeps producing a thousand of console.log("voice recognition terminated");当我执行 start_transcript(language) 时,它不断产生一千个 console.log("语音识别终止"); and it does not recongnize anymore.它不再识别了。

var final_transcript = '';
var recognizing = false;
var start_timestamp;
if (!('webkitSpeechRecognition' in window)) {
  upgrade();
} else {
  var recognition = new webkitSpeechRecognition();
  recognition.continuous = true;
  recognition.interimResults = true;
  recognition.onstart = function() {
    recognizing = true;
  };

  recognition.onend = function() {
    console.log("voice recognition terminated");
    recognition.start();
  };

function start_transcript(language) {
  if (recognizing) {
    recognition.stop();
    return;
  }
  final_transcript = '';
  var rec_lang = 'fr-FR';
    recognition.lang = rec_lang;
  recognition.start();
}

Any help and advice will be very appreciated.任何帮助和建议将不胜感激。

Thanks谢谢

Just some tiny missings here and there.只是这里和那里有一些微小的缺失。 Updated your code with filling those missing gaps,Try this in your console.用填补那些缺失的空白更新了你的代码,在你的控制台中试试这个。 Also don't forget to call start_transcript .也不要忘记调用start_transcript

 var final_transcript = ''; var recognizing = false; var start_timestamp; if (!('webkitSpeechRecognition' in window)) { upgrade(); } else { var recognition = new webkitSpeechRecognition(); recognition.continuous = true; recognition.interimResults = true; recognition.onstart = function() { recognizing = true; }; // need to have result as well recognition.onresult = function(e) { console.log(e.results); // Extracting the words from the result and printing in the console var transcript = [...e.results] .map(result => result[0]) .map(result => result.transcript) .join(''); console.log(transcript); }; recognition.onend = function() { console.log("voice recognition terminated"); recognition.start(); }; } // I guess you forgot closing the else block as well function start_transcript() { if (recognizing) { recognition.stop(); return; } final_transcript = ''; var rec_lang = 'fr-FR'; recognition.lang = rec_lang; recognition.start(); }

PS: Also I had made a similar kind of project by referring Wesbos's javascript30, and mixed it with webpack. PS:我也参考了 Wesbos 的 javascript30 做了一个类似的项目,并与 webpack 混合使用。 If you want to refer it then please visit https://github.com/Mondal10/personal-voice-assistant如果您想参考它,请访问https://github.com/Mondal10/personal-voice-assistant

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM