Added
-
Added logging and improved error handling to help diagnose and prevent potential Pipeline freezes.
-
Added
WatchdogQueue
,WatchdogPriorityQueue
,WatchdogEvent
andWatchdogAsyncIterator
. These helper utilities reset watchdog timers appropriately before they expire. When watchdog timers are disabled, the utilities behave as standard counterparts without side effects. -
Introduce task watchdog timers. Watchdog timers are used to detect if a Pipecat task is taking longer than expected (by default 5 seconds). Watchdog timers are disabled by default and can be enabled globally by passing
enable_watchdog_timers
argument toPipelineTask
constructor. It is possible to change the default watchdog timer timeout by using thewatchdog_timeout
argument. You can also log how long it takes to reset the watchdog timers which is done with theenable_watchdog_logging
. You can control all these settings per each frame processor or even per task. That is, you can setenable_watchdog_timers
,enable_watchdog_logging
andwatchdog_timeout
when creating any frame processor through their constructor arguments or when you create a task withFrameProcessor.create_task()
. Note that watchdog timers only work with Pipecat tasks and will not work if you useasycio.create_task()
or similar. -
Added
lexicon_names
parameter toAWSPollyTTSService.InputParams
. -
Added reconnection logic and audio buffer management to
GladiaSTTService
. -
The
TurnTrackingObserver
now ends a turn upon observing anEndFrame
orCancelFrame
. -
Added Polish support to
AWSTranscribeSTTService
. -
Added new frames
FrameProcessorPauseFrame
andFrameProcessorResumeFrame
which allow pausing and resuming frame processing for a given frame processor. These are control frames, so they are ordered. Pausing frame processor will keep old frames in the internal queues until resume takes place. Frames being pushed while a frame processor is paused will be pushed to the queues. When frame processing is resumed all queued frames will be processed in order. Also addedFrameProcessorPauseUrgentFrame
andFrameProcessorResumeUrgentFrame
which are system frames and therefore they have high priority. -
Added a property called
has_function_calls_in_progress
inLLMAssistantContextAggregator
that exposes whether a function call is in progress. -
Added
SambaNovaLLMService
which provides llm api integration with an OpenAI-compatible interface. -
Added
SambaNovaTTSService
which provides speech-to-text functionality using SambaNovas's (whisper) API. -
Add fundational examples for function calling and transcription
14s-function-calling-sambanova.py
,13g-sambanova-transcription.py
Changed
-
HeartbeatFrame
s are now control frames. This will make it easier to detect pipeline freezes. Previously, heartbeat frames were system frames which meant they were not get queued with other frames, making it difficult to detect pipeline stalls. -
Updated
OpenAIRealtimeBetaLLMService
to acceptlanguage
in theInputAudioTranscription
class for all models. -
Updated the default model for
OpenAIRealtimeBetaLLMService
togpt-4o-realtime-preview-2025-06-03
. -
The
PipelineParams
argallow_interruptions
now defaults toTrue
. -
TavusTransport
andTavusVideoService
now send audio to Tavus using WebRTC audio tracks instead ofapp-messages
over WebSocket. This should improve the overall audio quality. -
Upgraded
daily-python
to 0.19.3.
Fixed
-
Fixed an issue that would cause heartbeat frames to be sent before processors were started.
-
Fixed an event loop blocking issue when using
SentryMetrics
. -
Fixed an issue in
FastAPIWebsocketClient
to ensure proper disconnection when the websocket is already closed. -
Fixed an issue where the
UserStoppedSpeakingFrame
was not received if the transport was not receiving new audio frames. -
Fixed an edge case where if the user interrupted the bot but no new aggregation was received, the bot would not resume speaking.
-
Fixed an issue with
TelnyxFrameSerializer
where it would throw an exception when the user hung up the call. -
Fixed an issue with
ElevenLabsTTSService
where the context was not being closed. -
Fixed function calling in
AWSNovaSonicLLMService
. -
Fixed an issue that would cause multiple
PipelineTask.on_idle_timeout
events to be triggered repeatedly. -
Fixed an issue that was causing user and bot speech to not be synchronized during recordings.
-
Fixed an issue where voice settings weren't applied to ElevenLabsTTSService.
-
Fixed an issue with
GroqTTSService
where it was not properly parsing the WAV file header. -
Fixed an issue with
GoogleSTTService
where it was constantly reconnecting before starting to receive audio from the user. -
Fixed an issue where
GoogleLLMService
's TTFB value was incorrect.
Deprecated
AudioBufferProcessor
parameteruser_continuos_stream
is deprecated.
Other
- Rename
14e-function-calling-gemini.py
to14e-function-calling-google.py
.