From 778121e7ba53aff841e2aed52706e4510cfd2e09 Mon Sep 17 00:00:00 2001 From: Raivis Dejus Date: Sun, 25 May 2025 21:46:40 +0300 Subject: [PATCH] Fix for subtitle resize crash on macOS (#1176) --- Buzz.spec | 1 + .../transcription_resizer_widget.py | 22 ++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/Buzz.spec b/Buzz.spec index 2eec18d4..0f53c829 100644 --- a/Buzz.spec +++ b/Buzz.spec @@ -28,6 +28,7 @@ datas += copy_metadata("pyyaml") datas += collect_data_files("transformers", include_py_files=True) datas += collect_data_files("faster_whisper", include_py_files=True) +datas += collect_data_files("stable_whisper", include_py_files=True) datas += collect_data_files("whisper") datas += [("demucs", "demucs")] datas += [("buzz/assets/*", "assets")] diff --git a/buzz/widgets/transcription_viewer/transcription_resizer_widget.py b/buzz/widgets/transcription_viewer/transcription_resizer_widget.py index 5a3f24ad..108ffd4a 100644 --- a/buzz/widgets/transcription_viewer/transcription_resizer_widget.py +++ b/buzz/widgets/transcription_viewer/transcription_resizer_widget.py @@ -22,6 +22,7 @@ from PyQt6.QtWidgets import ( QSizePolicy, ) from buzz.locale import _, languages +from buzz import whisper_audio from buzz.db.entity.transcription import Transcription from buzz.db.service.transcription_service import TranscriptionService from buzz.paths import file_path_as_title @@ -85,14 +86,19 @@ class TranscriptionWorker(QObject): transcription_file = str(speech_path) transcription_file_exists = True - result = stable_whisper.transcribe_any( - self.get_transcript, - transcription_file, - vad=transcription_file_exists, - suppress_silence=transcription_file_exists, - regroup=self.regroup_string, - check_sorted=False, - ) + try: + result = stable_whisper.transcribe_any( + self.get_transcript, + audio = whisper_audio.load_audio(transcription_file), + input_sr=whisper_audio.SAMPLE_RATE, + vad=transcription_file_exists, + suppress_silence=transcription_file_exists, + regroup=self.regroup_string, + check_sorted=False, + ) + except Exception as e: + logging.error(f"Error in TranscriptionWorker: {e}") + return segments = [] for segment in result.segments: