最初のいくつかのコンテキスト:
ARM で実行されているオレンジ色のパイ (一種のラズベリー パイ 3) があるため、実際のクロムをインストールできません。
クロムで実行されている 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 時頃に再び機能します..... この問題は私を夢中にさせています。