From a397b859fec9e94ec7248cc2469366564e09e9c4 Mon Sep 17 00:00:00 2001 From: Mark Backman Date: Mon, 30 Sep 2024 15:47:41 -0400 Subject: [PATCH] Add support for gender and google_style inputs to Google TTS --- src/pipecat/frames/frames.py | 2 ++ src/pipecat/services/ai_services.py | 8 ++++++++ src/pipecat/services/google.py | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/pipecat/frames/frames.py b/src/pipecat/frames/frames.py index f7faa8ef0..584be32db 100644 --- a/src/pipecat/frames/frames.py +++ b/src/pipecat/frames/frames.py @@ -558,6 +558,8 @@ class TTSUpdateSettingsFrame(ControlFrame): style: Optional[str] = None style_degree: Optional[str] = None role: Optional[str] = None + gender: Optional[str] = None + google_style: Optional[str] = None @dataclass diff --git a/src/pipecat/services/ai_services.py b/src/pipecat/services/ai_services.py index a329239dc..344531de3 100644 --- a/src/pipecat/services/ai_services.py +++ b/src/pipecat/services/ai_services.py @@ -235,6 +235,14 @@ class TTSService(AIService): async def flush_audio(self): pass + @abstractmethod + async def set_gender(self, gender: str): + pass + + @abstractmethod + async def set_google_style(self, google_style: str): + pass + # Converts the text to audio. @abstractmethod async def run_tts(self, text: str) -> AsyncGenerator[Frame, None]: diff --git a/src/pipecat/services/google.py b/src/pipecat/services/google.py index 519f47028..046b465b4 100644 --- a/src/pipecat/services/google.py +++ b/src/pipecat/services/google.py @@ -272,7 +272,7 @@ class GoogleTTSService(TTSService): logger.debug(f"Switch TTS gender to [{gender}]") self._params.gender = gender - async def google_style( + async def set_google_style( self, google_style: Literal["apologetic", "calm", "empathetic", "firm", "lively"] ) -> None: logger.debug(f"Switching TTS google style to: [{google_style}]")