diff options
author | matthewsotoudeh <matthewsot@outlook.com> | 2017-02-05 12:56:51 -0800 |
---|---|---|
committer | matthewsotoudeh <matthewsot@outlook.com> | 2017-02-05 12:56:51 -0800 |
commit | 68b6f6ff265033e904e80450a9377fd30edca4a3 (patch) | |
tree | ad473dd778355f6af75cc01404acb958b2d8db5e | |
parent | df15aa053e5bf3e4f67c7612cf475e0ddcf854d7 (diff) |
better priming
-rw-r--r-- | content/scripts/speech-rec.js | 14 | ||||
-rw-r--r-- | ps/sr-abstraction.js | 18 |
2 files changed, 20 insertions, 12 deletions
diff --git a/content/scripts/speech-rec.js b/content/scripts/speech-rec.js index 23e6a53..f752c54 100644 --- a/content/scripts/speech-rec.js +++ b/content/scripts/speech-rec.js @@ -14,8 +14,14 @@ speechRecognizer.finalHypothesisCallback = function (hyp) { //Prime the speech recognition with ~0.5s of previous data setInterval(function () { if (window.recognizingSpeech) return; - try { - speechRecognizer.stopRecognizing(true); + if (!webkitSpeechRecognition) { + speechRecognizer.stopRecognizing(); speechRecognizer.startRecognizing(); - } catch (err) { } -}, 500); + } else { + speechRecognizer.recognition.onend = function () { + speechRecognizer.recognition.start(); + //speechRecognizer.recognition.onend = null; + } + speechRecognizer.recognition.end(); + } +}, 1000); diff --git a/ps/sr-abstraction.js b/ps/sr-abstraction.js index 215be09..eb1a9d9 100644 --- a/ps/sr-abstraction.js +++ b/ps/sr-abstraction.js @@ -16,18 +16,18 @@ if (typeof SpeechRecognition == "undefined" && typeof webkitSpeechRecognition == }; } else { console.log("Using browser speech recognition API"); - var recognition; + speechRecgonizer.recognition; if (webkitSpeechRecognition) { - recognition = new webkitSpeechRecognition(); + speechRecognizer.recognition = new webkitSpeechRecognition(); } else { - recognition = new SpeechRecognition; + speechRecognizer.recognition = new SpeechRecognition; } - recognition.continuous = true; - recognition.interimResults = true; + speechRecognizer.recognition.continuous = true; + speechRecognizer.recognition.interimResults = true; - recognition.onstart = function() { } - recognition.onresult = function(e) { + speechRecognizer.recognition.onstart = function() { } + speechRecognizer.recognition.onresult = function(e) { for (var i = event.resultIndex; i < event.results.length; ++i) { if (e.results[i].isFinal) { speechRecognizer.finalHypothesisCallback(e.results[i][0].transcript); @@ -40,7 +40,9 @@ if (typeof SpeechRecognition == "undefined" && typeof webkitSpeechRecognition == recognition.onend = function() { } speechRecognizer.startRecognizing = function () { - recognition.start(); + try { + recognition.start(); + } catch { } }; speechRecognizer.stopRecognizing = function (abort) { if (abort) { |