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
e94ba5257e
refactor: move VOICES_INTERNAL into KokoroBackend module
...
Make the Kokoro voice list an internal implementation detail of the
backend instead of a shared constant. The rest of the project already
accesses voices via get_metadata('kokoro').voices.
- Move VOICES_INTERNAL from constants.py to kokoro.py as _VOICES_INTERNAL
- Update tests to use get_metadata('kokoro').voices instead of importing
the constant directly
2026-07-08 16:19:34 +00:00
Deniz Şafak
5ae153f841
Reformat using black
2026-01-09 01:36:14 +03:00
JB
938e122166
feat: Refactor code structure to move web-related components to the webui module and update references accordingly
2025-12-21 08:12:48 -08:00
JB
f35b35c7a9
feat: Enhance EPUB export by grouping chunks for rendering and adding group ID support
2025-10-10 14:43:28 -07:00
JB
01a6267c7a
feat: Implement voice fallback logic and enhance voice resolution tests for custom mixes
2025-10-09 13:58:21 -07:00
JB
f0b6976d12
feat: Enhance voice formula parsing and validation, implement voice asset caching, and add tests for new functionality
2025-10-09 13:37:36 -07:00