From 72347d5d47999944100f051292f68da8239ca5e9 Mon Sep 17 00:00:00 2001 From: David Kruger Date: Mon, 28 Apr 2025 00:09:00 -0700 Subject: [PATCH] Allow partial transcription when streaming --- dnd_transcribe/inference.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/dnd_transcribe/inference.py b/dnd_transcribe/inference.py index 3665507..4ffe5cf 100644 --- a/dnd_transcribe/inference.py +++ b/dnd_transcribe/inference.py @@ -62,14 +62,18 @@ class Inference: for block in stream: if len(block.shape) > 1: block = speech[:, 0] + speech[:, 1] - block_inference = self.buffer_to_text(block) - transcript += block_inference.transcript + " " - processing_time += block_inference.processing_time_sec - if block_inference.confidence_score is not None: - if confidence is None: - confidence = block_inference.confidence_score - else: - confidence *= block_inference.confidence_score + try: + block_inference = self.buffer_to_text(block) + transcript += block_inference.transcript + " " + processing_time += block_inference.processing_time_sec + if block_inference.confidence_score is not None: + if confidence is None: + confidence = block_inference.confidence_score + else: + confidence *= block_inference.confidence_score + except torch.OutOfMemoryError as e: + print(e) + break return InferredTranscript(transcript.strip(), confidence, processing_time) def file_to_text(self, audio_file: typing.BinaryIO) -> InferredTranscript: