diff --git a/src/assistant/lib/tts/models/protocols.py b/src/assistant/lib/tts/models/protocols.py index 1912cce..5563783 100644 --- a/src/assistant/lib/tts/models/protocols.py +++ b/src/assistant/lib/tts/models/protocols.py @@ -4,6 +4,10 @@ import lib.models as models class TTSRepositoryProtocol(typing.Protocol): + @property + async def voice_models(self) -> models.LIST_VOICE_MODELS_TYPE: + raise NotImplementedError + async def get_audio_as_bytes(self, request: models.TTSCreateRequestModel) -> models.TTSCreateResponseModel: ... diff --git a/src/assistant/lib/tts/services.py b/src/assistant/lib/tts/services.py index 13fd340..639151a 100644 --- a/src/assistant/lib/tts/services.py +++ b/src/assistant/lib/tts/services.py @@ -31,3 +31,14 @@ class TTSService: if voice_models.models: response_models.extend(voice_models.models) return response_models + + async def get_all_models(self) -> list[_models.AVAILABLE_MODELS_TYPE]: + response_models: list[_models.AVAILABLE_MODELS_TYPE] = [] + for repository in self.repositories.values(): + response = await repository.voice_models + for model in response.models: + model.languages = [ # type: ignore + _models.BaseLanguageCodesEnum[language.name] for language in model.languages + ] + response_models.append(model) + return response_models