Added
-
Added logging and improved error handling to help diagnose and prevent potential Pipeline freezes.
-
Added
WatchdogQueue,WatchdogPriorityQueue,WatchdogEventandWatchdogAsyncIterator. 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_timersargument toPipelineTaskconstructor. It is possible to change the default watchdog timer timeout by using thewatchdog_timeoutargument. 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_loggingandwatchdog_timeoutwhen 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_namesparameter toAWSPollyTTSService.InputParams. -
Added reconnection logic and audio buffer management to
GladiaSTTService. -
The
TurnTrackingObservernow ends a turn upon observing anEndFrameorCancelFrame. -
Added Polish support to
AWSTranscribeSTTService. -
Added new frames
FrameProcessorPauseFrameandFrameProcessorResumeFramewhich 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 addedFrameProcessorPauseUrgentFrameandFrameProcessorResumeUrgentFramewhich are system frames and therefore they have high priority. -
Added a property called
has_function_calls_in_progressinLLMAssistantContextAggregatorthat exposes whether a function call is in progress. -
Added
SambaNovaLLMServicewhich provides llm api integration with an OpenAI-compatible interface. -
Added
SambaNovaTTSServicewhich 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
-
HeartbeatFrames 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
OpenAIRealtimeBetaLLMServiceto acceptlanguagein theInputAudioTranscriptionclass for all models. -
Updated the default model for
OpenAIRealtimeBetaLLMServicetogpt-4o-realtime-preview-2025-06-03. -
The
PipelineParamsargallow_interruptionsnow defaults toTrue. -
TavusTransportandTavusVideoServicenow send audio to Tavus using WebRTC audio tracks instead ofapp-messagesover WebSocket. This should improve the overall audio quality. -
Upgraded
daily-pythonto 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
FastAPIWebsocketClientto ensure proper disconnection when the websocket is already closed. -
Fixed an issue where the
UserStoppedSpeakingFramewas 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
TelnyxFrameSerializerwhere it would throw an exception when the user hung up the call. -
Fixed an issue with
ElevenLabsTTSServicewhere the context was not being closed. -
Fixed function calling in
AWSNovaSonicLLMService. -
Fixed an issue that would cause multiple
PipelineTask.on_idle_timeoutevents 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
GroqTTSServicewhere it was not properly parsing the WAV file header. -
Fixed an issue with
GoogleSTTServicewhere it was constantly reconnecting before starting to receive audio from the user. -
Fixed an issue where
GoogleLLMService's TTFB value was incorrect.
Deprecated
AudioBufferProcessorparameteruser_continuos_streamis deprecated.
Other
- Rename
14e-function-calling-gemini.pyto14e-function-calling-google.py.