Extend AlltalkTTSEnginesConfig
This commit is contained in:
1 parent
1e4e18f977
commit
f07ad31212
2 files changed
+30
-4
No files matched your search
@@ -203,6 +203,19 @@ class AlltalkTTSEnginesConfig(AbstractConfig):
|
||||
def save(self, path: Path | str | None = None):
|
||||
self._save_file(path)
|
||||
|
||||
def is_valid_engine(self, engine_name):
|
||||
return engine_name in self.get_engine_names_available()
|
||||
|
||||
def change_engine(self, requested_engine):
|
||||
if requested_engine == self.engine_loaded:
|
||||
return self
|
||||
for engine in self.engines_available:
|
||||
if engine["name"] == requested_engine:
|
||||
self.engine_loaded = requested_engine
|
||||
self.selected_model = engine["selected_model"]
|
||||
return self
|
||||
return self
|
||||
|
||||
|
||||
class AlltalkConfig(AbstractConfig):
|
||||
__instance = None
|
||||
@@ -234,6 +247,9 @@ class AlltalkConfig(AbstractConfig):
|
||||
AlltalkConfig.__instance._reload_on_change()
|
||||
return AlltalkConfig.__instance
|
||||
|
||||
def get_output_directory(self):
|
||||
return self.__this_dir / self.output_folder
|
||||
|
||||
def save(self, path: Path | str | None = None):
|
||||
self._save_file(path, lambda o: o.__dict__)
|
||||
|
||||
@@ -250,5 +266,4 @@ class AlltalkConfig(AbstractConfig):
|
||||
self.theme.clazz = data.theme.__dict__["class"]
|
||||
|
||||
# As a side effect, create the output directory:
|
||||
output_directory = self.__this_dir / self.output_folder
|
||||
output_directory.mkdir(parents=True, exist_ok=True)
|
||||
self.get_output_directory().mkdir(parents=True, exist_ok=True)
|
||||
+13
-2
@@ -9,8 +9,8 @@ from config import AlltalkConfig, AlltalkTTSEnginesConfig
|
||||
class TestAlltalkConfig(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.config = AlltalkConfig.get_instance()
|
||||
self.ttsEnginesConfig = AlltalkTTSEnginesConfig.get_instance()
|
||||
self.config = AlltalkConfig.get_instance().reload()
|
||||
self.ttsEnginesConfig = AlltalkTTSEnginesConfig.get_instance().reload()
|
||||
|
||||
def test_default_config_path(self):
|
||||
expected_config_path = Path(__file__).parent.parent.resolve() / "confignew.json"
|
||||
@@ -127,6 +127,17 @@ class TestAlltalkConfig(unittest.TestCase):
|
||||
self.assertEqual(self.ttsEnginesConfig.selected_model, "piper")
|
||||
self.assertListEqual(self.ttsEnginesConfig.get_engine_names_available(), ["parler", "piper", "vits", "xtts", "f5tts"])
|
||||
|
||||
def test_is_valid_engine(self):
|
||||
for engine in ["parler", "piper", "vits", "xtts", "f5tts"]:
|
||||
self.assertTrue(self.ttsEnginesConfig.is_valid_engine(engine))
|
||||
|
||||
self.assertFalse(self.ttsEnginesConfig.is_valid_engine("foo"))
|
||||
|
||||
def test_change_tts_engine(self):
|
||||
self.ttsEnginesConfig.change_engine("vits")
|
||||
self.assertEqual(self.ttsEnginesConfig.engine_loaded, "vits")
|
||||
self.assertEqual(self.ttsEnginesConfig.selected_model, "vits - tts_models--en--vctk--vits")
|
||||
|
||||
def test_tts_engines_default_config_path(self):
|
||||
expected_config_path = os.path.join(Path(__file__).parent.parent.resolve(), "system", "tts_engines", "tts_engines.json")
|
||||
self.assertEqual(self.ttsEnginesConfig.get_config_path(), Path(expected_config_path))
|
||||
|
||||
Reference in new issue
Block a user