diff --git a/lib/tasks/gather.js b/lib/tasks/gather.js index 0313e6cd..42422ec0 100644 --- a/lib/tasks/gather.js +++ b/lib/tasks/gather.js @@ -7,7 +7,8 @@ const { AwsTranscriptionEvents, AzureTranscriptionEvents, DeepgramTranscriptionEvents, - IbmTranscriptionEvents + IbmTranscriptionEvents, + NvidiaTranscriptionEvents } = require('../utils/constants'); const makeTask = require('./make_task'); @@ -397,6 +398,25 @@ class TaskGather extends Task { this._onIbmError.bind(this, cs, ep)); break; + case 'nvidia': + this.bugname = 'nvidia_transcribe'; + ep.addCustomEventListener(NvidiaTranscriptionEvents.Transcription, + this._onTranscription.bind(this, cs, ep)); + ep.addCustomEventListener(NvidiaTranscriptionEvents.StartOfSpeech, + this._onStartOfSpeech.bind(this, cs, ep)); + ep.addCustomEventListener(NvidiaTranscriptionEvents.TranscriptionComplete, + this._onTranscriptionComplete.bind(this, cs, ep)); + ep.addCustomEventListener(NvidiaTranscriptionEvents.VadDetected, + this._onVadDetected.bind(this, cs, ep)); + ep.addCustomEventListener(NvidiaTranscriptionEvents.Error, + this._onNvidiaError.bind(this, cs, ep)); + + /* I think nvidia has this (??) - stall timers until prompt finishes playing */ + if ((this.sayTask || this.playTask) && this.listenDuringPrompt) { + opts.NVIDIA_STALL_TIMERS = 1; + } + break; + default: this.notifyError({ msg: 'ASR error', details:`Invalid vendor ${this.vendor}`}); this.notifyTaskDone(); @@ -612,6 +632,9 @@ class TaskGather extends Task { return this._resolve('timeout'); } } + _onNvidiaError(cs, ep, evt) { + this.logger.info({evt}, 'TaskGather:_onNvidiaError'); + } _onDeepgramConnect(_cs, _ep) { this.logger.debug('TaskGather:_onDeepgramConnect'); } diff --git a/lib/tasks/specs.json b/lib/tasks/specs.json index 6efd4c36..76391aea 100644 --- a/lib/tasks/specs.json +++ b/lib/tasks/specs.json @@ -467,7 +467,7 @@ "properties": { "vendor": { "type": "string", - "enum": ["google", "aws", "polly", "microsoft", "nuance", "ibm", "default"] + "enum": ["google", "aws", "polly", "microsoft", "nuance", "ibm", "nvidia", "default"] }, "language": "string", "voice": "string", @@ -488,7 +488,7 @@ "properties": { "vendor": { "type": "string", - "enum": ["google", "aws", "microsoft", "nuance", "deepgram", "ibm", "default"] + "enum": ["google", "aws", "microsoft", "nuance", "deepgram", "ibm", "nvidia", "default"] }, "language": "string", "vad": "#vad", @@ -555,12 +555,26 @@ "asrTimeout": "number", "nuanceOptions": "#nuanceOptions", "deepgramOptions": "#deepgramOptions", - "ibmOptions": "#ibmOptions" + "ibmOptions": "#ibmOptions", + "nvidiaOptions": "#nvidiaOptions" }, "required": [ "vendor" ] }, + "nvidiaOptions": { + "properties": { + "rivaUri": "string", + "maxAlternatives": "number", + "profanityFilter": "boolean", + "punctuation": "boolean", + "wordTimeOffsets": "boolean", + "verbatimTranscripts": "boolean", + "customConfiguration": "object" + }, + "required": [ + ] + }, "ibmOptions": { "properties": { "sttApiKey": "string", diff --git a/lib/tasks/transcribe.js b/lib/tasks/transcribe.js index 9e218b04..4dde3b59 100644 --- a/lib/tasks/transcribe.js +++ b/lib/tasks/transcribe.js @@ -7,7 +7,8 @@ const { AwsTranscriptionEvents, NuanceTranscriptionEvents, DeepgramTranscriptionEvents, - IbmTranscriptionEvents + IbmTranscriptionEvents, + NvidiaTranscriptionEvents } = require('../utils/constants'); const normalizeJambones = require('../utils/normalize-jambones'); @@ -207,6 +208,20 @@ class TaskTranscribe extends Task { this._onIbmError.bind(this, cs, ep, channel)); break; + case 'nvidia': + this.bugname = 'nvidia_transcribe'; + ep.addCustomEventListener(NvidiaTranscriptionEvents.Transcription, + this._onTranscription.bind(this, cs, ep)); + ep.addCustomEventListener(NvidiaTranscriptionEvents.StartOfSpeech, + this._onStartOfSpeech.bind(this, cs, ep)); + ep.addCustomEventListener(NvidiaTranscriptionEvents.TranscriptionComplete, + this._onTranscriptionComplete.bind(this, cs, ep)); + ep.addCustomEventListener(NvidiaTranscriptionEvents.VadDetected, + this._onVadDetected.bind(this, cs, ep)); + ep.addCustomEventListener(NvidiaTranscriptionEvents.Error, + this._onNvidiaError.bind(this, cs, ep)); + break; + default: throw new Error(`Invalid vendor ${this.vendor}`); } @@ -311,6 +326,9 @@ class TaskTranscribe extends Task { return this._resolve('timeout'); } } + _onNvidiaError(cs, ep, evt) { + this.logger.info({evt}, 'TaskGather:_onNvidiaError'); + } _onDeepgramConnect(_cs, _ep) { this.logger.debug('TaskTranscribe:_onDeepgramConnect'); } diff --git a/lib/utils/constants.json b/lib/utils/constants.json index 3ef89ab3..3f7dd82d 100644 --- a/lib/utils/constants.json +++ b/lib/utils/constants.json @@ -74,6 +74,13 @@ "Error": "nuance_transcribe::error", "VadDetected": "nuance_transcribe::vad_detected" }, + "NvidiaTranscriptionEvents": { + "Transcription": "nvidia_transcribe::transcription", + "StartOfSpeech": "nvidia_transcribe::start_of_speech", + "TranscriptionComplete": "nvidia_transcribe::end_of_transcription", + "Error": "nvidia_transcribe::error", + "VadDetected": "nvidia_transcribe::vad_detected" + }, "DeepgramTranscriptionEvents": { "Transcription": "deepgram_transcribe::transcription", "ConnectFailure": "deepgram_transcribe::connect_failed", diff --git a/lib/utils/transcription-utils.js b/lib/utils/transcription-utils.js index 76be6042..ba5a2b6e 100644 --- a/lib/utils/transcription-utils.js +++ b/lib/utils/transcription-utils.js @@ -5,6 +5,7 @@ const { AwsTranscriptionEvents, NuanceTranscriptionEvents, DeepgramTranscriptionEvents, + NvidiaTranscriptionEvents } = require('./constants'); const stickyVars = { @@ -84,6 +85,9 @@ const stickyVars = { 'IBM_SPEECH_BASE_MODEL_VERSION', 'IBM_SPEECH_WATSON_METADATA', 'IBM_SPEECH_WATSON_LEARNING_OPT_OUT' + ], + nvidia: [ + 'NVIDIA_HINTS' ] }; @@ -107,6 +111,25 @@ const normalizeDeepgram = (evt, channel, language) => { }; }; +const normalizeNvidia = (evt, channel, language) => { + const copy = JSON.parse(JSON.stringify(evt)); + const alternatives = (evt.alternatives || []) + .map((alt) => ({ + confidence: alt.confidence, + transcript: alt.transcript, + })); + return { + language_code: language, + channel_tag: channel, + is_final: evt.is_final, + alternatives, + vendor: { + name: 'nvidia', + evt: copy + } + }; +}; + const normalizeIbm = (evt, channel, language) => { const copy = JSON.parse(JSON.stringify(evt)); //const idx = evt.result_index; @@ -212,6 +235,8 @@ module.exports = (logger) => { return normalizeNuance(evt, channel, language); case 'ibm': return normalizeIbm(evt, channel, language); + case 'nvidia': + return normalizeNvidia(evt, channel, language); default: logger.error(`Unknown vendor ${vendor}`); return evt; @@ -440,6 +465,36 @@ module.exports = (logger) => { {IBM_SPEECH_WATSON_LEARNING_OPT_OUT: ibmOptions.watsonLearningOptOut} }; } + else if ('nvidia' === rOpts.vendor) { + const {nvidiaOptions = {}} = rOpts; + opts = { + ...opts, + ...((nvidiaOptions.profanityFilter || rOpts.profanityFilter) && {NVIDIA_PROFANITY_FILTER: 1}), + ...(!(nvidiaOptions.profanityFilter || rOpts.profanityFilter) && {NVIDIA_PROFANITY_FILTER: 0}), + ...((nvidiaOptions.punctuation || rOpts.punctuation) && {NVIDIA_PUNCTUATION: 1}), + ...(!(nvidiaOptions.punctuation || rOpts.punctuation) && {NVIDIA_PUNCTUATION: 0}), + ...((rOpts.words || nvidiaOptions.wordTimeOffsets) && {NVIDIA_WORD_TIME_OFFSETS: 1}), + ...(!(rOpts.words || nvidiaOptions.wordTimeOffsets) && {NVIDIA_WORD_TIME_OFFSETS: 0}), + ...(nvidiaOptions.maxAlternatives && {NVIDIA_MAX_ALTERNATIVES: nvidiaOptions.maxAlternatives}), + ...(!nvidiaOptions.maxAlternatives && {NVIDIA_MAX_ALTERNATIVES: 1}), + ...(rOpts.model && {NVIDIA_MODEL: rOpts.model}), + ...(nvidiaOptions.rivaUri && {NVIDIA_RIVA_URI: nvidiaOptions.rivaUri}), + ...(nvidiaOptions.verbatimTranscripts && {NVIDIA_VERBATIM_TRANSCRIPTS: 1}), + ...(rOpts.diarization && {NVIDIA_SPEAKER_DIARIZATION: 1}), + ...(rOpts.diarization && rOpts.diarizationMaxSpeakers > 0 && + {NVIDIA_DIARIZATION_SPEAKER_COUNT: rOpts.diarizationMaxSpeakers}), + ...(rOpts.separateRecognitionPerChannel && {NVIDIA_SEPARATE_RECOGNITION_PER_CHANNEL: 1}), + ...(rOpts.hints.length > 0 && typeof rOpts.hints[0] === 'string' && + {NVIDIA_HINTS: rOpts.hints.join(',')}), + ...(rOpts.hints.length > 0 && typeof rOpts.hints[0] === 'object' && + {NVIDIA_HINTS: JSON.stringify(rOpts.hints)}), + ...(typeof rOpts.hintsBoost === 'number' && + {NVIDIA_HINTS_BOOST: rOpts.hintsBoost}), + ...(nvidiaOptions.customConfiguration && + {NVIDIA_CUSTOM_CONFIGURATION: JSON.stringify(nvidiaOptions.customConfiguration)}), + }; + } + stickyVars[rOpts.vendor].forEach((key) => { if (!opts[key]) opts[key] = ''; }); @@ -468,6 +523,12 @@ module.exports = (logger) => { ep.removeCustomEventListener(DeepgramTranscriptionEvents.Transcription); ep.removeCustomEventListener(DeepgramTranscriptionEvents.Connect); ep.removeCustomEventListener(DeepgramTranscriptionEvents.ConnectFailure); + + ep.removeCustomEventListener(NvidiaTranscriptionEvents.Transcription); + ep.removeCustomEventListener(NvidiaTranscriptionEvents.TranscriptionComplete); + ep.removeCustomEventListener(NvidiaTranscriptionEvents.StartOfSpeech); + ep.removeCustomEventListener(NvidiaTranscriptionEvents.Error); + ep.removeCustomEventListener(NvidiaTranscriptionEvents.VadDetected); }; const setSpeechCredentialsAtRuntime = (recognizer) => { @@ -476,6 +537,10 @@ module.exports = (logger) => { const {clientId, secret} = recognizer.nuanceOptions || {}; if (clientId && secret) return {client_id: clientId, secret}; } + else if (recognizer.vendor === 'nvidia') { + const {rivaUri} = recognizer.nvidiaOptions || {}; + if (rivaUri) return {riva_uri: rivaUri}; + } else if (recognizer.vendor === 'deepgram') { const {apiKey} = recognizer.deepgramOptions || {}; if (apiKey) return {api_key: apiKey}; diff --git a/package-lock.json b/package-lock.json index 2115d03e..15666dd8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@jambonz/db-helpers": "^0.7.4", "@jambonz/http-health-check": "^0.0.1", - "@jambonz/realtimedb-helpers": "^0.6.3", + "@jambonz/realtimedb-helpers": "^0.6.4", "@jambonz/stats-collector": "^0.1.6", "@jambonz/time-series": "^0.2.5", "@opentelemetry/api": "^1.4.0", @@ -23,12 +23,12 @@ "@opentelemetry/sdk-trace-base": "^1.9.0", "@opentelemetry/sdk-trace-node": "^1.9.0", "@opentelemetry/semantic-conventions": "^1.9.0", - "aws-sdk": "^2.1304.0", + "aws-sdk": "^2.1313.0", "bent": "^7.3.12", "debug": "^4.3.4", "deepcopy": "^2.1.0", - "drachtio-fsmrf": "^3.0.16", - "drachtio-srf": "^4.5.23 ", + "drachtio-fsmrf": "^3.0.18", + "drachtio-srf": "^4.5.23", "express": "^4.18.2", "ip": "^1.1.8", "moment": "^2.29.4", @@ -517,9 +517,9 @@ } }, "node_modules/@google-cloud/text-to-speech": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@google-cloud/text-to-speech/-/text-to-speech-4.1.0.tgz", - "integrity": "sha512-nifCfsqHWU1w4g5FvahS2VZHnopfUZPVxXZvBBFYj2Ar7D9l5ycYbT0q78RRsMGK94c8GldLnLIJbquWKvCZGg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@google-cloud/text-to-speech/-/text-to-speech-4.2.0.tgz", + "integrity": "sha512-cG6Jh920MQyQ6PvR/GcSl+du8j7hKDOrH4PK+PN5jzY4h1ne3oF6huwuBe2ElzMksopU2aDxI9hvd82k1c2JMA==", "dependencies": { "google-gax": "^3.5.2" }, @@ -528,9 +528,9 @@ } }, "node_modules/@grpc/grpc-js": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.0.tgz", - "integrity": "sha512-ySMTXQuMvvswoobvN+0LsaPf7ITO2JVfJmHxQKI4cGehNrrUms+n81BlHEX7Hl/LExji6XE3fnI9U04GSkRruA==", + "version": "1.8.8", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.8.tgz", + "integrity": "sha512-4gfDqMLXTrorvYTKA1jL22zLvVwiHJ73t6Re1OHwdCFRjdGTDOVtSJuaWhtHaivyeDGg0LeCkmU77MTKoV3wPA==", "dependencies": { "@grpc/proto-loader": "^0.7.0", "@types/node": ">=12.12.47" @@ -637,22 +637,22 @@ } }, "node_modules/@jambonz/realtimedb-helpers": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@jambonz/realtimedb-helpers/-/realtimedb-helpers-0.6.3.tgz", - "integrity": "sha512-S31EOBHQZ0jfGVWIsbwma1p0rxN7xfVJ+tuLHKZ4T+L4QL8qJBkHVAhp3c+1WfwyZyOeZfv7q0pIhTKYcY0H7A==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jambonz/realtimedb-helpers/-/realtimedb-helpers-0.6.4.tgz", + "integrity": "sha512-+/CjwXItdSTx8wvL3wpfqKPJv6OkwSKS/I6XpBO9p0vwHKbwcFKLwUfCtbmRx7vewyM3p9HqbANMU8J5XBRMzw==", "dependencies": { - "@google-cloud/text-to-speech": "^4.1.0", - "@grpc/grpc-js": "^1.7.3", + "@google-cloud/text-to-speech": "^4.2.0", + "@grpc/grpc-js": "^1.8.8", "@jambonz/promisify-redis": "^0.0.6", - "aws-sdk": "^2.1284.0", + "aws-sdk": "^2.1313.0", "bent": "^7.3.12", - "debug": "^4.3.3", + "debug": "^4.3.4", "form-urlencoded": "^6.1.0", "google-protobuf": "^3.21.2", "ibm-watson": "^7.1.2", - "microsoft-cognitiveservices-speech-sdk": "^1.24.1", + "microsoft-cognitiveservices-speech-sdk": "^1.25.1", "redis": "^3.1.2", - "undici": "^5.11.0" + "undici": "^5.18.0" } }, "node_modules/@jambonz/stats-collector": { @@ -1475,9 +1475,9 @@ } }, "node_modules/aws-sdk": { - "version": "2.1304.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1304.0.tgz", - "integrity": "sha512-9mf2uafa2M9yFC5IlMe85TIc7OUo1HSProCQWzpRmAAYhcSwmfbRyt02Wtr5YSVvJJPmcSgcyI92snsQR1c3nw==", + "version": "2.1313.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1313.0.tgz", + "integrity": "sha512-8GMdtV2Uch3HL2c6+P3lNZFTcg/fqq9L3EWYRLb6ljCZvWKTssjdkjSJFDyTReNgeiKV224YRPYQbKpOEz4flQ==", "dependencies": { "buffer": "4.9.2", "events": "1.1.1", @@ -2218,15 +2218,15 @@ } }, "node_modules/drachtio-fsmrf": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/drachtio-fsmrf/-/drachtio-fsmrf-3.0.16.tgz", - "integrity": "sha512-P14svkeULbIyNVactMl0i48nCPBGx4dx5CSJmff+f6XNRB0JAaz3SnT3+x6A+0K7Z1d3yR4onhbVEdG5C4IJuQ==", + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/drachtio-fsmrf/-/drachtio-fsmrf-3.0.18.tgz", + "integrity": "sha512-vWltwmIYeAapE2R5ise2HZgRS+8aGlQMXN6aTUxKGnvzGPD9+D29or+Y8HtodYG/2RKaPcaeUOjjsmnUaoWU2A==", "dependencies": { "camel-case": "^4.1.2", "debug": "^2.6.9", "delegates": "^0.1.0", "drachtio-modesl": "^1.2.9", - "drachtio-srf": "^4.5.20", + "drachtio-srf": "^4.5.23", "only": "^0.0.2", "sdp-transform": "^2.14.1", "snake-case": "^3.0.4", @@ -3264,9 +3264,9 @@ } }, "node_modules/gcp-metadata": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.1.0.tgz", - "integrity": "sha512-QVjouEXvNVG/nde6VZDXXFTB02xQdztaumkWCHUff58qsdCS05/8OPh68fQ2QnArfAzZTwfEc979FHSHsU8EWg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.2.0.tgz", + "integrity": "sha512-aFhhvvNycky2QyhG+dcfEdHBF0FRbYcf39s6WNHUDysKSrbJ5vuFbjydxBcmewtXeV248GP8dWT3ByPNxsyHCw==", "dependencies": { "gaxios": "^5.0.0", "json-bigint": "^1.0.0" @@ -3404,9 +3404,9 @@ } }, "node_modules/google-gax": { - "version": "3.5.6", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-3.5.6.tgz", - "integrity": "sha512-gw1phnFuVB8Vtad/An9/4cLfhjNCj4FqyqDA0W09r/ZUWe70VZFZ7SNrvQNX81iLoOEjfTPHKEGZL/anuFxU5w==", + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-3.5.7.tgz", + "integrity": "sha512-taDGwR9Ry5y6NkcPYKe0B3wr7rCwaImZZIuWajUcFe9Y8L71eBtaq0+ZJ62JByzr/2cJkd9EN1rr52rD6V/UDA==", "dependencies": { "@grpc/grpc-js": "~1.8.0", "@grpc/proto-loader": "^0.7.0", @@ -3420,7 +3420,7 @@ "node-fetch": "^2.6.1", "object-hash": "^3.0.0", "proto3-json-serializer": "^1.0.0", - "protobufjs": "7.2.1", + "protobufjs": "7.2.2", "protobufjs-cli": "1.1.1", "retry-request": "^5.0.0" }, @@ -4861,10 +4861,9 @@ } }, "node_modules/microsoft-cognitiveservices-speech-sdk": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/microsoft-cognitiveservices-speech-sdk/-/microsoft-cognitiveservices-speech-sdk-1.24.1.tgz", - "integrity": "sha512-7oAlVge4cPnCeNHeIVUQe4tKZmfGtsriD8rjl7uAoPcwG4hF3BXVVhUEkhlW+B8i5zVAJl3fH4BbAfZPCtrbvg==", - "hasInstallScript": true, + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/microsoft-cognitiveservices-speech-sdk/-/microsoft-cognitiveservices-speech-sdk-1.25.1.tgz", + "integrity": "sha512-Bu7zFcBtX2TUDdig5XaQK/QEcAx5d1xx9dxp7no2iM8AFyif6EkFRtUJlAnb+3xJ8eT4UKXWTOGoh7mM3aZ+Zw==", "dependencies": { "agent-base": "^6.0.1", "asn1.js-rfc2560": "^5.0.1", @@ -5119,9 +5118,9 @@ } }, "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -5818,9 +5817,9 @@ } }, "node_modules/protobufjs": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.1.tgz", - "integrity": "sha512-L3pCItypTnPK27+CS8nuhZMYtsY+i8dqdq2vZsYHlG17CnWp1DWPQ/sos0vOKrj1fHEAzo3GBqSHLaeZyKUCDA==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.2.tgz", + "integrity": "sha512-++PrQIjrom+bFDPpfmqXfAGSQs40116JRrqqyf53dymUMvvb5d/LMRyicRoF1AUKoXVS1/IgJXlEgcpr4gTF3Q==", "hasInstallScript": true, "dependencies": { "@protobufjs/aspromise": "^1.1.2", @@ -7187,9 +7186,9 @@ "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" }, "node_modules/undici": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.16.0.tgz", - "integrity": "sha512-KWBOXNv6VX+oJQhchXieUznEmnJMqgXMbs0xxH2t8q/FUAWSJvOSr/rMaZKnX5RIVq7JDn0JbP4BOnKG2SGXLQ==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.18.0.tgz", + "integrity": "sha512-1iVwbhonhFytNdg0P4PqyIAXbdlVZVebtPDvuM36m66mRw4OGrCm2MYynJv/UENFLdP13J1nPVQzVE2zTs1OeA==", "dependencies": { "busboy": "^1.6.0" }, @@ -7993,17 +7992,17 @@ } }, "@google-cloud/text-to-speech": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@google-cloud/text-to-speech/-/text-to-speech-4.1.0.tgz", - "integrity": "sha512-nifCfsqHWU1w4g5FvahS2VZHnopfUZPVxXZvBBFYj2Ar7D9l5ycYbT0q78RRsMGK94c8GldLnLIJbquWKvCZGg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@google-cloud/text-to-speech/-/text-to-speech-4.2.0.tgz", + "integrity": "sha512-cG6Jh920MQyQ6PvR/GcSl+du8j7hKDOrH4PK+PN5jzY4h1ne3oF6huwuBe2ElzMksopU2aDxI9hvd82k1c2JMA==", "requires": { "google-gax": "^3.5.2" } }, "@grpc/grpc-js": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.0.tgz", - "integrity": "sha512-ySMTXQuMvvswoobvN+0LsaPf7ITO2JVfJmHxQKI4cGehNrrUms+n81BlHEX7Hl/LExji6XE3fnI9U04GSkRruA==", + "version": "1.8.8", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.8.tgz", + "integrity": "sha512-4gfDqMLXTrorvYTKA1jL22zLvVwiHJ73t6Re1OHwdCFRjdGTDOVtSJuaWhtHaivyeDGg0LeCkmU77MTKoV3wPA==", "requires": { "@grpc/proto-loader": "^0.7.0", "@types/node": ">=12.12.47" @@ -8086,22 +8085,22 @@ } }, "@jambonz/realtimedb-helpers": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@jambonz/realtimedb-helpers/-/realtimedb-helpers-0.6.3.tgz", - "integrity": "sha512-S31EOBHQZ0jfGVWIsbwma1p0rxN7xfVJ+tuLHKZ4T+L4QL8qJBkHVAhp3c+1WfwyZyOeZfv7q0pIhTKYcY0H7A==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jambonz/realtimedb-helpers/-/realtimedb-helpers-0.6.4.tgz", + "integrity": "sha512-+/CjwXItdSTx8wvL3wpfqKPJv6OkwSKS/I6XpBO9p0vwHKbwcFKLwUfCtbmRx7vewyM3p9HqbANMU8J5XBRMzw==", "requires": { - "@google-cloud/text-to-speech": "^4.1.0", - "@grpc/grpc-js": "^1.7.3", + "@google-cloud/text-to-speech": "^4.2.0", + "@grpc/grpc-js": "^1.8.8", "@jambonz/promisify-redis": "^0.0.6", - "aws-sdk": "^2.1284.0", + "aws-sdk": "^2.1313.0", "bent": "^7.3.12", - "debug": "^4.3.3", + "debug": "^4.3.4", "form-urlencoded": "^6.1.0", "google-protobuf": "^3.21.2", "ibm-watson": "^7.1.2", - "microsoft-cognitiveservices-speech-sdk": "^1.24.1", + "microsoft-cognitiveservices-speech-sdk": "^1.25.1", "redis": "^3.1.2", - "undici": "^5.11.0" + "undici": "^5.18.0" } }, "@jambonz/stats-collector": { @@ -8748,9 +8747,9 @@ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" }, "aws-sdk": { - "version": "2.1304.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1304.0.tgz", - "integrity": "sha512-9mf2uafa2M9yFC5IlMe85TIc7OUo1HSProCQWzpRmAAYhcSwmfbRyt02Wtr5YSVvJJPmcSgcyI92snsQR1c3nw==", + "version": "2.1313.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1313.0.tgz", + "integrity": "sha512-8GMdtV2Uch3HL2c6+P3lNZFTcg/fqq9L3EWYRLb6ljCZvWKTssjdkjSJFDyTReNgeiKV224YRPYQbKpOEz4flQ==", "requires": { "buffer": "4.9.2", "events": "1.1.1", @@ -9306,15 +9305,15 @@ } }, "drachtio-fsmrf": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/drachtio-fsmrf/-/drachtio-fsmrf-3.0.16.tgz", - "integrity": "sha512-P14svkeULbIyNVactMl0i48nCPBGx4dx5CSJmff+f6XNRB0JAaz3SnT3+x6A+0K7Z1d3yR4onhbVEdG5C4IJuQ==", + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/drachtio-fsmrf/-/drachtio-fsmrf-3.0.18.tgz", + "integrity": "sha512-vWltwmIYeAapE2R5ise2HZgRS+8aGlQMXN6aTUxKGnvzGPD9+D29or+Y8HtodYG/2RKaPcaeUOjjsmnUaoWU2A==", "requires": { "camel-case": "^4.1.2", "debug": "^2.6.9", "delegates": "^0.1.0", "drachtio-modesl": "^1.2.9", - "drachtio-srf": "^4.5.20", + "drachtio-srf": "^4.5.23", "only": "^0.0.2", "sdp-transform": "^2.14.1", "snake-case": "^3.0.4", @@ -10133,9 +10132,9 @@ } }, "gcp-metadata": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.1.0.tgz", - "integrity": "sha512-QVjouEXvNVG/nde6VZDXXFTB02xQdztaumkWCHUff58qsdCS05/8OPh68fQ2QnArfAzZTwfEc979FHSHsU8EWg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.2.0.tgz", + "integrity": "sha512-aFhhvvNycky2QyhG+dcfEdHBF0FRbYcf39s6WNHUDysKSrbJ5vuFbjydxBcmewtXeV248GP8dWT3ByPNxsyHCw==", "requires": { "gaxios": "^5.0.0", "json-bigint": "^1.0.0" @@ -10234,9 +10233,9 @@ } }, "google-gax": { - "version": "3.5.6", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-3.5.6.tgz", - "integrity": "sha512-gw1phnFuVB8Vtad/An9/4cLfhjNCj4FqyqDA0W09r/ZUWe70VZFZ7SNrvQNX81iLoOEjfTPHKEGZL/anuFxU5w==", + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-3.5.7.tgz", + "integrity": "sha512-taDGwR9Ry5y6NkcPYKe0B3wr7rCwaImZZIuWajUcFe9Y8L71eBtaq0+ZJ62JByzr/2cJkd9EN1rr52rD6V/UDA==", "requires": { "@grpc/grpc-js": "~1.8.0", "@grpc/proto-loader": "^0.7.0", @@ -10250,7 +10249,7 @@ "node-fetch": "^2.6.1", "object-hash": "^3.0.0", "proto3-json-serializer": "^1.0.0", - "protobufjs": "7.2.1", + "protobufjs": "7.2.2", "protobufjs-cli": "1.1.1", "retry-request": "^5.0.0" } @@ -11343,9 +11342,9 @@ } }, "microsoft-cognitiveservices-speech-sdk": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/microsoft-cognitiveservices-speech-sdk/-/microsoft-cognitiveservices-speech-sdk-1.24.1.tgz", - "integrity": "sha512-7oAlVge4cPnCeNHeIVUQe4tKZmfGtsriD8rjl7uAoPcwG4hF3BXVVhUEkhlW+B8i5zVAJl3fH4BbAfZPCtrbvg==", + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/microsoft-cognitiveservices-speech-sdk/-/microsoft-cognitiveservices-speech-sdk-1.25.1.tgz", + "integrity": "sha512-Bu7zFcBtX2TUDdig5XaQK/QEcAx5d1xx9dxp7no2iM8AFyif6EkFRtUJlAnb+3xJ8eT4UKXWTOGoh7mM3aZ+Zw==", "requires": { "agent-base": "^6.0.1", "asn1.js-rfc2560": "^5.0.1", @@ -11554,9 +11553,9 @@ } }, "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", "requires": { "whatwg-url": "^5.0.0" } @@ -12068,9 +12067,9 @@ } }, "protobufjs": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.1.tgz", - "integrity": "sha512-L3pCItypTnPK27+CS8nuhZMYtsY+i8dqdq2vZsYHlG17CnWp1DWPQ/sos0vOKrj1fHEAzo3GBqSHLaeZyKUCDA==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.2.tgz", + "integrity": "sha512-++PrQIjrom+bFDPpfmqXfAGSQs40116JRrqqyf53dymUMvvb5d/LMRyicRoF1AUKoXVS1/IgJXlEgcpr4gTF3Q==", "requires": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -13091,9 +13090,9 @@ "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" }, "undici": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.16.0.tgz", - "integrity": "sha512-KWBOXNv6VX+oJQhchXieUznEmnJMqgXMbs0xxH2t8q/FUAWSJvOSr/rMaZKnX5RIVq7JDn0JbP4BOnKG2SGXLQ==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.18.0.tgz", + "integrity": "sha512-1iVwbhonhFytNdg0P4PqyIAXbdlVZVebtPDvuM36m66mRw4OGrCm2MYynJv/UENFLdP13J1nPVQzVE2zTs1OeA==", "requires": { "busboy": "^1.6.0" } diff --git a/package.json b/package.json index 6ea0fc6c..97a12b54 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "dependencies": { "@jambonz/db-helpers": "^0.7.4", "@jambonz/http-health-check": "^0.0.1", - "@jambonz/realtimedb-helpers": "^0.6.3", + "@jambonz/realtimedb-helpers": "^0.6.4", "@jambonz/stats-collector": "^0.1.6", "@jambonz/time-series": "^0.2.5", "@opentelemetry/api": "^1.4.0", @@ -38,12 +38,12 @@ "@opentelemetry/sdk-trace-base": "^1.9.0", "@opentelemetry/sdk-trace-node": "^1.9.0", "@opentelemetry/semantic-conventions": "^1.9.0", - "aws-sdk": "^2.1304.0", + "aws-sdk": "^2.1313.0", "bent": "^7.3.12", "debug": "^4.3.4", "deepcopy": "^2.1.0", - "drachtio-fsmrf": "^3.0.16", - "drachtio-srf": "^4.5.23 ", + "drachtio-fsmrf": "^3.0.18", + "drachtio-srf": "^4.5.23", "express": "^4.18.2", "ip": "^1.1.8", "moment": "^2.29.4",