From 2e3fb60e72b0d8c471d2c405464031a558a626da Mon Sep 17 00:00:00 2001 From: Dave Horton Date: Fri, 6 Jan 2023 08:00:17 -0500 Subject: [PATCH] =?UTF-8?q?support=20google=20hints=20as=20an=20array=20of?= =?UTF-8?q?=20objects=20containing=20both=20hint=20phra=E2=80=A6=20(#209)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * support google hints as an array of objects containing both hint phrase and boost value * handle structured hints for non-google STT (#205) --- lib/utils/transcription-utils.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/utils/transcription-utils.js b/lib/utils/transcription-utils.js index 32182659..a74d82d6 100644 --- a/lib/utils/transcription-utils.js +++ b/lib/utils/transcription-utils.js @@ -188,8 +188,10 @@ module.exports = (logger) => { {GOOGLE_SPEECH_SINGLE_UTTERANCE: 0}), ...(rOpts.diarization === false && {GOOGLE_SPEECH_SPEAKER_DIARIZATION: 0}), - ...(rOpts.hints.length > 0 && + ...(rOpts.hints.length > 0 && typeof rOpts.hints[0] === 'string' && {GOOGLE_SPEECH_HINTS: rOpts.hints.join(',')}), + ...(rOpts.hints.length > 0 && typeof rOpts.hints[0] === 'object' && + {GOOGLE_SPEECH_HINTS: JSON.stringify(rOpts.hints)}), ...(typeof rOpts.hintsBoost === 'number' && {GOOGLE_SPEECH_HINTS_BOOST: rOpts.hintsBoost}), ...(rOpts.altLanguages.length > 0 && @@ -217,8 +219,10 @@ module.exports = (logger) => { else if ('microsoft' === rOpts.vendor) { opts = { ...opts, - ...(rOpts.hints && rOpts.hints.length > 0 && + ...(rOpts.hints.length > 0 && typeof rOpts.hints[0] === 'string' && {AZURE_SPEECH_HINTS: rOpts.hints.map((h) => h.trim()).join(',')}), + ...(rOpts.hints.length > 0 && typeof rOpts.hints[0] === 'object' && + {AZURE_SPEECH_HINTS: rOpts.hints.map((h) => h.phrase).join(',')}), ...(rOpts.altLanguages && rOpts.altLanguages.length > 0 && {AZURE_SERVICE_ENDPOINT_ID: rOpts.sttCredentials}), ...(rOpts.requestSnr && {AZURE_REQUEST_SNR: 1}), @@ -318,8 +322,10 @@ module.exports = (logger) => { {DEEPGRAM_SPEECH_SEARCH: deepgramOptions.search.join(',')}, ...(deepgramOptions.replace) && {DEEPGRAM_SPEECH_REPLACE: deepgramOptions.replace.join(',')}, - ...(rOpts.hints.length > 0 && - {DEEPGRAM_SPEECH_KEYWORDS: rOpts.hints.join(',')}), + ...(rOpts.hints.length > 0 && typeof rOpts.hints[0] === 'string' && + {DEEPGRAM_SPEECH_KEYWORDS: rOpts.hints.map((h) => h.trim()).join(',')}), + ...(rOpts.hints.length > 0 && typeof rOpts.hints[0] === 'object' && + {DEEPGRAM_SPEECH_KEYWORDS: rOpts.hints.map((h) => h.phrase).join(',')}), ...(deepgramOptions.keywords) && {DEEPGRAM_SPEECH_KEYWORDS: deepgramOptions.keywords.join(',')}, ...('endpointing' in deepgramOptions) &&