From 59240c7b96e17eddeb066c6d1aa907e8ee592548 Mon Sep 17 00:00:00 2001 From: Kwindla Hultman Kramer Date: Sat, 21 Dec 2024 14:35:45 -0800 Subject: [PATCH] delay gemini multimodal live websocket connect --- examples/foundational/07d-interruptible-elevenlabs.py | 3 ++- src/pipecat/services/gemini_multimodal_live/gemini.py | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/examples/foundational/07d-interruptible-elevenlabs.py b/examples/foundational/07d-interruptible-elevenlabs.py index 8f3895d00..9d91081d8 100644 --- a/examples/foundational/07d-interruptible-elevenlabs.py +++ b/examples/foundational/07d-interruptible-elevenlabs.py @@ -48,6 +48,7 @@ async def main(): tts = ElevenLabsTTSService( api_key=os.getenv("ELEVENLABS_API_KEY", ""), voice_id=os.getenv("ELEVENLABS_VOICE_ID", ""), + model="eleven_flash_v2_5", ) llm = OpenAILLMService(api_key=os.getenv("OPENAI_API_KEY"), model="gpt-4o") @@ -79,7 +80,7 @@ async def main(): allow_interruptions=True, enable_metrics=True, enable_usage_metrics=True, - report_only_initial_ttfb=True, + # report_only_initial_ttfb=True, ), ) diff --git a/src/pipecat/services/gemini_multimodal_live/gemini.py b/src/pipecat/services/gemini_multimodal_live/gemini.py index bf433054a..55467a1cd 100644 --- a/src/pipecat/services/gemini_multimodal_live/gemini.py +++ b/src/pipecat/services/gemini_multimodal_live/gemini.py @@ -177,6 +177,7 @@ class GeminiMultimodalLiveLLMService(LLMService): self._receive_task = None self._context = None + self._connected = False self._disconnecting = False self._api_session_ready = False self._run_llm_when_api_session_ready = False @@ -230,7 +231,6 @@ class GeminiMultimodalLiveLLMService(LLMService): async def start(self, frame: StartFrame): await super().start(frame) - await self._connect() async def stop(self, frame: EndFrame): await super().stop(frame) @@ -434,8 +434,9 @@ class GeminiMultimodalLiveLLMService(LLMService): async def _ws_send(self, message): # logger.debug(f"Sending message to websocket: {message}") try: - if self._websocket: - await self._websocket.send(json.dumps(message)) + if not self._websocket: + await self._connect() + await self._websocket.send(json.dumps(message)) except Exception as e: if self._disconnecting: return