diff options
author | Sam Wilkins <samwilkins333@gmail.com> | 2019-08-03 22:07:56 -0400 |
---|---|---|
committer | Sam Wilkins <samwilkins333@gmail.com> | 2019-08-03 22:07:56 -0400 |
commit | 056a03812f202c9588c25d543ffa316060b97b84 (patch) | |
tree | 9713a1bd8031d25aaa4b337f8aa9d5cf2a22e212 /src | |
parent | 30e3964bd24ffcd3b0fa77b917a2a68bd34be6b5 (diff) |
tweaks to indefinite transcription
Diffstat (limited to 'src')
-rw-r--r-- | src/client/util/DictationManager.ts | 11 |
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(); } }; |