From d1b16efd265319db050dfe6e52314869544143d8 Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Sat, 21 Dec 2024 18:40:38 -0800 Subject: [PATCH 01/28] Add translation --- controller.py | 11 ++++++--- main.py | 62 ++++++++++++++++++++++++++++++++++++++++++++++---- transcriber.py | 26 +++++++++++++-------- 3 files changed, 83 insertions(+), 16 deletions(-) diff --git a/controller.py b/controller.py index 8caf11d..ecd5b09 100644 --- a/controller.py +++ b/controller.py @@ -32,13 +32,14 @@ def start_recording(): device_index = args.device_index if hasattr(args, 'device_index') else None recorder.record_audio(device_index) -def start_transcription(device): +def start_transcription(device, args): """Start the audio transcription process.""" transcriber.monitor_audio_file( transcriber.AUDIO_INPUT_DIR, transcriber.TRANSCRIPTION_OUTPUT, check_interval=0.2, - device=device + device=device, + args=args ) def start_gui(update_queue, intelligent_mode): @@ -53,6 +54,10 @@ def start_gui(update_queue, intelligent_mode): parser.add_argument('--model', type=str, choices=['tiny', 'base', 'small', 'medium', 'large'], help='Select the model size for transcription') parser.add_argument('--device-index', type=int, help='Audio device index for recording') + parser.add_argument('--transcription-timeout', type=int, default=5, help='Transcription timeout in seconds') + parser.add_argument('--workers', type=int, default=4, help='Number of worker threads') + parser.add_argument('--translation-enabled', action='store_true', help='Enable translation') + parser.add_argument('--source-language', type=str, default='en', help='Source language for transcription') args = parser.parse_args() # Update config with the selected model @@ -71,7 +76,7 @@ def start_gui(update_queue, intelligent_mode): # Create threads for recording, transcription, and GUI recording_thread = threading.Thread(target=start_recording, daemon=True) - transcription_thread = threading.Thread(target=start_transcription, args=(device,), daemon=True) + transcription_thread = threading.Thread(target=start_transcription, args=(device, args), daemon=True) gui_thread = threading.Thread(target=start_gui, args=(transcription_queue, args.intelligent), daemon=True) # Start the threads diff --git a/main.py b/main.py index b4e04c4..08d787c 100644 --- a/main.py +++ b/main.py @@ -57,9 +57,9 @@ def get_base_path(): class App(ctk.CTk): def __init__(self): super().__init__() - self.title("System Captioner") - self.geometry("400x285") - self.resizable(False, False) + self.title("System Captioner v1.1") + self.geometry("650x785") + self.resizable(True, True) # Add icon to the main window icon_path = os.path.join(get_base_path(), "icon.ico") @@ -71,6 +71,11 @@ def __init__(self): self.app_running = False self.process = None + self.translation_enabled = ctk.BooleanVar() + self.source_language = ctk.StringVar(value="en") + self.transcription_timeout = ctk.StringVar(value="5") + self.workers = ctk.StringVar(value="4") + # Redirect stdout and stderr to the console queue self.console_queue = queue.Queue() sys.stdout = QueueWriter(self.console_queue) @@ -154,7 +159,11 @@ def __init__(self): self.model_dropdown = ctk.CTkOptionMenu( self.model_frame, - values=["tiny", "base", "small", "medium", "large"], + values=[ + 'tiny.en', 'tiny', 'base.en', 'base', 'small.en', 'small', 'medium.en', 'medium', + 'large-v1', 'large-v2', 'large-v3', 'large', 'distil-large-v2', 'distil-medium.en', + 'distil-small.en', 'distil-large-v3', 'large-v3-turbo', 'turbo' + ], variable=self.model_selection, command=self.save_config # Save config on change ) @@ -222,6 +231,36 @@ def __init__(self): self.feedback_label.pack(side="bottom", pady=(0, 10)) self.feedback_label.bind("", lambda e: self.open_feedback_link()) + self.timeout_frame = ctk.CTkFrame(self) + self.timeout_frame.pack(pady=(0, 10)) + + self.timeout_label = ctk.CTkLabel(self.timeout_frame, text="Transcription Timeout (seconds):") + self.timeout_label.pack(side="left", padx=(0, 5)) + + self.timeout_entry = ctk.CTkEntry(self.timeout_frame, textvariable=self.transcription_timeout) + self.timeout_entry.pack(side="left") + + self.workers_frame = ctk.CTkFrame(self) + self.workers_frame.pack(pady=(0, 10)) + + self.workers_label = ctk.CTkLabel(self.workers_frame, text="Workers:") + self.workers_label.pack(side="left", padx=(0, 5)) + + self.workers_entry = ctk.CTkEntry(self.workers_frame, textvariable=self.workers) + self.workers_entry.pack(side="left") + + self.translation_checkbox = ctk.CTkCheckBox(self, text="Enable Translation", variable=self.translation_enabled, command=self.save_config) + self.translation_checkbox.pack(side="left") + + self.language_frame = ctk.CTkFrame(self) + self.language_frame.pack(pady=(0, 10)) + + self.language_label = ctk.CTkLabel(self.language_frame, text="Source Language:") + self.language_label.pack(side="left", padx=(0, 5)) + + self.language_entry = ctk.CTkEntry(self.language_frame, textvariable=self.source_language) + self.language_entry.pack(side="left") + def load_config(self): """Load the configuration from config.ini or create default if not exists.""" if not os.path.exists(CONFIG_FILE): @@ -235,6 +274,10 @@ def save_config(self, *args): self.config['Settings']['cuda'] = str(self.gpu_enabled.get()) self.config['Settings']['model'] = self.model_selection.get() self.config['Settings']['audio_device'] = self.device_selection.get() + self.config['Settings']['transcription_timeout'] = self.transcription_timeout.get() + self.config['Settings']['workers'] = self.workers.get() + self.config['Settings']['translation_enabled'] = str(self.translation_enabled.get()) + self.config['Settings']['source_language'] = self.source_language.get() # Save the sample rate of the selected device selected_device = self.device_selection.get() @@ -329,6 +372,17 @@ def start_app(self): threading.Thread(target=self.read_process_output, daemon=True).start() threading.Thread(target=self.watch_console_queue, daemon=True).start() + self.TRANSCRIPTION_TIMEOUT = int(self.transcription_timeout.get()) + workers = int(self.workers.get()) + translation_enabled = self.translation_enabled.get() + source_language = self.source_language.get() + + args.extend(["--transcription-timeout", str(self.TRANSCRIPTION_TIMEOUT)]) + args.extend(["--workers", str(workers)]) + if translation_enabled: + args.append("--translation-enabled") + args.extend(["--source-language", source_language]) + def stop_app(self): if self.process: try: diff --git a/transcriber.py b/transcriber.py index 7f96e4c..00e8878 100644 --- a/transcriber.py +++ b/transcriber.py @@ -34,11 +34,12 @@ def initialize_model(device): print("Model loaded.", flush=True) return model -def transcribe_audio(model, audio_path): +def transcribe_audio(model, audio_path, translation_enabled, source_language): """ Transcribe the given audio file using the preloaded Faster Whisper model. """ - print(f"Starting transcription for {audio_path}...", flush=True) + print(f"Transcribing {audio_path} with source language {source_language}...", flush=True) + try: with sf.SoundFile(audio_path) as sound_file: if sound_file.frames == 0: @@ -48,7 +49,13 @@ def transcribe_audio(model, audio_path): print(f"Error reading audio file {audio_path}: {e}") return "" - segments, _ = model.transcribe(audio_path, beam_size=1, vad_filter=True, word_timestamps=True) + if translation_enabled: + print("Translating!", flush=True) + segments, _ = model.transcribe(audio_path, language=source_language, task="translate", beam_size=1, vad_filter=True, word_timestamps=True) + + else: + segments, _ = model.transcribe(audio_path, language=source_language, task="transcribe", beam_size=1, vad_filter=True, word_timestamps=True) + transcription = " ".join(segment.text for segment in segments) print("Transcription completed.", flush=True) return transcription.strip() @@ -61,13 +68,13 @@ def save_transcription(transcription, output_path): transcription (str): The transcribed text. output_path (str): Path to the output transcription file. """ - with open(output_path, "a") as f: + with open(output_path, "a", encoding='utf-8') as f: f.write(transcription + "\n") print(f"Transcription saved to {output_path}", flush=True) # Send transcription to GUI queue transcription_queue.put(transcription) -def monitor_audio_file(input_dir, output_path, check_interval=0.5, device="cuda"): +def monitor_audio_file(input_dir, output_path, check_interval=0.5, device="cuda", args=None): """ Continuously monitor the directory for new audio files and transcribe them. @@ -76,22 +83,23 @@ def monitor_audio_file(input_dir, output_path, check_interval=0.5, device="cuda" output_path (str): Path to save the transcriptions. check_interval (int): Time in seconds between checks. device (str): Device to use for transcription ('cuda' or 'cpu'). + args (argparse.Namespace): Parsed command-line arguments. """ processed_files = set() model = initialize_model(device) - executor = concurrent.futures.ThreadPoolExecutor(max_workers=4) # Allows parallel processing + executor = concurrent.futures.ThreadPoolExecutor(max_workers=args.workers) # Allows parallel processing while True: for filename in os.listdir(input_dir): file_path = os.path.join(input_dir, filename) if file_path not in processed_files: - executor.submit(transcribe_and_save, model, file_path, output_path) + executor.submit(transcribe_and_save, model, file_path, output_path, args.translation_enabled, args.source_language) processed_files.add(file_path) time.sleep(check_interval) -def transcribe_and_save(model, file_path, output_path): +def transcribe_and_save(model, file_path, output_path, translation_enabled, source_language): try: print(f"Transcribing {file_path}...", flush=True) - transcription = transcribe_audio(model, file_path) + transcription = transcribe_audio(model, file_path, translation_enabled, source_language) if transcription: save_transcription(transcription, output_path) except Exception as e: From 8138bc73d7ba636bd536f9c7df6ddbe2c144bb9b Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Sat, 21 Dec 2024 19:17:31 -0800 Subject: [PATCH 02/28] Update frontend GUI --- .gitignore | 1 + main.py | 45 ++++++++++++++++++++++++++++++++++++++++++--- transcriber.py | 5 +++-- 3 files changed, 46 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 71c7399..e4a401a 100644 --- a/.gitignore +++ b/.gitignore @@ -173,3 +173,4 @@ nvidia_dependencies_linux.zip 1.29.zip config.ini build_portable_example.py +.idea/ diff --git a/main.py b/main.py index 08d787c..6a7ef66 100644 --- a/main.py +++ b/main.py @@ -57,7 +57,7 @@ def get_base_path(): class App(ctk.CTk): def __init__(self): super().__init__() - self.title("System Captioner v1.1") + self.title("System Captioner v1.39 - Translation Update") self.geometry("650x785") self.resizable(True, True) @@ -151,6 +151,29 @@ def __init__(self): "Disabling this will run the app on CPU and result in much slower transcription." ) + self.translation_checkbox = ctk.CTkCheckBox( + self.inner_checkbox_frame, + text="Enable Translation", + variable=self.translation_enabled, + command=self.save_config + ) + self.translation_checkbox.grid(row=2, column=0, sticky="w", padx=(0, 10), pady=(5, 0)) + + self.translation_tooltip_button = ctk.CTkButton( + self.inner_checkbox_frame, + text="?", + width=25, + height=25, + fg_color="transparent", + hover_color="grey", + command=None + ) + self.translation_tooltip_button.grid(row=2, column=1, pady=(5, 0)) + ToolTip( + self.translation_tooltip_button, + "Enable this to translate the transcription to English." + ) + self.model_frame = ctk.CTkFrame(self) self.model_frame.pack(pady=(0, 10)) @@ -249,8 +272,20 @@ def __init__(self): self.workers_entry = ctk.CTkEntry(self.workers_frame, textvariable=self.workers) self.workers_entry.pack(side="left") - self.translation_checkbox = ctk.CTkCheckBox(self, text="Enable Translation", variable=self.translation_enabled, command=self.save_config) - self.translation_checkbox.pack(side="left") + self.workers_tooltip_button = ctk.CTkButton( + self.workers_frame, + text="?", + width=25, + height=25, + fg_color="transparent", + hover_color="grey", + command=None + ) + self.workers_tooltip_button.pack(side="left") + ToolTip( + self.workers_tooltip_button, + "Number of worker threads for parallel processing." + ) self.language_frame = ctk.CTkFrame(self) self.language_frame.pack(pady=(0, 10)) @@ -267,6 +302,10 @@ def load_config(self): # Run setup GUI to get initial audio device selection run_setup() self.config.read(CONFIG_FILE) + self.translation_enabled.set(self.config.getboolean('Settings', 'translation_enabled', fallback=False)) + self.source_language.set(self.config.get('Settings', 'source_language', fallback='en')) + self.transcription_timeout.set(self.config.get('Settings', 'transcription_timeout', fallback='5')) + self.workers.set(self.config.get('Settings', 'workers', fallback='4')) def save_config(self, *args): """Save the current settings to config.ini.""" diff --git a/transcriber.py b/transcriber.py index 00e8878..c22e874 100644 --- a/transcriber.py +++ b/transcriber.py @@ -50,14 +50,15 @@ def transcribe_audio(model, audio_path, translation_enabled, source_language): return "" if translation_enabled: - print("Translating!", flush=True) + print("Translation mode on!", flush=True) segments, _ = model.transcribe(audio_path, language=source_language, task="translate", beam_size=1, vad_filter=True, word_timestamps=True) else: + print("Transcription mode on!", flush=True) segments, _ = model.transcribe(audio_path, language=source_language, task="transcribe", beam_size=1, vad_filter=True, word_timestamps=True) transcription = " ".join(segment.text for segment in segments) - print("Transcription completed.", flush=True) + print("Whisper processing completed.", flush=True) return transcription.strip() def save_transcription(transcription, output_path): From 2cc79244f14f136cedaca65b489d69df4536ab2e Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Sat, 21 Dec 2024 19:34:48 -0800 Subject: [PATCH 03/28] Add support for more Whisper models --- controller.py | 4 +++- main.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/controller.py b/controller.py index ecd5b09..a41ee9d 100644 --- a/controller.py +++ b/controller.py @@ -51,7 +51,9 @@ def start_gui(update_queue, intelligent_mode): parser = argparse.ArgumentParser(description="TranscriberX Application") parser.add_argument('--intelligent', action='store_true', help='Enable intelligent mode') parser.add_argument('--cuda', action='store_true', help='Enable CUDA for transcription') - parser.add_argument('--model', type=str, choices=['tiny', 'base', 'small', 'medium', 'large'], + parser.add_argument('--model', type=str, choices=['tiny.en', 'tiny', 'base.en', 'base', 'small.en', 'small', 'medium.en', 'medium', + 'large-v1', 'large-v2', 'large-v3', 'large', 'distil-large-v2', 'distil-medium.en', + 'distil-small.en', 'distil-large-v3', 'large-v3-turbo', 'turbo'], help='Select the model size for transcription') parser.add_argument('--device-index', type=int, help='Audio device index for recording') parser.add_argument('--transcription-timeout', type=int, default=5, help='Transcription timeout in seconds') diff --git a/main.py b/main.py index 6a7ef66..30ee483 100644 --- a/main.py +++ b/main.py @@ -58,7 +58,7 @@ class App(ctk.CTk): def __init__(self): super().__init__() self.title("System Captioner v1.39 - Translation Update") - self.geometry("650x785") + self.geometry("650x585") self.resizable(True, True) # Add icon to the main window From 7c79f10a08917ddf186cbe9185c3e07f369654af Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Sat, 21 Dec 2024 20:39:46 -0800 Subject: [PATCH 04/28] Update requirements with fixed versions --- requirements.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/requirements.txt b/requirements.txt index e7443dd..8f0846c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ -pyaudiowpatch -faster-whisper -customtkinter -soundfile -pyaudio +pyaudiowpatch==0.2.12.6 +faster-whisper==1.1.0 +customtkinter==5.2.2 +soundfile==0.12.1 +pyaudio==0.2.14 From 1c39070502e27bf5cf56181515bae4d1dd93cf62 Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Sat, 21 Dec 2024 20:51:32 -0800 Subject: [PATCH 05/28] Update console dimension --- console.py | 2 +- transcriber.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/console.py b/console.py index a8a5f6a..b8a0da0 100644 --- a/console.py +++ b/console.py @@ -8,7 +8,7 @@ class ConsoleWindow(ctk.CTkToplevel): def __init__(self, console_queue, master=None, icon_path=None): super().__init__(master) self.title("Console Output") - self.geometry("600x400") + self.geometry("900x450") # Set the icon for the console window if icon_path: diff --git a/transcriber.py b/transcriber.py index c22e874..383002c 100644 --- a/transcriber.py +++ b/transcriber.py @@ -99,12 +99,12 @@ def monitor_audio_file(input_dir, output_path, check_interval=0.5, device="cuda" def transcribe_and_save(model, file_path, output_path, translation_enabled, source_language): try: - print(f"Transcribing {file_path}...", flush=True) + print(f"Transcribing/translating {file_path}...", flush=True) transcription = transcribe_audio(model, file_path, translation_enabled, source_language) if transcription: save_transcription(transcription, output_path) except Exception as e: - print(f"Can't transcribe audio chunk {file_path}: {e}", flush=True) + print(f"Can't transcribe/translate audio chunk {file_path}: {e}", flush=True) if __name__ == "__main__": monitor_audio_file(AUDIO_INPUT_DIR, TRANSCRIPTION_OUTPUT) From 7421f9835f9f0c90274812904c14f70c56f6afad Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Sat, 21 Dec 2024 21:29:08 -0800 Subject: [PATCH 06/28] Upddate translation toggle check and window opacity --- gui.py | 2 +- main.py | 15 +++++++++++---- transcriber.py | 34 ++++++++++++++++++++++------------ 3 files changed, 34 insertions(+), 17 deletions(-) diff --git a/gui.py b/gui.py index 84bc60b..f615680 100644 --- a/gui.py +++ b/gui.py @@ -26,7 +26,7 @@ def __init__(self, update_queue, intelligent_mode=False): self.root.geometry(f"{window_width}x{window_height}+{x_position}+{y_position}") # Make window semi-transparent - self.root.attributes("-alpha", 0.9) # Range: 0.0 (fully transparent) to 1.0 (fully opaque) + self.root.attributes("-alpha", 0.8) # Range: 0.0 (fully transparent) to 1.0 (fully opaque) # Set window to be always on top self.root.attributes("-topmost", True) diff --git a/main.py b/main.py index 30ee483..21fc8f8 100644 --- a/main.py +++ b/main.py @@ -204,7 +204,7 @@ def __init__(self): self.model_tooltip_button.pack(side="left") ToolTip( self.model_tooltip_button, - "Select the model to use for transcription. Larger models are more accurate but require more VRAM." + "Select the model to use for transcription. Larger models are more accurate but require more VRAM. .en are English only models" ) # Add audio device selection frame @@ -246,7 +246,7 @@ def __init__(self): # Add these after all other UI elements in __init__ self.feedback_label = ctk.CTkLabel( self, - text="If the app didn't work or you had any issues, let me know!", + text="If the app didn't work or you had any issues, let us know!", text_color="light blue", cursor="hand2", font=("", -13, "underline") # Added underline to the font @@ -392,7 +392,14 @@ def start_app(self): device_index = next((device['index'] for device in self.devices if device['name'] == selected_device), None) if device_index is not None: args.extend(["--device-index", str(device_index)]) - + + # Add translation settings before process creation + if self.translation_enabled.get(): + args.append("--translation-enabled") + args.extend(["--source-language", self.source_language.get()]) + args.extend(["--transcription-timeout", self.transcription_timeout.get()]) + args.extend(["--workers", self.workers.get()]) + # If running in a frozen state, ensure subprocess handles executable correctly self.process = subprocess.Popen( args, @@ -453,7 +460,7 @@ def monitor_timeout(self): time.sleep(1) def read_process_output(self): - """Read and process lines from the subprocess's combined stdout and stderr.""" + """Read and process lines from the subprocesses combined stdout and stderr.""" if self.process.stdout: for line in iter(self.process.stdout.readline, ''): if not line: diff --git a/transcriber.py b/transcriber.py index 383002c..4e17eab 100644 --- a/transcriber.py +++ b/transcriber.py @@ -31,7 +31,7 @@ def initialize_model(device): """ print(f"Loading model: {MODEL_SIZE} on {device}", flush=True) model = WhisperModel(MODEL_SIZE, device=device) - print("Model loaded.", flush=True) + print(f"Model {MODEL_SIZE} loaded.", flush=True) return model def transcribe_audio(model, audio_path, translation_enabled, source_language): @@ -49,17 +49,25 @@ def transcribe_audio(model, audio_path, translation_enabled, source_language): print(f"Error reading audio file {audio_path}: {e}") return "" - if translation_enabled: - print("Translation mode on!", flush=True) - segments, _ = model.transcribe(audio_path, language=source_language, task="translate", beam_size=1, vad_filter=True, word_timestamps=True) + try: + # print(f"Translation mode: {'enabled' if translation_enabled else 'disabled'}", flush=True) + # print(f"Source language: {source_language}", flush=True) - else: - print("Transcription mode on!", flush=True) - segments, _ = model.transcribe(audio_path, language=source_language, task="transcribe", beam_size=1, vad_filter=True, word_timestamps=True) - - transcription = " ".join(segment.text for segment in segments) - print("Whisper processing completed.", flush=True) - return transcription.strip() + segments, _ = model.transcribe( + audio_path, + language=source_language, + task="translate" if translation_enabled else "transcribe", + beam_size=1, + vad_filter=True, + word_timestamps=True, + ) + + transcription = " ".join(segment.text for segment in segments) + print("Whisper processing completed.", flush=True) + return transcription.strip() + except Exception as e: + print(f"Error during processing: {e}", flush=True) + return "" def save_transcription(transcription, output_path): """ @@ -71,7 +79,7 @@ def save_transcription(transcription, output_path): """ with open(output_path, "a", encoding='utf-8') as f: f.write(transcription + "\n") - print(f"Transcription saved to {output_path}", flush=True) + print(f"Output saved to {output_path}", flush=True) # Send transcription to GUI queue transcription_queue.put(transcription) @@ -88,11 +96,13 @@ def monitor_audio_file(input_dir, output_path, check_interval=0.5, device="cuda" """ processed_files = set() model = initialize_model(device) + print(f"Using {args.workers} workers thread...", flush=True) executor = concurrent.futures.ThreadPoolExecutor(max_workers=args.workers) # Allows parallel processing while True: for filename in os.listdir(input_dir): file_path = os.path.join(input_dir, filename) if file_path not in processed_files: + print(f"Running transcribe_and_save with translation_enabled: {args.translation_enabled} and source_language: {args.source_language}...", flush=True) executor.submit(transcribe_and_save, model, file_path, output_path, args.translation_enabled, args.source_language) processed_files.add(file_path) time.sleep(check_interval) From c6021c32fc197d6f14066932f08a9ed7b1af05a1 Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Sat, 21 Dec 2024 21:35:16 -0800 Subject: [PATCH 07/28] Remove unused imports --- console.py | 2 -- controller.py | 2 -- gui.py | 1 - 3 files changed, 5 deletions(-) diff --git a/console.py b/console.py index b8a0da0..11d93fd 100644 --- a/console.py +++ b/console.py @@ -1,8 +1,6 @@ import customtkinter as ctk from tkinter import scrolledtext -import threading import queue -import sys class ConsoleWindow(ctk.CTkToplevel): def __init__(self, console_queue, master=None, icon_path=None): diff --git a/controller.py b/controller.py index a41ee9d..a357a41 100644 --- a/controller.py +++ b/controller.py @@ -4,8 +4,6 @@ import threading import recorder import transcriber -from gui import SubtitleGUI -import queue import time import argparse import configparser diff --git a/gui.py b/gui.py index f615680..36a7c0e 100644 --- a/gui.py +++ b/gui.py @@ -1,6 +1,5 @@ import tkinter as tk from tkinter import scrolledtext -import threading import queue import time From 37a86f525383a2d9f3fa1145ede63c0653d275cb Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Sat, 21 Dec 2024 22:06:33 -0800 Subject: [PATCH 08/28] Update readme --- README.md | 13 +++++++------ demo1.png | Bin 0 -> 38008 bytes 2 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 demo1.png diff --git a/README.md b/README.md index 8f98c91..41a51e7 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,22 @@ # System Captioner -Generates and shows real-time captions by listening to your Windows PC's audio. Makes digital content more accessible for those who are deaf or hard of hearing, aids language learning, and more. +Generates and shows real-time captions/subtitles by listening to your Windows PC's audio. Makes digital content more accessible for those who are deaf or hard of hearing, aids language learning, and more. https://github.com/user-attachments/assets/7315ab7c-fe30-4c37-91aa-60bb32979338 +![ Main User Interface](demo1.png) ## How it works 1. Captures system audio in real-time through Windows audio loopback using PyAudioWPatch -3. Locally transcribes the recordings using faster-whisper -4. Displays the transcriptions as captions in a overlay window that remains always on top +2. Locally transcribes or translates the recordings using faster-whisper +3. Displays the transcriptions/translations as captions in an overlay window that remains always on top Language auto-detection, user-friendly GUI, draggable captions box, and intelligent mode that shows captions only when speech is detected. -By default, the app runs on and requires **nVidia CUDA** (dependencies included). The app should work with RTX 2000, 3000 and 4000 series cards. Turning off GPU mode will make the app run on CPU; start with the smallest model and settle with the model that's stable. +By default, the app runs on and requires **NVIDIA CUDA** (dependencies included). The app should work with RTX 2000, 3000 and 4000 series cards. Turning off GPU mode will make the app run on CPU; start with the smallest model and settle with the model that's stable. ## Installation (Windows) @@ -27,6 +28,6 @@ Alternatively build the standalone executable yourself using build_portable.py. ## Limitations/Troubleshooting -‼️ Occasionally, the app can take a long time to start up/load a model. If there are no clear errors in console, wait for at least a few mins or try stopping and starting model again. +‼️ Occasionally, the app can take a long time to start load a model. If there are no clear errors in console, wait for at least a few minutes or try stopping and starting model again. -If you experienced any issues with System Captioner, let me know in the 'Issues' page of this repo! Include the Console window log if possible. +If you experienced any issues with System Captioner, let us know in the 'Issues' page of this repo! Include the Console window log if possible. diff --git a/demo1.png b/demo1.png new file mode 100644 index 0000000000000000000000000000000000000000..5915298f26c9effc9ba2862b7e361222c0df3cb6 GIT binary patch literal 38008 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 literal 0 HcmV?d00001 From cee7fa710d9ac512d606dcbf7e9c5fce146a3b86 Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Sat, 21 Dec 2024 22:27:21 -0800 Subject: [PATCH 09/28] Cleanup project folder --- demo1.png => DemoMedia/demo1.png | Bin README.md | 4 +- outdated_readme.md | 23 ------ pyaudiowpatchdocu.txt | 118 ------------------------------- 4 files changed, 2 insertions(+), 143 deletions(-) rename demo1.png => DemoMedia/demo1.png (100%) delete mode 100644 outdated_readme.md delete mode 100644 pyaudiowpatchdocu.txt diff --git a/demo1.png b/DemoMedia/demo1.png similarity index 100% rename from demo1.png rename to DemoMedia/demo1.png diff --git a/README.md b/README.md index 41a51e7..e113280 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Generates and shows real-time captions/subtitles by listening to your Windows PC https://github.com/user-attachments/assets/7315ab7c-fe30-4c37-91aa-60bb32979338 -![ Main User Interface](demo1.png) +![ Main User Interface](DemoMedia/demo1.png) ## How it works @@ -24,7 +24,7 @@ By default, the app runs on and requires **NVIDIA CUDA** (dependencies included) 2. Run SystemCaptioner.exe and follow the instructions. -Alternatively build the standalone executable yourself using build_portable.py. You will need the nvidia_dependencies folder from the standalone .zip (/SystemCaptioner/Controller/_internal/nvidia_dependencies) and install all the dependencies using requirements.txt inside a venv first. +Alternatively build the standalone executable yourself using build_portable.py. You will need the nvidia_dependencies folder from the standalone .zip (/SystemCaptioner/Controller/_internal/nvidia_dependencies) and install all the dependencies using requirements.txt inside a venv first. After building, extra nvidia_dependencies folder is generated inside dist/SystemCaptioner/. Delete it. ## Limitations/Troubleshooting diff --git a/outdated_readme.md b/outdated_readme.md deleted file mode 100644 index 9dbf5de..0000000 --- a/outdated_readme.md +++ /dev/null @@ -1,23 +0,0 @@ - 0. Prerequisites: One of the following Python versions installed on your system: 3.{7,8,9,10,11,12}. - -1. Clone the repository (or download it as .zip from this page) and navigate into the folder: -```bash -git clone https://github.com/evermoving/SystemCaptioner -cd SystemCaptioner -``` -2. Create a virtual environment inside the cloned repo: -```bash -python -m venv venv -``` -3. Activate the virtual environment: -```bash -.\venv\Scripts\activate -``` -4. Install the dependencies: -```bash -pip install -r requirements.txt -``` -5. Download nvidia_dependencies zip from the releases section and extract it into folder where main.py is, i.e. `/SystemCaptioner/nvidia_dependencies/` -6. Launch main.py while in virtual environment: -```bash -python main.py \ No newline at end of file diff --git a/pyaudiowpatchdocu.txt b/pyaudiowpatchdocu.txt deleted file mode 100644 index d51acc5..0000000 --- a/pyaudiowpatchdocu.txt +++ /dev/null @@ -1,118 +0,0 @@ -PyAudioWPatch - -This fork will allow you to use the WASAPI device as loopback using PyAudio. -So you can use speakers to record audio ✨ - -Last Commit Wheels Downloads Py Version Latest release - - - -For whom? - -If you want to record sound from speakers in python, then this fork is for you. You can get recording from any device that supports WASAPI, for example, you can even record audio from Bluetooth headphones🎧 - - PyAudioW(indows|ASAPI)Patch come only with WMME, DirectX and WASAPI support if you need more -> create an issue - -How - -The Windows Audio Session API (WASAPI) allows you to use output devices (that support this API) in loopback mode. At the time of release, it was impossible to achieve this using the original version of PyAudio. - - Note: Now WASAPI loopback devices are duplicated at the end of the list as virtual devices. That is, to record from speakers, you need to use not just a WASAPI device, but its loopback analogue. All loopback devices are input devices. - -How to use - -Read -> Install -> Enjoy! ↣ Press ⭐ -Installation - -pip install PyAudioWPatch - - Wheels are available for Windows, Python 3.{7,8,9,10,11,12}. - All wheels support APIs: WMME, WASAPI, DirectX(DSound). - -In code - -With new features: - -import pyaudiowpatch as pyaudio - -with pyaudio.PyAudio() as p: - # Open PyA manager via context manager - with p.open(...) as stream: - # Open audio stream via context manager - # Do some stuff - ... - -Or in original PyAudio way: - -import pyaudiowpatch as pyaudio - -p = pyaudio.PyAudio() -stream = p.open(...) - -# Do some stuff -... - -stream.stop_stream() -stream.close() - -# close PyAudio -p.terminate() - -Difference with PyAudio - - The behavior of all standard methods is unchanged - Added several life-improving methods - Fixed problem with name encoding - Ability to record audio from WASAPI loopback devices (see example) - -More detailed - - new methods: - get_host_api_info_generator - Iterate over all Host APIs - get_device_info_generator - Iterate over all devices - get_device_info_generator_by_host_api - Iterate over all devices, by specific Host API(index/type) - get_loopback_device_info_generator - Iterate over all devices(with loopback mode) - print_detailed_system_info - Print some info about Host Api and devices - get_default_wasapi_loopback - Return loopback for default speakers - get_wasapi_loopback_analogue_by_index - Return loopback for device via index - get_wasapi_loopback_analogue_by_dict - Return loopback for device related to info_dict - get_default_wasapi_device - Return default (out/in)put device for WASAPI driver - - new features: - Context manager support, for PyAudio(manager) and Stream classes - Run python -m pyaudiowpatch to get list of devices(like print_detailed_system_info call) - -Examples: - - 🆕 Sequential recording from speakers - Play sine, using 'new context manager' - Record audio from default speakers - Simple recording app - Cross-platform concept (Not example) - -Sources - -The following were taken as a basis: - - PortAudio v19 [8b6d16f26ad660e68a97743842ac29b939f3c0c1] - PyAudio v0.2.12 - -How to build manually -Build PortAudio (using the instructions in the README) -Install python -run in the PyAudioWPatch directory: - -python setup.py install - - ??? - Profit. - -Also you can build wheels: - - pip install cibuildwheel - Run in Cygwin: - - ./cygwin_cibuildwheel_build.sh - - Get your wheels in the ./wheelhouse folder - From 058b32068b83fb6913964d9a8b76938add990024 Mon Sep 17 00:00:00 2001 From: Chan Jian Hao <49814823+ChanJianHao@users.noreply.github.com> Date: Sun, 22 Dec 2024 02:19:13 -0800 Subject: [PATCH 10/28] Change icon from CC to S --- icon.ico | Bin 10238 -> 101584 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icon.ico b/icon.ico index 5331b18948be2b465a88ac9fa8a9ccebea87c262..98c75699ea3d7d11e43e549a0487c397b9ab703a 100644 GIT binary patch literal 101584 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

5Jwl-H88Joyx4hH{MTG2l^%JSTGBk%|| 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%0Ae;opVrUOYi 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 QPXGV_07*qoM6N<$g8PN>)c^nh literal 10238 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 WR|xE*1#TRCfZ{VXx#}kt!T$r?KNjQw From a729e60250e1968604ed0643e956206f4afe5e9a Mon Sep 17 00:00:00 2001 From: Chan Jian Hao <49814823+ChanJianHao@users.noreply.github.com> Date: Sun, 22 Dec 2024 18:24:39 +0800 Subject: [PATCH 11/28] Update README.md with troubleshooting on cublas64_12.dll --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e113280..1f7e7ae 100644 --- a/README.md +++ b/README.md @@ -30,4 +30,6 @@ Alternatively build the standalone executable yourself using build_portable.py. ‼️ Occasionally, the app can take a long time to start load a model. If there are no clear errors in console, wait for at least a few minutes or try stopping and starting model again. +⚠️ If you are getting `Library cublas64_12.dll is not found or cannot be loaded` error on console with no translation, copy `cublasLt64_11.dll` and rename to `cublasLt64_12.dll` in `\Controller\_internal\nvidia_dependencies` folder. + If you experienced any issues with System Captioner, let us know in the 'Issues' page of this repo! Include the Console window log if possible. From 4bf4a43e640f344a8fc8b0965b232da367134a13 Mon Sep 17 00:00:00 2001 From: Chan Jian Hao <49814823+ChanJianHao@users.noreply.github.com> Date: Sun, 22 Dec 2024 18:50:34 +0800 Subject: [PATCH 12/28] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1f7e7ae..3037bd9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # System Captioner -Generates and shows real-time captions/subtitles by listening to your Windows PC's audio. Makes digital content more accessible for those who are deaf or hard of hearing, aids language learning, and more. +This application generates and displays real-time captions/subtitles by capturing audio output from a Windows PC. It enhances accessibility for individuals who are deaf or hard of hearing, facilitates language learning, and offers other potential applications. For example, with translation turned on, it enables near real-time communication during foreign language voice calls and provides on-the-fly subtitling for foreign language media, such as anime, without the need for pre-processing video files, and is not limited to any one software boundary. https://github.com/user-attachments/assets/7315ab7c-fe30-4c37-91aa-60bb32979338 @@ -24,7 +24,7 @@ By default, the app runs on and requires **NVIDIA CUDA** (dependencies included) 2. Run SystemCaptioner.exe and follow the instructions. -Alternatively build the standalone executable yourself using build_portable.py. You will need the nvidia_dependencies folder from the standalone .zip (/SystemCaptioner/Controller/_internal/nvidia_dependencies) and install all the dependencies using requirements.txt inside a venv first. After building, extra nvidia_dependencies folder is generated inside dist/SystemCaptioner/. Delete it. +Alternatively build the standalone executable yourself using `build_portable.py`. You will need the nvidia_dependencies folder from the standalone .zip (/SystemCaptioner/Controller/_internal/nvidia_dependencies) and install all the dependencies using requirements.txt inside a venv first. After building, extra nvidia_dependencies folder is generated inside dist/SystemCaptioner/. Delete it. ## Limitations/Troubleshooting From 647ee770ce7e01f3314195438cfea3357649b948 Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Sun, 22 Dec 2024 05:28:09 -0800 Subject: [PATCH 13/28] Change sampling size and reduce hallucinations via blacklist --- hallucinations.txt | 116 +++++++++++++++++++++++++++++++++++++++++++++ recorder.py | 2 +- transcriber.py | 36 +++++++++++++- 3 files changed, 151 insertions(+), 3 deletions(-) create mode 100644 hallucinations.txt diff --git a/hallucinations.txt b/hallucinations.txt new file mode 100644 index 0000000..d1a2b90 --- /dev/null +++ b/hallucinations.txt @@ -0,0 +1,116 @@ +! +. +.. +:) +:D +[applause] +[music] +[typing] +… +♪ +♪♪♪ +❤️ par SousTitreur.com +amara.org +bye +bye, ladies and gentlemen +Cliquez-vous sur les sous-titres et abonnez-vous à la chaîne d'Amara.org +Copyright WDR 2019 +Copyright WDR 2020 +Copyright WDR 2021 +don't forget to like, commentary, and subscribe to the channel +don't forget to subscribe +E aí +e se inscreva no canal +e se inscreva no canal e ative o sininho +Fast forward +he was gonna catch it +hello, +I hope you enjoy the video +I hope you have a good time +I'll be back in the next video +i'll see you next time +i'll see you on the next video +improvável probably a good show +it's no good to me +Legendas pela comunidade Amara.org +Legendas pela comunidade da Amara.org +Legendas pela comunidade das Amara.org +legendas pela comunidade de amara.org +legendas pela comunidade des amara.org +Legendas pela comunidade do Amara.org +legendas pela comunidade dos amara.org +like and subscribe +Napisy robione przez społeczność Amara.org +Napisy stworzone przez społeczność Amara.org +Napisy stworzone przez społeczności Amara.org +Napisy wykonane przez społeczność Amara.org +Obrigado. +Oi! +Ondertiteld door de Amara.org gemeenschap +Ondertiteling door de Amara.org gemeenschap +Ondertitels ingediend door de Amara.org gemeenschap +Please subscribe +Please subscribe to my channel +Please subscribe to my channel! +see you in the next video +see you next time +see you next video +sorry, don't ask me if i asked about this question right, and i mean the lightening +Sous-titrage ST' 501 +Sous-titrage ST'501 +Sous-titres fait par la communauté d'Amara.org +Sous-titres fait par Sous-titres par Amara.org +Sous-Titres faits par la communauté d'Amara.org +Sous-titres par Amara.org +Sous-titres par la communauté d'Amara.org +Sous-titres par l'Amara.org +Sous-titres réalisés par la communauté d'Amara.org +Sous-titres réalisés par la communauté de l'Amara.org +Sous-titres réalisés par les SousTitres d'Amara.org +Sous-titres réalisés para la communauté d'Amara.org +Sous-titres réalisés pour la communauté d'Amara.org +Subtitles made by the community of Amara.org +SWR 2020 +SWR 2021 +Tchau tchau! +Tchau! +Tchau, galera! +thank you +thank you for watching +Thank you for your attention +Thank you for your liking +Thank you for your subscribing +Thank you for your support +Thank you for your time +thank you for your watching +thank you for your watching! +thank you very much +thank you very much for watching +thank you very much for watching! +thank you very much. thank you very much +Thank you. +thank you. bye bye +thanks for watching +Thanks for watching! +thanks mate +That's all for today +Tłumaczenie i napisy stworzone przez społeczność Amara.org +Tłumaczenie stworzone przez społeczność Amara.org +Untertitel der Amara.org-Community +Untertitel im Auftrag des ZDF für funk, 2017 +Untertitel im Auftrag des ZDF, 2017 +Untertitel im Auftrag des ZDF, 2018 +Untertitel im Auftrag des ZDF, 2020 +Untertitel im Auftrag des ZDF, 2021 +Untertitel von Stephanie Geiges +Untertitelung aufgrund der Amara.org-Community +Untertitelung im Auftrag des ZDF, 2021 +Valeu. +Welcome to a new video +Welcome to the channel +www.mooji.org +www.multi-moto.eu +Zdjęcia i napisy stworzone przez społeczność Amara.org +Редактор субтитров А.Синецкая Корректор А.Егорова +字幕由Amara.org社区提供 +小編字幕由Amara.org社區提供 \ No newline at end of file diff --git a/recorder.py b/recorder.py index ce39820..625235f 100644 --- a/recorder.py +++ b/recorder.py @@ -15,7 +15,7 @@ config.read("config.ini") # Convert the sample rate to a float first, then to an integer -SAMPLE_RATE = int(float(config.get('Settings', 'sample_rate', fallback='44100'))) # Default to 44100 if not set +SAMPLE_RATE = int(float(config.get('Settings', 'sample_rate', fallback='16000'))) # Default to 16000 if not set # Constants CHUNK = 2048 # Number of frames per buffer diff --git a/transcriber.py b/transcriber.py index 4e17eab..99dff0d 100644 --- a/transcriber.py +++ b/transcriber.py @@ -1,9 +1,9 @@ import time import os +import re import configparser from faster_whisper import WhisperModel import queue # New import -from gui import SubtitleGUI # New import import soundfile as sf import concurrent.futures @@ -60,6 +60,7 @@ def transcribe_audio(model, audio_path, translation_enabled, source_language): beam_size=1, vad_filter=True, word_timestamps=True, + # suppress_tokens=[-1, 50363, 50364] ) transcription = " ".join(segment.text for segment in segments) @@ -107,12 +108,43 @@ def monitor_audio_file(input_dir, output_path, check_interval=0.5, device="cuda" processed_files.add(file_path) time.sleep(check_interval) +def filter_blacklisted_content(input_string): + """ + Filters out blacklisted words or sentences from an input string based on a blacklist file. + + Args: + input_string (str): The input string to be filtered. + + Returns: + str: The filtered string with blacklisted words/sentences removed. + """ + try: + # Read the blacklist from the file + with open('hallucinations.txt', 'r', encoding='utf-8') as file: + blacklisted_lines = [line.strip().lower() for line in file if line.strip()] + + filtered_string = input_string + + # Check for and remove blacklisted words/sentences + for blacklisted in blacklisted_lines: + pattern = re.compile(re.escape(blacklisted), re.IGNORECASE) + matches = pattern.findall(filtered_string) + for match in matches: + print(f"Blacklisted content detected: '{match}'", flush=True) + filtered_string = pattern.sub('', filtered_string) + + return filtered_string + + except Exception as e: + print(f"Error encountered: {e}", flush=True) + return "" + def transcribe_and_save(model, file_path, output_path, translation_enabled, source_language): try: print(f"Transcribing/translating {file_path}...", flush=True) transcription = transcribe_audio(model, file_path, translation_enabled, source_language) if transcription: - save_transcription(transcription, output_path) + save_transcription(filter_blacklisted_content(transcription), output_path) except Exception as e: print(f"Can't transcribe/translate audio chunk {file_path}: {e}", flush=True) From 87954857f6ad2449e9a4a950bf001fc5d43d481b Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Sun, 22 Dec 2024 05:43:31 -0800 Subject: [PATCH 14/28] Update build portable to use hallucination file --- build_portable.py | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/build_portable.py b/build_portable.py index 1b1a0f8..55a5139 100644 --- a/build_portable.py +++ b/build_portable.py @@ -6,22 +6,23 @@ def build_portable(): # Get the current directory current_dir = os.path.dirname(os.path.abspath(__file__)) - + # Define paths dist_path = os.path.join(current_dir, 'dist') build_path = os.path.join(current_dir, 'build') nvidia_deps_path = os.path.join(current_dir, 'nvidia_dependencies') icon_path = os.path.join(current_dir, 'icon.ico') - + hallucinations_file = os.path.join(current_dir, 'hallucinations.txt') + # Get faster_whisper assets path faster_whisper_path = os.path.dirname(faster_whisper.__file__) assets_path = os.path.join(faster_whisper_path, 'assets') - + # Clean previous builds for path in [dist_path, build_path]: if os.path.exists(path): shutil.rmtree(path) - + # PyInstaller configuration for main.py PyInstaller.__main__.run([ 'main.py', @@ -60,7 +61,7 @@ def build_portable(): '--collect-all=faster_whisper', '--collect-all=customtkinter', ]) - + # PyInstaller configuration for controller.py PyInstaller.__main__.run([ 'controller.py', @@ -92,7 +93,7 @@ def build_portable(): '--collect-all=torch', '--collect-all=faster_whisper', ]) - + # Copy NVIDIA dependencies if they exist if os.path.exists(nvidia_deps_path): target_nvidia_path = os.path.join(dist_path, 'SystemCaptioner', 'nvidia_dependencies') @@ -100,16 +101,15 @@ def build_portable(): shutil.rmtree(target_nvidia_path) shutil.copytree(nvidia_deps_path, target_nvidia_path) print("NVIDIA dependencies copied successfully") - - + print("Build completed successfully!") - + # Post-build steps try: dist_system_captioner = os.path.join(dist_path, 'SystemCaptioner') dist_controller = os.path.join(dist_path, 'Controller') controller_internal = os.path.join(dist_system_captioner, 'Controller', '_internal') - + # Move Controller folder inside SystemCaptioner if os.path.exists(dist_controller): target_controller = os.path.join(dist_system_captioner, 'Controller') @@ -117,7 +117,7 @@ def build_portable(): shutil.rmtree(target_controller) shutil.move(dist_controller, target_controller) print("Controller folder moved successfully") - + # Copy NVIDIA dependencies to Controller/_internal nvidia_src = os.path.join(dist_system_captioner, 'nvidia_dependencies') if os.path.exists(nvidia_src): @@ -126,16 +126,22 @@ def build_portable(): shutil.rmtree(nvidia_dest) shutil.copytree(nvidia_src, nvidia_dest) print("NVIDIA dependencies copied to Controller/_internal successfully") - + # Copy icon.ico from _internal to root icon_src = os.path.join(dist_system_captioner, '_internal', 'icon.ico') icon_dest = os.path.join(dist_system_captioner, 'icon.ico') if os.path.exists(icon_src): shutil.copy2(icon_src, icon_dest) print("icon.ico copied to root successfully") - + + # Copy hallucinations.txt to root folder of SystemCaptioner + if os.path.exists(hallucinations_file): + hallucinations_dest = os.path.join(dist_system_captioner, 'hallucinations.txt') + shutil.copy2(hallucinations_file, hallucinations_dest) + print("hallucinations.txt copied to root successfully") + print("Post-build steps completed successfully!") - + except Exception as e: print(f"Error during post-build steps: {e}") From 5fd5c3f54c6f6483b630760271dcf010448c7e01 Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Sun, 22 Dec 2024 05:55:47 -0800 Subject: [PATCH 15/28] Update hallucination blacklist logic --- hallucinations.txt | 13 +++++++++++++ transcriber.py | 32 +++++++++++++++++++++++--------- 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/hallucinations.txt b/hallucinations.txt index d1a2b90..eb21149 100644 --- a/hallucinations.txt +++ b/hallucinations.txt @@ -26,11 +26,20 @@ Fast forward he was gonna catch it hello, I hope you enjoy the video +I hope you enjoy this video +I hope you enjoyed the video +I hope you enjoyed this video I hope you have a good time +I would like to say thank you very much I'll be back in the next video +I'll be right back +I'll be waiting for you in the next video i'll see you next time i'll see you on the next video +I'm sorry +I'm sorry, but I am sorry improvável probably a good show +Is it time? it's no good to me Legendas pela comunidade Amara.org Legendas pela comunidade da Amara.org @@ -49,9 +58,11 @@ Oi! Ondertiteld door de Amara.org gemeenschap Ondertiteling door de Amara.org gemeenschap Ondertitels ingediend door de Amara.org gemeenschap +Please give a thumbs up and subscribe to the channel Please subscribe Please subscribe to my channel Please subscribe to my channel! +Please subscribe to the channel see you in the next video see you next time see you next video @@ -78,6 +89,7 @@ Tchau, galera! thank you thank you for watching Thank you for your attention +Thank you for your hard work Thank you for your liking Thank you for your subscribing Thank you for your support @@ -94,6 +106,7 @@ thanks for watching Thanks for watching! thanks mate That's all for today +That's it for today Tłumaczenie i napisy stworzone przez społeczność Amara.org Tłumaczenie stworzone przez społeczność Amara.org Untertitel der Amara.org-Community diff --git a/transcriber.py b/transcriber.py index 99dff0d..ff374ce 100644 --- a/transcriber.py +++ b/transcriber.py @@ -1,6 +1,5 @@ import time import os -import re import configparser from faster_whisper import WhisperModel import queue # New import @@ -108,6 +107,10 @@ def monitor_audio_file(input_dir, output_path, check_interval=0.5, device="cuda" processed_files.add(file_path) time.sleep(check_interval) + +import re + + def filter_blacklisted_content(input_string): """ Filters out blacklisted words or sentences from an input string based on a blacklist file. @@ -116,29 +119,40 @@ def filter_blacklisted_content(input_string): input_string (str): The input string to be filtered. Returns: - str: The filtered string with blacklisted words/sentences removed. + str: The filtered string with blacklisted words/sentences removed and cleaned. """ try: # Read the blacklist from the file with open('hallucinations.txt', 'r', encoding='utf-8') as file: - blacklisted_lines = [line.strip().lower() for line in file if line.strip()] + blacklisted_lines = sorted( + [line.strip().lower() for line in file if line.strip()], + key=len, + reverse=True # Sort by length in descending order + ) filtered_string = input_string - # Check for and remove blacklisted words/sentences - for blacklisted in blacklisted_lines: - pattern = re.compile(re.escape(blacklisted), re.IGNORECASE) - matches = pattern.findall(filtered_string) - for match in matches: - print(f"Blacklisted content detected: '{match}'", flush=True) + # Check for and remove blacklisted words/sentences recursively + while True: + initial_string = filtered_string + for blacklisted in blacklisted_lines: + pattern = re.compile(re.escape(blacklisted), re.IGNORECASE) filtered_string = pattern.sub('', filtered_string) + # If no changes were made, exit the loop + if initial_string == filtered_string: + break + + # Remove awkward spaces (e.g., extra spaces between words) + filtered_string = re.sub(r'\s+', ' ', filtered_string).strip() + return filtered_string except Exception as e: print(f"Error encountered: {e}", flush=True) return "" + def transcribe_and_save(model, file_path, output_path, translation_enabled, source_language): try: print(f"Transcribing/translating {file_path}...", flush=True) From 2c69d355842d51eb0a7e3fdb20b65f9a47d2bf9a Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Sun, 22 Dec 2024 17:44:31 -0800 Subject: [PATCH 16/28] Cleanup code in transciber --- transcriber.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/transcriber.py b/transcriber.py index ff374ce..861d233 100644 --- a/transcriber.py +++ b/transcriber.py @@ -1,5 +1,6 @@ import time import os +import re import configparser from faster_whisper import WhisperModel import queue # New import @@ -42,10 +43,10 @@ def transcribe_audio(model, audio_path, translation_enabled, source_language): try: with sf.SoundFile(audio_path) as sound_file: if sound_file.frames == 0: - print(f"Warning: Empty audio file: {audio_path}") + print(f"Warning: Empty audio file: {audio_path}", flush=True) return "" except Exception as e: - print(f"Error reading audio file {audio_path}: {e}") + print(f"Error reading audio file {audio_path}: {e}", flush=True) return "" try: @@ -59,6 +60,7 @@ def transcribe_audio(model, audio_path, translation_enabled, source_language): beam_size=1, vad_filter=True, word_timestamps=True, + # initial_prompt="" # suppress_tokens=[-1, 50363, 50364] ) @@ -92,25 +94,24 @@ def monitor_audio_file(input_dir, output_path, check_interval=0.5, device="cuda" output_path (str): Path to save the transcriptions. check_interval (int): Time in seconds between checks. device (str): Device to use for transcription ('cuda' or 'cpu'). - args (argparse.Namespace): Parsed command-line arguments. + args (argparse.Namespace): Parsed command-line arguments for translation toggle and source language. """ processed_files = set() model = initialize_model(device) print(f"Using {args.workers} workers thread...", flush=True) executor = concurrent.futures.ThreadPoolExecutor(max_workers=args.workers) # Allows parallel processing + + print(f"Starting transcribe_and_save with translation_enabled: {args.translation_enabled} and source_language: {args.source_language}...", flush=True) + while True: for filename in os.listdir(input_dir): file_path = os.path.join(input_dir, filename) if file_path not in processed_files: - print(f"Running transcribe_and_save with translation_enabled: {args.translation_enabled} and source_language: {args.source_language}...", flush=True) executor.submit(transcribe_and_save, model, file_path, output_path, args.translation_enabled, args.source_language) processed_files.add(file_path) time.sleep(check_interval) -import re - - def filter_blacklisted_content(input_string): """ Filters out blacklisted words or sentences from an input string based on a blacklist file. From 5e4226b64f32c820506799c10c8bdeb0ca48da6f Mon Sep 17 00:00:00 2001 From: Chan Jian Hao <49814823+ChanJianHao@users.noreply.github.com> Date: Mon, 23 Dec 2024 07:13:24 -0800 Subject: [PATCH 17/28] Add sharper icon.ico with transparent background --- icon.ico | Bin 101584 -> 272853 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icon.ico b/icon.ico index 98c75699ea3d7d11e43e549a0487c397b9ab703a..346c44280b5594b1344ce8f0ff12cfeb0a1fed82 100644 GIT binary patch literal 272853 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

