From b8f9d036c21b1c3d2ac3f3281581fd706d418473 Mon Sep 17 00:00:00 2001 From: Greg Richardson Date: Sun, 24 May 2020 21:38:56 -0600 Subject: [PATCH 1/4] Fix JS IntermediateDecodeWithMetadata binding --- native_client/javascript/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/native_client/javascript/index.js b/native_client/javascript/index.js index f684f503..4ce77d47 100644 --- a/native_client/javascript/index.js +++ b/native_client/javascript/index.js @@ -184,7 +184,7 @@ Stream.prototype.intermediateDecode = function() { */ Stream.prototype.intermediateDecodeWithMetadata = function(aNumResults) { aNumResults = aNumResults || 1; - return binding.IntermediateDecode(this._impl, aNumResults); + return binding.IntermediateDecodeWithMetadata(this._impl, aNumResults); } /** From 83320c1a1030ebe6eccbc6703ed0d7978f2bc1ef Mon Sep 17 00:00:00 2001 From: Reuben Morais Date: Mon, 25 May 2020 11:00:58 +0200 Subject: [PATCH 2/4] Remove bogus Stream parameter in Stream.intermediateDecode TS definition --- native_client/javascript/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/native_client/javascript/index.d.ts b/native_client/javascript/index.d.ts index 339fb36e..c99db3b3 100644 --- a/native_client/javascript/index.d.ts +++ b/native_client/javascript/index.d.ts @@ -134,7 +134,7 @@ feedAudioContent(aBuffer: Buffer): void; * * @return The STT intermediate result. */ -intermediateDecode(aSctx: Stream): string; +intermediateDecode(): string; /** * Compute the intermediate decoding of an ongoing streaming inference, return results including metadata. From 1f30cf27178557d8f561b9e2285a180d8844aeac Mon Sep 17 00:00:00 2001 From: Reuben Morais Date: Mon, 25 May 2020 11:01:15 +0200 Subject: [PATCH 3/4] Use Buffer type in TS definitions that take a Buffer --- native_client/javascript/index.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/native_client/javascript/index.d.ts b/native_client/javascript/index.d.ts index c99db3b3..a5d9c514 100644 --- a/native_client/javascript/index.d.ts +++ b/native_client/javascript/index.d.ts @@ -90,7 +90,7 @@ setScorerAlphaBeta(aLMAlpha: number, aLMBeta: number): number; * * @return The STT result. Returns undefined on error. */ -stt(aBuffer: object): string; +stt(aBuffer: Buffer): string; /** * Use the DeepSpeech model to perform Speech-To-Text and output metadata @@ -103,7 +103,7 @@ stt(aBuffer: object): string; * @return :js:func:`Metadata` object containing multiple candidate transcripts. Each transcript has per-token metadata including timing information. * The user is responsible for freeing Metadata by calling :js:func:`FreeMetadata`. Returns undefined on error. */ -sttWithMetadata(aBuffer: object, aNumResults?: number): Metadata; +sttWithMetadata(aBuffer: Buffer, aNumResults?: number): Metadata; /** * Create a new streaming inference state. One can then call :js:func:`Stream.feedAudioContent` and :js:func:`Stream.finishStream` on the returned stream object. From fdd3b319a5763153c0286b65f349d8c05eab0ca2 Mon Sep 17 00:00:00 2001 From: Reuben Morais Date: Mon, 25 May 2020 11:01:40 +0200 Subject: [PATCH 4/4] Exercise intermediateDecode and intermediateDecodeWithMetadata in streaming tests --- native_client/javascript/client.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/native_client/javascript/client.ts b/native_client/javascript/client.ts index d607060e..7d762d66 100644 --- a/native_client/javascript/client.ts +++ b/native_client/javascript/client.ts @@ -132,6 +132,12 @@ if (!args['stream']) { let stream = model.createStream(); conversionStream.on('data', (chunk: Buffer) => { stream.feedAudioContent(chunk); + if (args['extended']) { + let metadata = stream.intermediateDecodeWithMetadata(); + console.error('intermediate: ' + candidateTranscriptToString(metadata.transcripts[0])); + } else { + console.error('intermediate: ' + stream.intermediateDecode()); + } }); conversionStream.on('end', () => { if (args['extended']) {