Added
-
AzureSTTServicenow pushes interim transcriptions. -
Added
voice_cloning_keytoGoogleTTSServiceto support custom cloned voices. -
Added
speaking_ratetoGoogleTTSService.InputParamsto control the speaking rate. -
Added a
speedarg toOpenAITTSServiceto control the speed of the voice response. -
Added
FrameProcessor.push_interruption_task_frame_and_wait(). Use this method to programatically interrupt the bot from any part of the pipeline. This guarantees that all the processors in the pipeline are interrupted in order (from upstream to downstream). Internally, this works by first pushing anInterruptionTaskFrameupstream until it reaches the pipeline task. The pipeline task then generates anInterruptionFrame, which flows downstream through all processors. Once theInterruptionFramehas reaches the processor waiting for the interruption, the function returns and execution continues after the call. Think of it as sending an upstream request for interruption and waiting until the acknowledgment flows back downstream. -
Added new base
TaskFrame(which is a system frame). This is the base class for all task frames (EndTaskFrame,CancelTaskFrame, etc.) that are meant to be pushed upstream to reach the pipeline task. -
Expanded support for universal
LLMContextto the AWS Bedrock LLM service. Using the universalLLMContextand associatedLLMContextAggregatorPairis a pre-requisite for usingLLMSwitcherto switch between LLMs at runtime. -
Added new fields to the development runner's
parse_telephony_websocketmethod in support of providing dynamic data to a bot.- Twilio: Added a new
bodyparameter, which parses the websocket message forcustomParameters. Provide data via theParameternouns in your TwiML to use this feature. - Telnyx & Exotel: Both providers make the
toandfromphone numbers available in the websocket messages. You can now access these numbers ascall_data["to"]andcall_data["from"].
Note: Each telephony provider offers different features. Refer to the corresponding example in
pipecat-examplesto see how to pass custom data to your bot. - Twilio: Added a new
-
Added
bodyto theWebsocketRunnerArgumentsas an optional parameter. Custombodyinformation can be passed from the server into the bot file via thebot()method using this new parameter. -
Added video streaming support to
LiveKitTransport. -
Added
OpenAIRealtimeLLMServiceandAzureRealtimeLLMServicewhich provide access to OpenAI Realtime.
Changed
pipeline.tests.utils.run_test()now allows passingPipelineParamsinstead of individual parameters.
Removed
- Remove
VisionImageRawFramein favor of context frames (LLMContextFrameorOpenAILLMContextFrame).
Deprecated
-
BotInterruptionFrameis now deprecated, useInterruptionTaskFrameinstead. -
StartInterruptionFrameis now deprected, useInterruptionFrameinstead. -
Deprecate
VisionImageFrameAggregatorbecauseVisionImageRawFramehas been removed. See the12*examples for the new recommended replacement pattern. -
NoisereduceFilteris now deprecated and will be removed in a future version. Use other audio filters likeKrispFilterorAICFilter. -
Deprecated
OpenAIRealtimeBetaLLMServiceandAzureRealtimeBetaLLMService. UseOpenAIRealtimeLLMServiceandAzureRealtimeLLMService, respectively. Each service will be removed in an upcoming version, 1.0.0.
Fixed
-
Fixed a
BaseOutputTransportissue that caused incorrect detection of when the bot stopped talking while using an audio mixer. -
Fixed a
LiveKitTransportissue where RTVI messages were not properly encoded. -
Add additional fixups to Mistral context messages to ensure they meet Mistral-specific requirements, avoiding Mistral "invalid request" errors.
-
Fixed
DailyTransporttranscription handling to gracefully handle missingrawResponsefield in transcription messages, preventing KeyError crashes.