首先是一些背景:
我有一个在 ARM 上运行的橙色派(类似于树莓派 3),所以我无法安装真正的 chrome。
我有一个在 chromium 上运行的 Node.js 应用程序,语音识别是客户端。除了晚上 8 点到凌晨 3 点之间,语音识别效果很好。该应用程序每天全天运行。
一些代码:
var init = function (sandBox) {
_sandbox = sandBox;
_recognition = new webkitSpeechRecognition();
// Are we processing a short phrase or performing continuous dictation?
_recognition.continuous = true;
// Do we require interim results in addition to the final results?
//_recognition.interimResults = true;
_recognition.lang = 'fr-FR';
// Kick off the Speech to Text recognition process
_recognition.start();
notify('start recording');
// Set up
_recognition.onstart = function (event) {
if (_deaf) {
return;
}
};
_recognition.onerror = function (event) {
// console.log("onerror", event);
/*
_recognition.stop();
setTimeout(function () {
_recognition.start();
}, 1000);
*/
};
// Process parsed result
_recognition.onresult = function (event) {
notify('display bottom', 'listen : '+event.results[event.results.length - 1][event.results[event.results.length - 1].length - 1].transcript );
if (_deaf) {
return;
}
if (+event.results[event.results.length - 1][event.results[event.results.length - 1].length - 1].confidence > 0.5) {
_sandbox.notifyServer('speakable', event.results[event.results.length - 1][event.results[event.results.length - 1].length - 1].transcript);
}
};
// Housekeeping after success or failed parsing
_recognition.onend = function () {
try {
_recognition.start();
} catch (e) {
//console.info(e);
// do nothing
}
};
/*
setInterval(function () {
try {
_recognition.stop();
setTimeout(function () {
_recognition.start();
}, 1000);
} catch (e) {
//console.info(e);
// do nothing
}
}, 5000);*/
};
错误 :
我收到网络错误。但这没有任何意义,网络运行良好。
问题: 为什么?说真的为什么它很好用,除非我真的想使用它?关闭浏览器并重新打开似乎没有帮助。凌晨 3 点左右它又开始工作了.....这个问题让我发疯了。