services: allow TTSModelUpdateFrame to also update language and voice
This commit is contained in:
@@ -441,6 +441,8 @@ class TTSModelUpdateFrame(ControlFrame):
|
||||
"""A control frame containing a request to update the TTS model.
|
||||
"""
|
||||
model: str
|
||||
voice: str | None = None
|
||||
language: Language | None = None
|
||||
|
||||
|
||||
@dataclass
|
||||
|
||||
@@ -179,7 +179,7 @@ class TTSService(AIService):
|
||||
self._current_sentence: str = ""
|
||||
|
||||
@abstractmethod
|
||||
async def set_model(self, model: str):
|
||||
async def set_model(self, model: str, voice: str | None, language: Language | None):
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
|
||||
@@ -110,9 +110,16 @@ class CartesiaTTSService(TTSService):
|
||||
def can_generate_metrics(self) -> bool:
|
||||
return True
|
||||
|
||||
async def set_model(self, model: str):
|
||||
async def set_model(self, model: str, voice: str | None, language: Language | None):
|
||||
logger.debug(f"Switching TTS model to: [{model}]")
|
||||
self._model_id = model
|
||||
if language:
|
||||
logger.debug(f"Switching TTS language to: [{language}]")
|
||||
cartesia_language = language_to_cartesia_language(language)
|
||||
self._language = cartesia_language
|
||||
if voice:
|
||||
logger.debug(f"Switching TTS voice to: [{voice}]")
|
||||
self._voice_id = voice
|
||||
|
||||
async def set_voice(self, voice: str):
|
||||
logger.debug(f"Switching TTS voice to: [{voice}]")
|
||||
|
||||
Reference in New Issue
Block a user