From f2ff5250b0f3efcd31ad7697bb3fa5deea33ca68 Mon Sep 17 00:00:00 2001 From: Dave Horton Date: Fri, 3 Feb 2023 13:36:14 -0500 Subject: [PATCH] reset variables like hints so that previous hints do not automatically carry over (#243) --- lib/utils/transcription-utils.js | 88 ++++++++++++++++++++++++++++++-- 1 file changed, 85 insertions(+), 3 deletions(-) diff --git a/lib/utils/transcription-utils.js b/lib/utils/transcription-utils.js index c98bc797..f7f89587 100644 --- a/lib/utils/transcription-utils.js +++ b/lib/utils/transcription-utils.js @@ -7,6 +7,86 @@ const { DeepgramTranscriptionEvents, } = require('./constants'); +const stickyVars = { + google: [ + 'GOOGLE_SPEECH_HINTS', + 'GOOGLE_SPEECH_SEPARATE_RECOGNITION_PER_CHANNEL', + 'GOOGLE_SPEECH_PROFANITY_FILTER', + 'GOOGLE_SPEECH_ENABLE_AUTOMATIC_PUNCTUATION', + 'GOOGLE_SPEECH_ENABLE_WORD_TIME_OFFSETS', + 'GOOGLE_SPEECH_SINGLE_UTTERANCE', + 'GOOGLE_SPEECH_SPEAKER_DIARIZATION', + 'GOOGLE_SPEECH_USE_ENHANCED', + 'GOOGLE_SPEECH_ALTERNATIVE_LANGUAGE_CODES', + 'GOOGLE_SPEECH_METADATA_INTERACTION_TYPE', + 'GOOGLE_SPEECH_METADATA_INDUSTRY_NAICS_CODE' + ], + microsoft: [ + 'AZURE_SPEECH_HINTS', + 'AZURE_SERVICE_ENDPOINT_ID', + 'AZURE_REQUEST_SNR', + 'AZURE_PROFANITY_OPTION', + 'AZURE_SERVICE_ENDPOINT', + 'AZURE_INITIAL_SPEECH_TIMEOUT_MS', + 'AZURE_USE_OUTPUT_FORMAT_DETAILED', + ], + deepgram: [ + 'DEEPGRAM_SPEECH_KEYWORDS', + 'DEEPGRAM_API_KEY', + 'DEEPGRAM_SPEECH_TIER', + 'DEEPGRAM_SPEECH_MODEL', + 'DEEPGRAM_SPEECH_ENABLE_AUTOMATIC_PUNCTUATION', + 'DEEPGRAM_SPEECH_PROFANITY_FILTER', + 'DEEPGRAM_SPEECH_REDACT', + 'DEEPGRAM_SPEECH_DIARIZE', + 'DEEPGRAM_SPEECH_NER', + 'DEEPGRAM_SPEECH_ALTERNATIVES', + 'DEEPGRAM_SPEECH_NUMERALS', + 'DEEPGRAM_SPEECH_SEARCH', + 'DEEPGRAM_SPEECH_REPLACE', + 'DEEPGRAM_SPEECH_ENDPOINTING', + 'DEEPGRAM_SPEECH_VAD_TURNOFF', + 'DEEPGRAM_SPEECH_TAG' + ], + aws: [ + 'AWS_VOCABULARY_NAME', + 'AWS_VOCABULARY_FILTER_METHOD', + 'AWS_VOCABULARY_FILTER_NAME' + ], + nuance: [ + 'NUANCE_ACCESS_TOKEN', + 'NUANCE_KRYPTON_ENDPOINT', + 'NUANCE_TOPIC', + 'NUANCE_UTTERANCE_DETECTION_MODE', + 'NUANCE_FILTER_PROFANITY', + 'NUANCE_INCLUDE_TOKENIZATION', + 'NUANCE_DISCARD_SPEAKER_ADAPTATION', + 'NUANCE_SUPPRESS_CALL_RECORDING', + 'NUANCE_MASK_LOAD_FAILURES', + 'NUANCE_SUPPRESS_INITIAL_CAPITALIZATION', + 'NUANCE_ALLOW_ZERO_BASE_LM_WEIGHT', + 'NUANCE_FILTER_WAKEUP_WORD', + 'NUANCE_NO_INPUT_TIMEOUT_MS', + 'NUANCE_RECOGNITION_TIMEOUT_MS', + 'NUANCE_UTTERANCE_END_SILENCE_MS', + 'NUANCE_MAX_HYPOTHESES', + 'NUANCE_SPEECH_DOMAIN', + 'NUANCE_FORMATTING', + 'NUANCE_RESOURCES' + ], + ibm: [ + 'IBM_ACCESS_TOKEN', + 'IBM_SPEECH_REGION', + 'IBM_SPEECH_INSTANCE_ID', + 'IBM_SPEECH_MODEL', + 'IBM_SPEECH_LANGUAGE_CUSTOMIZATION_ID', + 'IBM_SPEECH_ACOUSTIC_CUSTOMIZATION_ID', + 'IBM_SPEECH_BASE_MODEL_VERSION', + 'IBM_SPEECH_WATSON_METADATA', + 'IBM_SPEECH_WATSON_LEARNING_OPT_OUT' + ] +}; + const normalizeDeepgram = (evt, channel, language) => { const copy = JSON.parse(JSON.stringify(evt)); const alternatives = (evt.channel?.alternatives || []) @@ -198,7 +278,7 @@ module.exports = (logger) => { {GOOGLE_SPEECH_ALTERNATIVE_LANGUAGE_CODES: rOpts.altLanguages.join(',')}), ...(rOpts.interactionType && {GOOGLE_SPEECH_METADATA_INTERACTION_TYPE: rOpts.interactionType}), - ...{GOOGLE_SPEECH_MODEL: rOpts.model || (task.name === TaskName.Gather ? 'command_and_search' : 'phone_call')}, + ...{GOOGLE_SPEECH_MODEL: rOpts.model || (task.name === TaskName.Gather ? 'latest_short' : 'phone_call')}, ...(rOpts.naicsCode > 0 && {GOOGLE_SPEECH_METADATA_INDUSTRY_NAICS_CODE: rOpts.naicsCode}), }; @@ -333,7 +413,7 @@ module.exports = (logger) => { ...(deepgramOptions.vadTurnoff) && {DEEPGRAM_SPEECH_VAD_TURNOFF: deepgramOptions.vadTurnoff}, ...(deepgramOptions.tag) && - {DEEPGRAM_SPEECH_VAD_TURNOFF: deepgramOptions.tag} + {DEEPGRAM_SPEECH_TAG: deepgramOptions.tag} }; } else if ('ibm' === rOpts.vendor) { @@ -360,7 +440,9 @@ module.exports = (logger) => { {IBM_SPEECH_WATSON_LEARNING_OPT_OUT: ibmOptions.watsonLearningOptOut} }; } - + stickyVars[rOpts.vendor].forEach((key) => { + if (!opts[key]) opts[key] = ''; + }); logger.debug({opts}, 'recognizer channel vars'); return opts; };