From f2a5d408de80c7acaceab2bd4a54d4c3e63ead93 Mon Sep 17 00:00:00 2001 From: Mark Backman Date: Sun, 14 Sep 2025 09:20:37 -0400 Subject: [PATCH] fix: AudioBufferProcessor has_audio returns based on user or bot audio existing --- CHANGELOG.md | 3 +++ src/pipecat/processors/audio/audio_buffer_processor.py | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1717449cd..c56f58491 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +- Fixed an issue in `AudioBufferProcessor` where a recording is not created + when a bot speaks and user input is blocked. + - Fixed a `FastAPIWebsocketTransport` and `SmallWebRTCTransport` issue where `on_client_disconnected` would be triggered when the bot ends the conversation. That is, `on_client_disconnected` should only be triggered when diff --git a/src/pipecat/processors/audio/audio_buffer_processor.py b/src/pipecat/processors/audio/audio_buffer_processor.py index 52c251bca..276051919 100644 --- a/src/pipecat/processors/audio/audio_buffer_processor.py +++ b/src/pipecat/processors/audio/audio_buffer_processor.py @@ -137,12 +137,12 @@ class AudioBufferProcessor(FrameProcessor): return self._num_channels def has_audio(self) -> bool: - """Check if both user and bot audio buffers contain data. + """Check if either user or bot audio buffers contain data. Returns: - True if both buffers contain audio data. + True if either buffer contains audio data. """ - return self._buffer_has_audio(self._user_audio_buffer) and self._buffer_has_audio( + return self._buffer_has_audio(self._user_audio_buffer) or self._buffer_has_audio( self._bot_audio_buffer )