mirror of
https://github.com/denizsafak/abogen.git
synced 2026-07-18 13:40:27 +02:00
Moved SupertonicPipeline from abogen/tts_supertonic.py to abogen/tts_backends/supertonic.py and load_numpy_kpipeline from abogen/utils.py to abogen/tts_backends/kokoro.py. Git correctly detects the Supertonic file as a rename (R), preserving full commit history. - New package: abogen/tts_backends/ - __init__.py (package marker) - supertonic.py (SupertonicPipeline, moved from tts_supertonic.py) - kokoro.py (load_numpy_kpipeline, moved from utils.py) - abogen/utils.py: re-exports load_numpy_kpipeline for backward compat - All imports updated to new canonical paths
19 lines
841 B
Python
19 lines
841 B
Python
from __future__ import annotations
|
|
|
|
from abogen.webui.conversion_runner import _resolve_voice, _supertonic_voice_from_spec
|
|
from abogen.tts_backends.supertonic import DEFAULT_SUPERTONIC_VOICES
|
|
|
|
|
|
def test_resolve_voice_formula_without_pipeline_does_not_crash() -> None:
|
|
# This can happen when a previously-saved Kokoro mix formula is present
|
|
# but the active provider is SuperTonic (no Kokoro pipeline object).
|
|
formula = "af_heart*0.5+af_sky*0.5"
|
|
resolved = _resolve_voice(None, formula, use_gpu=False)
|
|
assert resolved == formula
|
|
|
|
|
|
def test_supertonic_voice_from_formula_falls_back_to_valid_voice() -> None:
|
|
# When a stale Kokoro mix formula is present, SuperTonic should not receive it.
|
|
chosen = _supertonic_voice_from_spec("af_heart*0.5+af_sky*0.5", "af_heart*1.0")
|
|
assert chosen in DEFAULT_SUPERTONIC_VOICES
|