diff --git a/core/duplex_pipeline.py b/core/duplex_pipeline.py index 299f8aa..b80cc36 100644 --- a/core/duplex_pipeline.py +++ b/core/duplex_pipeline.py @@ -669,6 +669,12 @@ class DuplexPipeline: await self._current_turn_task except asyncio.CancelledError: pass + + # Ensure underlying services are cancelled to avoid leaking work/audio + if self.tts_service: + await self.tts_service.cancel() + if self.llm_service and hasattr(self.llm_service, 'cancel'): + self.llm_service.cancel() self._is_bot_speaking = False self._interrupt_event.clear()