Added
-
Added
ElevenLabsHttpTTSServicewhich uses EleveLabs' HTTP API instead of the websocket one. -
Introduced pipeline frame observers. Observers can view all the frames that go through the pipeline without the need to inject processors in the pipeline. This can be useful, for example, to implement frame loggers or debuggers among other things. The example
examples/foundational/30-observer.pyshows how to add an observer to a pipeline for debugging. -
Introduced heartbeat frames. The pipeline task can now push periodic heartbeats down the pipeline when
enable_heartbeats=True. Heartbeats are system frames that are supposed to make it all the way to the end of the pipeline. When a heartbeat frame is received the traversing time (i.e. the time it took to go through the whole pipeline) will be displayed (with TRACE logging) otherwise a warning will be shown. The exampleexamples/foundational/31-heartbeats.pyshows how to enable heartbeats and forces warnings to be displayed. -
Added
LLMTextFrameandTTSTextFramewhich should be pushed by LLM and TTS services respectively instead ofTextFrames. -
Added
OpenRouterfor OpenRouter integration with an OpenAI-compatible interface. Added foundational example14m-function-calling-openrouter.py. -
Added a new
WebsocketServicebased class for TTS services, containing base functions and retry logic. -
Added
DeepSeekLLMServicefor DeepSeek integration with an OpenAI-compatible interface. Added foundational example14l-function-calling-deepseek.py. -
Added
FunctionCallResultPropertiesdataclass to provide a structured way to control function call behavior, including:run_llm: Controls whether to trigger LLM completionon_context_updated: Optional callback triggered after context update
-
Added a new foundational example
07e-interruptible-playht-http.pyfor easy testing ofPlayHTHttpTTSService. -
Added support for Google TTS Journey voices in
GoogleTTSService. -
Added
29-livekit-audio-chat.py, as a new foundational examples forLiveKitTransportLayer. -
Added
enable_prejoin_ui,max_participantsandstart_video_offparams toDailyRoomProperties. -
Added
session_timeouttoFastAPIWebsocketTransportandWebsocketServerTransportfor configuring session timeouts (in seconds). Triggerson_session_timeoutfor custom timeout handling.
See examples/websocket-server/bot.py. -
Added the new modalities option and helper function to set Gemini output modalities.
-
Added
examples/foundational/26d-gemini-multimodal-live-text.pywhich is using Gemini as TEXT modality and using another TTS provider for TTS process.
Changed
-
Modified
UserIdleProcessorto start monitoring only after first conversation activity (UserStartedSpeakingFrameorBotStartedSpeakingFrame) instead of immediately. -
Modified
OpenAIAssistantContextAggregatorto support controlled completions and to emit context update callbacks viaFunctionCallResultProperties. -
Added
aws_session_tokento thePollyTTSService. -
Changed the default model for
PlayHTHttpTTSServicetoPlay3.0-mini-http. -
api_key,aws_access_key_idandregionare no longer required parameters for the PollyTTSService (AWSTTSService) -
Added
session_timeoutexample inexamples/websocket-server/bot.pyto handle session timeout event. -
Changed
InputParamsinsrc/pipecat/services/gemini_multimodal_live/gemini.pyto support different modalities. -
Changed
DeepgramSTTServiceto sendfinalizeevent whenever VAD detectsUserStoppedSpeakingFrame. This helps in faster transcriptions and clearing theDeepgramaudio buffer.
Fixed
-
Fixed an issue where
DeepgramSTTServicewas not generating metrics using pipeline's VAD. -
Fixed
UserIdleProcessornot properly propagatingEndFrames through the pipeline. -
Fixed an issue where websocket based TTS services could incorrectly terminate their connection due to a retry counter not resetting.
-
Fixed a
PipelineTaskissue that would cause a dangling task after stopping the pipeline with anEndFrame. -
Fixed an import issue for
PlayHTHttpTTSService. -
Fixed an issue where languages couldn't be used with the
PlayHTHttpTTSService. -
Fixed an issue where
OpenAIRealtimeBetaLLMServiceaudio chunks were hitting an error when truncating audio content. -
Fixed an issue where setting the voice and model for
RimeHttpTTSServicewasn't working. -
Fixed an issue where
IdleFrameProcessorandUserIdleProcessorwere getting initialized before the start of the pipeline.