From 044e2d3e73911eca6744a37c0b0fd5efb7f2dda9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Conchillo=20Flaqu=C3=A9?= Date: Sun, 4 May 2025 10:22:35 -0700 Subject: [PATCH] DailyTransport: remove custom tracks before leaving --- CHANGELOG.md | 4 ++++ src/pipecat/transports/services/daily.py | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b8c1d504c..54cbd3cd6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added support to `RimeHttpTTSService` for the `arcana` model. +### Fixed + +- Remove custom audio tracks from `DailyTransport` before leaving. + ## [0.0.66] - 2025-05-02 ### Added diff --git a/src/pipecat/transports/services/daily.py b/src/pipecat/transports/services/daily.py index 1684d572a..3e43ddee1 100644 --- a/src/pipecat/transports/services/daily.py +++ b/src/pipecat/transports/services/daily.py @@ -578,6 +578,10 @@ class DailyTransportClient(EventHandler): if self._params.transcription_enabled: await self._stop_transcription() + # Remove any custom tracks, if any. + for track_name, _ in self._audio_sources.items(): + await self.remove_custom_audio_track(track_name) + try: error = await self._leave() if not error: @@ -741,6 +745,14 @@ class DailyTransportClient(EventHandler): return audio_source + async def remove_custom_audio_track(self, track_name: str): + future = self._get_event_loop().create_future() + self._client.remove_custom_audio_track( + track_name=track_name, + completion=completion_callback(future), + ) + await future + async def update_transcription(self, participants=None, instance_id=None): future = self._get_event_loop().create_future() self._client.update_transcription(