Artem Akymenko
d8fcfb1cce
chore: normalize line endings to LF, add .gitattributes
...
- Add .gitattributes with text=auto eol=lf for all text files
- Renormalize all files in index to LF line endings
- Fixes massive whitespace-only diffs between main and feature branch
2026-07-12 16:20:42 +03:00
Artem Akymenko
c094b94704
feat(tts-plugin): complete Plugin Architecture refactor
...
- Normalize Pipeline public API: create_pipeline(plugin_id, *, lang_code, device)
- EngineConfig: add lang_code field per Architecture Amendment #1
- Kokoro plugin reads config.lang_code (fixes functional regression)
- Static voice catalog in PluginManifest.voices (None = dynamic/VoiceLister)
- get_voices() reads from manifest without creating Engine
- Remove dead kwargs (sample_rate, auto_download, total_steps) from SuperTonic
- Clean up unused imports and dead code in engine implementations
- Fix test expectations for VoiceLister (mock overrides)
- Add clear_preview_pipelines() for resource management
2026-07-12 16:20:20 +03:00
Artem Akymenko
a76d338931
refactor: remove compatibility layer, use Plugin Architecture directly
...
- Delete abogen/tts_plugin/compat.py (CompatBackend, create_backend, get_metadata, etc.)
- Add abogen/tts_plugin/utils.py with direct Plugin Manager functions:
get_voices, get_default_voice, is_plugin_registered, resolve_voice_to_plugin, create_pipeline
- Update all 16 consumer files to import from utils instead of compat
- Update __init__.py to re-export utils instead of compat
- Update 5 test files and add TestNoCompatLayer regression tests
- All 493 tests pass
2026-07-12 16:20:06 +03:00
Artem Akymenko
985e16f1f8
feat: migrate remaining consumers to new Plugin Architecture
...
- Add compatibility functions to tts_plugin/compat.py:
- get_metadata(): returns TTSBackendMetadata with voices
- is_registered_backend(): checks if plugin is loaded
- resolve_backend_for_voice(): resolves backend for voice spec
- get_default_voice(): gets default voice for backend
- Update tts_plugin/__init__.py to export new functions
- Migrate all consumers from old tts_backend_registry:
- WebUI: conversion_runner, debug_tts_runner, routes/api, routes/utils/*
- PyQt UI: gui, predownload_gui, voice_formula_gui
- Voice utilities: voice_cache, voice_formulas, voice_profiles
- Other: subtitle_utils, utils, predownload_gui (root)
- Update tests to use new plugin architecture
Old architecture remains intact as fallback.
2026-07-12 16:20:06 +03:00
Artem Akymenko
bb96ae502c
refactor: migrate remaining consumers to get_metadata API
...
Replace direct VOICES_INTERNAL imports with get_metadata('kokoro').voices:
- abogen/predownload_gui.py
- abogen/subtitle_utils.py
2026-07-08 15:58:51 +00:00
Deniz Şafak
566158c132
Reformat using black
2025-11-28 05:07:26 +03:00
Deniz Şafak
7293b4b826
New option: **Pre-download models and voices for offline use**
2025-11-28 04:58:13 +03:00