From 2346bacd5dd024f763f6ca1a1f5edc9328e235e7 Mon Sep 17 00:00:00 2001 From: stephen Date: Sat, 17 Oct 2026 12:13:03 +1100 Subject: [PATCH] this version replaced edge-tts with kokoro locally based tts model --- .gitignore | 5 +- Spanish Voice Trainer.spec | 51 + anki_exporter.py | 96 +- audio-samples/sample_af_bella.wav | Bin 0 -> 37932 bytes audio-samples/sample_af_nicole.wav | Bin 0 -> 48172 bytes audio-samples/sample_af_sky.wav | Bin 0 -> 47148 bytes audio-samples/sample_ef_dora.wav | Bin 0 -> 39980 bytes audio-samples/sample_em_alex.wav | Bin 0 -> 39980 bytes .../Santiago_cathedral_2021_Sunset.jpg | Bin base_icon.png => base-icons/base_icon.png | Bin .../migrate_database.py | 0 .../spanish_trainer-26-06-21.db | Bin .../spanish_trainer-26-08-21.db | Bin .../spanish_trainer-backup.db | Bin .../spanish_trainer.db | Bin .../spanish_trainer_backup.sql | 0 .../spanish_trainer_legacy.db | Bin doc/Notes.md | 9 +- doc/Notes.pdf | Bin 210914 -> 213150 bytes .../aula_int_plus_1_glos_en_alfa.pdf | Bin .../spanish_alphabetical.txt | 0 .../spanish_glossary_sorted.txt | 0 .../spanish_glossary_sorted.xlsx | Bin .../spanish_glossary_sorted_B.pdf | Bin .../spanish_glossary_sorted_B.txt | 0 .../spanish_glossary_sorted_B.xlsx | Bin tree2.txt => doc/tree2.txt | 0 kokoro_utils.py | 47 + main.py | 129 ++- requirements.txt | 138 --- tabs/review_tab.py | 90 +- tabs/sandbox_tab.py | 54 +- test_dual.py => test-scripts/test_dual.py | 0 test_tts.py => test-scripts/test_tts.py | 0 test-scripts/test_voices.py | 29 + tree.txt | 981 ------------------ tts_utils.py | 17 +- 37 files changed, 383 insertions(+), 1263 deletions(-) create mode 100644 Spanish Voice Trainer.spec create mode 100644 audio-samples/sample_af_bella.wav create mode 100644 audio-samples/sample_af_nicole.wav create mode 100644 audio-samples/sample_af_sky.wav create mode 100644 audio-samples/sample_ef_dora.wav create mode 100644 audio-samples/sample_em_alex.wav rename Santiago_cathedral_2021_Sunset.jpg => base-icons/Santiago_cathedral_2021_Sunset.jpg (100%) rename base_icon.png => base-icons/base_icon.png (100%) rename migrate_database.py => database_legacy/migrate_database.py (100%) rename spanish_trainer-26-06-21.db => database_legacy/spanish_trainer-26-06-21.db (100%) rename spanish_trainer-26-08-21.db => database_legacy/spanish_trainer-26-08-21.db (100%) rename spanish_trainer-backup.db => database_legacy/spanish_trainer-backup.db (100%) rename spanish_trainer.db => database_legacy/spanish_trainer.db (100%) rename spanish_trainer_backup.sql => database_legacy/spanish_trainer_backup.sql (100%) rename spanish_trainer_legacy.db => database_legacy/spanish_trainer_legacy.db (100%) rename aula_int_plus_1_glos_en_alfa.pdf => doc/aula_int_plus_1_glos_en_alfa.pdf (100%) rename spanish_alphabetical.txt => doc/spanish_alphabetical.txt (100%) rename spanish_glossary_sorted.txt => doc/spanish_glossary_sorted.txt (100%) rename spanish_glossary_sorted.xlsx => doc/spanish_glossary_sorted.xlsx (100%) rename spanish_glossary_sorted_B.pdf => doc/spanish_glossary_sorted_B.pdf (100%) rename spanish_glossary_sorted_B.txt => doc/spanish_glossary_sorted_B.txt (100%) rename spanish_glossary_sorted_B.xlsx => doc/spanish_glossary_sorted_B.xlsx (100%) rename tree2.txt => doc/tree2.txt (100%) create mode 100644 kokoro_utils.py delete mode 100644 requirements.txt rename test_dual.py => test-scripts/test_dual.py (100%) rename test_tts.py => test-scripts/test_tts.py (100%) create mode 100644 test-scripts/test_voices.py delete mode 100644 tree.txt diff --git a/.gitignore b/.gitignore index c3a1c81..8f06c6d 100644 --- a/.gitignore +++ b/.gitignore @@ -25,4 +25,7 @@ media/* # IDE and Environment Configurations .vscode/ .idea/ -.env \ No newline at end of file +.env + +*.onnx +*.bin \ No newline at end of file diff --git a/Spanish Voice Trainer.spec b/Spanish Voice Trainer.spec new file mode 100644 index 0000000..577af74 --- /dev/null +++ b/Spanish Voice Trainer.spec @@ -0,0 +1,51 @@ +# -*- mode: python ; coding: utf-8 -*- + + +a = Analysis( + ['main.py'], + pathex=[], + binaries=[], + datas=[], + hiddenimports=[], + hookspath=[], + hooksconfig={}, + runtime_hooks=[], + excludes=[], + noarchive=False, + optimize=0, +) +pyz = PYZ(a.pure) + +exe = EXE( + pyz, + a.scripts, + [], + exclude_binaries=True, + name='Spanish Voice Trainer', + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=True, + console=False, + disable_windowed_traceback=False, + argv_emulation=False, + target_arch=None, + codesign_identity=None, + entitlements_file=None, + icon=['app.icns'], +) +coll = COLLECT( + exe, + a.binaries, + a.datas, + strip=False, + upx=True, + upx_exclude=[], + name='Spanish Voice Trainer', +) +app = BUNDLE( + coll, + name='Spanish Voice Trainer.app', + icon='app.icns', + bundle_identifier=None, +) diff --git a/anki_exporter.py b/anki_exporter.py index 1b2c3ef..614e1c8 100644 --- a/anki_exporter.py +++ b/anki_exporter.py @@ -1,32 +1,20 @@ # anki_exporter.py import os import tempfile -import asyncio import time import genanki -import edge_tts import database -from tts_utils import parse_text_for_edgetts, get_configured_tts_rate - -async def generate_edge_audio(text, voice, output_path, rate_modifier="+0%"): - """Asynchronously streams data packages via the Microsoft Edge API pipeline.""" - try: - communicate = edge_tts.Communicate(text=text, voice=voice, rate=rate_modifier) - await communicate.save(output_path) - return True - except Exception as e: - print(f"Edge-TTS synthesis anomaly: {e}") - return False +from tts_utils import parse_text_for_edgetts +from kokoro_utils import generate_local_speech def compile_anki_package(records, output_path, deck_name): """ Compiles database records into a bidirectional card payload package. Resolves voice models dynamically by gender selection parameters and applies - global speed coefficient rates from the active configurations. + speed multipliers from active configurations using local Kokoro TTS. Injects sort_order as field 0 for structured card sequencing. """ # Generate deterministic positive 32-bit integers from deck name and model name - # to avoid collisions across different decks while keeping imports stable deck_id = abs(hash(deck_name)) % (2**31) model_id = abs(hash("Spanish Bidirectional Multi-Note HTML Model")) % (2**31) @@ -35,7 +23,10 @@ def compile_anki_package(records, output_path, deck_name): # Global Configuration Pace Resolver Mapping settings = database.load_all_settings() or {} - rate_string = get_configured_tts_rate(settings) + try: + speed_multiplier = float(settings.get("tts_playback_speed", 1.0)) + except (TypeError, ValueError): + speed_multiplier = 1.0 anki_model = genanki.Model( model_id, @@ -52,8 +43,8 @@ def compile_anki_package(records, output_path, deck_name): { 'name': 'Card 1: English ➔ Spanish', 'qfmt': '
TRANSLATE TO SPANISH:

' - '
{{EnglishText}}
' - '
{{EnglishAudio}}
', + '
{{EnglishText}}

' + '
{{EnglishAudio}}
', 'afmt': '{{FrontSide}}
' '
{{SpanishText}}

' '{{#AnkiNotes}}
Anki Meta: {{{AnkiNotes}}}
{{/AnkiNotes}}
' @@ -62,8 +53,8 @@ def compile_anki_package(records, output_path, deck_name): { 'name': 'Card 2: Spanish ➔ English', 'qfmt': '
TRANSLATE TO ENGLISH:

' - '
{{SpanishText}}
' - '
{{SpanishAudio}}
', + '
{{SpanishText}}

' + '
{{SpanishAudio}}
', 'afmt': '{{FrontSide}}
' '
{{EnglishText}}

' '{{#AnkiNotes}}
Anki Meta: {{{AnkiNotes}}}
{{/AnkiNotes}}
' @@ -75,12 +66,6 @@ def compile_anki_package(records, output_path, deck_name): deck = genanki.Deck(deck_id, deck_name) media_files_to_pack = [] - try: - loop = asyncio.get_running_loop() - except RuntimeError: - loop = asyncio.new_event_loop() - asyncio.set_event_loop(loop) - with tempfile.TemporaryDirectory() as tmpdir: for idx, record in enumerate(records): en_raw = record["en_text"] @@ -96,38 +81,57 @@ def compile_anki_package(records, output_path, deck_name): en_tts_text = parse_text_for_edgetts(en_raw) es_tts_text = parse_text_for_edgetts(es_raw) - # Map native neural voice files matching gender settings - spanish_voice = "es-ES-AlvaroNeural" if gender_flag == "Male" else "es-ES-ElviraNeural" - english_voice = "en-US-EmmaNeural" + # Map Kokoro voices matching gender settings + spanish_voice = "em_alex" if gender_flag == "Male" else "ef_dora" + english_voice = "af_bella" raw_tags = record.get("tags") or "" note_tags = [t.strip().replace(" ", "_") for t in raw_tags.split(",") if t.strip()] - # Safely isolate the raw text/HTML data string down to Anki notes field anki_notes_html = record['anki_notes'].strip() if record.get('anki_notes') else "" - # Unique Media Filenames combining execution timestamp and index - en_audio_filename = f"edge_en_{run_prefix}_{idx}.mp3" - es_audio_filename = f"edge_es_{run_prefix}_{idx}.mp3" + # Unique Media Filenames combining execution timestamp and index (.wav output from soundfile) + en_audio_filename = f"kokoro_en_{run_prefix}_{idx}.wav" + es_audio_filename = f"kokoro_es_{run_prefix}_{idx}.wav" en_audio_path = os.path.join(tmpdir, en_audio_filename) es_audio_path = os.path.join(tmpdir, es_audio_filename) - # English Audio Synthesis - if en_tts_text.strip() and loop.run_until_complete(generate_edge_audio(en_tts_text, english_voice, en_audio_path, rate_string)): - media_files_to_pack.append(en_audio_path) - en_audio_field = f"[sound:{en_audio_filename}]" - else: + # English Audio Synthesis via Kokoro + try: + if en_tts_text.strip(): + generated_path = generate_local_speech(en_tts_text, voice_name=english_voice, speed=speed_multiplier) + if os.path.exists(generated_path): + # Copy temp file to designated exporter temp directory path + import shutil + shutil.copyfile(generated_path, en_audio_path) + media_files_to_pack.append(en_audio_path) + en_audio_field = f"[sound:{en_audio_filename}]" + else: + en_audio_field = "" + else: + en_audio_field = "" + except Exception as e: + print(f"[Anki Exporter] English TTS error for card {idx}: {e}") en_audio_field = "" - # Spanish Audio Synthesis - if es_tts_text.strip() and loop.run_until_complete(generate_edge_audio(es_tts_text, spanish_voice, es_audio_path, rate_string)): - media_files_to_pack.append(es_audio_path) - es_audio_field = f"[sound:{es_audio_filename}]" - else: + # Spanish Audio Synthesis via Kokoro + try: + if es_tts_text.strip(): + generated_path = generate_local_speech(es_tts_text, voice_name=spanish_voice, speed=speed_multiplier) + if os.path.exists(generated_path): + import shutil + shutil.copyfile(generated_path, es_audio_path) + media_files_to_pack.append(es_audio_path) + es_audio_field = f"[sound:{es_audio_filename}]" + else: + es_audio_field = "" + else: + es_audio_field = "" + except Exception as e: + print(f"[Anki Exporter] Spanish TTS error for card {idx}: {e}") es_audio_field = "" - # Clean sequential matching fields array matching schema mapping above note = genanki.Note( model=anki_model, fields=[sort_order_str, en_raw, es_raw, anki_notes_html, en_audio_field, es_audio_field], @@ -135,7 +139,7 @@ def compile_anki_package(records, output_path, deck_name): ) deck.add_note(note) - # Build Package while media assets are guaranteed contextually active inside tmpdir package = genanki.Package(deck) package.media_files = media_files_to_pack - package.write_to_file(output_path) \ No newline at end of file + package.write_to_file(output_path) + \ No newline at end of file diff --git a/audio-samples/sample_af_bella.wav b/audio-samples/sample_af_bella.wav new file mode 100644 index 0000000000000000000000000000000000000000..abebe27c17fe028a1f8b6a166edf234c73fa45ec GIT binary patch literal 37932 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 CYC!t{ literal 0 HcmV?d00001 diff --git a/audio-samples/sample_af_nicole.wav b/audio-samples/sample_af_nicole.wav new file mode 100644 index 0000000000000000000000000000000000000000..f850f69745636005098ae57fd46904b212edaa19 GIT binary patch literal 48172 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 literal 0 HcmV?d00001 diff --git a/audio-samples/sample_af_sky.wav b/audio-samples/sample_af_sky.wav new file mode 100644 index 0000000000000000000000000000000000000000..4178f77cace71d25e758a04a80aeeca298389d67 GIT binary patch literal 47148 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 literal 0 HcmV?d00001 diff --git a/audio-samples/sample_ef_dora.wav b/audio-samples/sample_ef_dora.wav new file mode 100644 index 0000000000000000000000000000000000000000..17da0d4cc17eb3465b9c998d03f72de2768ea74f GIT binary patch literal 39980 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‏+PeW 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 literal 0 HcmV?d00001 diff --git a/Santiago_cathedral_2021_Sunset.jpg b/base-icons/Santiago_cathedral_2021_Sunset.jpg similarity index 100% rename from Santiago_cathedral_2021_Sunset.jpg rename to base-icons/Santiago_cathedral_2021_Sunset.jpg diff --git a/base_icon.png b/base-icons/base_icon.png similarity index 100% rename from base_icon.png rename to base-icons/base_icon.png diff --git a/migrate_database.py b/database_legacy/migrate_database.py similarity index 100% rename from migrate_database.py rename to database_legacy/migrate_database.py diff --git a/spanish_trainer-26-06-21.db b/database_legacy/spanish_trainer-26-06-21.db similarity index 100% rename from spanish_trainer-26-06-21.db rename to database_legacy/spanish_trainer-26-06-21.db diff --git a/spanish_trainer-26-08-21.db b/database_legacy/spanish_trainer-26-08-21.db similarity index 100% rename from spanish_trainer-26-08-21.db rename to database_legacy/spanish_trainer-26-08-21.db diff --git a/spanish_trainer-backup.db b/database_legacy/spanish_trainer-backup.db similarity index 100% rename from spanish_trainer-backup.db rename to database_legacy/spanish_trainer-backup.db diff --git a/spanish_trainer.db b/database_legacy/spanish_trainer.db similarity index 100% rename from spanish_trainer.db rename to database_legacy/spanish_trainer.db diff --git a/spanish_trainer_backup.sql b/database_legacy/spanish_trainer_backup.sql similarity index 100% rename from spanish_trainer_backup.sql rename to database_legacy/spanish_trainer_backup.sql diff --git a/spanish_trainer_legacy.db b/database_legacy/spanish_trainer_legacy.db similarity index 100% rename from spanish_trainer_legacy.db rename to database_legacy/spanish_trainer_legacy.db diff --git a/doc/Notes.md b/doc/Notes.md index 579baf5..3d68da3 100644 --- a/doc/Notes.md +++ b/doc/Notes.md @@ -64,4 +64,11 @@ tree --gitignore * **Build & Bundle Outputs:** `build/`, `dist/`, `main.app` * **Python Caches:** `__pycache__/`, `*.pyc` * **Static / Temp Media:** `*.png`, `*.jpg`, `*.pdf`, `app_icon.iconset/` -* **Legacy / Backups:** `database_legacy/` (containing database backups like `*.db`) \ No newline at end of file +* **Legacy / Backups:** `database_legacy/` (containing database backups like `*.db`) + + +There is a problem with edge-tts +so we are going to install kokoro + +39_spanish-voice-trainer % git tag -a V37.0 -m "this version replaced edge-tts with kokoro locally based tts model" +(139_spanish-voice-trainer) stephenlohning diff --git a/doc/Notes.pdf b/doc/Notes.pdf index 4dfe3e01ef7220fb7998b8d2c79f14f8dceae7f8..70104631c89ce4ca7816457245bb9722a056fb5e 100644 GIT binary patch delta 44452 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 U*>t6a(5;KTvB}BRYd str: + """ + Synthesizes speech locally using Kokoro and saves to a temp file, + returning the path to the generated audio file with correct language routing. + """ + engine = get_kokoro_engine() + if not engine: + raise FileNotFoundError( + f"Kokoro model files not found at root directory.\nExpected:\n- {MODEL_PATH}\n- {VOICES_PATH}" + ) + + # Route language code explicitly based on voice prefix + if voice_name.startswith("es") or voice_name.startswith("ef") or voice_name.startswith("em"): + lang_code = "es" + else: + lang_code = "en-us" + + samples, sample_rate = engine.create( + text, + voice=voice_name, + speed=speed, + lang=lang_code + ) + + temp_file = os.path.join(tempfile.gettempdir(), "kokoro_review_audio.wav") + sf.write(temp_file, samples, sample_rate) + return temp_file \ No newline at end of file diff --git a/main.py b/main.py index a473be3..6863805 100644 --- a/main.py +++ b/main.py @@ -1,7 +1,12 @@ # main.py import sys import os -from PyQt6.QtWidgets import QMainWindow, QTabWidget, QApplication, QMessageBox, QVBoxLayout, QWidget +import shutil +from PyQt6.QtWidgets import ( + QMainWindow, QTabWidget, QApplication, QMessageBox, + QVBoxLayout, QWidget, QFileDialog +) +from PyQt6.QtGui import QAction, QKeySequence from PyQt6.QtCore import pyqtSlot # Import our unified data layer @@ -19,7 +24,7 @@ import video_generator class MainWindow(QMainWindow): def __init__(self): super().__init__() - self.setWindowTitle("Castilian Spanish Voice Trainer") + self.setWindowTitle("Spanish Voice Trainer") self.setMinimumSize(900, 650) # 1. Ensure database structure exists on startup @@ -47,9 +52,121 @@ class MainWindow(QMainWindow): self.tab_widget.addTab(self.review_tab, "Flashcard Review") self.tab_widget.addTab(self.settings_tab, "Configuration Settings") - # 6. Wire up the cross-module communication channels (Signals) + # 6. Build application Menu Bar + self.create_menu_bar() + + # 7. Wire up the cross-module communication channels (Signals) self.wire_application_signals() + def create_menu_bar(self): + """Constructs native macOS Menu Bar integrating directly with the primary system process menu.""" + menu_bar = self.menuBar() + + # --- 1. APP MENU (Spanish Voice Trainer) --- + # An empty string title merges actions directly into the native primary macOS Application Menu + app_menu = menu_bar.addMenu("") + + about_action = QAction("About Spanish Voice Trainer", self) + about_action.setMenuRole(QAction.MenuRole.AboutRole) + about_action.triggered.connect(self.show_about_dialog) + app_menu.addAction(about_action) + + update_action = QAction("Check for Updates...", self) + update_action.setMenuRole(QAction.MenuRole.ApplicationSpecificRole) + update_action.triggered.connect(self.check_for_updates) + app_menu.addAction(update_action) + + quit_action = QAction("Quit Spanish Voice Trainer", self) + quit_action.setMenuRole(QAction.MenuRole.QuitRole) + quit_action.setShortcut(QKeySequence.StandardKey.Quit) + quit_action.triggered.connect(QApplication.instance().quit) + app_menu.addAction(quit_action) + + # --- 2. TOOLS MENU --- + tools_menu = menu_bar.addMenu("Tools") + + backup_action = QAction("Backup Database...", self) + backup_action.triggered.connect(self.handle_backup_database) + tools_menu.addAction(backup_action) + + # --- 3. HELP MENU --- + help_menu = menu_bar.addMenu("Help") + + help_instructions_action = QAction("User Guide & Instructions", self) + help_instructions_action.setMenuRole(QAction.MenuRole.ApplicationSpecificRole) + help_instructions_action.setShortcut(QKeySequence.StandardKey.HelpContents) + help_instructions_action.triggered.connect(self.show_help_dialog) + help_menu.addAction(help_instructions_action) + + # --- Menu Action Handlers --- + + @pyqtSlot() + def show_about_dialog(self): + """Displays application details and copyright information.""" + QMessageBox.about( + self, + "About Spanish Voice Trainer", + "

Spanish Voice Trainer

" + "

Version: 1.0.0

" + "

A local-first application for Castilian Spanish vocabulary practice, " + "neural TTS voice previewing, and Anki deck generation.

" + ) + + @pyqtSlot() + def check_for_updates(self): + """Placeholder action for update checks.""" + QMessageBox.information( + self, + "Check for Updates", + "Check for Updates is not implemented yet in this version." + ) + + @pyqtSlot() + def handle_backup_database(self): + """Copies the primary SQLite database file to a user-selected location.""" + db_path = database.DB_PATH if hasattr(database, 'DB_PATH') else "spanish_app.db" + + if not os.path.exists(db_path): + QMessageBox.warning(self, "Backup Error", f"Database file '{db_path}' could not be located.") + return + + save_path, _ = QFileDialog.getSaveFileName( + self, + "Save Database Backup", + os.path.expanduser("~/Desktop/spanish_app_backup.db"), + "SQLite Database (*.db *.sqlite);;All Files (*)" + ) + + if save_path: + try: + shutil.copy2(db_path, save_path) + QMessageBox.information( + self, + "Backup Complete", + f"Successfully created a backup copy of your database at:\n{save_path}" + ) + except Exception as e: + QMessageBox.critical(self, "Backup Failed", f"Could not create database backup:\n{str(e)}") + + @pyqtSlot() + def show_help_dialog(self): + """Displays user guide and usage instructions.""" + instructions_text = ( + "

Spanish Voice Trainer - Quick Start Guide

" + "
    " + "
  • Database Sandbox: Add, edit, sort, or tag your English/Spanish phrase translations. " + "Sort order dictates sequence in flashcards and exports.
  • " + "
  • Flashcard Review: Practice interactive flashcards. Click Flip Card to see and automatically hear " + "the Spanish phrase. Click Next Card to advance and automatically hear the English prompt.
  • " + "
  • Filter Cards: Use the top filter fields (Context or Tags) to isolate specific review topics or decks.
  • " + "
  • Generate Deck: Click Generate Deck to compile your active phrases into a `.apkg` file ready for Anki import.
  • " + "
  • Configuration Settings: Adjust default export folders, speech speed rate, and Anki deck hierarchy settings.
  • " + "
" + ) + QMessageBox.information(self, "Instructions & Help", instructions_text) + + # --- Standard Application Signal & Cache Logic --- + def refresh_settings_cache(self): """Loads all database settings into an easy-to-read dictionary.""" self.app_settings = database.load_all_settings() @@ -97,7 +214,7 @@ class MainWindow(QMainWindow): records = database.get_all_translations_explicit() if not records: - QMessageBox.warning(self, "Generation Failed", "No phrases available to construct a training video playlist loops.") + QMessageBox.warning(self, "Generation Failed", "No phrases available to construct training video playlist loops.") return # UI updates can block execution loops, so we notify before processing @@ -121,6 +238,10 @@ class MainWindow(QMainWindow): if __name__ == "__main__": app = QApplication(sys.argv) + # Explicitly set application identity for macOS menu bar and dock integration + app.setApplicationName("Spanish Voice Trainer") + app.setApplicationDisplayName("Spanish Voice Trainer") + # Modern clean styling choices for desktop applications app.setStyle('Fusion') diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 94111a9..0000000 --- a/requirements.txt +++ /dev/null @@ -1,138 +0,0 @@ -accelerate==1.14.0 -aiohappyeyeballs==2.6.2 -aiohttp==3.14.0 -aiosignal==1.4.0 -annotated-doc==0.0.4 -annotated-types==0.7.0 -antlr4-python3-runtime==4.9.3 -anyio==4.13.0 -attrs==26.1.0 -audioop-lts==0.2.2 -audioread==3.1.0 -beautifulsoup4==4.15.0 -cached-property==2.0.1 -certifi==2026.5.20 -cffi==2.0.0 -charset-normalizer==3.4.7 -chevron==0.14.0 -click==8.4.1 -colorlog==6.10.1 -decorator==5.3.1 -defusedxml==0.7.1 -dill==0.4.1 -docling==2.102.1 -docling-core==2.82.0 -docling-ibm-models==3.13.3 -docling-parse==6.2.0 -docling-slim==2.102.1 -edge-tts==7.2.8 -et-xmlfile==2.0.0 -faker==40.23.0 -fastdtw==0.3.4 -filelock==3.29.3 -filetype==1.2.0 -frozendict==2.4.7 -frozenlist==1.8.0 -fsspec==2026.4.0 -genanki==0.13.1 -h11==0.16.0 -hf-xet==1.5.1 -httpcore==1.0.9 -httpx==0.28.1 -huggingface-hub==1.19.0 -idna==3.18 -jinja2==3.1.6 -joblib==1.5.3 -jsonlines==4.0.0 -jsonref==1.1.0 -jsonschema==4.26.0 -jsonschema-specifications==2025.9.1 -latex2mathml==3.81.0 -lazy-loader==0.5 -librosa==0.11.0 -llvmlite==0.47.0 -lxml==6.1.1 -mail-parser==4.4.0 -markdown-it-py==4.2.0 -marko==2.2.3 -markupsafe==3.0.3 -mdurl==0.1.2 -mpire==2.10.2 -mpmath==1.3.0 -msgpack==1.1.2 -multidict==6.7.1 -multiprocess==0.70.19 -narwhals==2.22.1 -networkx==3.6.1 -numba==0.65.1 -numpy==2.4.6 -omegaconf==2.3.1 -opencv-python==4.13.0.92 -openpyxl==3.1.5 -packaging==26.2 -pandas==3.0.3 -pillow==12.2.0 -platformdirs==4.10.0 -pluggy==1.6.0 -polyfactory==3.3.0 -pooch==1.9.0 -propcache==0.5.2 -psutil==7.2.2 -pyclipper==1.4.0 -pycparser==3.0 -pydantic==2.13.4 -pydantic-core==2.46.4 -pydantic-settings==2.14.1 -pygments==2.20.0 -pylatexenc==2.10 -pypdfium2==5.9.0 -pyqt6==6.11.0 -pyqt6-qt6==6.11.1 -pyqt6-sip==13.11.1 -python-dateutil==2.9.0.post0 -python-docx==1.2.0 -python-dotenv==1.2.2 -python-pptx==1.0.2 -pyyaml==6.0.3 -rapidocr==3.8.3 -referencing==0.37.0 -regex==2026.5.9 -requests==2.34.2 -rich==15.0.0 -rpds-py==2026.5.1 -rtree==1.4.1 -safetensors==0.8.0 -scikit-learn==1.9.0 -scipy==1.17.1 -semchunk==3.2.5 -setuptools==81.0.0 -shapely==2.1.2 -shellingham==1.5.4 -six==1.17.0 -sounddevice==0.5.5 -soundfile==0.14.0 -soupsieve==2.8.4 -soxr==1.1.0 -standard-aifc==3.13.0 -standard-chunk==3.13.0 -standard-sunau==3.13.0 -sympy==1.14.0 -tabulate==0.10.0 -threadpoolctl==3.6.0 -tokenizers==0.22.2 -torch==2.12.0 -torchvision==0.27.0 -tqdm==4.68.2 -transformers==5.8.1 -tree-sitter==0.25.2 -tree-sitter-c==0.24.2 -tree-sitter-javascript==0.25.0 -tree-sitter-python==0.25.0 -tree-sitter-typescript==0.23.2 -typer==0.21.2 -typing-extensions==4.15.0 -typing-inspection==0.4.2 -urllib3==2.7.0 -websockets==16.0 -xlsxwriter==3.2.9 -yarl==1.24.2 diff --git a/tabs/review_tab.py b/tabs/review_tab.py index 208ff9f..a52d054 100644 --- a/tabs/review_tab.py +++ b/tabs/review_tab.py @@ -4,7 +4,6 @@ import re import subprocess import tempfile import threading -import asyncio from datetime import datetime from PyQt6.QtWidgets import ( QWidget, QVBoxLayout, QHBoxLayout, QLabel, @@ -12,10 +11,10 @@ from PyQt6.QtWidgets import ( QHeaderView, QFormLayout, QMessageBox, QFrame, QStackedWidget ) from PyQt6.QtCore import Qt, pyqtSlot -import edge_tts import database import anki_exporter -from tts_utils import parse_text_for_edgetts, get_configured_tts_rate +from tts_utils import parse_text_for_edgetts +from kokoro_utils import generate_local_speech class ReviewTab(QWidget): def __init__(self, parent=None): @@ -277,99 +276,82 @@ class ReviewTab(QWidget): # Automatically play English neural audio on advancing to next card self.play_card_audio() - def _async_edge_speech_worker(self, text, voice, rate_modifier): - """Background thread worker to render neural speech with terminal debug logging.""" - async def stream_audio(): - temp_file = os.path.join(tempfile.gettempdir(), "review_card_audio.mp3") - - # Clean up old file if present - if os.path.exists(temp_file): - try: - os.remove(temp_file) - except Exception: - pass - - try: - print(f"[TTS Debug] Generating TTS -> Voice: {voice} | Rate: {rate_modifier} | Text: '{text}'") - communicate = edge_tts.Communicate(text=text, voice=voice, rate=rate_modifier) - await communicate.save(temp_file) - - if os.path.exists(temp_file) and os.path.getsize(temp_file) > 0: - print(f"[TTS Debug] Audio ready ({os.path.getsize(temp_file)} bytes). Playing via afplay...") - result = subprocess.run(["afplay", temp_file], capture_output=True, text=True) - if result.returncode != 0: - print(f"[TTS Debug] afplay failed: {result.stderr}") - else: - print("[TTS Debug] Playback finished successfully.") - else: - print("[TTS Debug] Error: Audio file was not created or is 0 bytes.") - except Exception as e: - print(f"[TTS Debug] Exception during speech synthesis: {e}") - - # Explicitly set up and run a clean event loop for this thread + def _local_kokoro_speech_worker(self, text, voice_name, speed_multiplier): + """Background thread worker to render local neural speech via Kokoro without network calls.""" try: - loop = asyncio.new_event_loop() - asyncio.set_event_loop(loop) - loop.run_until_complete(stream_audio()) - loop.close() + print(f"[Kokoro Debug] Generating local TTS -> Voice: {voice_name} | Speed: {speed_multiplier} | Text: '{text}'") + temp_file = generate_local_speech(text, voice_name=voice_name, speed=speed_multiplier) + + if os.path.exists(temp_file) and os.path.getsize(temp_file) > 0: + print(f"[Kokoro Debug] Audio ready. Playing via afplay...") + result = subprocess.run(["afplay", temp_file], capture_output=True, text=True) + if result.returncode != 0: + print(f"[Kokoro Debug] afplay failed: {result.stderr}") + else: + print("[Kokoro Debug] Playback finished successfully.") + else: + print("[Kokoro Debug] Error: Audio file was not created or is 0 bytes.") except Exception as e: - print(f"[TTS Debug] Event loop error: {e}") + print(f"[Kokoro Debug] Exception during local speech synthesis: {e}") @pyqtSlot() def play_card_audio(self): - """Auditions neural edge-tts voice based on active flashcard side.""" + """Triggers local Kokoro neural voice generation based on active flashcard side.""" if not (0 <= self.current_index < len(self.filtered_review_pool)): return record = self.filtered_review_pool[self.current_index] settings = database.load_all_settings() or {} - rate_string = get_configured_tts_rate(settings) + + # Load playback speed setting from database cache (default to 1.0) + try: + speed_multiplier = float(settings.get("tts_playback_speed", 1.0)) + except (TypeError, ValueError): + speed_multiplier = 1.0 if not self.is_flipped: raw_text = record.get("en_text", "") spoken_text = parse_text_for_edgetts(raw_text) - voice = "en-US-EmmaNeural" + #voice = "af_sarah" # English voice reference in Kokoro + #voice = "af_heart" + voice = "af_bella" # Default English voice for testing else: raw_text = record.get("es_text", "") spoken_text = parse_text_for_edgetts(raw_text) is_male = (record.get("gender") == "Male") - voice = "es-ES-AlvaroNeural" if is_male else "es-ES-ElviraNeural" + # Kokoro Spanish voices: 'ef_dora' (female) / 'em_alex' (male) + voice = "em_alex" if is_male else "ef_dora" - # Respect flags or empty entries if not spoken_text.strip(): - print("[TTS Debug] Skipped: Parsed text is empty or muted via sound-off tag.") + print("[Kokoro Debug] Skipped: Parsed text is empty.") return threading.Thread( - target=self._async_edge_speech_worker, - args=(spoken_text, voice, rate_string), + target=self._local_kokoro_speech_worker, + args=(spoken_text, voice, speed_multiplier), daemon=True ).start() @pyqtSlot() def generate_deck_action(self): """Generates a specialized .apkg Anki deck matching active filter parameters, - prepending yyyy-mm-dd-hhmm timestamp and matching Sub-Deck-Namespace-Hierarchy without brackets/parentheses.""" + prepressing yyyy-mm-dd-hhmm timestamp and matching Sub-Deck-Namespace-Hierarchy without brackets/parentheses.""" if not self.filtered_review_pool: QMessageBox.warning(self, "Export Aborted", "The current matching review deck queue is empty. Cannot compile an empty deck.") return try: - # Load active settings dictionary directly from database configurations settings = database.load_all_settings() or {} - # Extract configurations targeting exact database schema names found in settings target_dir = settings.get("anki_export_directory") root_deck_name = settings.get("anki_root_deck_name") sub_deck_hierarchy = settings.get("anki_sub_deck_name") - # Fallback handling to verify directories exist safely if not target_dir or not os.path.isdir(str(target_dir)): target_dir = os.path.expanduser("~/Desktop") else: target_dir = str(target_dir) - # --- Compile Full Namespace Tree Path --- deck_tree_parts = [] if root_deck_name and str(root_deck_name).strip(): @@ -381,23 +363,17 @@ class ReviewTab(QWidget): if not deck_tree_parts: deck_tree_parts.append("DefaultDeck") - # Join parts using Anki double-colon syntax (::) for internal Anki hierarchy full_deck_namespace = "::".join(deck_tree_parts) - # --- Format Timestamp and Clean Filename --- - # Format: YYYY-MM-DD-HHMM timestamp = datetime.now().strftime("%Y-%m-%d-%H%M") - # Explicitly strip out parentheses/brackets before regex normalization clean_namespace = full_deck_namespace.replace('(', '').replace(')', '').replace('[', '').replace(']', '') clean_namespace = re.sub(r'[^a-zA-Z0-9]', '-', clean_namespace) clean_namespace = re.sub(r'-+', '-', clean_namespace).strip('-') - # Complete output filename pattern: yyyy-mm-dd-hhmm-Sub-Deck-Namespace-Hierarchy.apkg filename = f"{timestamp}-{clean_namespace}.apkg" file_path = os.path.join(target_dir, filename) - # Execute actual compilation algorithm pipeline mapping filtered records cleanly anki_exporter.compile_anki_package(self.filtered_review_pool, file_path, full_deck_namespace) QMessageBox.information( diff --git a/tabs/sandbox_tab.py b/tabs/sandbox_tab.py index 5809f7e..9ee00cc 100644 --- a/tabs/sandbox_tab.py +++ b/tabs/sandbox_tab.py @@ -3,7 +3,6 @@ import subprocess import tempfile import os import threading -import asyncio from PyQt6.QtWidgets import ( QWidget, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, QPushButton, QTableWidget, QTableWidgetItem, @@ -11,9 +10,9 @@ from PyQt6.QtWidgets import ( QRadioButton, QButtonGroup, QSpinBox ) from PyQt6.QtCore import pyqtSignal, pyqtSlot, Qt -import edge_tts import database -from tts_utils import parse_text_for_edgetts, get_configured_tts_rate +from tts_utils import parse_text_for_edgetts +from kokoro_utils import generate_local_speech class TextEditorDialog(QDialog): @@ -120,7 +119,7 @@ class SandboxTab(QWidget): self.txt_tags.setStyleSheet("padding: 6px; font-size: 14px;") self.txt_tags.textChanged.connect(self.apply_live_grid_filter) - # --- Sort Order Field (Added after Tags) --- + # --- Sort Order Field --- self.spn_sort_order = QSpinBox() self.spn_sort_order.setRange(0, 999999) self.spn_sort_order.setValue(0) @@ -367,19 +366,20 @@ class SandboxTab(QWidget): self.table.setItem(visible_row_idx, 6, QTableWidgetItem(r.get("gender", "Female"))) visible_row_idx += 1 - def _async_edge_speech_worker(self, text, voice, rate_modifier): - """Background thread worker to download neural audio and play it without freezing the UI.""" - async def stream_audio(): - temp_file = os.path.join(tempfile.gettempdir(), "sandbox_audition.mp3") - try: - communicate = edge_tts.Communicate(text=text, voice=voice, rate=rate_modifier) - await communicate.save(temp_file) - if os.path.exists(temp_file): - subprocess.run(["afplay", temp_file]) - except Exception as e: - print(f"Sandbox Audition Error: {e}") - - asyncio.run(stream_audio()) + def _local_kokoro_speech_worker(self, text, voice_name, speed_multiplier): + """Background thread worker to render local neural speech via Kokoro without network calls.""" + try: + print(f"[Kokoro Debug] Sandbox Audition -> Voice: {voice_name} | Speed: {speed_multiplier} | Text: '{text}'") + temp_file = generate_local_speech(text, voice_name=voice_name, speed=speed_multiplier) + + if os.path.exists(temp_file) and os.path.getsize(temp_file) > 0: + result = subprocess.run(["afplay", temp_file], capture_output=True, text=True) + if result.returncode != 0: + print(f"[Kokoro Debug] afplay failed: {result.stderr}") + else: + print("[Kokoro Debug] Error: Audio file was not created or is 0 bytes.") + except Exception as e: + print(f"Sandbox Audition Error: {e}") @pyqtSlot() def audition_english(self): @@ -390,11 +390,14 @@ class SandboxTab(QWidget): return settings = database.load_all_settings() or {} - rate_string = get_configured_tts_rate(settings) + try: + speed_multiplier = float(settings.get("tts_playback_speed", 1.0)) + except (TypeError, ValueError): + speed_multiplier = 1.0 threading.Thread( - target=self._async_edge_speech_worker, - args=(spoken_text, "en-US-EmmaNeural", rate_string), + target=self._local_kokoro_speech_worker, + args=(spoken_text, "af_bella", speed_multiplier), daemon=True ).start() @@ -406,12 +409,15 @@ class SandboxTab(QWidget): if not spoken_text.strip(): return - voice = "es-ES-AlvaroNeural" if self.rb_male.isChecked() else "es-ES-ElviraNeural" + voice = "em_alex" if self.rb_male.isChecked() else "ef_dora" settings = database.load_all_settings() or {} - rate_string = get_configured_tts_rate(settings) + try: + speed_multiplier = float(settings.get("tts_playback_speed", 1.0)) + except (TypeError, ValueError): + speed_multiplier = 1.0 threading.Thread( - target=self._async_edge_speech_worker, - args=(spoken_text, voice, rate_string), + target=self._local_kokoro_speech_worker, + args=(spoken_text, voice, speed_multiplier), daemon=True ).start() \ No newline at end of file diff --git a/test_dual.py b/test-scripts/test_dual.py similarity index 100% rename from test_dual.py rename to test-scripts/test_dual.py diff --git a/test_tts.py b/test-scripts/test_tts.py similarity index 100% rename from test_tts.py rename to test-scripts/test_tts.py diff --git a/test-scripts/test_voices.py b/test-scripts/test_voices.py new file mode 100644 index 0000000..d53bfce --- /dev/null +++ b/test-scripts/test_voices.py @@ -0,0 +1,29 @@ +# test_voices.py +import soundfile as sf +from kokoro_onnx import Kokoro + +kokoro = Kokoro("kokoro-v1.0.onnx", "voices-v1.0.bin") + +# Test phrases +#english_text = "Welcome to the Spanish voice trainer. Let's practice key phrases together." +#spanish_text = "Bienvenido al entrenador de voz en español. Practiquemos frases clave juntos." +english_text = "surname" +spanish_text = "apellido" + + +# Voices to test (English and Spanish presets) +voices_to_test = [ + ("af_bella", "en-us", english_text), + ("af_nicole", "en-us", english_text), + ("af_sky", "en-us", english_text), + ("ef_dora", "es", spanish_text), + ("em_alex", "es", spanish_text), +] + +for voice, lang, text in voices_to_test: + print(f"Generating sample for {voice} ({lang})...") + samples, sample_rate = kokoro.create(text, voice=voice, speed=1.0, lang=lang) + filename = f"sample_{voice}.wav" + sf.write(filename, samples, sample_rate) + +print("Done! You can play sample_af_bella.wav, sample_ef_dora.wav, etc. using afplay.") \ No newline at end of file diff --git a/tree.txt b/tree.txt deleted file mode 100644 index 62b2776..0000000 --- a/tree.txt +++ /dev/null @@ -1,981 +0,0 @@ -. -├── LICENSE -├── README.md -├── README.pdf -├── Santiago_cathedral_2021_Sunset.jpg -├── __pycache__ -│   ├── anki_exporter.cpython-313.pyc -│   ├── database.cpython-313.pyc -│   ├── tts_utils.cpython-313.pyc -│   └── video_generator.cpython-313.pyc -├── anki_exporter.py -├── app.icns -├── app_icon.iconset -│   ├── icon_128x128.png -│   ├── icon_128x128@2x.png -│   ├── icon_16x16.png -│   ├── icon_16x16@2x.png -│   ├── icon_256x256.png -│   ├── icon_256x256@2x.png -│   ├── icon_32x32.png -│   ├── icon_32x32@2x.png -│   ├── icon_512x512.png -│   └── icon_512x512@2x.png -├── aula_int_plus_1_glos_en_alfa.pdf -├── base_icon.png -├── build -│   └── main -│   ├── Analysis-00.toc -│   ├── BUNDLE-00.toc -│   ├── COLLECT-00.toc -│   ├── EXE-00.toc -│   ├── PKG-00.toc -│   ├── PYZ-00.pyz -│   ├── PYZ-00.toc -│   ├── base_library.zip -│   ├── localpycs -│   │   ├── pyimod01_archive.pyc -│   │   ├── pyimod02_importers.pyc -│   │   ├── pyimod03_ctypes.pyc -│   │   └── struct.pyc -│   ├── main -│   ├── main.pkg -│   ├── warn-main.txt -│   └── xref-main.html -├── core -│   ├── __init__.py -│   ├── __pycache__ -│   │   ├── __init__.cpython-313.pyc -│   │   ├── asset_generator.cpython-313.pyc -│   │   ├── bulk_importer.cpython-313.pyc -│   │   ├── clean_glossary.cpython-313.pyc -│   │   └── phrase_manager.cpython-313.pyc -│   ├── asset_generator.py -│   ├── audio_engine.py -│   ├── bulk_importer.py -│   ├── clean_glossary.py -│   └── phrase_manager.py -├── database.py -├── database_legacy -│   ├── __init__.py -│   ├── __pycache__ -│   │   ├── __init__.cpython-313.pyc -│   │   └── connection.cpython-313.pyc -│   ├── connection.py -│   ├── trainer_backup_20260618_220043.db -│   └── trainer_backup_20260618_224811.db -├── dist -│   ├── main -│   │   ├── _internal -│   │   │   ├── 81d243bd2c585b0f4821__mypyc.cpython-313-darwin.so -│   │   │   ├── PIL -│   │   │   │   ├── _avif.cpython-313-darwin.so -│   │   │   │   ├── _imaging.cpython-313-darwin.so -│   │   │   │   ├── _imagingcms.cpython-313-darwin.so -│   │   │   │   ├── _imagingft.cpython-313-darwin.so -│   │   │   │   ├── _imagingmath.cpython-313-darwin.so -│   │   │   │   ├── _imagingtk.cpython-313-darwin.so -│   │   │   │   └── _webp.cpython-313-darwin.so -│   │   │   ├── PyQt6 -│   │   │   │   ├── Qt6 -│   │   │   │   │   ├── lib -│   │   │   │   │   │   ├── QtCore.framework -│   │   │   │   │   │   │   ├── QtCore -> Versions/Current/QtCore -│   │   │   │   │   │   │   ├── Resources -> Versions/Current/Resources -│   │   │   │   │   │   │   └── Versions -│   │   │   │   │   │   │   ├── A -│   │   │   │   │   │   │   │   ├── QtCore -│   │   │   │   │   │   │   │   └── Resources -│   │   │   │   │   │   │   │   └── Info.plist -│   │   │   │   │   │   │   └── Current -> A -│   │   │   │   │   │   ├── QtDBus.framework -│   │   │   │   │   │   │   ├── QtDBus -> Versions/Current/QtDBus -│   │   │   │   │   │   │   ├── Resources -> Versions/Current/Resources -│   │   │   │   │   │   │   └── Versions -│   │   │   │   │   │   │   ├── A -│   │   │   │   │   │   │   │   ├── QtDBus -│   │   │   │   │   │   │   │   └── Resources -│   │   │   │   │   │   │   │   └── Info.plist -│   │   │   │   │   │   │   └── Current -> A -│   │   │   │   │   │   ├── QtGui.framework -│   │   │   │   │   │   │   ├── QtGui -> Versions/Current/QtGui -│   │   │   │   │   │   │   ├── Resources -> Versions/Current/Resources -│   │   │   │   │   │   │   └── Versions -│   │   │   │   │   │   │   ├── A -│   │   │   │   │   │   │   │   ├── QtGui -│   │   │   │   │   │   │   │   └── Resources -│   │   │   │   │   │   │   │   └── Info.plist -│   │   │   │   │   │   │   └── Current -> A -│   │   │   │   │   │   ├── QtNetwork.framework -│   │   │   │   │   │   │   ├── QtNetwork -> Versions/Current/QtNetwork -│   │   │   │   │   │   │   ├── Resources -> Versions/Current/Resources -│   │   │   │   │   │   │   └── Versions -│   │   │   │   │   │   │   ├── A -│   │   │   │   │   │   │   │   ├── QtNetwork -│   │   │   │   │   │   │   │   └── Resources -│   │   │   │   │   │   │   │   └── Info.plist -│   │   │   │   │   │   │   └── Current -> A -│   │   │   │   │   │   ├── QtPdf.framework -│   │   │   │   │   │   │   ├── QtPdf -> Versions/Current/QtPdf -│   │   │   │   │   │   │   ├── Resources -> Versions/Current/Resources -│   │   │   │   │   │   │   └── Versions -│   │   │   │   │   │   │   ├── A -│   │   │   │   │   │   │   │   ├── QtPdf -│   │   │   │   │   │   │   │   └── Resources -│   │   │   │   │   │   │   │   └── Info.plist -│   │   │   │   │   │   │   └── Current -> A -│   │   │   │   │   │   ├── QtSvg.framework -│   │   │   │   │   │   │   ├── QtSvg -> Versions/Current/QtSvg -│   │   │   │   │   │   │   ├── Resources -> Versions/Current/Resources -│   │   │   │   │   │   │   └── Versions -│   │   │   │   │   │   │   ├── A -│   │   │   │   │   │   │   │   ├── QtSvg -│   │   │   │   │   │   │   │   └── Resources -│   │   │   │   │   │   │   │   └── Info.plist -│   │   │   │   │   │   │   └── Current -> A -│   │   │   │   │   │   └── QtWidgets.framework -│   │   │   │   │   │   ├── QtWidgets -> Versions/Current/QtWidgets -│   │   │   │   │   │   ├── Resources -> Versions/Current/Resources -│   │   │   │   │   │   └── Versions -│   │   │   │   │   │   ├── A -│   │   │   │   │   │   │   ├── QtWidgets -│   │   │   │   │   │   │   └── Resources -│   │   │   │   │   │   │   └── Info.plist -│   │   │   │   │   │   └── Current -> A -│   │   │   │   │   ├── plugins -│   │   │   │   │   │   ├── generic -│   │   │   │   │   │   │   └── libqtuiotouchplugin.dylib -│   │   │   │   │   │   ├── iconengines -│   │   │   │   │   │   │   └── libqsvgicon.dylib -│   │   │   │   │   │   ├── imageformats -│   │   │   │   │   │   │   ├── libqgif.dylib -│   │   │   │   │   │   │   ├── libqicns.dylib -│   │   │   │   │   │   │   ├── libqico.dylib -│   │   │   │   │   │   │   ├── libqjpeg.dylib -│   │   │   │   │   │   │   ├── libqmacheif.dylib -│   │   │   │   │   │   │   ├── libqmacjp2.dylib -│   │   │   │   │   │   │   ├── libqpdf.dylib -│   │   │   │   │   │   │   ├── libqsvg.dylib -│   │   │   │   │   │   │   ├── libqtga.dylib -│   │   │   │   │   │   │   ├── libqtiff.dylib -│   │   │   │   │   │   │   ├── libqwbmp.dylib -│   │   │   │   │   │   │   └── libqwebp.dylib -│   │   │   │   │   │   ├── platforms -│   │   │   │   │   │   │   ├── libqcocoa.dylib -│   │   │   │   │   │   │   ├── libqminimal.dylib -│   │   │   │   │   │   │   └── libqoffscreen.dylib -│   │   │   │   │   │   └── styles -│   │   │   │   │   │   └── libqmacstyle.dylib -│   │   │   │   │   └── translations -│   │   │   │   │   ├── qt_ar.qm -│   │   │   │   │   ├── qt_bg.qm -│   │   │   │   │   ├── qt_ca.qm -│   │   │   │   │   ├── qt_cs.qm -│   │   │   │   │   ├── qt_da.qm -│   │   │   │   │   ├── qt_de.qm -│   │   │   │   │   ├── qt_en.qm -│   │   │   │   │   ├── qt_es.qm -│   │   │   │   │   ├── qt_fa.qm -│   │   │   │   │   ├── qt_fi.qm -│   │   │   │   │   ├── qt_fr.qm -│   │   │   │   │   ├── qt_gd.qm -│   │   │   │   │   ├── qt_gl.qm -│   │   │   │   │   ├── qt_he.qm -│   │   │   │   │   ├── qt_help_ar.qm -│   │   │   │   │   ├── qt_help_bg.qm -│   │   │   │   │   ├── qt_help_ca.qm -│   │   │   │   │   ├── qt_help_cs.qm -│   │   │   │   │   ├── qt_help_da.qm -│   │   │   │   │   ├── qt_help_de.qm -│   │   │   │   │   ├── qt_help_en.qm -│   │   │   │   │   ├── qt_help_es.qm -│   │   │   │   │   ├── qt_help_fr.qm -│   │   │   │   │   ├── qt_help_gl.qm -│   │   │   │   │   ├── qt_help_hr.qm -│   │   │   │   │   ├── qt_help_hu.qm -│   │   │   │   │   ├── qt_help_it.qm -│   │   │   │   │   ├── qt_help_ja.qm -│   │   │   │   │   ├── qt_help_ka.qm -│   │   │   │   │   ├── qt_help_ko.qm -│   │   │   │   │   ├── qt_help_nl.qm -│   │   │   │   │   ├── qt_help_nn.qm -│   │   │   │   │   ├── qt_help_pl.qm -│   │   │   │   │   ├── qt_help_pt_BR.qm -│   │   │   │   │   ├── qt_help_ru.qm -│   │   │   │   │   ├── qt_help_sk.qm -│   │   │   │   │   ├── qt_help_sl.qm -│   │   │   │   │   ├── qt_help_sv.qm -│   │   │   │   │   ├── qt_help_tr.qm -│   │   │   │   │   ├── qt_help_uk.qm -│   │   │   │   │   ├── qt_help_zh_CN.qm -│   │   │   │   │   ├── qt_help_zh_TW.qm -│   │   │   │   │   ├── qt_hr.qm -│   │   │   │   │   ├── qt_hu.qm -│   │   │   │   │   ├── qt_it.qm -│   │   │   │   │   ├── qt_ja.qm -│   │   │   │   │   ├── qt_ka.qm -│   │   │   │   │   ├── qt_ko.qm -│   │   │   │   │   ├── qt_lg.qm -│   │   │   │   │   ├── qt_lt.qm -│   │   │   │   │   ├── qt_lv.qm -│   │   │   │   │   ├── qt_nl.qm -│   │   │   │   │   ├── qt_nn.qm -│   │   │   │   │   ├── qt_pl.qm -│   │   │   │   │   ├── qt_pt_BR.qm -│   │   │   │   │   ├── qt_pt_PT.qm -│   │   │   │   │   ├── qt_ru.qm -│   │   │   │   │   ├── qt_sk.qm -│   │   │   │   │   ├── qt_sl.qm -│   │   │   │   │   ├── qt_sv.qm -│   │   │   │   │   ├── qt_tr.qm -│   │   │   │   │   ├── qt_uk.qm -│   │   │   │   │   ├── qt_zh_CN.qm -│   │   │   │   │   ├── qt_zh_TW.qm -│   │   │   │   │   ├── qtbase_ar.qm -│   │   │   │   │   ├── qtbase_bg.qm -│   │   │   │   │   ├── qtbase_ca.qm -│   │   │   │   │   ├── qtbase_cs.qm -│   │   │   │   │   ├── qtbase_da.qm -│   │   │   │   │   ├── qtbase_de.qm -│   │   │   │   │   ├── qtbase_en.qm -│   │   │   │   │   ├── qtbase_es.qm -│   │   │   │   │   ├── qtbase_fa.qm -│   │   │   │   │   ├── qtbase_fi.qm -│   │   │   │   │   ├── qtbase_fr.qm -│   │   │   │   │   ├── qtbase_gd.qm -│   │   │   │   │   ├── qtbase_he.qm -│   │   │   │   │   ├── qtbase_hr.qm -│   │   │   │   │   ├── qtbase_hu.qm -│   │   │   │   │   ├── qtbase_it.qm -│   │   │   │   │   ├── qtbase_ja.qm -│   │   │   │   │   ├── qtbase_ka.qm -│   │   │   │   │   ├── qtbase_ko.qm -│   │   │   │   │   ├── qtbase_lg.qm -│   │   │   │   │   ├── qtbase_lv.qm -│   │   │   │   │   ├── qtbase_nl.qm -│   │   │   │   │   ├── qtbase_nn.qm -│   │   │   │   │   ├── qtbase_pl.qm -│   │   │   │   │   ├── qtbase_pt_BR.qm -│   │   │   │   │   ├── qtbase_ru.qm -│   │   │   │   │   ├── qtbase_sk.qm -│   │   │   │   │   ├── qtbase_sv.qm -│   │   │   │   │   ├── qtbase_tr.qm -│   │   │   │   │   ├── qtbase_uk.qm -│   │   │   │   │   ├── qtbase_zh_CN.qm -│   │   │   │   │   └── qtbase_zh_TW.qm -│   │   │   │   ├── QtCore.abi3.so -│   │   │   │   ├── QtDBus.abi3.so -│   │   │   │   ├── QtGui.abi3.so -│   │   │   │   ├── QtWidgets.abi3.so -│   │   │   │   └── sip.cpython-313-darwin.so -│   │   │   ├── QtCore -> PyQt6/Qt6/lib/QtCore.framework/Versions/A/QtCore -│   │   │   ├── QtDBus -> PyQt6/Qt6/lib/QtDBus.framework/Versions/A/QtDBus -│   │   │   ├── QtGui -> PyQt6/Qt6/lib/QtGui.framework/Versions/A/QtGui -│   │   │   ├── QtNetwork -> PyQt6/Qt6/lib/QtNetwork.framework/Versions/A/QtNetwork -│   │   │   ├── QtPdf -> PyQt6/Qt6/lib/QtPdf.framework/Versions/A/QtPdf -│   │   │   ├── QtSvg -> PyQt6/Qt6/lib/QtSvg.framework/Versions/A/QtSvg -│   │   │   ├── QtWidgets -> PyQt6/Qt6/lib/QtWidgets.framework/Versions/A/QtWidgets -│   │   │   ├── aiohttp -│   │   │   │   ├── _http_parser.cpython-313-darwin.so -│   │   │   │   ├── _http_writer.cpython-313-darwin.so -│   │   │   │   └── _websocket -│   │   │   │   ├── mask.cpython-313-darwin.so -│   │   │   │   └── reader_c.cpython-313-darwin.so -│   │   │   ├── attrs-26.1.0.dist-info -│   │   │   │   ├── INSTALLER -│   │   │   │   ├── METADATA -│   │   │   │   ├── RECORD -│   │   │   │   ├── REQUESTED -│   │   │   │   ├── WHEEL -│   │   │   │   └── licenses -│   │   │   │   └── LICENSE -│   │   │   ├── base_library.zip -│   │   │   ├── certifi -│   │   │   │   ├── cacert.pem -│   │   │   │   └── py.typed -│   │   │   ├── charset_normalizer -│   │   │   │   ├── cd.cpython-313-darwin.so -│   │   │   │   └── md.cpython-313-darwin.so -│   │   │   ├── frozenlist -│   │   │   │   └── _frozenlist.cpython-313-darwin.so -│   │   │   ├── libXau.6.dylib -> PIL/.dylibs/libXau.6.dylib -│   │   │   ├── libavif.16.4.1.dylib -> PIL/.dylibs/libavif.16.4.1.dylib -│   │   │   ├── libbrotlicommon.1.2.0.dylib -> PIL/.dylibs/libbrotlicommon.1.2.0.dylib -│   │   │   ├── libbrotlidec.1.2.0.dylib -> PIL/.dylibs/libbrotlidec.1.2.0.dylib -│   │   │   ├── libfreetype.6.dylib -> PIL/.dylibs/libfreetype.6.dylib -│   │   │   ├── libharfbuzz.0.dylib -> PIL/.dylibs/libharfbuzz.0.dylib -│   │   │   ├── libjpeg.62.4.0.dylib -> PIL/.dylibs/libjpeg.62.4.0.dylib -│   │   │   ├── liblcms2.2.dylib -> PIL/.dylibs/liblcms2.2.dylib -│   │   │   ├── liblzma.5.dylib -> PIL/.dylibs/liblzma.5.dylib -│   │   │   ├── libopenjp2.2.5.4.dylib -> PIL/.dylibs/libopenjp2.2.5.4.dylib -│   │   │   ├── libpng16.16.dylib -> PIL/.dylibs/libpng16.16.dylib -│   │   │   ├── libpython3.13.dylib -│   │   │   ├── libsharpyuv.0.dylib -> PIL/.dylibs/libsharpyuv.0.dylib -│   │   │   ├── libtiff.6.dylib -> PIL/.dylibs/libtiff.6.dylib -│   │   │   ├── libwebp.7.dylib -> PIL/.dylibs/libwebp.7.dylib -│   │   │   ├── libwebpdemux.2.dylib -> PIL/.dylibs/libwebpdemux.2.dylib -│   │   │   ├── libwebpmux.3.dylib -> PIL/.dylibs/libwebpmux.3.dylib -│   │   │   ├── libxcb.1.1.0.dylib -> PIL/.dylibs/libxcb.1.1.0.dylib -│   │   │   ├── libz.1.3.1.zlib-ng.dylib -> PIL/.dylibs/libz.1.3.1.zlib-ng.dylib -│   │   │   ├── lxml -│   │   │   │   ├── _elementpath.cpython-313-darwin.so -│   │   │   │   ├── builder.cpython-313-darwin.so -│   │   │   │   ├── etree.cpython-313-darwin.so -│   │   │   │   ├── html -│   │   │   │   │   ├── _difflib.cpython-313-darwin.so -│   │   │   │   │   └── diff.cpython-313-darwin.so -│   │   │   │   ├── isoschematron -│   │   │   │   │   └── resources -│   │   │   │   │   ├── rng -│   │   │   │   │   │   └── iso-schematron.rng -│   │   │   │   │   └── xsl -│   │   │   │   │   ├── RNG2Schtrn.xsl -│   │   │   │   │   ├── XSD2Schtrn.xsl -│   │   │   │   │   └── iso-schematron-xslt1 -│   │   │   │   │   ├── iso_abstract_expand.xsl -│   │   │   │   │   ├── iso_dsdl_include.xsl -│   │   │   │   │   ├── iso_schematron_message.xsl -│   │   │   │   │   ├── iso_schematron_skeleton_for_xslt1.xsl -│   │   │   │   │   ├── iso_svrl_for_xslt1.xsl -│   │   │   │   │   └── readme.txt -│   │   │   │   ├── objectify.cpython-313-darwin.so -│   │   │   │   └── sax.cpython-313-darwin.so -│   │   │   ├── multidict -│   │   │   │   └── _multidict.cpython-313-darwin.so -│   │   │   ├── numpy -│   │   │   │   ├── _core -│   │   │   │   │   ├── _multiarray_tests.cpython-313-darwin.so -│   │   │   │   │   └── _multiarray_umath.cpython-313-darwin.so -│   │   │   │   ├── fft -│   │   │   │   │   └── _pocketfft_umath.cpython-313-darwin.so -│   │   │   │   ├── linalg -│   │   │   │   │   └── _umath_linalg.cpython-313-darwin.so -│   │   │   │   └── random -│   │   │   │   ├── _bounded_integers.cpython-313-darwin.so -│   │   │   │   ├── _common.cpython-313-darwin.so -│   │   │   │   ├── _generator.cpython-313-darwin.so -│   │   │   │   ├── _mt19937.cpython-313-darwin.so -│   │   │   │   ├── _pcg64.cpython-313-darwin.so -│   │   │   │   ├── _philox.cpython-313-darwin.so -│   │   │   │   ├── _sfc64.cpython-313-darwin.so -│   │   │   │   ├── bit_generator.cpython-313-darwin.so -│   │   │   │   └── mtrand.cpython-313-darwin.so -│   │   │   ├── numpy-2.4.6.dist-info -│   │   │   │   ├── INSTALLER -│   │   │   │   ├── METADATA -│   │   │   │   ├── RECORD -│   │   │   │   ├── REQUESTED -│   │   │   │   ├── WHEEL -│   │   │   │   ├── entry_points.txt -│   │   │   │   └── licenses -│   │   │   │   ├── LICENSE.txt -│   │   │   │   └── numpy -│   │   │   │   ├── _core -│   │   │   │   │   ├── include -│   │   │   │   │   │   └── numpy -│   │   │   │   │   │   └── libdivide -│   │   │   │   │   │   └── LICENSE.txt -│   │   │   │   │   └── src -│   │   │   │   │   ├── common -│   │   │   │   │   │   └── pythoncapi-compat -│   │   │   │   │   │   └── COPYING -│   │   │   │   │   ├── highway -│   │   │   │   │   │   └── LICENSE -│   │   │   │   │   ├── multiarray -│   │   │   │   │   │   └── dragon4_LICENSE.txt -│   │   │   │   │   ├── npysort -│   │   │   │   │   │   └── x86-simd-sort -│   │   │   │   │   │   └── LICENSE.md -│   │   │   │   │   └── umath -│   │   │   │   │   └── svml -│   │   │   │   │   └── LICENSE -│   │   │   │   ├── fft -│   │   │   │   │   └── pocketfft -│   │   │   │   │   └── LICENSE.md -│   │   │   │   ├── linalg -│   │   │   │   │   └── lapack_lite -│   │   │   │   │   └── LICENSE.txt -│   │   │   │   ├── ma -│   │   │   │   │   └── LICENSE -│   │   │   │   └── random -│   │   │   │   ├── LICENSE.md -│   │   │   │   └── src -│   │   │   │   ├── distributions -│   │   │   │   │   └── LICENSE.md -│   │   │   │   ├── mt19937 -│   │   │   │   │   └── LICENSE.md -│   │   │   │   ├── pcg64 -│   │   │   │   │   └── LICENSE.md -│   │   │   │   ├── philox -│   │   │   │   │   └── LICENSE.md -│   │   │   │   ├── sfc64 -│   │   │   │   │   └── LICENSE.md -│   │   │   │   └── splitmix64 -│   │   │   │   └── LICENSE.md -│   │   │   ├── propcache -│   │   │   │   └── _helpers_c.cpython-313-darwin.so -│   │   │   ├── psutil -│   │   │   │   └── _psutil_osx.abi3.so -│   │   │   ├── pydantic-2.13.4.dist-info -│   │   │   │   ├── INSTALLER -│   │   │   │   ├── METADATA -│   │   │   │   ├── RECORD -│   │   │   │   ├── REQUESTED -│   │   │   │   ├── WHEEL -│   │   │   │   └── licenses -│   │   │   │   └── LICENSE -│   │   │   ├── pydantic_core -│   │   │   │   └── _pydantic_core.cpython-313-darwin.so -│   │   │   ├── setuptools -│   │   │   │   └── _vendor -│   │   │   │   ├── importlib_metadata-8.7.1.dist-info -│   │   │   │   │   ├── INSTALLER -│   │   │   │   │   ├── METADATA -│   │   │   │   │   ├── RECORD -│   │   │   │   │   ├── REQUESTED -│   │   │   │   │   ├── WHEEL -│   │   │   │   │   ├── licenses -│   │   │   │   │   │   └── LICENSE -│   │   │   │   │   └── top_level.txt -│   │   │   │   └── jaraco -│   │   │   │   └── text -│   │   │   │   └── Lorem ipsum.txt -│   │   │   ├── yaml -│   │   │   │   └── _yaml.cpython-313-darwin.so -│   │   │   └── yarl -│   │   │   └── _quoting_c.cpython-313-darwin.so -│   │   └── main -│   └── main.app -│   └── Contents -│   ├── Frameworks -│   │   ├── 81d243bd2c585b0f4821__mypyc.cpython-313-darwin.so -│   │   ├── PIL -│   │   │   ├── __dot__dylibs -│   │   │   │   ├── libXau.6.dylib -│   │   │   │   ├── libavif.16.4.1.dylib -│   │   │   │   ├── libbrotlicommon.1.2.0.dylib -│   │   │   │   ├── libbrotlidec.1.2.0.dylib -│   │   │   │   ├── libfreetype.6.dylib -│   │   │   │   ├── libharfbuzz.0.dylib -│   │   │   │   ├── libjpeg.62.4.0.dylib -│   │   │   │   ├── liblcms2.2.dylib -│   │   │   │   ├── liblzma.5.dylib -│   │   │   │   ├── libopenjp2.2.5.4.dylib -│   │   │   │   ├── libpng16.16.dylib -│   │   │   │   ├── libsharpyuv.0.dylib -│   │   │   │   ├── libtiff.6.dylib -│   │   │   │   ├── libwebp.7.dylib -│   │   │   │   ├── libwebpdemux.2.dylib -│   │   │   │   ├── libwebpmux.3.dylib -│   │   │   │   ├── libxcb.1.1.0.dylib -│   │   │   │   └── libz.1.3.1.zlib-ng.dylib -│   │   │   ├── _avif.cpython-313-darwin.so -│   │   │   ├── _imaging.cpython-313-darwin.so -│   │   │   ├── _imagingcms.cpython-313-darwin.so -│   │   │   ├── _imagingft.cpython-313-darwin.so -│   │   │   ├── _imagingmath.cpython-313-darwin.so -│   │   │   ├── _imagingtk.cpython-313-darwin.so -│   │   │   └── _webp.cpython-313-darwin.so -│   │   ├── PyQt6 -│   │   │   ├── Qt6 -│   │   │   │   ├── lib -│   │   │   │   │   ├── QtCore.framework -│   │   │   │   │   │   ├── QtCore -> Versions/Current/QtCore -│   │   │   │   │   │   ├── Resources -> Versions/Current/Resources -│   │   │   │   │   │   └── Versions -│   │   │   │   │   │   ├── A -│   │   │   │   │   │   │   ├── QtCore -│   │   │   │   │   │   │   ├── Resources -│   │   │   │   │   │   │   │   └── Info.plist -│   │   │   │   │   │   │   └── _CodeSignature -│   │   │   │   │   │   │   └── CodeResources -│   │   │   │   │   │   └── Current -> A -│   │   │   │   │   ├── QtDBus.framework -│   │   │   │   │   │   ├── QtDBus -> Versions/Current/QtDBus -│   │   │   │   │   │   ├── Resources -> Versions/Current/Resources -│   │   │   │   │   │   └── Versions -│   │   │   │   │   │   ├── A -│   │   │   │   │   │   │   ├── QtDBus -│   │   │   │   │   │   │   ├── Resources -│   │   │   │   │   │   │   │   └── Info.plist -│   │   │   │   │   │   │   └── _CodeSignature -│   │   │   │   │   │   │   └── CodeResources -│   │   │   │   │   │   └── Current -> A -│   │   │   │   │   ├── QtGui.framework -│   │   │   │   │   │   ├── QtGui -> Versions/Current/QtGui -│   │   │   │   │   │   ├── Resources -> Versions/Current/Resources -│   │   │   │   │   │   └── Versions -│   │   │   │   │   │   ├── A -│   │   │   │   │   │   │   ├── QtGui -│   │   │   │   │   │   │   ├── Resources -│   │   │   │   │   │   │   │   └── Info.plist -│   │   │   │   │   │   │   └── _CodeSignature -│   │   │   │   │   │   │   └── CodeResources -│   │   │   │   │   │   └── Current -> A -│   │   │   │   │   ├── QtNetwork.framework -│   │   │   │   │   │   ├── QtNetwork -> Versions/Current/QtNetwork -│   │   │   │   │   │   ├── Resources -> Versions/Current/Resources -│   │   │   │   │   │   └── Versions -│   │   │   │   │   │   ├── A -│   │   │   │   │   │   │   ├── QtNetwork -│   │   │   │   │   │   │   ├── Resources -│   │   │   │   │   │   │   │   └── Info.plist -│   │   │   │   │   │   │   └── _CodeSignature -│   │   │   │   │   │   │   └── CodeResources -│   │   │   │   │   │   └── Current -> A -│   │   │   │   │   ├── QtPdf.framework -│   │   │   │   │   │   ├── QtPdf -> Versions/Current/QtPdf -│   │   │   │   │   │   ├── Resources -> Versions/Current/Resources -│   │   │   │   │   │   └── Versions -│   │   │   │   │   │   ├── A -│   │   │   │   │   │   │   ├── QtPdf -│   │   │   │   │   │   │   ├── Resources -│   │   │   │   │   │   │   │   └── Info.plist -│   │   │   │   │   │   │   └── _CodeSignature -│   │   │   │   │   │   │   └── CodeResources -│   │   │   │   │   │   └── Current -> A -│   │   │   │   │   ├── QtSvg.framework -│   │   │   │   │   │   ├── QtSvg -> Versions/Current/QtSvg -│   │   │   │   │   │   ├── Resources -> Versions/Current/Resources -│   │   │   │   │   │   └── Versions -│   │   │   │   │   │   ├── A -│   │   │   │   │   │   │   ├── QtSvg -│   │   │   │   │   │   │   ├── Resources -│   │   │   │   │   │   │   │   └── Info.plist -│   │   │   │   │   │   │   └── _CodeSignature -│   │   │   │   │   │   │   └── CodeResources -│   │   │   │   │   │   └── Current -> A -│   │   │   │   │   └── QtWidgets.framework -│   │   │   │   │   ├── QtWidgets -> Versions/Current/QtWidgets -│   │   │   │   │   ├── Resources -> Versions/Current/Resources -│   │   │   │   │   └── Versions -│   │   │   │   │   ├── A -│   │   │   │   │   │   ├── QtWidgets -│   │   │   │   │   │   ├── Resources -│   │   │   │   │   │   │   └── Info.plist -│   │   │   │   │   │   └── _CodeSignature -│   │   │   │   │   │   └── CodeResources -│   │   │   │   │   └── Current -> A -│   │   │   │   ├── plugins -│   │   │   │   │   ├── generic -│   │   │   │   │   │   └── libqtuiotouchplugin.dylib -│   │   │   │   │   ├── iconengines -│   │   │   │   │   │   └── libqsvgicon.dylib -│   │   │   │   │   ├── imageformats -│   │   │   │   │   │   ├── libqgif.dylib -│   │   │   │   │   │   ├── libqicns.dylib -│   │   │   │   │   │   ├── libqico.dylib -│   │   │   │   │   │   ├── libqjpeg.dylib -│   │   │   │   │   │   ├── libqmacheif.dylib -│   │   │   │   │   │   ├── libqmacjp2.dylib -│   │   │   │   │   │   ├── libqpdf.dylib -│   │   │   │   │   │   ├── libqsvg.dylib -│   │   │   │   │   │   ├── libqtga.dylib -│   │   │   │   │   │   ├── libqtiff.dylib -│   │   │   │   │   │   ├── libqwbmp.dylib -│   │   │   │   │   │   └── libqwebp.dylib -│   │   │   │   │   ├── platforms -│   │   │   │   │   │   ├── libqcocoa.dylib -│   │   │   │   │   │   ├── libqminimal.dylib -│   │   │   │   │   │   └── libqoffscreen.dylib -│   │   │   │   │   └── styles -│   │   │   │   │   └── libqmacstyle.dylib -│   │   │   │   └── translations -> ../../../Resources/PyQt6/Qt6/translations -│   │   │   ├── QtCore.abi3.so -│   │   │   ├── QtDBus.abi3.so -│   │   │   ├── QtGui.abi3.so -│   │   │   ├── QtWidgets.abi3.so -│   │   │   └── sip.cpython-313-darwin.so -│   │   ├── QtCore -> PyQt6/Qt6/lib/QtCore.framework/Versions/A/QtCore -│   │   ├── QtDBus -> PyQt6/Qt6/lib/QtDBus.framework/Versions/A/QtDBus -│   │   ├── QtGui -> PyQt6/Qt6/lib/QtGui.framework/Versions/A/QtGui -│   │   ├── QtNetwork -> PyQt6/Qt6/lib/QtNetwork.framework/Versions/A/QtNetwork -│   │   ├── QtPdf -> PyQt6/Qt6/lib/QtPdf.framework/Versions/A/QtPdf -│   │   ├── QtSvg -> PyQt6/Qt6/lib/QtSvg.framework/Versions/A/QtSvg -│   │   ├── QtWidgets -> PyQt6/Qt6/lib/QtWidgets.framework/Versions/A/QtWidgets -│   │   ├── aiohttp -│   │   │   ├── _http_parser.cpython-313-darwin.so -│   │   │   ├── _http_writer.cpython-313-darwin.so -│   │   │   └── _websocket -│   │   │   ├── mask.cpython-313-darwin.so -│   │   │   └── reader_c.cpython-313-darwin.so -│   │   ├── attrs-26.1.0.dist-info -> ../Resources/attrs-26.1.0.dist-info -│   │   ├── base_library.zip -> ../Resources/base_library.zip -│   │   ├── certifi -> ../Resources/certifi -│   │   ├── charset_normalizer -│   │   │   ├── cd.cpython-313-darwin.so -│   │   │   └── md.cpython-313-darwin.so -│   │   ├── frozenlist -│   │   │   └── _frozenlist.cpython-313-darwin.so -│   │   ├── libXau.6.dylib -> PIL/.dylibs/libXau.6.dylib -│   │   ├── libavif.16.4.1.dylib -> PIL/.dylibs/libavif.16.4.1.dylib -│   │   ├── libbrotlicommon.1.2.0.dylib -> PIL/.dylibs/libbrotlicommon.1.2.0.dylib -│   │   ├── libbrotlidec.1.2.0.dylib -> PIL/.dylibs/libbrotlidec.1.2.0.dylib -│   │   ├── libfreetype.6.dylib -> PIL/.dylibs/libfreetype.6.dylib -│   │   ├── libharfbuzz.0.dylib -> PIL/.dylibs/libharfbuzz.0.dylib -│   │   ├── libjpeg.62.4.0.dylib -> PIL/.dylibs/libjpeg.62.4.0.dylib -│   │   ├── liblcms2.2.dylib -> PIL/.dylibs/liblcms2.2.dylib -│   │   ├── liblzma.5.dylib -> PIL/.dylibs/liblzma.5.dylib -│   │   ├── libopenjp2.2.5.4.dylib -> PIL/.dylibs/libopenjp2.2.5.4.dylib -│   │   ├── libpng16.16.dylib -> PIL/.dylibs/libpng16.16.dylib -│   │   ├── libpython3.13.dylib -│   │   ├── libsharpyuv.0.dylib -> PIL/.dylibs/libsharpyuv.0.dylib -│   │   ├── libtiff.6.dylib -> PIL/.dylibs/libtiff.6.dylib -│   │   ├── libwebp.7.dylib -> PIL/.dylibs/libwebp.7.dylib -│   │   ├── libwebpdemux.2.dylib -> PIL/.dylibs/libwebpdemux.2.dylib -│   │   ├── libwebpmux.3.dylib -> PIL/.dylibs/libwebpmux.3.dylib -│   │   ├── libxcb.1.1.0.dylib -> PIL/.dylibs/libxcb.1.1.0.dylib -│   │   ├── libz.1.3.1.zlib-ng.dylib -> PIL/.dylibs/libz.1.3.1.zlib-ng.dylib -│   │   ├── lxml -│   │   │   ├── _elementpath.cpython-313-darwin.so -│   │   │   ├── builder.cpython-313-darwin.so -│   │   │   ├── etree.cpython-313-darwin.so -│   │   │   ├── html -│   │   │   │   ├── _difflib.cpython-313-darwin.so -│   │   │   │   └── diff.cpython-313-darwin.so -│   │   │   ├── isoschematron -> ../../Resources/lxml/isoschematron -│   │   │   ├── objectify.cpython-313-darwin.so -│   │   │   └── sax.cpython-313-darwin.so -│   │   ├── multidict -│   │   │   └── _multidict.cpython-313-darwin.so -│   │   ├── numpy -│   │   │   ├── _core -│   │   │   │   ├── _multiarray_tests.cpython-313-darwin.so -│   │   │   │   └── _multiarray_umath.cpython-313-darwin.so -│   │   │   ├── fft -│   │   │   │   └── _pocketfft_umath.cpython-313-darwin.so -│   │   │   ├── linalg -│   │   │   │   └── _umath_linalg.cpython-313-darwin.so -│   │   │   └── random -│   │   │   ├── _bounded_integers.cpython-313-darwin.so -│   │   │   ├── _common.cpython-313-darwin.so -│   │   │   ├── _generator.cpython-313-darwin.so -│   │   │   ├── _mt19937.cpython-313-darwin.so -│   │   │   ├── _pcg64.cpython-313-darwin.so -│   │   │   ├── _philox.cpython-313-darwin.so -│   │   │   ├── _sfc64.cpython-313-darwin.so -│   │   │   ├── bit_generator.cpython-313-darwin.so -│   │   │   └── mtrand.cpython-313-darwin.so -│   │   ├── numpy-2.4.6.dist-info -> ../Resources/numpy-2.4.6.dist-info -│   │   ├── propcache -│   │   │   └── _helpers_c.cpython-313-darwin.so -│   │   ├── psutil -│   │   │   └── _psutil_osx.abi3.so -│   │   ├── pydantic-2.13.4.dist-info -> ../Resources/pydantic-2.13.4.dist-info -│   │   ├── pydantic_core -│   │   │   └── _pydantic_core.cpython-313-darwin.so -│   │   ├── setuptools -> ../Resources/setuptools -│   │   ├── yaml -│   │   │   └── _yaml.cpython-313-darwin.so -│   │   └── yarl -│   │   └── _quoting_c.cpython-313-darwin.so -│   ├── Info.plist -│   ├── MacOS -│   │   └── main -│   ├── Resources -│   │   ├── 81d243bd2c585b0f4821__mypyc.cpython-313-darwin.so -> ../Frameworks/81d243bd2c585b0f4821__mypyc.cpython-313-darwin.so -│   │   ├── PIL -> ../Frameworks/PIL -│   │   ├── PyQt6 -│   │   │   ├── Qt6 -│   │   │   │   ├── lib -> ../../../Frameworks/PyQt6/Qt6/lib -│   │   │   │   ├── plugins -> ../../../Frameworks/PyQt6/Qt6/plugins -│   │   │   │   └── translations -│   │   │   │   ├── qt_ar.qm -│   │   │   │   ├── qt_bg.qm -│   │   │   │   ├── qt_ca.qm -│   │   │   │   ├── qt_cs.qm -│   │   │   │   ├── qt_da.qm -│   │   │   │   ├── qt_de.qm -│   │   │   │   ├── qt_en.qm -│   │   │   │   ├── qt_es.qm -│   │   │   │   ├── qt_fa.qm -│   │   │   │   ├── qt_fi.qm -│   │   │   │   ├── qt_fr.qm -│   │   │   │   ├── qt_gd.qm -│   │   │   │   ├── qt_gl.qm -│   │   │   │   ├── qt_he.qm -│   │   │   │   ├── qt_help_ar.qm -│   │   │   │   ├── qt_help_bg.qm -│   │   │   │   ├── qt_help_ca.qm -│   │   │   │   ├── qt_help_cs.qm -│   │   │   │   ├── qt_help_da.qm -│   │   │   │   ├── qt_help_de.qm -│   │   │   │   ├── qt_help_en.qm -│   │   │   │   ├── qt_help_es.qm -│   │   │   │   ├── qt_help_fr.qm -│   │   │   │   ├── qt_help_gl.qm -│   │   │   │   ├── qt_help_hr.qm -│   │   │   │   ├── qt_help_hu.qm -│   │   │   │   ├── qt_help_it.qm -│   │   │   │   ├── qt_help_ja.qm -│   │   │   │   ├── qt_help_ka.qm -│   │   │   │   ├── qt_help_ko.qm -│   │   │   │   ├── qt_help_nl.qm -│   │   │   │   ├── qt_help_nn.qm -│   │   │   │   ├── qt_help_pl.qm -│   │   │   │   ├── qt_help_pt_BR.qm -│   │   │   │   ├── qt_help_ru.qm -│   │   │   │   ├── qt_help_sk.qm -│   │   │   │   ├── qt_help_sl.qm -│   │   │   │   ├── qt_help_sv.qm -│   │   │   │   ├── qt_help_tr.qm -│   │   │   │   ├── qt_help_uk.qm -│   │   │   │   ├── qt_help_zh_CN.qm -│   │   │   │   ├── qt_help_zh_TW.qm -│   │   │   │   ├── qt_hr.qm -│   │   │   │   ├── qt_hu.qm -│   │   │   │   ├── qt_it.qm -│   │   │   │   ├── qt_ja.qm -│   │   │   │   ├── qt_ka.qm -│   │   │   │   ├── qt_ko.qm -│   │   │   │   ├── qt_lg.qm -│   │   │   │   ├── qt_lt.qm -│   │   │   │   ├── qt_lv.qm -│   │   │   │   ├── qt_nl.qm -│   │   │   │   ├── qt_nn.qm -│   │   │   │   ├── qt_pl.qm -│   │   │   │   ├── qt_pt_BR.qm -│   │   │   │   ├── qt_pt_PT.qm -│   │   │   │   ├── qt_ru.qm -│   │   │   │   ├── qt_sk.qm -│   │   │   │   ├── qt_sl.qm -│   │   │   │   ├── qt_sv.qm -│   │   │   │   ├── qt_tr.qm -│   │   │   │   ├── qt_uk.qm -│   │   │   │   ├── qt_zh_CN.qm -│   │   │   │   ├── qt_zh_TW.qm -│   │   │   │   ├── qtbase_ar.qm -│   │   │   │   ├── qtbase_bg.qm -│   │   │   │   ├── qtbase_ca.qm -│   │   │   │   ├── qtbase_cs.qm -│   │   │   │   ├── qtbase_da.qm -│   │   │   │   ├── qtbase_de.qm -│   │   │   │   ├── qtbase_en.qm -│   │   │   │   ├── qtbase_es.qm -│   │   │   │   ├── qtbase_fa.qm -│   │   │   │   ├── qtbase_fi.qm -│   │   │   │   ├── qtbase_fr.qm -│   │   │   │   ├── qtbase_gd.qm -│   │   │   │   ├── qtbase_he.qm -│   │   │   │   ├── qtbase_hr.qm -│   │   │   │   ├── qtbase_hu.qm -│   │   │   │   ├── qtbase_it.qm -│   │   │   │   ├── qtbase_ja.qm -│   │   │   │   ├── qtbase_ka.qm -│   │   │   │   ├── qtbase_ko.qm -│   │   │   │   ├── qtbase_lg.qm -│   │   │   │   ├── qtbase_lv.qm -│   │   │   │   ├── qtbase_nl.qm -│   │   │   │   ├── qtbase_nn.qm -│   │   │   │   ├── qtbase_pl.qm -│   │   │   │   ├── qtbase_pt_BR.qm -│   │   │   │   ├── qtbase_ru.qm -│   │   │   │   ├── qtbase_sk.qm -│   │   │   │   ├── qtbase_sv.qm -│   │   │   │   ├── qtbase_tr.qm -│   │   │   │   ├── qtbase_uk.qm -│   │   │   │   ├── qtbase_zh_CN.qm -│   │   │   │   └── qtbase_zh_TW.qm -│   │   │   ├── QtCore.abi3.so -> ../../Frameworks/PyQt6/QtCore.abi3.so -│   │   │   ├── QtDBus.abi3.so -> ../../Frameworks/PyQt6/QtDBus.abi3.so -│   │   │   ├── QtGui.abi3.so -> ../../Frameworks/PyQt6/QtGui.abi3.so -│   │   │   ├── QtWidgets.abi3.so -> ../../Frameworks/PyQt6/QtWidgets.abi3.so -│   │   │   └── sip.cpython-313-darwin.so -> ../../Frameworks/PyQt6/sip.cpython-313-darwin.so -│   │   ├── QtCore -> PyQt6/Qt6/lib/QtCore.framework/Versions/A/QtCore -│   │   ├── QtDBus -> PyQt6/Qt6/lib/QtDBus.framework/Versions/A/QtDBus -│   │   ├── QtGui -> PyQt6/Qt6/lib/QtGui.framework/Versions/A/QtGui -│   │   ├── QtNetwork -> PyQt6/Qt6/lib/QtNetwork.framework/Versions/A/QtNetwork -│   │   ├── QtPdf -> PyQt6/Qt6/lib/QtPdf.framework/Versions/A/QtPdf -│   │   ├── QtSvg -> PyQt6/Qt6/lib/QtSvg.framework/Versions/A/QtSvg -│   │   ├── QtWidgets -> PyQt6/Qt6/lib/QtWidgets.framework/Versions/A/QtWidgets -│   │   ├── aiohttp -> ../Frameworks/aiohttp -│   │   ├── app.icns -│   │   ├── attrs-26.1.0.dist-info -│   │   │   ├── INSTALLER -│   │   │   ├── METADATA -│   │   │   ├── RECORD -│   │   │   ├── REQUESTED -│   │   │   ├── WHEEL -│   │   │   └── licenses -│   │   │   └── LICENSE -│   │   ├── base_library.zip -│   │   ├── certifi -│   │   │   ├── cacert.pem -│   │   │   └── py.typed -│   │   ├── charset_normalizer -> ../Frameworks/charset_normalizer -│   │   ├── frozenlist -> ../Frameworks/frozenlist -│   │   ├── libXau.6.dylib -> PIL/.dylibs/libXau.6.dylib -│   │   ├── libavif.16.4.1.dylib -> PIL/.dylibs/libavif.16.4.1.dylib -│   │   ├── libbrotlicommon.1.2.0.dylib -> PIL/.dylibs/libbrotlicommon.1.2.0.dylib -│   │   ├── libbrotlidec.1.2.0.dylib -> PIL/.dylibs/libbrotlidec.1.2.0.dylib -│   │   ├── libfreetype.6.dylib -> PIL/.dylibs/libfreetype.6.dylib -│   │   ├── libharfbuzz.0.dylib -> PIL/.dylibs/libharfbuzz.0.dylib -│   │   ├── libjpeg.62.4.0.dylib -> PIL/.dylibs/libjpeg.62.4.0.dylib -│   │   ├── liblcms2.2.dylib -> PIL/.dylibs/liblcms2.2.dylib -│   │   ├── liblzma.5.dylib -> PIL/.dylibs/liblzma.5.dylib -│   │   ├── libopenjp2.2.5.4.dylib -> PIL/.dylibs/libopenjp2.2.5.4.dylib -│   │   ├── libpng16.16.dylib -> PIL/.dylibs/libpng16.16.dylib -│   │   ├── libpython3.13.dylib -> ../Frameworks/libpython3.13.dylib -│   │   ├── libsharpyuv.0.dylib -> PIL/.dylibs/libsharpyuv.0.dylib -│   │   ├── libtiff.6.dylib -> PIL/.dylibs/libtiff.6.dylib -│   │   ├── libwebp.7.dylib -> PIL/.dylibs/libwebp.7.dylib -│   │   ├── libwebpdemux.2.dylib -> PIL/.dylibs/libwebpdemux.2.dylib -│   │   ├── libwebpmux.3.dylib -> PIL/.dylibs/libwebpmux.3.dylib -│   │   ├── libxcb.1.1.0.dylib -> PIL/.dylibs/libxcb.1.1.0.dylib -│   │   ├── libz.1.3.1.zlib-ng.dylib -> PIL/.dylibs/libz.1.3.1.zlib-ng.dylib -│   │   ├── lxml -│   │   │   ├── _elementpath.cpython-313-darwin.so -> ../../Frameworks/lxml/_elementpath.cpython-313-darwin.so -│   │   │   ├── builder.cpython-313-darwin.so -> ../../Frameworks/lxml/builder.cpython-313-darwin.so -│   │   │   ├── etree.cpython-313-darwin.so -> ../../Frameworks/lxml/etree.cpython-313-darwin.so -│   │   │   ├── html -> ../../Frameworks/lxml/html -│   │   │   ├── isoschematron -│   │   │   │   └── resources -│   │   │   │   ├── rng -│   │   │   │   │   └── iso-schematron.rng -│   │   │   │   └── xsl -│   │   │   │   ├── RNG2Schtrn.xsl -│   │   │   │   ├── XSD2Schtrn.xsl -│   │   │   │   └── iso-schematron-xslt1 -│   │   │   │   ├── iso_abstract_expand.xsl -│   │   │   │   ├── iso_dsdl_include.xsl -│   │   │   │   ├── iso_schematron_message.xsl -│   │   │   │   ├── iso_schematron_skeleton_for_xslt1.xsl -│   │   │   │   ├── iso_svrl_for_xslt1.xsl -│   │   │   │   └── readme.txt -│   │   │   ├── objectify.cpython-313-darwin.so -> ../../Frameworks/lxml/objectify.cpython-313-darwin.so -│   │   │   └── sax.cpython-313-darwin.so -> ../../Frameworks/lxml/sax.cpython-313-darwin.so -│   │   ├── multidict -> ../Frameworks/multidict -│   │   ├── numpy -> ../Frameworks/numpy -│   │   ├── numpy-2.4.6.dist-info -│   │   │   ├── INSTALLER -│   │   │   ├── METADATA -│   │   │   ├── RECORD -│   │   │   ├── REQUESTED -│   │   │   ├── WHEEL -│   │   │   ├── entry_points.txt -│   │   │   └── licenses -│   │   │   ├── LICENSE.txt -│   │   │   └── numpy -│   │   │   ├── _core -│   │   │   │   ├── include -│   │   │   │   │   └── numpy -│   │   │   │   │   └── libdivide -│   │   │   │   │   └── LICENSE.txt -│   │   │   │   └── src -│   │   │   │   ├── common -│   │   │   │   │   └── pythoncapi-compat -│   │   │   │   │   └── COPYING -│   │   │   │   ├── highway -│   │   │   │   │   └── LICENSE -│   │   │   │   ├── multiarray -│   │   │   │   │   └── dragon4_LICENSE.txt -│   │   │   │   ├── npysort -│   │   │   │   │   └── x86-simd-sort -│   │   │   │   │   └── LICENSE.md -│   │   │   │   └── umath -│   │   │   │   └── svml -│   │   │   │   └── LICENSE -│   │   │   ├── fft -│   │   │   │   └── pocketfft -│   │   │   │   └── LICENSE.md -│   │   │   ├── linalg -│   │   │   │   └── lapack_lite -│   │   │   │   └── LICENSE.txt -│   │   │   ├── ma -│   │   │   │   └── LICENSE -│   │   │   └── random -│   │   │   ├── LICENSE.md -│   │   │   └── src -│   │   │   ├── distributions -│   │   │   │   └── LICENSE.md -│   │   │   ├── mt19937 -│   │   │   │   └── LICENSE.md -│   │   │   ├── pcg64 -│   │   │   │   └── LICENSE.md -│   │   │   ├── philox -│   │   │   │   └── LICENSE.md -│   │   │   ├── sfc64 -│   │   │   │   └── LICENSE.md -│   │   │   └── splitmix64 -│   │   │   └── LICENSE.md -│   │   ├── propcache -> ../Frameworks/propcache -│   │   ├── psutil -> ../Frameworks/psutil -│   │   ├── pydantic-2.13.4.dist-info -│   │   │   ├── INSTALLER -│   │   │   ├── METADATA -│   │   │   ├── RECORD -│   │   │   ├── REQUESTED -│   │   │   ├── WHEEL -│   │   │   └── licenses -│   │   │   └── LICENSE -│   │   ├── pydantic_core -> ../Frameworks/pydantic_core -│   │   ├── setuptools -│   │   │   └── _vendor -│   │   │   ├── importlib_metadata-8.7.1.dist-info -│   │   │   │   ├── INSTALLER -│   │   │   │   ├── METADATA -│   │   │   │   ├── RECORD -│   │   │   │   ├── REQUESTED -│   │   │   │   ├── WHEEL -│   │   │   │   ├── licenses -│   │   │   │   │   └── LICENSE -│   │   │   │   └── top_level.txt -│   │   │   └── jaraco -│   │   │   └── text -│   │   │   └── Lorem ipsum.txt -│   │   ├── yaml -> ../Frameworks/yaml -│   │   └── yarl -> ../Frameworks/yarl -│   └── _CodeSignature -│   └── CodeResources -├── doc -│   ├── Notes.md -│   ├── Notes.pdf -│   └── images -│   ├── image-01.png -│   ├── image-02.png -│   └── image-03.png -├── docling_output.md -├── exported_phases.csv -├── main.py -├── main.spec -├── media -├── migrate_database.py -├── pyproject.toml -├── requirements.txt -├── spanish_alphabetical.txt -├── spanish_glossary_sorted.txt -├── spanish_glossary_sorted.xlsx -├── spanish_glossary_sorted_B.pdf -├── spanish_glossary_sorted_B.txt -├── spanish_glossary_sorted_B.xlsx -├── spanish_trainer-26-08-21.db -├── spanish_trainer-backup.db -├── spanish_trainer.db -├── spanish_trainer_backup.sql -├── spanish_trainer_legacy.db -├── tabs -│   ├── __init__.py -│   ├── __pycache__ -│   │   ├── __init__.cpython-313.pyc -│   │   ├── review_tab.cpython-313.pyc -│   │   ├── sandbox_tab.cpython-313.pyc -│   │   └── settings_tab.cpython-313.pyc -│   ├── review_tab.py -│   ├── sandbox_tab.py -│   └── settings_tab.py -├── test_dual.py -├── test_tts.py -├── tree.txt -├── tts_utils.py -├── ui -│   ├── __init__.py -│   ├── cli -│   │   └── interface.py -│   └── gui -│   ├── create_mode.py -│   ├── interface.py -│   └── trainer_mode.py -├── uv.lock -└── video_generator.py - -289 directories, 690 files diff --git a/tts_utils.py b/tts_utils.py index 71a34d3..75ec077 100644 --- a/tts_utils.py +++ b/tts_utils.py @@ -3,24 +3,19 @@ import re from bs4 import BeautifulSoup -def get_configured_tts_rate(settings: dict) -> str: - """Extracts speed multiplier from settings dict and converts to Edge TTS percentage string (e.g., '-25%').""" - # Query the exact key name shown in SQLite database: 'tts_playback_speed' +def get_configured_tts_rate(settings: dict) -> float: + """Extracts speed multiplier from settings dict as a clean float (e.g., 0.75) for Kokoro TTS.""" raw_val = settings.get("tts_playback_speed", 1.0) if settings else 1.0 try: - raw_rate = float(raw_val) + speed_rate = float(raw_val) except (TypeError, ValueError): - raw_rate = 1.0 - - # Calculate percentage shift relative to baseline 1.0 (e.g., 0.75 -> -25%) - pct = int(round((raw_rate - 1.0) * 100)) - rate_str = f"+{pct}%" if pct >= 0 else f"{pct}%" + speed_rate = 1.0 print( - f"[TTS Debug] DB Key 'tts_playback_speed': {raw_val} -> Formatted Rate: {rate_str}" + f"[TTS Debug] DB Key 'tts_playback_speed': {raw_val} -> Kokoro Speed Multiplier: {speed_rate}" ) - return rate_str + return speed_rate def parse_text_for_edgetts(html_content: str) -> str: