From e38082e9781dd97b133388863f21809aaed19810 Mon Sep 17 00:00:00 2001 From: Subliminal Guy <subliminal_kid@posteo.de> Date: Mon, 21 Apr 2025 16:07:07 +0200 Subject: [PATCH] Add More Subtle Way to query trancription status --- app/asr_models/asr_model.py | 17 +++++++++++++++++ app/webservice.py | 3 ++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/asr_models/asr_model.py b/app/asr_models/asr_model.py index 76b7b85..2c6fbf0 100644 --- a/app/asr_models/asr_model.py +++ b/app/asr_models/asr_model.py @@ -75,3 +75,20 @@ class ASRModel(ABC): gc.collect() self.model = None print("Model unloaded due to timeout") + + @property + def is_transcribing(self) -> bool: + """ + Returns True if a transcription is currently running. + """ + return self.model_lock.locked() + + @property + def is_model_loaded(self) -> bool: + """ + Returns True if the model is loaded in memory. + """ + model_attr = self.model + if isinstance(model_attr, dict): + return model_attr.get('whisperx') is not None + return model_attr is not None diff --git a/app/webservice.py b/app/webservice.py index 24fe05d..38431fa 100644 --- a/app/webservice.py +++ b/app/webservice.py @@ -125,7 +125,8 @@ async def transcription_status(): """ Return whether a transcription is currently running. """ - return {"active": asr_model.transcription_active} + # Use the model lock to check if a transcription is currently running + return {"active": asr_model.is_transcribing} @click.command() -- GitLab