p;g~cU@$GMZlTp9V z@iV8`+TP){pS;ZOtsD44(4C*>*!l`{bMxf6BFhTrg~ep_IMohi&rLmip+4d&q_VkF zmS*hj?a}Y|$%8=y!^edY*?ihB(d83R>;fWJsZb#f3$ldGS5!-jJ z^Nl~*z;A_?)|=*p8rm(NM=qS_(F+eT9F4ehd(-L%I2p-2&nb#>GF*a5m_G>%t6a*m z5~C<`x`#ujjnL4luh0D9MJNu1k{_{yxNx`XPw@N_-%|v#M2%Cfy|KsbD;Ig?JFA>I z{~+fddyEGjet`88Ypl%Av(gGEJj>57l%dpyTp3cW$uZU$7}xHM)gjQLA}%*kZEbt@ z>c2Jl>F#)4bYy`(T}Lw0Kxh4xtW$7+aH$~Hn#_~5+5zh)RtdruMO1-g&LK6@2yrO7 zXawH&-Q9*+ea5{;eeZ5w;f!_v2vwvaKf?4Uz~{ZjZCi5f0M06$pXLr!|E|unonquF zOc=B--E$p-Us@fGQZ=R++Y4Z$SL|zLy#Y^0d{xy-RRlK!e$c9inAj}QA(D+s;ypy5 z>Z}@rFvf_YP@)PG%2MI`!Q^DryM|jZ(v6@JlR5L%g7Q4y%`vk(Y!oNV^pxufnjD1D zn!VjUv^K1+t`esyw>NGvjz;8pLJ?WbKxqV8O6HfAIC1(Er7`UF`=oh36&dB39T7HN z5^G#0QH8E{)?WXh&%wa~USCaQfVX96x!Im9-US7w4Gib_iP`_>dcq#6V`S zPQhpjW!x-6tQ}Jgu4yaG`;z>e$_ z)T+hR*^v@er}~F@7k)EjHQG>?r6?W$zAW4j0ay1lhfdhUPrLR*2bL*~^KAB@ZMRfz zfx$X;szOJ@-rk;Vr}RBepE*r$w#UxyHlyKyJWbGroiW&(o#n)-lOP1!yL&`YLaD3T zti32@Sx^>*U2tykRK>bV$U&)+XdE#Z4A|e_x8upG@8qfg#?|ðPQC?2Ae6dieR~ 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%0Aei;mB?yK_5NbhZn6N#Fx!&qA;~1)*!^0=$ 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

1I$p67K+rQ+hmq;n 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

5Jwl-H88Joyx4hH{MTG2l^%JSTGBk%|| zHrE*+od^ID9U#j}>-4U(l&*AOES6oM+*@Y1(m+@_+B+-MR6jeipELIkacb0J)$`eI zOT+jDwk?o$@O^L}ShnDHQ&6%r`}2ZfOLBamh<0o?m7q-yUj!SC{GCmjD|cw`ZqYk3 zfm7_qt*mDZBi=Z;X9m#OMo14_Ma;;6MHaXN9lC|c2`IeqHUJj`M-e&;-44GGzBFyL zaM8G^(3o|IVdz9yAij+ZK6rgUUSpM-edu@(CaRx_@n&ENiDptt@>ZU{LNAW(FyC5Y z*RRG&-?5YT^ZS4J+t^a_y?^yLy!+E@xJ^G^n}yH;-VqwVQ|KdC9HcxnOQC0wLV18< zxu0CVh-KS2w!`y}jWSrWIrs7#eE)_2%vN;)3FIuBk3Rj2%r7ppvs)+D8%o)POm)x# z@l==9+D$wH5fdQUJd=`U!!*o}5LkQD-$|p%OmtzC*J-_mO8p zB3b8(FB1SX)BMi5-(U(xJb=If&=KX64=A%wjqX_iLNGEq$m;3_o15WkoRBf+xh>pw zo4)=*V<%SdnDRVw`2yvhAvRYRQiid)xz5DsWVrQL1r9*pb)hd>`;>bIaNVGG1!z_3 zY`SIS*ckWEmN+>qS@vBju7zb0M1C7ATVq)wBnpb4ZDk2=G{Mt~nY^IK5*#1MqixBC zt8hggB^{LO;%%*?sw*@%7m-p@9-0V%y;dc;Fgv#Q>h2!8n;c=c?d1YP;7O-iq-L$B zg!!16l^ASGp)#V887;A_dP#QZDN{yvSLvbC0T{e~OIqZu9Hm?lUwhncF5qe(jli;O zp8wRR_{wkm3Jce7^UXi|Th?w>NZQy@)gxlQyp!*xP#&e&J5Hf@m_pAG#d1GRzJO(0 z*p|i94-awbP!Bg=zs^s7`q#X5?fVF=u#kNEsb4`U#m%`DqHW327(13S{4)0Qfo8LE zo2F{Sy9YqUGL>15 zCp#U?b|4upKxdc{8muRt`S4dws&Bd!$S?u3j>1fZLMPDM+smbkR}3{&iSN7A>$~*y z^pVTuJ1!63Z!aER^QR=Due zr@2#Qxt?eLp-JwW$g#gyvg*53d@Il|wPHy@q$QAHyGw*BK(|_gjh4%>4ZV)wU|$Z) z5p1@7JSz`&9>4A3Z7ia_CSGk7uf9pHP@>#Fith%Z7G#n}9exrbYy5XvP$IfHh7KV= z440q{XV6tVkd8fN*~>-f4?u~8@tJ4+vM@@3j6(=93QGjwq$3?HOS0i@vhHpM?JNYt zgA@GffBow`{K&)n;IDtc3txW)udWhYBBhZpu`C-qSENuLrqDA&v3Hn4d5A)J04HC> zwk@QTJpSMSkK8xFjSHK+`r{w*z1RN@ZNH8bf~QV=l#!t^E?vD5Mq@iQjhEb7pe0l9{v~)JpL@N{_G{%jYejmOH;Ni?rhFe_uBzmHRRbm{KO-iy8lG_ zGd0`dI_m_o!K6#PF%*KWC!hULY8IeF8-Vm=VB!SGXb423!o66w#qC=Q#FAQCqr5iT zTkDLBPR73^wt*!?av4%mU03AmxUVjgkn4M@HD% zZX$$*)|%SJF57lLLz9C%FrH_oN3yPbDqfKK2Sy))fil6*v{Ze^E zYRP9eg}iLVqzwQxbt*Hmr{)T;ZVH4Va}b>iW<<9&VTSQbA+e=R&d!my^0aBO>aNn# zZL}6hX>NLM`{`31c~v>aOa=2oxu2ehA5NhquK;OKOGt9AM|lM!|RgoX{JK)}6>KQ0kSt`c+03#kkOrlu!ZTv}mgr%E&oq^-rc;@ue_H75QgDf(#EkIO1UCE`63#hh4unFY8M}c*3jQG z#^=BEWuE`UbG-fLJACIq{eX7G!_ro4{ArOm-xX8f6m!kF9L9K{C=K(;$vL6_&!SMfQcup*x2oGC@1*Y z2^@e7WXzXW&(rp6F}qGmi%@UHfN^KmLAC^xwz^wZ6LpFag1o-#5cWMov7+4Ep+exOm}OyberA3+=o3 zejB&#(%U!CajmzSbw-BA+1}d5ZPkpBCfM3qXJ~jL)bdZZrD&0jF9|@Y!{uqcJq0SY zV76K{>#VKSSkYxBru#TLkmFQYvZg(@Jb@)i;U3YkDGkckcs{f}O|zxAx~;i1UuSD$ zm+_)tZM{NcYlmXFL}_Fk?Q7iaB}6D};kLGLTf10xfqb!tTrSwStd$qC-8!phtv@Iu z&>0gHe+LI3_FQ>ls`{p$QzU7=FoVEd9Dp#lOBmNxVE83^Nr6PNBfqXb)d}bOc+#g&$tyTi^Q+{Osbl0608!oR5C^bF8nevAeq)*ZHRLTQZnK zu%w-216VW~yKGf%1>k9TaX#?mCwTUgpW&q+y+XUz2*g!Fp%fdzfUua`TA;4n!1%*C zmE)&R@ZjSQkqn-u1wFIqe-;xk9Yl&NkQo-rbOAb1*_1|pN)J;cnL$b~Ao#hzzYnc7 zbMwpLV;0iN;kIft8#Qd(Azv(~s#C(A|LE8hD@(UC zSDt~xaF?1}cdhfp9<8?jUmO5tW|uK*Au^wPbiYp5`KHlFsJ;-8&*kYU^ia$faJ9!` zW1h9vY9Ne35WydM_-TIiH-3xRLkD>2#TWVRU;TjH^(Io=NNt6tpC}{6OimF1e?7eu zIQbH`Q^22_|OrdI(#N{O@_e)*68 z3Hd@VZ~WkuxG;@YpA{fT{a3F?$TK3`ZSmB{pJCs@sc^b6L+UY*e!52WZcd?d5GZ<% zjy7P|DeRPIAVJ)Xi>2G_whS|Yi|4O|DZ9Y3a`7^R%I+2e!{eE>9h$8MW5Z)eyU5nY zO3Dj1+f^K^NU_+HZa^7MzyuhBY#`W|mCKhv*!Zy%*kN_O$(^=C?^G|x`tuygTUeH2 z(GC7q=|G`JX@RFSp09B|a9xepQnc$nUQ5xcv}reCcdg3K+7|n#29ZeC<}Xs)S)r$= zm(j`n4313Wy3nd`#viOwF0Ix!o>#|qiosBdw3E$D7=|b4ns#Sna5pUe|33#nsuWC1 zaZ3Y)3s87l+T^S}IXeeZv))=`qrJhdyA#EGgmgH4|C4n~XpJHmoY3$cD|86L35{Q{ zv2usq>OwHd7itwe`Ke##sbBaMKl%0xG0>kP?XcXI-CP68%afT07B(g+B?tS6o^y8zuIf4UaTv;+6Tc*85LzpsZ@tHt8N za{QQWkZc6f~R^O(#XC&OxD$-M=qVuwjN(_NV z&Ixt~G+RNP=I(B>vR31E-6l6&=G1VJ*_@Ekth{FXu~n|7nk>YX`;d!T<{n99~VTO0FKc2>yc@{Ep6FgkSz>Ex;JZW{Hzhv!ys z-7285WDdtJ20IIdQJ)J7bK`Qh6SJ4`XHSvnx>1J|7sUMBJNE9y{pw^ZlavxmN?hHd zt}5)h+w8jAxXM_7VL3ef*wcLMQ(t6idWN^(c!L+e_Y+nZRsy3E7FKNh(Ryti4&?+6 zz_J97KKm@c{s;ev6ZbyI%`5ZNc6Y+%9r7ewz1&TAc3(*q|ff! z*sCR|Q)D2Wi~~p98mGe znG#(>&#Pkr`GUjbXqlzWfcNgs-{#zRJ^n?l&DLj+^BbqfI8(A1l0M(x^0@8W!Mr@g z^v!rbo(OOSkJ8W;>VrB6TmV|+UA!ZLAC|cKbVi#+QapBaoI%*2U`}fts=QXA4-SYWL3~bh{mN8*)g4ICYYb8Ff`;u zx&smZlV)}x63%SR~k-CB@r*W%EINGrCcwEPd|uVZ~)Cf{}{{jH^VYA7+NY8`#62{7|%`~ zptZWoU%l~dzV_O`VZFYDKr%CQgin0(3sfq*TzvOjpz;%Lxen@mCs-*iZERs<$eC0FQWd}<$?n+-G)Rj;sqbCGwKedc6|qtj&$mTXRyBs*T4m6pI)nzjeN zr|~`TJ@8zO-`04p3MS@UALVP50+k=8S*f$V)xdY#^p<-l6nl`;rn0@t=K2!NR-Ms_ zNv3CyQ0^bb_n}$eO|^7<)yDPfwAxiXKj0DAb`HnRV_A0Syk!QvF@ZRfYMThU1jLoF zA1|eGpG>qLL%sb(2*!%PS13F@T-x!xyRQTJb}b0kSr<8c_&85K`78$yA4Les8?U_0 zmG>`G->t=5fKb~Pp(W`7B^^dr9Zoam7%lI|u?rl$=L83i9%1pu5-)!L2e|DvwpGBA zd1m*Y;)~CHh!EGPw=r%eU8P{+yZv&Xx>m?m!|D7W}gwfBLzv zrm$Yo{VSCa-lY!hz^21eV0dJZcDu#W;u_JEnk5~S@8S6^T8$QcgQI9+aM!e=-mWpw zJ4CTO$mZHYM`FLTv&z80c%}-`cj=S|C&q2>;x;SH9y`wNu1l+4#cx)r&(CxDMw83c zJkD^D6N5R9m2Dj1vE0(sTEWU}&kY=a?`nJ(d{+gA@9Qv06=>gwTra-J;Wk>-DplIe zI*x5qDE44G4sNT?*2W68$`(>ehDOF28K1?ri`1*znE|LkI?Y#YT(5@fR`L8+IBK0N z&p_ymw0pGlGC}3zTPuicmSx4OudR6ZTsV*)g3|GferDFWa)Q?Et*Y*#VA`vm6R`A^5U#wCgn%7S0CJ;-NC}{+Uxe z|C?W-UUPZ%rME)tS|dXTVEaA}u(GofM*d)WvuCu24}JMVvBqD@@H3(xrks~fQGm1c zz3!0z(jDudwV46%0aJiU6rqc3Shjry>2@Ik_RUVSwYAO0`VJAh%Chr#Zj(l%g2bZK z+Zzu3Bqm&MRyj0#5@eCh^@TJtiePtljsE`e7)8`wdZJk}mDUR1ZBXBu=g`ShlzK{R ztgIm#yZFmDn7_5l#chXqS2I48=fR-@5B3SPa9OBJ{9tJfemhj;@xy^7UxjKck#=9m z|F?>0S;A}9s8?2~?{3g))KJRDaRU0Q+iudR*HFGPt$C=cy54~#3R*V z78W^$KxM}_WYi-ir3{bXXq{Qo4!}_Dp>*&(p7QXthpSvX<;8P`zV`8jkHW{*Zu~dV z`t3u9PjKp<`+4Z0GtAD;(rmW5bon~(ynTVIS8ubqu^XcJp|R^k{Z@o~AC&g+RU4%O zS@6@RKgw5r^N;!1$G=3eFwV6rZ=>+Y+a+AT$=cE#Ze6^L(1M=A5WT(QJoLzOoO$3O zUU}e}ul=#113dl3FEMre2(P|;p6c#SFx#Lt()Y2HPf0pdD;w0^ zX1s4w*pf$n;Ryyt`jXElEAMS8{$!Ya!9I@8p1(2-pKg4BhzRu9Q)UM6cPRnrl)Wb1 zj?3~{%nV}oz>o?fBy~NEm!P#x7I+CL! zB~JD`oEa9hl*h_0c%DFqWkHkyC{G(Dxj-ld%18LY($nCgZ=-z|uic_it5C1i@O_14 z*=X%kt?tlhRO##M5!4q14k$Z)uSC&%Q&W zv4QV5gNs+#`@r%c{1^S~odW7&dl|M1`Nm;pTZ)oj4-mJ!_5L73hkVh4&8LqC*r7UXgc1N}o>zjh0yqDW?8+eKWr z%Ffmb14Cm0vP^na`S$KQ$B&+7V||BabK9{0;7#uCuF=;!is+b#%Q^uw6$+%s>g(4i z3g~7zWX?S>J+0B6O?;;$rno4b}m@b8g6Dv1Un4RkD_x;oJy&$OG{!o4n4gCOi%CU z-qZK<^fS+K|NReg^3=UdO-)m))wy}&7UwTq<@W74*4MYu+5`|IqZe@-EV&w0>{v9A z%jX#wouIP28D}lF80LY8p8y0~Ya6`z+7IwrHLS4B7_EZ0oE(#fXW7_U-)IPHjb6Yj#tPh(LZARIhI4-E>OsoC>Qz|?CC=*#p^G9 z8|8bUG`L0H>EX;rKgpw?{}@_JuD-j-c4dp4Z2&Go(Y|8~K~6wHYw|*{v~oLj)`t&G zbLP{Jgex(-MeB_5cQbU-7=X@@eLDC8=5?UKHnsaB;!Aq?Aln(}R#Ou$_tY6kFgU2R zc!*&C>;xbA*pqzsZ(j;z|0GzpL$NeUqrS|o%kMCI{DH)==s-8XRc*F+H@NS?M|k^< zHnr+fT>A!6V=zB=o~fx5AXQjX31dzrROb;QRyB&HDzsp8@qM(A?={4C}dX*E8(#OM4#SL55CsC z{_=NdG%MuoBDS!Z8s5jfAAf{XAA16Xq_r-Po<(o2gssnH_(aG$jiR+kE8v@ve2*xPPH+9uTBn3`P5yt@_<^VdNCSMGZ9tLf@n^|Fq6&x^GjKrFgnjP+I#`Hs>gp2bkVJLA|y^vsOX4J2dCcv3>mt^NTeuuN7ET z4l^TpPLAhzWX8s}Jhp0*W>sNn4W19Ki|~Df?;*4wqS?U;bs+=sOesNHb_mEhAqgm= z&`P4&=x;5 z$Y89h(mE_tR4iZI+ds_U$Q1Q@1!*~a`PYA&!O<~nC&$)OmHD~z!7fF=%JS{&oPYa8 zw$|>%+=GOFVBw>#^=f6mAe?Q;;#^12Hwu2=i`fe_W`0-Fr z(E5wPKxqf@4Wc~cD7e2NFMs^lk|+0l7zpbpRdxTfL3V`Ftz+6X$5wx^D&4* zsg6S60G|D-nfiAEeBEXPI-7n`+Gje1v|d0bpLPH26!UY-)T;IPqPDDD5b;%;-OXis z21bm_Dmdt!$|ili!_4eI&f@&_7}<|?u7PTGlX7{0^e|I;jyCRzi?m)pXlj*JYP;(k zJaUx2fij!xn?YJ#Tc>{gP1Y~pTJeY|Ddm|6lc@ z*xFenXXWV24KX`$jHf^UET{h73CIOtzFm}5?(=JH+G1$~-V_q1tVh*Q*HSq5VK#&Js}u&_>`Q@sLs@qz>owlXD}bL|7s= z{;1b)rm2W@MkZv^w~wAog!QTv65rQUw^u@PPJqiCJ9?Zub1Nt%jJ!z1`y8^ZBW*^h zD6&U;9F!j{hSiGRzJ8`B57O5=$j;Nn)bP5iRl}9VZh4Vk7+StXhatsuQI52XIGtWK7eZP7VIc$Zy)q-=j zanWOIwL!IB0pG(GuyE^rV@tN?;L|6WxNkZ@WrQ+PdK0Hn2AUs!uhMEidm4WiAE3Kv z2gJibk3P9q20%v_pj)k!b^_^vA=4qGKqq6>cwb+c{{B9$UbzwOh6|p~mQIl7`fV!P zYxMLFXIcuH-O4%xeWOh8KgQzRt&jkyQfHuE-@$S6*dgD#gZ!GM59>}3TC46*t!{Jh z&BbALnlrF%;Mfk&J^3tW9({~kx8`{H#aB^n z6_9g6O0mRBWW1s;X?__JU&5ls5Nn1DVM>(J?z<3i6m; z1g#ZYn=AD84RY$9dvNl3)>r2V7JzuT)jRAiyvy3$B9||(asJ{0+dEaJCx>|E;VDk+ zbC9Y|wc5bTcrtO;os2O$fo62Os7OU-$xAI(+xr zKV)@zJx~jZMa2^~V?Z}HoPabn{;c?Vo?p1Z!r~P`lamewtH8mLqdfHJV?6#F57PHg z8KVlrZ)-07ZJVVlTja`;k?9ia3!AJh&(UfHa~(scCYgEW2uPhc0HaHzj6Il1e_wT= z{psv0lMQr){k@$)^qBSNlh1xN8|^VC%0zm=CvD%xu0S&l6>0DfQ%XEDsTbYM9++ll zXNR@b4Wl*>oItR!!lPcK9QvAsS%(!?ayu{g38t+t;TkE z0h#H(#&JsV-zB0TIxu>#jpw#ezDKE4=Kj+Ua{qnzas2p6jvPHfxp$1d{t>pfHt>BH zfo5f8j{W=ZVPtrWxtj~T`r40ZG;Q)vW#5IiN7np5Ig{xXLy($f_imO`jq7BgO z-#5#zedRYeaOf~EzW6e4zjiht8HGz!Vj46iojIf&3*+Zl3`gSm9yf2jN29SFE+et9 zg~ic{V?6eu=Xmya9%1-_-WYLLJ~VeU=fCGN|NbVH4Sl0IR_C_aT3%yocL}Y0`VWk< z|09RN${0Us<4^bSRTsmL3|FPP1L!@(LgUR-X%!%|-D^GifX&Sz z1MKcpX*MecBAul7jar4A6UafQq@2zA#E7ujia;Y!TCuXUh^2jw9>15F+2b^tF15;9 zY@}{uo%-f=)^48V&dpWMou6Z2b%UNhi&IC&dFY-o4o~OF*|4!$jrj;tB>I3N%UMVP znZiidjfjuPlmKBHRryr5=ECStimVkmdfO=mEi^+M)c0N5ttMJ2ENS!PW6$x(BabpV zHqPkiFhj#bY;5h)s5jZ&*`nR9$47Sg{JUJac!8H*`WtpDYhk}V6w|OAq?D<$E;4;j zyEMEib#E8fZw1ol;S9;XnFD<47e2@HAN@GjZrtQ={_1bp+1NFrej?Q!JA()$6`4*- zEc&RaH>%7pT?o~gL^$zhbMO9p`RrFd$uocNaqK~d-IXR+UfANo4=U8RY&PyFZk-F{ z-}5EO?q;2hr8PFUmuWP2DUJ0p`^m##YqV6MjJqF`pQ6-Xp}H*hG>x4M3CKYAyG{F$ zR+CCg0vNL3k3RX#SCh{`?9m0FI~m9T{LAL@#)`YHgcRsh6qgebgH*>b32z6>XzY#cj1H6w0A0Ep($X z>pc>I=)_j56_yw0=<6Hc@bQ!EJ8+z4%cr`#5g(J*9?jha*5=M~{puaweESyfynlnG zg*irt`?%-CJ|27M0HebtEa|hgT}6Z!hd{^lU(sc2TgpL;kZ~u>u1lzr9OkOEon@mu zO8=hYlmZ7Jt>mf03&!_cwAKL^ztDrPV0d^a=22X{aD}y%B`P}`L0Mo3zie%;;Cbz^ zz2=0(8#`7BiiKbZ7>5n7O3mA)<<~++V7Qd?$ZX&?X@{?Mpu)7ieTSXea(K>ztf8ma&l68Q$(R4}mpS?LNiLk5kSQM0(GN%_jS>Iwzy0rZ+`=48*^qx=B@SI{wDM`U8o2EiXvpV^%uMa4zke9Zw%Oj< z;QF;o0X5cyCPZ2?L>L_k8EFWF7r*DXX}UGqUflr3f}Mhg4xi+?=Rd;8$QT#izrdR> zy@qlXQen!G1kpY!0m6Deo@^wj`GfS|ipQDT?HbkQMr=e93k!z>;|KWEmwthde(`xW z)+_w@+jBIlio8=`xUZj_lV@OHkd5sP)>f7|cJL@tgK~W~*H&2DUdFN|2R}CnmXDTR z?BIf7u3*^7*Gb1jg)LL1RJa2}r5{rYrGoPk{ciAB=osR?8EL9-N;iP4V2I%Wk`h4f zF$g5PZ~{#983Vmd#((y%{j1!Xx%Qm)*^|_+p>le>6tR zlT;FH+u_KeQ(V7xk!zRUg-myVaLI!u9R@}wa0>Y(bJ6Bdrsxn_?4%T@ak>5b_jB;@ zVWbpXy>x+VmoBoswUnye5e}ABAm6*6V($n&ef<;)d1hxuI5;~-Z(lD`T5Rv^vb?y& z()=n*OH08LPu~k^)FF@;qWkF~4H2s*2YPun6BEOnedRkw%Qg61@4f$VloBkjt|!R5 zPMn>+`?CG*hY;0!sgxsr}@%v zeVJqTpW>CDywBxxb)*aig7W!1edRJ^!{f{^UgOf$_j%~lV@!@r(XKaW)M~8mtYSMB z2R}QGwmh^5H!g+q6)H6Pz!3z-Y#OyvDj2C&Dr5Y{ecCq+UZJC{SzSp$of2Z&$PC0E z{po+NlRiHwASks5P?&S!MrU9z2awT-6WM;X`I@8^XrkK2_Z5Hrjqh;t#vK#bMEM@o zon?GKkO-gNe>kWo&6Z=>{yKj29v0{CaPI7@M9V8<1RM$Bg_6q`=pPwFT2`D|C+oX2 znkq(~C3G5;3w|YNXC9c{&wUTvPtLJeSh&qwZ@j_$?du`hE8^`)0*SN>q!BeFcUFdMFnQSe6y26L~JRT8&n-NvqYOTB*`(w((U$?oh@t3!{uWeDWlh-uNkN zi#LrdP4a7B`TM;4-Z|FRHZo)%9qFM57hpJJkk%41wg;u8sfjl^nc}W(uS(OcgyBcV z=L%qOXpB?$o#w=e6ATZJa{j%Gyz#R)@jW+mNTH;5Z2acZRFOgcEdvJ#uM4H|{042e z9vFZ42}k^Z$L@cUU;K?PVdorP`0*7sS1lYX7c4BXbCgRx6pMM5=dW=6`gzWreu|Ni zsh|<0VY9Y{W7!<~+$cy7Ej*Ntgj;+gYWty)hxdiIv7u)&0`q%qME`D1AjQ+bXdj}x zY!ViTKl;;urjuQN(&!y$Hvx4Tx0${RnREiuodKEJbYcR7bd&*|PQY#ZeCw~j!>yb1 zsq0PoKGmI-02e?rF|{8%=cKZL$SEDze*m}L=G9kT!1LXNl@>dJz*$(f&EW7jb}k>z z3y4^WMw`ZOcq7q;H;~E_fRV8wjvYP7(8wUoW{XP~E^_nwEwDU=2% zmU_tL3gnALN~Iq1`8@f2K915#`BbYl+OCJ^hoU55KVOG48bSz!C7C^Zlq>K2jJ1WE zMg}1G_@}Twt z#UMH9@Z8fM<>R0GBpW*we)`>;SfWVIE?`?ZY|Fy2bD&)=UU(VhDIPxh7=uG&C|~1i zXt#WFgLw}BLTLO1Q;l&N9~pnf;FBotcQ^jPZ2ZHX?(0hCp#m*>@fa}u0Tp%NM|~O!8cM0YPBZc`_2!!5lSoTSmn#7 zUfZVCssKK@e36myX(P>!1Tq9OlQTHB!=+0XSzf%8Hs(xAGoLF4Vx=-jbroqUvNrni zQDo{0AezoW1Pdak_lv!UmIYnJY1ju~k6pB6Mb47Aa z9^1)>>bE(B40jjkzzGB&v;oFi7QWYJ;o5s~D=l)~lT(Kno!H0f(y~#6WenRKH`W-# zR4QEF>f^diTI~j|+X~0Ajd8M&v?4>yVP^IS)6>&v1?`s0%{%LCZ{9{LpF+N$p}tvK z^&L=dI6kdY)MIg%{{pkO5IRWrUB8LzH;fVSuz9Kl6MZ9m`qQ7~$OHFs{=#+6pIyVY zddOS7ICdV#4rVEq*RHU$e1*K-%Y6qPqnPiZ)%NkjATc;Q!r@Phfb@gNue{I!B>jG+ zlL)Rta5r)YzTpId^O=lpt0)6ghVk!_{?l!Xb{FB$=sxj>fAY_?3F^f{1(3-CGHE=S z4nY?|kq!qSKVZ`^Ca|AGMIpfR6hHd@3tTvVB?(HtkMccQ%?kC#7Fv1OPM-0}0|CgC z;9LkP$vHXpPtUTrxWuLN?*u5bHrIA1j=-{P`iCa5bA`|@MaSyR>@ZO#f9cLAi1`f` zvj=B6c;YCw#wrvBo3AQ6{3oC}^Pw)1h#Fny|cybx#d7+-Lvt1*j>94OiH2{Ebqgy3ZZ^ND6C>GLD8LtAKf1) zE&H+Y`{7Q;MB6ZU@AsUzhtGfc7bzA>{Nx93vannyXZMkJdaz|4$98DBH5PBbLd$J3 z*)z?NiF;7m!B-MQFn2L_YLcTL83UnE!Vjk%6M!$(?n})_B!=#*bc%0Ae;opVrUOYi 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 QPXGV_07*qoM6N<$g8PN>)c^nh From ebd0864e273b7d02adeb3cfc6d9927a861076181 Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Mon, 23 Dec 2024 22:54:06 -0800 Subject: [PATCH 18/28] Refactor code for hallucination filter --- main.py | 2 +- transcriber.py | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/main.py b/main.py index 21fc8f8..55ca97f 100644 --- a/main.py +++ b/main.py @@ -107,7 +107,7 @@ def __init__(self): self.intelligent_checkbox = ctk.CTkCheckBox( self.inner_checkbox_frame, - text="Intelligent mode", + text="Intelligent Mode", variable=self.intelligent_mode, command=self.save_config ) diff --git a/transcriber.py b/transcriber.py index 861d233..dc8f166 100644 --- a/transcriber.py +++ b/transcriber.py @@ -112,7 +112,7 @@ def monitor_audio_file(input_dir, output_path, check_interval=0.5, device="cuda" time.sleep(check_interval) -def filter_blacklisted_content(input_string): +def filter_hallucination_content(input_string): """ Filters out blacklisted words or sentences from an input string based on a blacklist file. @@ -146,12 +146,13 @@ def filter_blacklisted_content(input_string): # Remove awkward spaces (e.g., extra spaces between words) filtered_string = re.sub(r'\s+', ' ', filtered_string).strip() + print(f"String \'{input_string}\' filtered as hallucination text detected", flush=True) return filtered_string except Exception as e: - print(f"Error encountered: {e}", flush=True) - return "" + print(f"Returning unfiltered string. Error encountered: {e}", flush=True) + return input_string def transcribe_and_save(model, file_path, output_path, translation_enabled, source_language): @@ -159,7 +160,7 @@ def transcribe_and_save(model, file_path, output_path, translation_enabled, sour print(f"Transcribing/translating {file_path}...", flush=True) transcription = transcribe_audio(model, file_path, translation_enabled, source_language) if transcription: - save_transcription(filter_blacklisted_content(transcription), output_path) + save_transcription(filter_hallucination_content(transcription), output_path) except Exception as e: print(f"Can't transcribe/translate audio chunk {file_path}: {e}", flush=True) From b22b6489e857a25fb40467f82ad28ccae4dd4c5f Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Mon, 23 Dec 2024 23:50:04 -0800 Subject: [PATCH 19/28] Add "Filter Hallucinations" and "Store Output" options --- controller.py | 2 ++ main.py | 84 ++++++++++++++++++++++++++++++++++++++++++++++++-- transcriber.py | 23 +++++++++----- 3 files changed, 99 insertions(+), 10 deletions(-) diff --git a/controller.py b/controller.py index a357a41..bcc2b02 100644 --- a/controller.py +++ b/controller.py @@ -58,6 +58,8 @@ def start_gui(update_queue, intelligent_mode): parser.add_argument('--workers', type=int, default=4, help='Number of worker threads') parser.add_argument('--translation-enabled', action='store_true', help='Enable translation') parser.add_argument('--source-language', type=str, default='en', help='Source language for transcription') + parser.add_argument('--filter-hallucinations', type=bool, default=False, help='Filter hallucinations using hallucinations.txt') + parser.add_argument('--store-output', type=bool, default=True, help='Store transcription output in transcriptions.txt') args = parser.parse_args() # Update config with the selected model diff --git a/main.py b/main.py index 55ca97f..d053a1c 100644 --- a/main.py +++ b/main.py @@ -76,6 +76,9 @@ def __init__(self): self.transcription_timeout = ctk.StringVar(value="5") self.workers = ctk.StringVar(value="4") + self.filter_hallucinations = ctk.BooleanVar() + self.store_output = ctk.BooleanVar() + # Redirect stdout and stderr to the console queue self.console_queue = queue.Queue() sys.stdout = QueueWriter(self.console_queue) @@ -174,6 +177,52 @@ def __init__(self): "Enable this to translate the transcription to English." ) + self.filter_hallucinations_checkbox = ctk.CTkCheckBox( + self.inner_checkbox_frame, + text="Filter Hallucinations", + variable=self.filter_hallucinations, + command=self.save_config + ) + self.filter_hallucinations_checkbox.grid(row=3, column=0, sticky="w", padx=(0, 10), pady=(5, 0)) + + self.filter_hallucinations_tooltip_button = ctk.CTkButton( + self.inner_checkbox_frame, + text="?", + width=25, + height=25, + fg_color="transparent", + hover_color="grey", + command=lambda: self.open_file("hallucinations.txt") + ) + self.filter_hallucinations_tooltip_button.grid(row=3, column=1, pady=(5, 0)) + ToolTip( + self.filter_hallucinations_tooltip_button, + "Enable this to filter hallucinations using hallucinations.txt file." + ) + + self.store_output_checkbox = ctk.CTkCheckBox( + self.inner_checkbox_frame, + text="Store Output", + variable=self.store_output, + command=self.save_config + ) + self.store_output_checkbox.grid(row=4, column=0, sticky="w", padx=(0, 10), pady=(5, 0)) + + self.store_output_tooltip_button = ctk.CTkButton( + self.inner_checkbox_frame, + text="?", + width=25, + height=25, + fg_color="transparent", + hover_color="grey", + command=None + ) + self.store_output_tooltip_button.grid(row=4, column=1, pady=(5, 0)) + ToolTip( + self.store_output_tooltip_button, + "Enable this to store the transcription output in transcriptions.txt." + ) + self.model_frame = ctk.CTkFrame(self) self.model_frame.pack(pady=(0, 10)) @@ -296,6 +345,21 @@ def __init__(self): self.language_entry = ctk.CTkEntry(self.language_frame, textvariable=self.source_language) self.language_entry.pack(side="left") + self.language_tooltip_button = ctk.CTkButton( + self.language_frame, + text="?", + width=25, + height=25, + fg_color="transparent", + hover_color="grey", + command=lambda: self.open_url("https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes") + ) + self.language_tooltip_button.pack(side="left") + ToolTip( + self.language_tooltip_button, + "Specify the language used by the source audio using ISO-639-1 format (e.g., 'en' for English, 'zh' for Chinese)." + ) + def load_config(self): """Load the configuration from config.ini or create default if not exists.""" if not os.path.exists(CONFIG_FILE): @@ -306,6 +370,8 @@ def load_config(self): self.source_language.set(self.config.get('Settings', 'source_language', fallback='en')) self.transcription_timeout.set(self.config.get('Settings', 'transcription_timeout', fallback='5')) self.workers.set(self.config.get('Settings', 'workers', fallback='4')) + self.filter_hallucinations.set(self.config.getboolean('Settings', 'filter_hallucinations', fallback=True)) + self.store_output.set(self.config.getboolean('Settings', 'store_output', fallback=True)) def save_config(self, *args): """Save the current settings to config.ini.""" @@ -317,6 +383,8 @@ def save_config(self, *args): self.config['Settings']['workers'] = self.workers.get() self.config['Settings']['translation_enabled'] = str(self.translation_enabled.get()) self.config['Settings']['source_language'] = self.source_language.get() + self.config['Settings']['filter_hallucinations'] = str(self.filter_hallucinations.get()) + self.config['Settings']['store_output'] = str(self.store_output.get()) # Save the sample rate of the selected device selected_device = self.device_selection.get() @@ -364,10 +432,8 @@ def start_app(self): with open(transcriptions_path, 'w') as f: pass # Truncate the file to empty it print("transcriptions.txt has been emptied.", flush=True) - self.enqueue_console_message("transcriptions.txt has been emptied.") except Exception as e: print(f"Error emptying transcriptions.txt: {e}", flush=True) - self.enqueue_console_message(f"Error emptying transcriptions.txt: {e}") self.start_button.configure(text="Stop", fg_color="red", hover_color="dark red") intelligent = self.intelligent_mode.get() @@ -400,6 +466,12 @@ def start_app(self): args.extend(["--transcription-timeout", self.transcription_timeout.get()]) args.extend(["--workers", self.workers.get()]) + filter_hallucinations = self.filter_hallucinations.get() + store_output = self.store_output.get() + + args.extend(["--filter-hallucinations", str(filter_hallucinations)]) + args.extend(["--store-output", str(store_output)]) + # If running in a frozen state, ensure subprocess handles executable correctly self.process = subprocess.Popen( args, @@ -549,6 +621,14 @@ def open_feedback_link(self): """Open the feedback link in default web browser""" webbrowser.open("https://github.com/evermoving/SystemCaptioner/issues") + def open_file(self, filename): + """Open a file with the default application.""" + os.startfile(filename) + + def open_url(self, url): + """Open a URL in the default web browser.""" + webbrowser.open(url) + if __name__ == "__main__": app = App() app.run() diff --git a/transcriber.py b/transcriber.py index dc8f166..d2e4a31 100644 --- a/transcriber.py +++ b/transcriber.py @@ -71,17 +71,24 @@ def transcribe_audio(model, audio_path, translation_enabled, source_language): print(f"Error during processing: {e}", flush=True) return "" -def save_transcription(transcription, output_path): +def save_transcription(transcription, output_path, filter_hallucinations, store_output): """ Save the transcription text to a file and send it to the GUI. Args: transcription (str): The transcribed text. output_path (str): Path to the output transcription file. + filter_hallucinations (bool): Whether to filter hallucinations. + store_output (bool): Whether to store the output in a file. """ - with open(output_path, "a", encoding='utf-8') as f: - f.write(transcription + "\n") - print(f"Output saved to {output_path}", flush=True) + if filter_hallucinations: + transcription = filter_hallucination_content(transcription) + + if store_output: + with open(output_path, "a", encoding='utf-8') as f: + f.write(transcription + "\n") + print(f"Output saved to {output_path}", flush=True) + # Send transcription to GUI queue transcription_queue.put(transcription) @@ -101,13 +108,13 @@ def monitor_audio_file(input_dir, output_path, check_interval=0.5, device="cuda" print(f"Using {args.workers} workers thread...", flush=True) executor = concurrent.futures.ThreadPoolExecutor(max_workers=args.workers) # Allows parallel processing - print(f"Starting transcribe_and_save with translation_enabled: {args.translation_enabled} and source_language: {args.source_language}...", flush=True) + print(f"Starting transcribe_and_save with translation_enabled: {args.translation_enabled} | source_language: {args.source_language} | filter_hallucinations: {args.filter_hallucinations} | store_output: {args.store_output}...", flush=True) while True: for filename in os.listdir(input_dir): file_path = os.path.join(input_dir, filename) if file_path not in processed_files: - executor.submit(transcribe_and_save, model, file_path, output_path, args.translation_enabled, args.source_language) + executor.submit(transcribe_and_save, model, file_path, output_path, args.translation_enabled, args.source_language, args.filter_hallucinations, args.store_output) processed_files.add(file_path) time.sleep(check_interval) @@ -155,12 +162,12 @@ def filter_hallucination_content(input_string): return input_string -def transcribe_and_save(model, file_path, output_path, translation_enabled, source_language): +def transcribe_and_save(model, file_path, output_path, translation_enabled, source_language, filter_hallucinations, store_output): try: print(f"Transcribing/translating {file_path}...", flush=True) transcription = transcribe_audio(model, file_path, translation_enabled, source_language) if transcription: - save_transcription(filter_hallucination_content(transcription), output_path) + save_transcription(transcription, output_path, filter_hallucinations, store_output) except Exception as e: print(f"Can't transcribe/translate audio chunk {file_path}: {e}", flush=True) From 2d959785c84e467bc13a63a4bad18a19db678097 Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Tue, 24 Dec 2024 00:57:41 -0800 Subject: [PATCH 20/28] Add filter hallucination and store output as options --- controller.py | 4 ++-- hallucinations.txt | 8 +++++++- main.py | 29 ++++++++++++++++++++++------- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/controller.py b/controller.py index bcc2b02..6f038dc 100644 --- a/controller.py +++ b/controller.py @@ -58,8 +58,8 @@ def start_gui(update_queue, intelligent_mode): parser.add_argument('--workers', type=int, default=4, help='Number of worker threads') parser.add_argument('--translation-enabled', action='store_true', help='Enable translation') parser.add_argument('--source-language', type=str, default='en', help='Source language for transcription') - parser.add_argument('--filter-hallucinations', type=bool, default=False, help='Filter hallucinations using hallucinations.txt') - parser.add_argument('--store-output', type=bool, default=True, help='Store transcription output in transcriptions.txt') + parser.add_argument('--filter-hallucinations', action='store_true', help='Filter hallucinations using hallucinations.txt') + parser.add_argument('--store-output', action='store_true', help='Store transcription output in transcriptions.txt') args = parser.parse_args() # Update config with the selected model diff --git a/hallucinations.txt b/hallucinations.txt index eb21149..012e5a5 100644 --- a/hallucinations.txt +++ b/hallucinations.txt @@ -1,8 +1,9 @@ ! -. .. :) :D +?? +??? [applause] [music] [typing] @@ -13,6 +14,7 @@ amara.org bye bye, ladies and gentlemen +Click like and subscribe Cliquez-vous sur les sous-titres et abonnez-vous à la chaîne d'Amara.org Copyright WDR 2019 Copyright WDR 2020 @@ -49,6 +51,8 @@ legendas pela comunidade des amara.org Legendas pela comunidade do Amara.org legendas pela comunidade dos amara.org like and subscribe +Like my video +Liking my video Napisy robione przez społeczność Amara.org Napisy stworzone przez społeczność Amara.org Napisy stworzone przez społeczności Amara.org @@ -59,6 +63,7 @@ Ondertiteld door de Amara.org gemeenschap Ondertiteling door de Amara.org gemeenschap Ondertitels ingediend door de Amara.org gemeenschap Please give a thumbs up and subscribe to the channel +Please like and subscribe Please subscribe Please subscribe to my channel Please subscribe to my channel! @@ -80,6 +85,7 @@ Sous-titres réalisés par la communauté de l'Amara.org Sous-titres réalisés par les SousTitres d'Amara.org Sous-titres réalisés para la communauté d'Amara.org Sous-titres réalisés pour la communauté d'Amara.org +Subscribe to my channel Subtitles made by the community of Amara.org SWR 2020 SWR 2021 diff --git a/main.py b/main.py index d053a1c..a70b54d 100644 --- a/main.py +++ b/main.py @@ -419,13 +419,13 @@ def start_app(self): if os.path.isfile(file_path): os.remove(file_path) print("Existing recordings have been deleted.", flush=True) - self.enqueue_console_message("Existing recordings have been deleted.") + # self.enqueue_console_message("Existing recordings have been deleted.") except Exception as e: print(f"Error deleting recordings: {e}", flush=True) - self.enqueue_console_message(f"Error deleting recordings: {e}") + # self.enqueue_console_message(f"Error deleting recordings: {e}") else: print("Recordings directory does not exist. Creating one.", flush=True) - self.enqueue_console_message("Recordings directory does not exist. Creating one.") + # self.enqueue_console_message("Recordings directory does not exist. Creating one.") os.makedirs(recordings_path) try: @@ -462,15 +462,18 @@ def start_app(self): # Add translation settings before process creation if self.translation_enabled.get(): args.append("--translation-enabled") + + if self.filter_hallucinations.get(): + args.append("--filter-hallucinations") + + if self.store_output.get(): + args.append("--store-output") + args.extend(["--source-language", self.source_language.get()]) args.extend(["--transcription-timeout", self.transcription_timeout.get()]) args.extend(["--workers", self.workers.get()]) - filter_hallucinations = self.filter_hallucinations.get() - store_output = self.store_output.get() - args.extend(["--filter-hallucinations", str(filter_hallucinations)]) - args.extend(["--store-output", str(store_output)]) # If running in a frozen state, ensure subprocess handles executable correctly self.process = subprocess.Popen( @@ -493,14 +496,26 @@ def start_app(self): self.TRANSCRIPTION_TIMEOUT = int(self.transcription_timeout.get()) workers = int(self.workers.get()) translation_enabled = self.translation_enabled.get() + filter_hallucinations = self.filter_hallucinations.get() + store_output = self.store_output.get() source_language = self.source_language.get() args.extend(["--transcription-timeout", str(self.TRANSCRIPTION_TIMEOUT)]) args.extend(["--workers", str(workers)]) if translation_enabled: args.append("--translation-enabled") + + if filter_hallucinations: + args.append("--filter-hallucinations") + + if store_output: + args.append("--store-output") + + args.extend(["--source-language", source_language]) + + def stop_app(self): if self.process: try: From 336bc361b97e023dd3659fd284f1679c8d597ee4 Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Tue, 24 Dec 2024 01:36:54 -0800 Subject: [PATCH 21/28] Improve hallucination filter logic and add print statements --- hallucinations.txt | 5 +++++ transcriber.py | 12 ++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/hallucinations.txt b/hallucinations.txt index 012e5a5..417867b 100644 --- a/hallucinations.txt +++ b/hallucinations.txt @@ -32,10 +32,15 @@ I hope you enjoy this video I hope you enjoyed the video I hope you enjoyed this video I hope you have a good time +I will see you again in the next video I would like to say thank you very much +I'll be back in a few minutes I'll be back in the next video +I'll be back soon +I'll be back soon, or I'll be back soon I'll be right back I'll be waiting for you in the next video +I'll see you again in the next video i'll see you next time i'll see you on the next video I'm sorry diff --git a/transcriber.py b/transcriber.py index d2e4a31..5d9b2b2 100644 --- a/transcriber.py +++ b/transcriber.py @@ -145,7 +145,11 @@ def filter_hallucination_content(input_string): initial_string = filtered_string for blacklisted in blacklisted_lines: pattern = re.compile(re.escape(blacklisted), re.IGNORECASE) - filtered_string = pattern.sub('', filtered_string) + matches = pattern.findall(filtered_string) + if matches: + for match in matches: + print(f"Detected blacklisted text: '{match}'", flush=True) + filtered_string = pattern.sub('', filtered_string) # If no changes were made, exit the loop if initial_string == filtered_string: @@ -153,7 +157,11 @@ def filter_hallucination_content(input_string): # Remove awkward spaces (e.g., extra spaces between words) filtered_string = re.sub(r'\s+', ' ', filtered_string).strip() - print(f"String \'{input_string}\' filtered as hallucination text detected", flush=True) + + # Remove unnecessary new lines + filtered_string = re.sub(r'\s*\n\s*', ' ', filtered_string).strip() + + print(f"String '{input_string}' filtered as hallucination text detected", flush=True) return filtered_string From 9ee18c54de90a3b7a18f74a1f73c993e5eb417bb Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Sat, 28 Dec 2024 21:02:35 -0800 Subject: [PATCH 22/28] Overall refactor of code --- build_portable.py | 2 +- console.py | 5 +- controller.py | 19 +- main.py | 505 +++++++++++++++++++++++----------------------- recorder.py | 79 ++++---- transcriber.py | 4 + 6 files changed, 308 insertions(+), 306 deletions(-) diff --git a/build_portable.py b/build_portable.py index 55a5139..ace8e14 100644 --- a/build_portable.py +++ b/build_portable.py @@ -134,7 +134,7 @@ def build_portable(): shutil.copy2(icon_src, icon_dest) print("icon.ico copied to root successfully") - # Copy hallucinations.txt to root folder of SystemCaptioner + # Copy hallucinations.txt to root folder of System Captioner if os.path.exists(hallucinations_file): hallucinations_dest = os.path.join(dist_system_captioner, 'hallucinations.txt') shutil.copy2(hallucinations_file, hallucinations_dest) diff --git a/console.py b/console.py index 11d93fd..b0933ea 100644 --- a/console.py +++ b/console.py @@ -2,12 +2,13 @@ from tkinter import scrolledtext import queue + class ConsoleWindow(ctk.CTkToplevel): def __init__(self, console_queue, master=None, icon_path=None): super().__init__(master) self.title("Console Output") self.geometry("900x450") - + # Set the icon for the console window if icon_path: self.iconbitmap(icon_path) @@ -47,8 +48,10 @@ def display_message(self, message): self.text_area.configure(state='disabled') self.text_area.yview(ctk.END) + class QueueWriter: """A writer object that redirects writes to a queue.""" + def __init__(self, log_queue): self.log_queue = log_queue diff --git a/controller.py b/controller.py index 6f038dc..274f3fe 100644 --- a/controller.py +++ b/controller.py @@ -2,32 +2,32 @@ import sys import ctypes import threading -import recorder -import transcriber import time import argparse import configparser -# Update the import statement for the GUI -from gui import SubtitleGUI # No change needed +# Import necessary modules from the project +import recorder +import transcriber +from gui import SubtitleGUI -# Change the hardcoded path to a relative path +# Setup CUDA DLL path cuda_dll_path = os.path.join(os.path.dirname(__file__), "nvidia_dependencies") os.environ['PATH'] = f"{cuda_dll_path}{os.pathsep}{os.environ['PATH']}" sys.path.append(cuda_dll_path) -# Explicitly add the DLL to the DLL search path +# Add the DLL to the DLL search path os.add_dll_directory(cuda_dll_path) +# Attempt to load the CUDA DLL try: ctypes.CDLL(os.path.join(cuda_dll_path, "cudnn_ops_infer64_8.dll")) print("Successfully loaded cudnn_ops_infer64_8.dll", flush=True) except Exception as e: print(f"Error loading cudnn_ops_infer64_8.dll: {e}", flush=True) -def start_recording(): +def start_recording(device_index=None): """Start the audio recording process.""" - device_index = args.device_index if hasattr(args, 'device_index') else None recorder.record_audio(device_index) def start_transcription(device, args): @@ -77,7 +77,7 @@ def start_gui(update_queue, intelligent_mode): device = "cuda" if args.cuda else "cpu" # Create threads for recording, transcription, and GUI - recording_thread = threading.Thread(target=start_recording, daemon=True) + recording_thread = threading.Thread(target=start_recording, args=(args.device_index,), daemon=True) transcription_thread = threading.Thread(target=start_transcription, args=(device, args), daemon=True) gui_thread = threading.Thread(target=start_gui, args=(transcription_queue, args.intelligent), daemon=True) @@ -92,3 +92,4 @@ def start_gui(update_queue, intelligent_mode): time.sleep(1) except KeyboardInterrupt: print("Exiting program.", flush=True) + diff --git a/main.py b/main.py index a70b54d..11a5e9d 100644 --- a/main.py +++ b/main.py @@ -3,32 +3,43 @@ import sys import os import threading -import queue # New import for queue -import time # New import for sleep -import configparser # New import for config handling -import webbrowser # Add this import at the top - -from console import ConsoleWindow, QueueWriter # Importing ConsoleWindow and QueueWriter from console.py -from setupGUI import run_setup # Add this import at the top +import queue +import time +import configparser +import webbrowser +from console import ConsoleWindow, QueueWriter +from setupGUI import run_setup ctk.set_appearance_mode("dark") ctk.set_default_color_theme("dark-blue") # Constants CONFIG_FILE = "config.ini" +TOOLTIP_WRAP_LENGTH = 150 +TOOLTIP_BG_COLOR = "#2e2e2e" +TOOLTIP_TEXT_COLOR = "white" +DEFAULT_SOURCE_LANGUAGE = "en" +DEFAULT_TRANSCRIPTION_TIMEOUT = "5" +DEFAULT_WORKERS = "4" +FEEDBACK_LINK = "https://github.com/evermoving/SystemCaptioner/issues" +LANGUAGE_CODES_LINK = "https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes" +CONTROLLER_DIR = "Controller" if getattr(sys, 'frozen', False) else "." +CONTROLLER_EXECUTABLE = 'Controller.exe' if getattr(sys, 'frozen', False) else 'controller.py' + class ToolTip: """ - It creates a tooltip for a given widget as the mouse goes on it. + Creates a tooltip for a given widget as the mouse goes on it. """ + def __init__(self, widget, text): self.widget = widget self.text = text self.tooltip_window = None - self.widget.bind("", self.show_tooltip) - self.widget.bind("", self.hide_tooltip) + self.widget.bind("", self._show_tooltip) + self.widget.bind("", self._hide_tooltip) - def show_tooltip(self, event=None): + def _show_tooltip(self, event=None): if self.tooltip_window or not self.text: return x = self.widget.winfo_rootx() + 20 @@ -36,23 +47,28 @@ def show_tooltip(self, event=None): self.tooltip_window = tw = ctk.CTkToplevel(self.widget) tw.wm_overrideredirect(True) tw.wm_geometry(f"+{x}+{y}") - label = ctk.CTkLabel(tw, text=self.text, wraplength=150, bg_color="#2e2e2e", text_color="white") + label = ctk.CTkLabel( + tw, + text=self.text, + wraplength=TOOLTIP_WRAP_LENGTH, + bg_color=TOOLTIP_BG_COLOR, + text_color=TOOLTIP_TEXT_COLOR, + ) label.pack() - def hide_tooltip(self, event=None): + def _hide_tooltip(self, event=None): tw = self.tooltip_window self.tooltip_window = None if tw: tw.destroy() + def get_base_path(): - """Get the base path for the application in both dev and standalone environments""" + """Get the base path for the application in both dev and standalone environments.""" if getattr(sys, 'frozen', False): - # Running in a bundle (standalone) return os.path.dirname(sys.executable) - else: - # Running in normal Python environment - return os.path.dirname(os.path.abspath(__file__)) + return os.path.dirname(os.path.abspath(__file__)) + class App(ctk.CTk): def __init__(self): @@ -61,212 +77,197 @@ def __init__(self): self.geometry("650x585") self.resizable(True, True) - # Add icon to the main window + # Load the application icon icon_path = os.path.join(get_base_path(), "icon.ico") self.iconbitmap(icon_path) + # Initialize variables for app state and settings self.intelligent_mode = ctk.BooleanVar() self.gpu_enabled = ctk.BooleanVar() self.model_selection = ctk.StringVar() self.app_running = False self.process = None - self.translation_enabled = ctk.BooleanVar() - self.source_language = ctk.StringVar(value="en") - self.transcription_timeout = ctk.StringVar(value="5") - self.workers = ctk.StringVar(value="4") - + self.source_language = ctk.StringVar(value=DEFAULT_SOURCE_LANGUAGE) + self.transcription_timeout = ctk.StringVar(value=DEFAULT_TRANSCRIPTION_TIMEOUT) + self.workers = ctk.StringVar(value=DEFAULT_WORKERS) self.filter_hallucinations = ctk.BooleanVar() self.store_output = ctk.BooleanVar() - - # Redirect stdout and stderr to the console queue self.console_queue = queue.Queue() - sys.stdout = QueueWriter(self.console_queue) - sys.stderr = QueueWriter(self.console_queue) - - # Initialize the console window self.console_window = ConsoleWindow(self.console_queue, self) self.console_window.withdraw() # Start hidden - self.config = configparser.ConfigParser() - self.load_config() + self._load_config() - # Initialize variables with config values + # Set initial values from config self.intelligent_mode.set(self.config.getboolean('Settings', 'mode')) self.gpu_enabled.set(self.config.getboolean('Settings', 'cuda')) self.model_selection.set(self.config.get('Settings', 'model')) - self.start_button = ctk.CTkButton(self, text="Start", command=self.toggle_app, fg_color="green", hover_color="dark green") + # Redirect stdout and stderr + sys.stdout = QueueWriter(self.console_queue) + sys.stderr = QueueWriter(self.console_queue) + + # Initialize main UI elements + self._init_ui() + + # Setup timeout monitoring + self.TRANSCRIPTION_TIMEOUT = 5 # seconds + self.last_transcription_start = 0 + self.current_transcription_file = None + self.timeout_thread = None + self.stop_timeout = threading.Event() + + # Add this line after super().__init__() + self.protocol("WM_DELETE_WINDOW", self.on_closing) + + def _init_ui(self): + """Initializes the main UI elements.""" + # Start/Stop button + self.start_button = ctk.CTkButton( + self, text="Start", command=self.toggle_app, fg_color="green", hover_color="dark green" + ) self.start_button.pack(pady=(25, 10)) - self.console_button = ctk.CTkButton(self, text="Console", command=self.open_console, fg_color="blue", hover_color="dark blue") + # Console button + self.console_button = ctk.CTkButton( + self, text="Console", command=self.open_console, fg_color="blue", hover_color="dark blue" + ) self.console_button.pack(pady=(0, 25)) + # Checkbox frame self.checkbox_frame = ctk.CTkFrame(self) self.checkbox_frame.pack(pady=(0, 10)) + # Inner checkbox frame for organization self.inner_checkbox_frame = ctk.CTkFrame(self.checkbox_frame) self.inner_checkbox_frame.pack() + # Intelligent mode checkbox self.intelligent_checkbox = ctk.CTkCheckBox( - self.inner_checkbox_frame, + self.inner_checkbox_frame, text="Intelligent Mode", variable=self.intelligent_mode, - command=self.save_config + command=self._save_config, ) self.intelligent_checkbox.grid(row=0, column=0, sticky="w", padx=(0, 10)) - self.intelligent_tooltip_button = ctk.CTkButton( + # Intelligent mode tooltip button + self._create_tooltip_button( self.inner_checkbox_frame, - text="?", - width=25, - height=25, - fg_color="transparent", - hover_color="grey", - command=None - ) - self.intelligent_tooltip_button.grid(row=0, column=1) - ToolTip( - self.intelligent_tooltip_button, - "In intelligent mode, subtitle window is shown only when speech is detected." + row=0, + column=1, + tooltip_text="In intelligent mode, subtitle window is shown only when speech is detected." ) + # GPU checkbox self.gpu_checkbox = ctk.CTkCheckBox( self.inner_checkbox_frame, text="Run on GPU", variable=self.gpu_enabled, - command=self.save_config + command=self._save_config, ) self.gpu_checkbox.grid(row=1, column=0, sticky="w", padx=(0, 10), pady=(5, 0)) - self.gpu_tooltip_button = ctk.CTkButton( + # GPU tooltip button + self._create_tooltip_button( self.inner_checkbox_frame, - text="?", - width=25, - height=25, - fg_color="transparent", - hover_color="grey", - command=None - ) - self.gpu_tooltip_button.grid(row=1, column=1, pady=(5, 0)) - ToolTip( - self.gpu_tooltip_button, - "Disabling this will run the app on CPU and result in much slower transcription." + row=1, + column=1, + tooltip_text="Disabling this will run the app on CPU and result in much slower transcription." ) + # Translation checkbox self.translation_checkbox = ctk.CTkCheckBox( self.inner_checkbox_frame, text="Enable Translation", variable=self.translation_enabled, - command=self.save_config + command=self._save_config, ) self.translation_checkbox.grid(row=2, column=0, sticky="w", padx=(0, 10), pady=(5, 0)) - self.translation_tooltip_button = ctk.CTkButton( + # Translation tooltip button + self._create_tooltip_button( self.inner_checkbox_frame, - text="?", - width=25, - height=25, - fg_color="transparent", - hover_color="grey", - command=None - ) - self.translation_tooltip_button.grid(row=2, column=1, pady=(5, 0)) - ToolTip( - self.translation_tooltip_button, - "Enable this to translate the transcription to English." + row=2, + column=1, + tooltip_text="Enable this to translate the transcription to English." ) + # Filter hallucinations checkbox self.filter_hallucinations_checkbox = ctk.CTkCheckBox( self.inner_checkbox_frame, text="Filter Hallucinations", variable=self.filter_hallucinations, - command=self.save_config + command=self._save_config, ) self.filter_hallucinations_checkbox.grid(row=3, column=0, sticky="w", padx=(0, 10), pady=(5, 0)) - self.filter_hallucinations_tooltip_button = ctk.CTkButton( + # Filter hallucinations tooltip button + self._create_tooltip_button( self.inner_checkbox_frame, - text="?", - width=25, - height=25, - fg_color="transparent", - hover_color="grey", - command=lambda: self.open_file("hallucinations.txt") - ) - self.filter_hallucinations_tooltip_button.grid(row=3, column=1, pady=(5, 0)) - ToolTip( - self.filter_hallucinations_tooltip_button, - "Enable this to filter hallucinations using hallucinations.txt file." + row=3, + column=1, + tooltip_text="Enable this to filter hallucinations using hallucinations.txt file.", + command=lambda: self._open_file("hallucinations.txt"), ) + # Store output checkbox self.store_output_checkbox = ctk.CTkCheckBox( self.inner_checkbox_frame, text="Store Output", variable=self.store_output, - command=self.save_config + command=self._save_config, ) self.store_output_checkbox.grid(row=4, column=0, sticky="w", padx=(0, 10), pady=(5, 0)) - self.store_output_tooltip_button = ctk.CTkButton( + # Store output tooltip button + self._create_tooltip_button( self.inner_checkbox_frame, - text="?", - width=25, - height=25, - fg_color="transparent", - hover_color="grey", - command=None - ) - self.store_output_tooltip_button.grid(row=4, column=1, pady=(5, 0)) - ToolTip( - self.store_output_tooltip_button, - "Enable this to store the transcription output in transcriptions.txt." + row=4, + column=1, + tooltip_text="Enable this to store the transcription output in transcriptions.txt." ) + # Model selection frame self.model_frame = ctk.CTkFrame(self) self.model_frame.pack(pady=(0, 10)) + # Model label self.model_label = ctk.CTkLabel(self.model_frame, text="Model:") self.model_label.pack(side="left", padx=(0, 5)) + # Model dropdown self.model_dropdown = ctk.CTkOptionMenu( self.model_frame, values=[ - 'tiny.en', 'tiny', 'base.en', 'base', 'small.en', 'small', 'medium.en', 'medium', - 'large-v1', 'large-v2', 'large-v3', 'large', 'distil-large-v2', 'distil-medium.en', + 'tiny.en', 'tiny', 'base.en', 'base', 'small.en', 'small', 'medium.en', 'medium', + 'large-v1', 'large-v2', 'large-v3', 'large', 'distil-large-v2', 'distil-medium.en', 'distil-small.en', 'distil-large-v3', 'large-v3-turbo', 'turbo' ], variable=self.model_selection, - command=self.save_config # Save config on change + command=self._save_config, ) self.model_dropdown.pack(side="left") - self.model_tooltip_button = ctk.CTkButton( + # Model tooltip button + self._create_tooltip_button( self.model_frame, - text="?", - width=25, - height=25, - fg_color="transparent", - hover_color="grey", - command=None - ) - self.model_tooltip_button.pack(side="left") - ToolTip( - self.model_tooltip_button, - "Select the model to use for transcription. Larger models are more accurate but require more VRAM. .en are English only models" + tooltip_text="Select the model to use for transcription. Larger models are more accurate but require more VRAM. .en are English only models" ) - # Add audio device selection frame + # Audio device frame self.device_frame = ctk.CTkFrame(self) self.device_frame.pack(pady=(0, 10)) + # Audio device label self.device_label = ctk.CTkLabel(self.device_frame, text="Audio Device:") self.device_label.pack(side="left", padx=(0, 5)) - self.devices = self.get_audio_devices() + # Audio devices dropdown + self.devices = self._get_audio_devices() self.device_names = [device['name'] for device in self.devices] self.device_selection = ctk.StringVar() - # Load saved device from config saved_device = self.config.get('Settings', 'audio_device', fallback='') if saved_device in self.device_names: @@ -278,140 +279,141 @@ def __init__(self): self.device_frame, values=self.device_names, variable=self.device_selection, - command=self.on_device_change # Call this method when device changes + command=self._on_device_change, ) self.device_dropdown.pack(side="left") - # Add this line after super().__init__() - self.protocol("WM_DELETE_WINDOW", self.on_closing) - - # Add these as class attributes - self.TRANSCRIPTION_TIMEOUT = 5 # seconds - self.last_transcription_start = 0 - self.current_transcription_file = None - self.timeout_thread = None - self.stop_timeout = threading.Event() - - # Add these after all other UI elements in __init__ + # Feedback label self.feedback_label = ctk.CTkLabel( self, text="If the app didn't work or you had any issues, let us know!", text_color="light blue", cursor="hand2", - font=("", -13, "underline") # Added underline to the font + font=("", -13, "underline"), ) self.feedback_label.pack(side="bottom", pady=(0, 10)) - self.feedback_label.bind("", lambda e: self.open_feedback_link()) + self.feedback_label.bind("", lambda e: self._open_url(FEEDBACK_LINK)) + # Timeout frame self.timeout_frame = ctk.CTkFrame(self) self.timeout_frame.pack(pady=(0, 10)) + # Timeout label self.timeout_label = ctk.CTkLabel(self.timeout_frame, text="Transcription Timeout (seconds):") self.timeout_label.pack(side="left", padx=(0, 5)) + # Timeout entry self.timeout_entry = ctk.CTkEntry(self.timeout_frame, textvariable=self.transcription_timeout) self.timeout_entry.pack(side="left") + # Workers frame self.workers_frame = ctk.CTkFrame(self) self.workers_frame.pack(pady=(0, 10)) + # Workers label self.workers_label = ctk.CTkLabel(self.workers_frame, text="Workers:") self.workers_label.pack(side="left", padx=(0, 5)) + # Workers entry self.workers_entry = ctk.CTkEntry(self.workers_frame, textvariable=self.workers) self.workers_entry.pack(side="left") - self.workers_tooltip_button = ctk.CTkButton( + # Workers tooltip + self._create_tooltip_button( self.workers_frame, - text="?", - width=25, - height=25, - fg_color="transparent", - hover_color="grey", - command=None - ) - self.workers_tooltip_button.pack(side="left") - ToolTip( - self.workers_tooltip_button, - "Number of worker threads for parallel processing." + tooltip_text="Number of worker threads for parallel processing." ) + # Language frame self.language_frame = ctk.CTkFrame(self) self.language_frame.pack(pady=(0, 10)) + # Language label self.language_label = ctk.CTkLabel(self.language_frame, text="Source Language:") self.language_label.pack(side="left", padx=(0, 5)) + # Language entry self.language_entry = ctk.CTkEntry(self.language_frame, textvariable=self.source_language) self.language_entry.pack(side="left") - self.language_tooltip_button = ctk.CTkButton( + # Language tooltip + self._create_tooltip_button( self.language_frame, + tooltip_text="Specify the language used by the source audio using ISO-639-1 format (e.g., 'en' for English, 'zh' for Chinese).", + command=lambda: self._open_url(LANGUAGE_CODES_LINK) + ) + + def _create_tooltip_button(self, parent, row=None, column=None, tooltip_text="", command=None): + """Creates a tooltip button with the specified tooltip text.""" + button = ctk.CTkButton( + parent, text="?", width=25, height=25, fg_color="transparent", hover_color="grey", - command=lambda: self.open_url("https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes") - ) - self.language_tooltip_button.pack(side="left") - ToolTip( - self.language_tooltip_button, - "Specify the language used by the source audio using ISO-639-1 format (e.g., 'en' for English, 'zh' for Chinese)." + command=command, ) + if row is not None and column is not None: + button.grid(row=row, column=column, pady=(5, 0)) + else: + button.pack(side="left") + ToolTip(button, tooltip_text) - def load_config(self): - """Load the configuration from config.ini or create default if not exists.""" + def _load_config(self): + """Loads configuration from config.ini or creates defaults if missing.""" if not os.path.exists(CONFIG_FILE): - # Run setup GUI to get initial audio device selection - run_setup() + run_setup() # Run setup for initial device selection self.config.read(CONFIG_FILE) self.translation_enabled.set(self.config.getboolean('Settings', 'translation_enabled', fallback=False)) - self.source_language.set(self.config.get('Settings', 'source_language', fallback='en')) - self.transcription_timeout.set(self.config.get('Settings', 'transcription_timeout', fallback='5')) - self.workers.set(self.config.get('Settings', 'workers', fallback='4')) + self.source_language.set(self.config.get('Settings', 'source_language', fallback=DEFAULT_SOURCE_LANGUAGE)) + self.transcription_timeout.set( + self.config.get('Settings', 'transcription_timeout', fallback=DEFAULT_TRANSCRIPTION_TIMEOUT)) + self.workers.set(self.config.get('Settings', 'workers', fallback=DEFAULT_WORKERS)) self.filter_hallucinations.set(self.config.getboolean('Settings', 'filter_hallucinations', fallback=True)) self.store_output.set(self.config.getboolean('Settings', 'store_output', fallback=True)) - def save_config(self, *args): - """Save the current settings to config.ini.""" - self.config['Settings']['mode'] = str(self.intelligent_mode.get()) - self.config['Settings']['cuda'] = str(self.gpu_enabled.get()) - self.config['Settings']['model'] = self.model_selection.get() - self.config['Settings']['audio_device'] = self.device_selection.get() - self.config['Settings']['transcription_timeout'] = self.transcription_timeout.get() - self.config['Settings']['workers'] = self.workers.get() - self.config['Settings']['translation_enabled'] = str(self.translation_enabled.get()) - self.config['Settings']['source_language'] = self.source_language.get() - self.config['Settings']['filter_hallucinations'] = str(self.filter_hallucinations.get()) - self.config['Settings']['store_output'] = str(self.store_output.get()) - + def _save_config(self, *args): + """Saves current settings to config.ini.""" + settings = self.config['Settings'] + settings['mode'] = str(self.intelligent_mode.get()) + settings['cuda'] = str(self.gpu_enabled.get()) + settings['model'] = self.model_selection.get() + settings['audio_device'] = self.device_selection.get() + settings['transcription_timeout'] = self.transcription_timeout.get() + settings['workers'] = self.workers.get() + settings['translation_enabled'] = str(self.translation_enabled.get()) + settings['source_language'] = self.source_language.get() + settings['filter_hallucinations'] = str(self.filter_hallucinations.get()) + settings['store_output'] = str(self.store_output.get()) # Save the sample rate of the selected device selected_device = self.device_selection.get() device_info = next((device for device in self.devices if device['name'] == selected_device), None) if device_info: - self.config['Settings']['sample_rate'] = str(device_info['defaultSampleRate']) - + settings['sample_rate'] = str(device_info['defaultSampleRate']) with open(CONFIG_FILE, 'w') as configfile: self.config.write(configfile) def toggle_app(self): + """Toggles the application's start/stop state.""" if not self.app_running: - self.start_app() + self._start_app() self.start_button.configure(text="Stop", fg_color="red", hover_color="dark red") else: - self.stop_app() + self._stop_app() self.start_button.configure(text="Start", fg_color="green", hover_color="dark green") - def start_app(self): - # Reset the timeout tracking variables + def _start_app(self): + """Starts the captioning application.""" + # Reset timeout tracking variables self.last_transcription_start = 0 self.current_transcription_file = None - + base_dir = get_base_path() recordings_path = os.path.join(base_dir, "recordings") transcriptions_path = os.path.join(base_dir, "transcriptions.txt") + # Ensure recordings directory exists and clear existing files if os.path.exists(recordings_path): try: for filename in os.listdir(recordings_path): @@ -419,47 +421,47 @@ def start_app(self): if os.path.isfile(file_path): os.remove(file_path) print("Existing recordings have been deleted.", flush=True) - # self.enqueue_console_message("Existing recordings have been deleted.") except Exception as e: print(f"Error deleting recordings: {e}", flush=True) - # self.enqueue_console_message(f"Error deleting recordings: {e}") else: print("Recordings directory does not exist. Creating one.", flush=True) - # self.enqueue_console_message("Recordings directory does not exist. Creating one.") os.makedirs(recordings_path) + # Clear the transcriptions file if it's not already empty try: - with open(transcriptions_path, 'w') as f: - pass # Truncate the file to empty it - print("transcriptions.txt has been emptied.", flush=True) + if os.path.exists(transcriptions_path) and os.path.getsize(transcriptions_path) > 0: + with open(transcriptions_path, 'w') as f: + pass # Truncate the file + print("transcriptions.txt has been emptied.", flush=True) + elif os.path.exists(transcriptions_path) and os.path.getsize(transcriptions_path) == 0: + print("transcriptions.txt is already empty.", flush=True) + else: + print("transcriptions.txt does not exist.", flush=True) + except Exception as e: - print(f"Error emptying transcriptions.txt: {e}", flush=True) + print(f"Error handling transcriptions.txt: {e}", flush=True) + # Update the start button self.start_button.configure(text="Stop", fg_color="red", hover_color="dark red") - intelligent = self.intelligent_mode.get() - cuda = self.gpu_enabled.get() - model = self.model_selection.get() - - # Determine the path to the Controller executable - if getattr(sys, 'frozen', False): - controller_executable = os.path.join(base_dir, 'Controller', 'Controller.exe') - else: - controller_executable = os.path.join(base_dir, 'controller.py') - + + # Construct the controller executable path + controller_executable = os.path.join(base_dir, CONTROLLER_DIR, CONTROLLER_EXECUTABLE) + + # Build the command arguments args = [controller_executable] - if intelligent: + if self.intelligent_mode.get(): args.append("--intelligent") - if cuda: + if self.gpu_enabled.get(): args.append("--cuda") - args.extend(["--model", model]) - - # Get the selected device index + args.extend(["--model", self.model_selection.get()]) + + # Get selected audio device index selected_device = self.device_selection.get() device_index = next((device['index'] for device in self.devices if device['name'] == selected_device), None) if device_index is not None: args.extend(["--device-index", str(device_index)]) - # Add translation settings before process creation + # Add translation and filter settings if self.translation_enabled.get(): args.append("--translation-enabled") @@ -473,25 +475,24 @@ def start_app(self): args.extend(["--transcription-timeout", self.transcription_timeout.get()]) args.extend(["--workers", self.workers.get()]) - - - # If running in a frozen state, ensure subprocess handles executable correctly + # Launch the subprocess self.process = subprocess.Popen( args, stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, # Merge stderr into stdout + stderr=subprocess.STDOUT, text=True, bufsize=1, universal_newlines=True ) self.app_running = True + # Start monitoring threads self.stop_timeout.clear() - self.timeout_thread = threading.Thread(target=self.monitor_timeout, daemon=True) + self.timeout_thread = threading.Thread(target=self._monitor_timeout, daemon=True) self.timeout_thread.start() - threading.Thread(target=self.read_process_output, daemon=True).start() - threading.Thread(target=self.watch_console_queue, daemon=True).start() + threading.Thread(target=self._read_process_output, daemon=True).start() + threading.Thread(target=self._watch_console_queue, daemon=True).start() self.TRANSCRIPTION_TIMEOUT = int(self.transcription_timeout.get()) workers = int(self.workers.get()) @@ -511,20 +512,16 @@ def start_app(self): if store_output: args.append("--store-output") - args.extend(["--source-language", source_language]) - - - def stop_app(self): + def _stop_app(self): + """Stops the captioning application.""" if self.process: try: self.process.terminate() - # Wait for a short time for graceful termination - self.process.wait(timeout=2) + self.process.wait(timeout=2) # Give a short time for graceful termination except subprocess.TimeoutExpired: - # Force kill if process doesn't terminate gracefully - self.process.kill() + self.process.kill() # Force kill if process doesn't terminate gracefully self.process = None self.start_button.configure(text="Start", fg_color="green", hover_color="dark green") self.app_running = False @@ -533,27 +530,27 @@ def stop_app(self): self.timeout_thread.join() self.timeout_thread = None - def monitor_timeout(self): + def _monitor_timeout(self): + """Monitors the transcription timeout and restarts the app if necessary.""" while self.app_running and not self.stop_timeout.is_set(): if self.last_transcription_start > 0: elapsed_time = time.time() - self.last_transcription_start if elapsed_time > self.TRANSCRIPTION_TIMEOUT: error_msg = f"Transcription timeout for {self.current_transcription_file} after {self.TRANSCRIPTION_TIMEOUT} seconds" - self.enqueue_console_message(f"controller.py ERROR: {error_msg}") - self.stop_app() - time.sleep(1) # Give it a moment to clean up - self.start_app() # Restart the application + self._enqueue_console_message(f"controller.py ERROR: {error_msg}") + self._stop_app() + time.sleep(1) + self._start_app() break time.sleep(1) - def read_process_output(self): - """Read and process lines from the subprocesses combined stdout and stderr.""" + def _read_process_output(self): + """Reads and processes output from the subprocess.""" if self.process.stdout: for line in iter(self.process.stdout.readline, ''): if not line: break line = line.strip() - # Check for transcription start if "Starting transcription for" in line: self.last_transcription_start = time.time() @@ -564,86 +561,80 @@ def read_process_output(self): self.last_transcription_start = 0 # Reset the timer self.current_transcription_file = None - # Determine if the line is an error message + # Send messages to the console queue if "ERROR" in line: - self.enqueue_console_message(f"controller.py ERROR: {line}") + self._enqueue_console_message(f"controller.py ERROR: {line}") else: - self.enqueue_console_message(f"controller.py: {line}") + self._enqueue_console_message(f"controller.py: {line}") - def enqueue_console_message(self, message): - """Helper method to enqueue messages to the console queue.""" + def _enqueue_console_message(self, message): + """Enqueues a message to the console queue.""" self.console_queue.put(message) def open_console(self): - """Open the console window.""" + """Opens the console window.""" if not self.console_window or not self.console_window.winfo_exists(): self.console_window = ConsoleWindow(self.console_queue, self) else: self.console_window.deiconify() self.console_window.focus() - def watch_console_queue(self): - """Continuously watch for console messages (if any additional handling is needed).""" + def _watch_console_queue(self): + """Monitors the console queue (placeholder for any additional console processing).""" while self.app_running: - time.sleep(1) # Adjust the sleep duration as needed + time.sleep(1) def run(self): - """Run the main application loop.""" + """Runs the main application loop.""" self.mainloop() - def get_audio_devices(self): - """Get list of available audio devices.""" + def _get_audio_devices(self): + """Gets a list of available audio devices.""" from recorder import get_audio_devices return get_audio_devices() - def on_device_change(self, selected_device_name): - """Handle changes in the selected audio device.""" - # Find the selected device info + def _on_device_change(self, selected_device_name): + """Handles changes in the selected audio device.""" device_info = next((device for device in self.devices if device['name'] == selected_device_name), None) if device_info: - # Update the config with the new sample rate self.config['Settings']['sample_rate'] = str(device_info['defaultSampleRate']) self.config['Settings']['audio_device'] = selected_device_name with open(CONFIG_FILE, 'w') as configfile: self.config.write(configfile) def on_closing(self): - """Handle cleanup when the window is closed.""" + """Handles cleanup when the window is closed.""" # Stop the application if it's running if self.app_running: - self.stop_app() - - # Ensure the process is terminated + self._stop_app() + + # Ensure process is terminated if self.process: try: self.process.terminate() - # Wait for a short time for graceful termination self.process.wait(timeout=2) except subprocess.TimeoutExpired: - # Force kill if process doesn't terminate gracefully self.process.kill() self.process = None - # Destroy the console window if it exists + # Destroy console window if self.console_window and self.console_window.winfo_exists(): self.console_window.destroy() - # Destroy the main window + # Destroy main window self.quit() self.destroy() - def open_feedback_link(self): - """Open the feedback link in default web browser""" - webbrowser.open("https://github.com/evermoving/SystemCaptioner/issues") - - def open_file(self, filename): - """Open a file with the default application.""" + def _open_file(self, filename): + """Opens a file with the default application.""" os.startfile(filename) - def open_url(self, url): - """Open a URL in the default web browser.""" + def _open_url(self, url): + """Opens a URL in the default web browser.""" webbrowser.open(url) + if __name__ == "__main__": app = App() app.run() + diff --git a/recorder.py b/recorder.py index 625235f..e005b2e 100644 --- a/recorder.py +++ b/recorder.py @@ -14,25 +14,27 @@ config = configparser.ConfigParser() config.read("config.ini") -# Convert the sample rate to a float first, then to an integer -SAMPLE_RATE = int(float(config.get('Settings', 'sample_rate', fallback='16000'))) # Default to 16000 if not set +# Get the sample rate from the config, defaulting to 16000 +SAMPLE_RATE = int(float(config.get('Settings', 'sample_rate', fallback='16000'))) # Constants -CHUNK = 2048 # Number of frames per buffer -FORMAT = pyaudio.paInt16 # 16-bit resolution -CHANNELS = 2 # Stereo -RECORD_SECONDS = 3 # Record in 2-second intervals -OUTPUT_DIR = "recordings" # Directory to save recordings -MAX_FILES = 100 # Maximum number of files to keep - -def get_default_loopback_device(p): +CHUNK = 2048 +FORMAT = pyaudio.paInt16 +CHANNELS = 2 +RECORD_SECONDS = 3 +OUTPUT_DIR = "recordings" +MAX_FILES = 100 + + +def get_default_loopback_device(audio_interface): """Get the default loopback device.""" - return p.get_default_wasapi_loopback() + return audio_interface.get_default_wasapi_loopback() + def save_audio(frames, filename): """Save the recorded audio frames to a WAV file.""" - if not frames: # Check if frames is empty - print(f"Warning: No audio data to save for {filename}") + if not frames: + logger.warning(f"No audio data to save for {filename}") return with wave.open(filename, 'wb') as wf: wf.setnchannels(CHANNELS) @@ -40,25 +42,26 @@ def save_audio(frames, filename): wf.setframerate(SAMPLE_RATE) wf.writeframes(b''.join(frames)) + def cleanup_old_files(): """Delete old WAV files, keeping only the most recent MAX_FILES.""" files = [f for f in os.listdir(OUTPUT_DIR) if f.endswith('.wav')] files.sort(key=lambda x: os.path.getmtime(os.path.join(OUTPUT_DIR, x)), reverse=True) - + for old_file in files[MAX_FILES:]: os.remove(os.path.join(OUTPUT_DIR, old_file)) - print(f"Deleted old file: {old_file}") + logger.info(f"Deleted old file: {old_file}") + def get_audio_devices(): """Get all available WASAPI loopback devices.""" devices = [] try: - p = pyaudio.PyAudio() - wasapi_info = p.get_host_api_info_by_type(pyaudio.paWASAPI) - - for i in range(p.get_device_count()): - device_info = p.get_device_info_by_index(i) - # Check if the device is a loopback device + audio_interface = pyaudio.PyAudio() + wasapi_info = audio_interface.get_host_api_info_by_type(pyaudio.paWASAPI) + + for i in range(audio_interface.get_device_count()): + device_info = audio_interface.get_device_info_by_index(i) if device_info.get('hostApi') == wasapi_info['index'] and device_info.get('isLoopbackDevice', False): devices.append({ 'index': i, @@ -67,12 +70,13 @@ def get_audio_devices(): 'maxInputChannels': device_info.get('maxInputChannels', 2) }) logger.info(f"Found loopback audio device: {device_info.get('name')} (Index: {i})") - - p.terminate() + + audio_interface.terminate() except Exception as e: logger.error(f"Error getting audio devices: {e}") return devices + def record_audio(device_index=None): """Record audio from the specified or default speaker and save it to a file.""" if not os.path.exists(OUTPUT_DIR): @@ -80,30 +84,27 @@ def record_audio(device_index=None): logger.info(f"Created output directory: {OUTPUT_DIR}") try: - with pyaudio.PyAudio() as p: - # Get the specified or default loopback device + with pyaudio.PyAudio() as audio_interface: if device_index is not None: - device_info = p.get_device_info_by_index(device_index) + device_info = audio_interface.get_device_info_by_index(device_index) logger.info(f"Using selected device: {device_info.get('name')} (Index: {device_index})") else: - device_info = get_default_loopback_device(p) + device_info = get_default_loopback_device(audio_interface) device_index = device_info['index'] logger.info(f"Using default loopback device: {device_info.get('name')} (Index: {device_index})") - # Log device properties logger.info(f"Device properties: {device_info}") - + try: - # Open the stream with the detected sample rate - stream = p.open(format=FORMAT, - channels=CHANNELS, - rate=SAMPLE_RATE, - input=True, - frames_per_buffer=CHUNK, - input_device_index=device_index) - + stream = audio_interface.open(format=FORMAT, + channels=CHANNELS, + rate=SAMPLE_RATE, + input=True, + frames_per_buffer=CHUNK, + input_device_index=device_index) + logger.info("Audio stream opened successfully") - + while True: frames = [] for _ in range(0, int(SAMPLE_RATE / CHUNK * RECORD_SECONDS)): @@ -129,5 +130,7 @@ def record_audio(device_index=None): logger.error(f"Critical error in record_audio: {e}") raise + if __name__ == "__main__": record_audio() + diff --git a/transcriber.py b/transcriber.py index 5d9b2b2..f8a59af 100644 --- a/transcriber.py +++ b/transcriber.py @@ -161,6 +161,9 @@ def filter_hallucination_content(input_string): # Remove unnecessary new lines filtered_string = re.sub(r'\s*\n\s*', ' ', filtered_string).strip() + if filtered_string == ".": + return "" + print(f"String '{input_string}' filtered as hallucination text detected", flush=True) return filtered_string @@ -181,3 +184,4 @@ def transcribe_and_save(model, file_path, output_path, translation_enabled, sour if __name__ == "__main__": monitor_audio_file(AUDIO_INPUT_DIR, TRANSCRIPTION_OUTPUT) + From c15eb936c12cedea651b67a1243af812c8446db9 Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Sat, 28 Dec 2024 21:13:26 -0800 Subject: [PATCH 23/28] Update screenshot for demo --- DemoMedia/demo1.png | Bin 38008 -> 36630 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/DemoMedia/demo1.png b/DemoMedia/demo1.png index 5915298f26c9effc9ba2862b7e361222c0df3cb6..1c74316f143bc2080494aa11e01817e2df96f6da 100644 GIT binary patch literal 36630 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 From 4a48dbb39ef99cfb8529d91acf16530f471eed8c Mon Sep 17 00:00:00 2001 From: Chan Jian Hao <49814823+ChanJianHao@users.noreply.github.com> Date: Sun, 29 Dec 2024 16:33:03 +0800 Subject: [PATCH 24/28] Update tooltip for language selection --- main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.py b/main.py index 11a5e9d..d44e79b 100644 --- a/main.py +++ b/main.py @@ -339,7 +339,7 @@ def _init_ui(self): # Language tooltip self._create_tooltip_button( self.language_frame, - tooltip_text="Specify the language used by the source audio using ISO-639-1 format (e.g., 'en' for English, 'zh' for Chinese).", + tooltip_text="Specify the language used by the source audio using ISO-639-1 format (e.g., 'en' for English, 'zh' for Chinese). Click on the tooltip for full list.", command=lambda: self._open_url(LANGUAGE_CODES_LINK) ) From 6ca005708892c052674deb0250bbe83b66e25f37 Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Thu, 2 Jan 2025 05:29:14 -0800 Subject: [PATCH 25/28] Make language optional, remove turbo, rename hallucination file --- build_portable.py | 8 ++--- controller.py | 4 +-- ...cinations.txt => filter_hallucinations.txt | 12 +++++++ main.py | 10 +++--- transcriber.py | 32 +++++++++++-------- 5 files changed, 42 insertions(+), 24 deletions(-) rename hallucinations.txt => filter_hallucinations.txt (93%) diff --git a/build_portable.py b/build_portable.py index ace8e14..97983f3 100644 --- a/build_portable.py +++ b/build_portable.py @@ -12,7 +12,7 @@ def build_portable(): build_path = os.path.join(current_dir, 'build') nvidia_deps_path = os.path.join(current_dir, 'nvidia_dependencies') icon_path = os.path.join(current_dir, 'icon.ico') - hallucinations_file = os.path.join(current_dir, 'hallucinations.txt') + hallucinations_file = os.path.join(current_dir, 'filter_hallucinations.txt') # Get faster_whisper assets path faster_whisper_path = os.path.dirname(faster_whisper.__file__) @@ -134,11 +134,11 @@ def build_portable(): shutil.copy2(icon_src, icon_dest) print("icon.ico copied to root successfully") - # Copy hallucinations.txt to root folder of System Captioner + # Copy filter_hallucinations.txt to root folder of System Captioner if os.path.exists(hallucinations_file): - hallucinations_dest = os.path.join(dist_system_captioner, 'hallucinations.txt') + hallucinations_dest = os.path.join(dist_system_captioner, 'filter_hallucinations.txt') shutil.copy2(hallucinations_file, hallucinations_dest) - print("hallucinations.txt copied to root successfully") + print("filter_hallucinations.txt copied to root successfully") print("Post-build steps completed successfully!") diff --git a/controller.py b/controller.py index 274f3fe..fe999f1 100644 --- a/controller.py +++ b/controller.py @@ -51,14 +51,14 @@ def start_gui(update_queue, intelligent_mode): parser.add_argument('--cuda', action='store_true', help='Enable CUDA for transcription') parser.add_argument('--model', type=str, choices=['tiny.en', 'tiny', 'base.en', 'base', 'small.en', 'small', 'medium.en', 'medium', 'large-v1', 'large-v2', 'large-v3', 'large', 'distil-large-v2', 'distil-medium.en', - 'distil-small.en', 'distil-large-v3', 'large-v3-turbo', 'turbo'], + 'distil-small.en', 'distil-large-v3'], help='Select the model size for transcription') parser.add_argument('--device-index', type=int, help='Audio device index for recording') parser.add_argument('--transcription-timeout', type=int, default=5, help='Transcription timeout in seconds') parser.add_argument('--workers', type=int, default=4, help='Number of worker threads') parser.add_argument('--translation-enabled', action='store_true', help='Enable translation') parser.add_argument('--source-language', type=str, default='en', help='Source language for transcription') - parser.add_argument('--filter-hallucinations', action='store_true', help='Filter hallucinations using hallucinations.txt') + parser.add_argument('--filter-hallucinations', action='store_true', help='Filter hallucinations using filter_hallucinations.txt') parser.add_argument('--store-output', action='store_true', help='Store transcription output in transcriptions.txt') args = parser.parse_args() diff --git a/hallucinations.txt b/filter_hallucinations.txt similarity index 93% rename from hallucinations.txt rename to filter_hallucinations.txt index 417867b..f322931 100644 --- a/hallucinations.txt +++ b/filter_hallucinations.txt @@ -1,4 +1,6 @@ ! +, . +. , .. :) :D @@ -15,10 +17,14 @@ amara.org bye bye, ladies and gentlemen Click like and subscribe +Click the bell icon +Click the like button Cliquez-vous sur les sous-titres et abonnez-vous à la chaîne d'Amara.org Copyright WDR 2019 Copyright WDR 2020 Copyright WDR 2021 +Don't forget to like +Don't forget to like and subscribe don't forget to like, commentary, and subscribe to the channel don't forget to subscribe E aí @@ -27,6 +33,7 @@ e se inscreva no canal e ative o sininho Fast forward he was gonna catch it hello, +I hope you enjoy it. I hope you enjoy the video I hope you enjoy this video I hope you enjoyed the video @@ -34,11 +41,13 @@ I hope you enjoyed this video I hope you have a good time I will see you again in the next video I would like to say thank you very much +I'll be back in 10 minutes I'll be back in a few minutes I'll be back in the next video I'll be back soon I'll be back soon, or I'll be back soon I'll be right back +I'll be waiting for you in the evening I'll be waiting for you in the next video I'll see you again in the next video i'll see you next time @@ -70,6 +79,7 @@ Ondertitels ingediend door de Amara.org gemeenschap Please give a thumbs up and subscribe to the channel Please like and subscribe Please subscribe +Please subscribe and like Please subscribe to my channel Please subscribe to my channel! Please subscribe to the channel @@ -130,6 +140,8 @@ Untertitel von Stephanie Geiges Untertitelung aufgrund der Amara.org-Community Untertitelung im Auftrag des ZDF, 2021 Valeu. +Welcome back to my channel +Welcome back to my video Welcome to a new video Welcome to the channel www.mooji.org diff --git a/main.py b/main.py index d44e79b..9f1ab9f 100644 --- a/main.py +++ b/main.py @@ -18,7 +18,7 @@ TOOLTIP_WRAP_LENGTH = 150 TOOLTIP_BG_COLOR = "#2e2e2e" TOOLTIP_TEXT_COLOR = "white" -DEFAULT_SOURCE_LANGUAGE = "en" +DEFAULT_SOURCE_LANGUAGE = "" DEFAULT_TRANSCRIPTION_TIMEOUT = "5" DEFAULT_WORKERS = "4" FEEDBACK_LINK = "https://github.com/evermoving/SystemCaptioner/issues" @@ -208,8 +208,8 @@ def _init_ui(self): self.inner_checkbox_frame, row=3, column=1, - tooltip_text="Enable this to filter hallucinations using hallucinations.txt file.", - command=lambda: self._open_file("hallucinations.txt"), + tooltip_text="Enable this to filter hallucinations using filter_hallucinations.txt file.", + command=lambda: self._open_file("filter_hallucinations.txt"), ) # Store output checkbox @@ -243,7 +243,7 @@ def _init_ui(self): values=[ 'tiny.en', 'tiny', 'base.en', 'base', 'small.en', 'small', 'medium.en', 'medium', 'large-v1', 'large-v2', 'large-v3', 'large', 'distil-large-v2', 'distil-medium.en', - 'distil-small.en', 'distil-large-v3', 'large-v3-turbo', 'turbo' + 'distil-small.en', 'distil-large-v3' ], variable=self.model_selection, command=self._save_config, @@ -329,7 +329,7 @@ def _init_ui(self): self.language_frame.pack(pady=(0, 10)) # Language label - self.language_label = ctk.CTkLabel(self.language_frame, text="Source Language:") + self.language_label = ctk.CTkLabel(self.language_frame, text="[Optional] Source Language:") self.language_label.pack(side="left", padx=(0, 5)) # Language entry diff --git a/transcriber.py b/transcriber.py index f8a59af..c0dc415 100644 --- a/transcriber.py +++ b/transcriber.py @@ -53,16 +53,22 @@ def transcribe_audio(model, audio_path, translation_enabled, source_language): # print(f"Translation mode: {'enabled' if translation_enabled else 'disabled'}", flush=True) # print(f"Source language: {source_language}", flush=True) - segments, _ = model.transcribe( - audio_path, - language=source_language, - task="translate" if translation_enabled else "transcribe", - beam_size=1, - vad_filter=True, - word_timestamps=True, - # initial_prompt="" - # suppress_tokens=[-1, 50363, 50364] - ) + # Build the arguments dictionary + transcribe_args = { + "task": "translate" if translation_enabled else "transcribe", + "beam_size": 1, + "vad_filter": True, + "word_timestamps": True, + # "initial_prompt": "", + # "suppress_tokens": [-1, 50363, 50364] + } + + # Add the language argument only if source_language is not an empty string + if source_language: + transcribe_args["language"] = source_language + + # Pass audio_path as a positional argument and unpack the other arguments + segments, _ = model.transcribe(audio_path, **transcribe_args) transcription = " ".join(segment.text for segment in segments) print("Whisper processing completed.", flush=True) @@ -108,7 +114,7 @@ def monitor_audio_file(input_dir, output_path, check_interval=0.5, device="cuda" print(f"Using {args.workers} workers thread...", flush=True) executor = concurrent.futures.ThreadPoolExecutor(max_workers=args.workers) # Allows parallel processing - print(f"Starting transcribe_and_save with translation_enabled: {args.translation_enabled} | source_language: {args.source_language} | filter_hallucinations: {args.filter_hallucinations} | store_output: {args.store_output}...", flush=True) + print(f"Starting transcribe_and_save with translation_enabled: {args.translation_enabled} | source_language: \"{args.source_language}\" | filter_hallucinations: {args.filter_hallucinations} | store_output: {args.store_output}...", flush=True) while True: for filename in os.listdir(input_dir): @@ -131,7 +137,7 @@ def filter_hallucination_content(input_string): """ try: # Read the blacklist from the file - with open('hallucinations.txt', 'r', encoding='utf-8') as file: + with open('filter_hallucinations.txt', 'r', encoding='utf-8') as file: blacklisted_lines = sorted( [line.strip().lower() for line in file if line.strip()], key=len, @@ -164,7 +170,7 @@ def filter_hallucination_content(input_string): if filtered_string == ".": return "" - print(f"String '{input_string}' filtered as hallucination text detected", flush=True) + # print(f"String '{input_string}' filtered as hallucination text detected", flush=True) return filtered_string From 55821a257ca7923010465f66d78bdc7d6dbb7d49 Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Thu, 2 Jan 2025 05:37:15 -0800 Subject: [PATCH 26/28] Add line to hallucination filter --- filter_hallucinations.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/filter_hallucinations.txt b/filter_hallucinations.txt index f322931..32df667 100644 --- a/filter_hallucinations.txt +++ b/filter_hallucinations.txt @@ -33,6 +33,7 @@ e se inscreva no canal e ative o sininho Fast forward he was gonna catch it hello, +I am also looking forward to the next video I hope you enjoy it. I hope you enjoy the video I hope you enjoy this video From 4d9cbe59849541f96082da9bd14dc527fbd76199 Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Mon, 6 Jan 2025 03:41:41 -0800 Subject: [PATCH 27/28] Add hallucinations --- filter_hallucinations.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/filter_hallucinations.txt b/filter_hallucinations.txt index 32df667..d8212d3 100644 --- a/filter_hallucinations.txt +++ b/filter_hallucinations.txt @@ -31,6 +31,7 @@ E aí e se inscreva no canal e se inscreva no canal e ative o sininho Fast forward +for your viewing he was gonna catch it hello, I am also looking forward to the next video @@ -84,6 +85,8 @@ Please subscribe and like Please subscribe to my channel Please subscribe to my channel! Please subscribe to the channel +See you again in the next video +See you again in tomorrow's video see you in the next video see you next time see you next video @@ -127,7 +130,9 @@ thank you. bye bye thanks for watching Thanks for watching! thanks mate +That's all for this video That's all for today +That's all for today's video That's it for today Tłumaczenie i napisy stworzone przez społeczność Amara.org Tłumaczenie stworzone przez społeczność Amara.org From e32f9401248cc6a45c1618f74309cb9b89fe0d8b Mon Sep 17 00:00:00 2001 From: "DESKTOP-90P63HN\\CJH" Date: Mon, 6 Jan 2025 04:43:12 -0800 Subject: [PATCH 28/28] Justify center subtitles text --- gui.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/gui.py b/gui.py index 36a7c0e..93a14fd 100644 --- a/gui.py +++ b/gui.py @@ -3,6 +3,7 @@ import queue import time + class SubtitleGUI: def __init__(self, update_queue, intelligent_mode=False): self.update_queue = update_queue @@ -11,10 +12,10 @@ def __init__(self, update_queue, intelligent_mode=False): self.should_show = False self.root = tk.Tk() - + # Remove window decorations (frameless window) self.root.overrideredirect(True) - + # Set window size and position window_width = 800 window_height = 120 @@ -23,16 +24,16 @@ def __init__(self, update_queue, intelligent_mode=False): x_position = (screen_width // 2) - (window_width // 2) y_position = screen_height - window_height - 50 # 50 pixels above the bottom self.root.geometry(f"{window_width}x{window_height}+{x_position}+{y_position}") - + # Make window semi-transparent self.root.attributes("-alpha", 0.8) # Range: 0.0 (fully transparent) to 1.0 (fully opaque) - + # Set window to be always on top self.root.attributes("-topmost", True) - + # Set background color to dark grey self.root.configure(bg='#2e2e2e') # Dark grey color - + # ScrolledText widget for displaying subtitles self.text_area = scrolledtext.ScrolledText( self.root, @@ -45,12 +46,12 @@ def __init__(self, update_queue, intelligent_mode=False): ) self.text_area.pack(expand=True, fill='both') self.text_area.configure(state='disabled') - + # Bind mouse events for dragging the window self.text_area.bind("", self.start_move) self.text_area.bind("", self.stop_move) self.text_area.bind("", self.do_move) - + # Variables to keep track of dragging self.offset_x = 0 self.offset_y = 0 @@ -101,7 +102,8 @@ def update_subtitles(self): def display_transcription(self, transcription): """Insert the transcription into the text area.""" self.text_area.configure(state='normal') - self.text_area.insert(tk.END, transcription + "\n") + self.text_area.tag_configure("center", justify='center') + self.text_area.insert(tk.END, transcription + "\n", "center") self.text_area.configure(state='disabled') self.text_area.yview(tk.END)

FN?{XRqnlh5u{kO%$_S%n{-c`pijCbkK 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%0AD+L{0}N; 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