diff --git a/examples/foundational/07e-interruptible-playht.py b/examples/foundational/07e-interruptible-playht.py index 5ccb96c15..c402c09db 100644 --- a/examples/foundational/07e-interruptible-playht.py +++ b/examples/foundational/07e-interruptible-playht.py @@ -48,7 +48,7 @@ async def main(): tts = PlayHTTTSService( user_id=os.getenv("PLAYHT_USER_ID"), api_key=os.getenv("PLAYHT_API_KEY"), - voice_url="s3://voice-cloning-zero-shot/d9ff78ba-d016-47f6-b0ef-dd630f59414e/female-cs/manifest.json", + voice_url="s3://voice-cloning-zero-shot/e46b4027-b38d-4d24-b292-38fbca2be0ef/original/manifest.json", params=PlayHTTTSService.InputParams(language=Language.EN), ) diff --git a/src/pipecat/services/groq.py b/src/pipecat/services/groq.py index 9d4b09455..bf0304df2 100644 --- a/src/pipecat/services/groq.py +++ b/src/pipecat/services/groq.py @@ -118,6 +118,8 @@ class GroqTTSService(TTSService): speed: Optional[float] = 1.0 seed: Optional[int] = None + GROQ_SAMPLE_RATE = 48000 # Groq TTS only supports 48kHz sample rate + def __init__( self, *, @@ -126,10 +128,14 @@ class GroqTTSService(TTSService): params: InputParams = InputParams(), model_name: str = "playai-tts", voice_id: str = "Celeste-PlayAI", + sample_rate: Optional[int] = GROQ_SAMPLE_RATE, **kwargs, ): + if sample_rate != self.GROQ_SAMPLE_RATE: + logger.warning(f"Groq TTS only supports {self.GROQ_SAMPLE_RATE}Hz sample rate. ") super().__init__( pause_frame_processing=True, + sample_rate=sample_rate, **kwargs, ) @@ -166,6 +172,6 @@ class GroqTTSService(TTSService): data = data[44:] if len(data) == 0: continue - yield TTSAudioRawFrame(data, 48000, 1) + yield TTSAudioRawFrame(data, self.sample_rate, 1) yield TTSStoppedFrame()