From 458fddfb4858a404f1722a748ae26f596ffb3c06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Conchillo=20Flaqu=C3=A9?= Date: Thu, 1 May 2025 05:12:32 -0700 Subject: [PATCH] update CHANGELOG with new Daily and Transport features --- CHANGELOG.md | 18 ++++++++++++++++++ src/pipecat/transports/services/daily.py | 4 ++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 71b9ae255..ec61847a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 custom tracks and not send the main tracks. Note that you still need `audio_out_enabled=True` or `video_out_enabled`. +- Added `DailyTransport.capture_participant_audio()` which allows you to capture + an audio source (e.g. "microphone", "screenAudio" or a custom track name) from + a remote participant. + +- Added `DailyTransport.update_publishing()` which allows you to update the call + video and audio publishing settings (e.g. audio and video quality). + - Added `RTVIObserverParams` which allows you to configure what RTVI messages are sent to the clients. @@ -62,6 +69,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- `TransportParams.audio_mixer` now supports a string and also a dictionary to + provide a mixer per destination. For example: + +```python + audio_out_mixer={ + "track-1": SoundfileMixer(...), + "track-2": SoundfileMixer(...), + "track-N": SoundfileMixer(...), + }, +``` + - The `STTMuteFilter` now mutes `InterimTranscriptionFrame` and `TranscriptionFrame` which allows the `STTMuteFilter` to be used in conjunction with transports that generate transcripts, e.g. `DailyTransport`. diff --git a/src/pipecat/transports/services/daily.py b/src/pipecat/transports/services/daily.py index 21bc41e20..33e9d37ea 100644 --- a/src/pipecat/transports/services/daily.py +++ b/src/pipecat/transports/services/daily.py @@ -762,7 +762,7 @@ class DailyTransportClient(EventHandler): ) await future - async def update_remote_participants(self, remote_participants: Mapping[str, Any] = None): + async def update_remote_participants(self, remote_participants: Mapping[str, Any]): future = self._get_event_loop().create_future() self._client.update_remote_participants( remote_participants=remote_participants, completion=completion_callback(future) @@ -1352,7 +1352,7 @@ class DailyTransport(BaseTransport): participant_settings=participant_settings, profile_settings=profile_settings ) - async def update_remote_participants(self, remote_participants: Mapping[str, Any] = None): + async def update_remote_participants(self, remote_participants: Mapping[str, Any]): await self._client.update_remote_participants(remote_participants=remote_participants) async def _on_joined(self, data):