aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Wilkins <samwilkins333@gmail.com>2019-08-03 22:07:56 -0400
committerSam Wilkins <samwilkins333@gmail.com>2019-08-03 22:07:56 -0400
commit056a03812f202c9588c25d543ffa316060b97b84 (patch)
tree9713a1bd8031d25aaa4b337f8aa9d5cf2a22e212
parent30e3964bd24ffcd3b0fa77b917a2a68bd34be6b5 (diff)
tweaks to indefinite transcription
-rw-r--r--src/client/util/DictationManager.ts11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/client/util/DictationManager.ts b/src/client/util/DictationManager.ts
index fd5ee25a1..fa34ca9ad 100644
--- a/src/client/util/DictationManager.ts
+++ b/src/client/util/DictationManager.ts
@@ -40,6 +40,7 @@ export namespace DictationManager {
let isListening = false;
let isManuallyStopped = false;
+ const results: string[] = [];
const recognizer: SpeechRecognition = new webkitSpeechRecognition();
export namespace Controls {
@@ -59,8 +60,8 @@ export namespace DictationManager {
try {
results = await listenImpl(options);
} catch (e) {
- results = "Dication Error: ";
- results += e instanceof SpeechRecognitionError ? e.error : "unknown error";
+ results = "Dictation Error: ";
+ results += "error" in e ? e.error : "unknown error";
}
return results;
};
@@ -91,14 +92,16 @@ export namespace DictationManager {
recognizer.onresult = (e: SpeechRecognitionEvent) => {
newestResult = synthesize(e, delimiter);
+ continuous && continuous.indefinite && results.push(newestResult);
handler && handler(newestResult);
};
recognizer.onend = (e: Event) => {
- if (continuous && continuous.indefinite && !isManuallyStopped) {
+ let indefinite = continuous && continuous.indefinite;
+ if (indefinite && !isManuallyStopped) {
recognizer.start();
} else {
- resolve(newestResult);
+ resolve(indefinite ? newestResult : results.join(delimiter));
reset();
}
};