我正在使用webkitSpeechRecognition。但当识别开始时,它会在1-2分钟不活动后停止。我正试着在它结束后再把它烧回去。当我执行start_transcript(语言)时,它一直在产生一千个console.log(“语音识别终止”);并且它不再识别。
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();
}任何帮助和建议都将非常感谢。
谢谢
发布于 2019-11-24 17:30:14
只是一些小小的遗漏。更新了您的代码,填补了那些缺失的空白,请在您的控制台中尝试此操作。另外,别忘了调用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:我也做了一个类似的项目,参考了卫斯博斯的javascript30,并将其与webpack混合在一起。如果你想参考它,请访问https://github.com/Mondal10/personal-voice-assistant
https://stackoverflow.com/questions/59013813
复制相似问题