Added
-
Added
enable_emulated_vad_interruptionstoLLMUserAggregatorParams. When user speech is emulated (e.g. when a transcription is received but VAD doesn't detect speech), this parameter controls whether the emulated speech can interrupt the bot. Default is False (emulated speech is ignored while the bot is speaking). -
Added new
handle_sigintandhandle_sigtermtoRunnerArguments. This allows applications to know what settings they should use for the environment they are running on. Also, addedpipeline_idle_timeout_secsto be able to control thePipelineTaskidle timeout. -
Added
processorfield toErrorFrameto indicateFrameProcessorthat generated the error. -
Added new language support for
AWSTranscribeSTTService. All languages supporting streaming data input are now supported: https://docs.aws.amazon.com/transcribe/latest/dg/supported-languages.html -
Added support for Simli Trinity Avatars. A new
is_trinity_avatarparameter has been introduced to specify whether the providedfaceIdcorresponds to a Trinity avatar, which is required for optimal Trinity avatar performance. -
The development runner how handles custom
bodydata forDailyTransport. Thebodydata is passed to the Pipecat client. You can POST to the/startendpoint with a request body of:{ "createDailyRoom": true, "dailyRoomProperties": { "start_video_off": true }, "body": { "custom_data": "value" } }The
bodyinformation is parsed and used in the application. ThedailyRoomPropertiesare currently not handled. -
Added detailed latency logging to
UserBotLatencyLogObserver, capturing average response time between user stop and bot start, as well as minimum and maximum response latency. -
Added Chinese, Japanese, Korean word timestamp support to
CartesiaTTSService. -
Added
regionparameter toGladiaSTTService. Accepted values: eu-west (default), us-west.
Changed
-
System frames are now queued. Before, system frames could be generated from any task and would not guarantee any order which was causing undesired behavior. Also, it was possible to get into some rare recursion issues because of the way system frames were executed (they were executed in-place, meaning calling
push_frame()would finish after the system frame traversed all the pipeline). This makes system frames more deterministic. -
Changed the default model for both
ElevenLabsTTSServiceandElevenLabsHttpTTSServicetoeleven_turbo_v2_5. The rationale for this change is that the Turbo v2.5 model exhibits the most stable voice quality along with very low latency TTFB; latencies are on par with the Flash v2.5 model. Also, the Turbo v2.5 model outputs word/timestamp alignment data with correct spacing. -
The development runners
/connectand/startendpoint now both returndailyRoomanddailyTokenin place of the previousroom_urlandtoken. -
Updated the
pipecat.runner.dailyutility to only a takeDAILY_API_URLandDAILY_SAMPLE_ROOM_URLenvironment variables instead of argparsing-uand-k, respectively. -
Updated
daily-pythonto 0.19.6. -
Changed
TavusVideoServiceto send audio or video frames only after the transport is ready, preventing warning messages at startup. -
The development runner now strips any provided protocol (e.g. https://) from the proxy address and issues a warning. It also strips trailing
/.
Deprecated
-
In the
pipecat.runner.daily, theconfigure_with_args()function is deprecated. Use theconfigure()function instead. -
The development runner's
/connectendpoint is deprecated and will be removed in a future version. Use the/startendpoint in its place. In the meantime, both endpoints work and deliver equivalent functionality.
Fixed
-
Fixed a
DailyTransportissue that would result in an unhandledconcurrent.futures.CancelledErrorwhen a future is cancelled. -
Fixed a
RivaSTTServiceissue that would result in an unhandledconcurrent.futures.CancelledErrorwhen a future is cancelled when reading from the audio chunks from the incoming audio stream. -
Fixed an issue in the
BaseOutputTransport, mainly reproducible withFastAPIWebsocketOutputTransportwhen the audio mixer was enabled, where the loop could consume 100% CPU by continuously returning without delay, preventing other asyncio tasks (such as cancellation or shutdown signals) from being processed. -
Fixed an issue where
BotStartedSpeakingFrameandBotStoppedSpeakingFramewere not emitted when usingTavusVideoServiceorHeyGenVideoService. -
Fixed an issue in
LiveKitTransportwhere emptyAudioRawFrames were pushed down the pipeline. This resulted in warnings by the STT processor. -
Fixed
PiperTTSServiceto send text as a JSON object in the request body,
resolving compatibility with Piper's HTTP API. -
Fixed an issue with the
TavusVideoServicewhere an error was thrown due to missing transcription callbacks. -
Fixed an issue in
SpeechmaticsSTTServicewhere theuser_idwas set toNonewhen diarization is not enabled.
Performance
- Fixed an issue in
TaskObserver(a proxy to all observers) that was degrading global performance.
Other
- Added
07aa-interruptible-soniox.py,07ab-interruptible-inworld-http.py,07ac-interruptible-asyncai.pyand07ac-interruptible-asyncai-http.pyrelease evals.