From df6c2fc4031886272f89bd89b5a94f9d91e4da20 Mon Sep 17 00:00:00 2001 From: Mert Sefa AKGUN Date: Sat, 11 Jan 2025 13:00:38 +0300 Subject: [PATCH] fix(services): handle TranscriptionFrame separately in TTSService Exclude TranscriptionFrame from text frame processing in TTSService by updating the type check condition. This resolves unintended processing behavior when handling different frame types. --- src/pipecat/services/ai_services.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pipecat/services/ai_services.py b/src/pipecat/services/ai_services.py index 45b1c4639..f79ea133c 100644 --- a/src/pipecat/services/ai_services.py +++ b/src/pipecat/services/ai_services.py @@ -30,6 +30,7 @@ from pipecat.frames.frames import ( TTSStartedFrame, TTSStoppedFrame, TTSUpdateSettingsFrame, + TranscriptionFrame, UserImageRequestFrame, VisionImageRawFrame, ) @@ -290,7 +291,7 @@ class TTSService(AIService): async def process_frame(self, frame: Frame, direction: FrameDirection): await super().process_frame(frame, direction) - if isinstance(frame, TextFrame): + if isinstance(frame, TextFrame) and not isinstance(frame, TranscriptionFrame): await self._process_text_frame(frame) elif isinstance(frame, StartInterruptionFrame): await self._handle_interruption(frame, direction)