Added
-
Added
pipecat.extensions.voicemail, a module for detecting voicemail vs. live conversation, primarily intended for use in outbound calling scenarios. The voicemail module is optimized for text LLMs only. -
Added new frames to the
idle_timeout_framesarg:TranscriptionFrame,InterimTranscriptionFrame,UserStartedSpeakingFrame, andUserStoppedSpeakingFrame. These additions serve as indicators of user activity in the pipeline idle detection logic. -
Allow passing custom pipeline sink and source processors to a
Pipeline. Pipeline source and sink processors are used to know and control what's coming in and out of aPipelineprocessor. -
Added
FrameProcessor.pause_processing_system_frames()andFrameProcessor.resume_processing_system_frames(). These allow to pause and resume the processing of system frame. -
Added new
on_process_frame()observer method which makes it possible to know when a frame is being processed. -
Added new
FrameProcessor.entry_processor()method. This allows you to access the first non-compound processor in a pipeline. -
Added
FrameProcessorpropertiesprocessors,nextandprevious. -
ElevenLabsTTSServicenow supports additional runtime changes to themodel,language, andvoice_settingsparameters. -
Added
apply_text_normalizationsupport toElevenLabsTTSServiceandElevenLabsHttpTTSService. -
Added
MistralLLMService, using Mistral's chat completion API. -
Added the ability to retry executing a chat completion after a timeout period for
OpenAILLMServiceand its subclasses,AnthropicLLMService, andAWSBedrockLLMService. The LLM services accept new args:retry_timeout_secsandretry_on_timeout. This feature is disabled by default.
Changed
- Updated
daily-pythonto 0.19.7.
Deprecated
FrameProcessor.wait_for_task()is deprecated. Useawait taskorawait asyncio.wait_for(task, timeout)instead.
Removed
-
Watchdog timers have been removed. They were introduced in 0.0.72 to help diagnose pipeline freezes. Unfortunately, they proved ineffective since they required developers to use Pipecat-specific queues, iterators, and events to correctly reset the timer, which limited their usefulness and added friction.
-
Removed unused
FrameProcessor.set_parent()andFrameProcessor.get_parent().
Fixed
-
Fixed an issue that would cause
PipelineRunnerandPipelineTaskto not handle external asyncio task cancellation properly. -
Added
SpeechmaticsSTTServiceexception handling on connection and sending. -
Replaced
asyncio.wait_for()forwait_for2.wait_for()for Python < 3.12. because of issues regarding task cancellation (i.e. cancellation is never propagated).
See https://bugs.python.org/issue42130 -
Fixed an
AudioBufferProcessorissues that would cause audio overlap when setting a max buffer size. -
Fixed an issue where
AsyncAITTSServicehad very high latency in responding by addingforce=truewhen sending the flush command.
Performance
-
Improve
PipelineTaskperformance by using direct mode processors and by removing unnecessary tasks. -
Improve
ParallelPipelineperformance by using direct mode, by not creating a task for each frame and every sub-pipeline and also by removing other unnecessary tasks. -
Pipelineperformance improvements by using direct mode.
Other
-
Added
14w-function-calling-mistal.pyusingMistralLLMService. -
Added
13j-azure-transcription.pyusingAzureSTTService.