diff --git a/changelog/3429.added.md b/changelog/3429.added.md new file mode 100644 index 000000000..1ba0279d7 --- /dev/null +++ b/changelog/3429.added.md @@ -0,0 +1 @@ +- Added handling for `server_content.interrupted` signal in Gemini Live services for faster interruption response. diff --git a/src/pipecat/services/google/gemini_live/llm.py b/src/pipecat/services/google/gemini_live/llm.py index f61c9826c..7a6f55f83 100644 --- a/src/pipecat/services/google/gemini_live/llm.py +++ b/src/pipecat/services/google/gemini_live/llm.py @@ -1198,7 +1198,11 @@ class GeminiLiveLLMService(LLMService): # Reset failure counter if connection has been stable self._check_and_reset_failure_counter() - if message.server_content and message.server_content.model_turn: + if message.server_content and message.server_content.interrupted: + logger.debug("Gemini VAD: interrupted signal received") + await self.broadcast_frame(UserStartedSpeakingFrame()) + await self.push_interruption_task_frame_and_wait() + elif message.server_content and message.server_content.model_turn: await self._handle_msg_model_turn(message) elif ( message.server_content