mirror of
https://github.com/TaterTotterson/microWakeWord-Trainer-Nvidia-Docker.git
synced 2026-08-12 07:55:33 -06:00
69 lines
2.6 KiB
Python
69 lines
2.6 KiB
Python
from __future__ import annotations
|
|
|
|
import unittest
|
|
|
|
from tts_config import (
|
|
ENGINE_MOSS,
|
|
ENGINE_OMNIVOICE,
|
|
ENGINE_PIPER,
|
|
ENGINE_QWEN3,
|
|
distribute_samples,
|
|
engines_for_language,
|
|
language_for_engine,
|
|
normalize_english_accent,
|
|
normalize_tts_mode,
|
|
quality_for_engines,
|
|
)
|
|
|
|
|
|
class TtsConfigTests(unittest.TestCase):
|
|
def test_recommended_languages_use_all_modern_engines(self) -> None:
|
|
self.assertEqual(
|
|
engines_for_language("en", "modern"),
|
|
[ENGINE_OMNIVOICE, ENGINE_QWEN3, ENGINE_MOSS],
|
|
)
|
|
self.assertEqual(
|
|
quality_for_engines(engines_for_language("fr", "modern")),
|
|
"recommended",
|
|
)
|
|
|
|
def test_broad_language_coverage_routes_through_omnivoice(self) -> None:
|
|
self.assertEqual(engines_for_language("zu", "modern"), [ENGINE_OMNIVOICE])
|
|
self.assertEqual(quality_for_engines([ENGINE_OMNIVOICE]), "experimental")
|
|
|
|
def test_hybrid_and_legacy_modes_require_available_piper(self) -> None:
|
|
self.assertEqual(
|
|
engines_for_language("en", "hybrid", piper_available=True),
|
|
[ENGINE_OMNIVOICE, ENGINE_QWEN3, ENGINE_MOSS, ENGINE_PIPER],
|
|
)
|
|
self.assertEqual(engines_for_language("en", "piper"), [])
|
|
self.assertEqual(
|
|
engines_for_language("en", "piper", piper_available=True),
|
|
[ENGINE_PIPER],
|
|
)
|
|
|
|
def test_sample_distribution_is_exact_and_deterministic(self) -> None:
|
|
self.assertEqual(
|
|
distribute_samples(10, [ENGINE_OMNIVOICE, ENGINE_QWEN3, ENGINE_MOSS]),
|
|
{ENGINE_OMNIVOICE: 4, ENGINE_QWEN3: 3, ENGINE_MOSS: 3},
|
|
)
|
|
self.assertEqual(sum(distribute_samples(50000, ["a", "b", "c"]).values()), 50000)
|
|
|
|
def test_invalid_mode_falls_back_to_four_provider_route(self) -> None:
|
|
self.assertEqual(normalize_tts_mode("unknown"), "hybrid")
|
|
|
|
def test_english_accent_aliases_and_non_english_fallback(self) -> None:
|
|
self.assertEqual(normalize_english_accent("Australia", "en"), "australian")
|
|
self.assertEqual(normalize_english_accent("new-zealand", "en_US"), "new_zealand")
|
|
self.assertEqual(normalize_english_accent("unknown", "en"), "mixed")
|
|
self.assertEqual(normalize_english_accent("australian", "fr"), "mixed")
|
|
|
|
def test_common_language_aliases_use_model_catalog_ids(self) -> None:
|
|
self.assertEqual(language_for_engine(ENGINE_OMNIVOICE, "ar"), "arb")
|
|
self.assertEqual(language_for_engine(ENGINE_OMNIVOICE, "ne"), "npi")
|
|
self.assertEqual(language_for_engine(ENGINE_MOSS, "ar"), "ar")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|