diff --git a/buzz/transcriber/file_transcriber.py b/buzz/transcriber/file_transcriber.py index 4c52f13a..34c4429a 100755 --- a/buzz/transcriber/file_transcriber.py +++ b/buzz/transcriber/file_transcriber.py @@ -80,7 +80,13 @@ class FileTranscriber(QObject): si = subprocess.STARTUPINFO() si.dwFlags |= subprocess.STARTF_USESHOWWINDOW si.wShowWindow = subprocess.SW_HIDE - result = subprocess.run(cmd, capture_output=True, startupinfo=si, env=app_env) + result = subprocess.run( + cmd, + capture_output=True, + startupinfo=si, + env=app_env, + creationflags=subprocess.CREATE_NO_WINDOW + ) else: result = subprocess.run(cmd, capture_output=True) diff --git a/buzz/transcriber/openai_whisper_api_file_transcriber.py b/buzz/transcriber/openai_whisper_api_file_transcriber.py index dd7f7ac5..2daeb3f8 100644 --- a/buzz/transcriber/openai_whisper_api_file_transcriber.py +++ b/buzz/transcriber/openai_whisper_api_file_transcriber.py @@ -56,7 +56,13 @@ class OpenAIWhisperAPIFileTranscriber(FileTranscriber): si = subprocess.STARTUPINFO() si.dwFlags |= subprocess.STARTF_USESHOWWINDOW si.wShowWindow = subprocess.SW_HIDE - result = subprocess.run(cmd, capture_output=True, startupinfo=si, env=app_env) + result = subprocess.run( + cmd, + capture_output=True, + startupinfo=si, + env=app_env, + creationflags = subprocess.CREATE_NO_WINDOW + ) else: result = subprocess.run(cmd, capture_output=True) @@ -83,7 +89,14 @@ class OpenAIWhisperAPIFileTranscriber(FileTranscriber): si.wShowWindow = subprocess.SW_HIDE duration_secs = float( - subprocess.run(cmd, capture_output=True, check=True, startupinfo=si, env=app_env).stdout.decode("utf-8") + subprocess.run( + cmd, + capture_output=True, + check=True, + startupinfo=si, + env=app_env, + creationflags=subprocess.CREATE_NO_WINDOW + ).stdout.decode("utf-8"), ) else: duration_secs = float( @@ -126,7 +139,14 @@ class OpenAIWhisperAPIFileTranscriber(FileTranscriber): si = subprocess.STARTUPINFO() si.dwFlags |= subprocess.STARTF_USESHOWWINDOW si.wShowWindow = subprocess.SW_HIDE - subprocess.run(cmd, capture_output=True, check=True, startupinfo=si, env=app_env) + subprocess.run( + cmd, + capture_output=True, + check=True, + startupinfo=si, + env=app_env, + creationflags=subprocess.CREATE_NO_WINDOW + ) else: subprocess.run(cmd, capture_output=True, check=True) diff --git a/buzz/transformers_whisper.py b/buzz/transformers_whisper.py index 75f87284..0164fd2f 100644 --- a/buzz/transformers_whisper.py +++ b/buzz/transformers_whisper.py @@ -220,6 +220,8 @@ class TransformersWhisper: text = chunk['text'] # Last segment may not have an end timestamp + if start is None: + start = 0 if end is None: end = start + 0.1 diff --git a/buzz/whisper_audio.py b/buzz/whisper_audio.py index 4463e07e..ce3850b7 100644 --- a/buzz/whisper_audio.py +++ b/buzz/whisper_audio.py @@ -1,8 +1,11 @@ import subprocess import numpy as np import sys +import os import logging +from buzz.assets import APP_BASE_DIR + SAMPLE_RATE = 16000 N_FFT = 400 @@ -10,6 +13,8 @@ HOP_LENGTH = 160 CHUNK_LENGTH = 30 N_SAMPLES = CHUNK_LENGTH * SAMPLE_RATE # 480000 samples in a 30-second chunk +app_env = os.environ.copy() +app_env['PATH'] = os.pathsep.join([os.path.join(APP_BASE_DIR, "_internal")] + [app_env['PATH']]) def load_audio(file: str, sr: int = SAMPLE_RATE): """ @@ -48,7 +53,13 @@ def load_audio(file: str, sr: int = SAMPLE_RATE): si = subprocess.STARTUPINFO() si.dwFlags |= subprocess.STARTF_USESHOWWINDOW si.wShowWindow = subprocess.SW_HIDE - result = subprocess.run(cmd, capture_output=True, startupinfo=si) + result = subprocess.run( + cmd, + capture_output=True, + startupinfo=si, + env=app_env, + creationflags=subprocess.CREATE_NO_WINDOW + ) else: result = subprocess.run(cmd, capture_output=True)