Skip to content

Releases: pipecat-ai/pipecat

v0.0.32

22 Jun 16:23
269d06a
Compare
Choose a tag to compare

Added

  • Allow specifying a DeepgramSTTService url which allows using on-prem Deepgram.

  • Added new FastAPIWebsocketTransport. This is a new websocket transport that can be integrated with FastAPI websockets.

  • Added new TwilioFrameSerializer. This is a new serializer that knows how to serialize and deserialize audio frames from Twilio.

  • Added Daily transport event: on_dialout_answered. See https://reference-python.daily.co/api_reference.html#daily.EventHandler

  • Added new AzureSTTService. This allows you to use Azure Speech-To-Text.

Performance

  • Convert BaseOutputTransport and BaseOutputTransport to fully use asyncio and remove the use of threads.

Other

  • Added twilio-chatbot. This is an example that shows how to integrate Twilio phone numbers with a Pipecat bot.

  • Updated 07f-interruptible-azure.py to use AzureLLMService, AzureSTTService and AzureTTSService.

v0.0.31

13 Jun 22:33
6cdccaf
Compare
Choose a tag to compare

Performance

  • Break long audio frames into 20ms chunks instead of 10ms.

v0.0.30

13 Jun 21:30
4193a4f
Compare
Choose a tag to compare

Added

  • Added report_only_initial_ttfb to PipelineParams. This will make it so only the initial TTFB metrics after the user stops talking are reported.

  • Added OpenPipeLLMService. This service will let you run OpenAI through OpenPipe's SDK.

  • Allow specifying frame processors' name through a new name constructor argument.

  • Added DeepgramSTTService. This service has an ongoing websocket connection. To handle this, it subclasses AIService instead of STTService. The output of this service will be pushed from the same task, except system frames like StartFrame, CancelFrame or StartInterruptionFrame.

Changed

  • FrameSerializer.deserialize() can now return None in case it is not possible to desearialize the given data.

  • daily_rest.DailyRoomProperties now allows extra unknown parameters.

Fixed

  • Fixed an issue where DailyRoomProperties.exp always had the same old timestamp unless set by the user.

  • Fixed a couple of issues with WebsocketServerTransport. It needed to use push_audio_frame() and also VAD was not working properly.

  • Fixed an issue that would cause LLM aggregator to fail with small VADParams.stop_secs values.

  • Fixed an issue where BaseOutputTransport would send longer audio frames preventing interruptions.

Other

  • Added new 07h-interruptible-openpipe.py example. This example shows how to use OpenPipe to run OpenAI LLMs and get the logs stored in OpenPipe.

  • Added new dialin-chatbot example. This examples shows how to call the bot using a phone number.

v0.0.29

07 Jun 20:47
7603996
Compare
Choose a tag to compare

Added

  • Added a new FunctionFilter. This filter will let you filter frames based on a given function, except system messages which should never be filtered.

  • Added FrameProcessor.can_generate_metrics() method to indicate if a processor can generate metrics. In the future this might get an extra argument to ask for a specific type of metric.

  • Added BasePipeline. All pipeline classes should be based on this class. All subclasses should implement a processors_with_metrics() method that returns a list of all FrameProcessors in the pipeline that can generate metrics.

  • Added enable_metrics to PipelineParams.

  • Added MetricsFrame. The MetricsFrame will report different metrics in the system. Right now, it can report TTFB (Time To First Byte) values for different services, that is the time spent between the arrival of a Frame to the processor/service until the first DataFrame is pushed downstream. If metrics are enabled an intial MetricsFrame with all the services in the pipeline will be sent.

  • Added TTFB metrics and debug logging for TTS services.

Changed

  • Moved ParallelTask to pipecat.pipeline.parallel_task.

Fixed

  • Fixed PlayHT TTS service to work properly async.

v0.0.28

05 Jun 21:53
cd60a84
Compare
Choose a tag to compare

Fixed

  • Fixed an issue with SileroVADAnalyzer that would cause memory to keep growing indefinitely.

v0.0.27

05 Jun 19:17
2d1ed9a
Compare
Choose a tag to compare

Added

  • Added DailyTransport.participants() and DailyTransport.participant_counts().

v0.0.26

05 Jun 17:13
2f4467b
Compare
Choose a tag to compare

Added

  • Added OpenAITTSService.

  • Allow passing output_format and model_id to CartesiaTTSService to change audio sample format and the model to use.

  • Added DailyRESTHelper which helps you create Daily rooms and tokens in an easy way.

  • PipelineTask now has a has_finished() method to indicate if the task has completed. If a task is never ran has_finished() will return False.

  • PipelineRunner now supports SIGTERM. If received, the runner will be canceled.

Fixed

  • Fixed an issue where BaseInputTransport and BaseOutputTransport where stopping push tasks before pushing EndFrame frames could cause the bots to get stuck.

  • Fixed an error closing local audio transports.

  • Fixed an issue with Deepgram TTS that was introduced in the previous release.

  • Fixed AnthropicLLMService interruptions. If an interruption occurred, a user message could be appended after the previous user message. Anthropic does not allow that because it requires alternate user and assistant messages.

Performance

  • The BaseInputTransport does not pull audio frames from sub-classes any more. Instead, sub-classes now push audio frames into a queue in the base class. Also, DailyInputTransport now pushes audio frames every 20ms instead of 10ms.

  • Remove redundant camera input thread from DailyInputTransport. This should improve performance a little bit when processing participant videos.

  • Load Cartesia voice on startup.

v0.0.25

31 May 23:53
0197efa
Compare
Choose a tag to compare

Added

  • Added WebsocketServerTransport. This will create a websocket server and will read messages coming from a client. The messages are serialized/deserialized with protobufs. See examples/websocket-server for a detailed example.

  • Added function calling (LLMService.register_function()). This will allow the LLM to call functions you have registered when needed. For example, if you register a function to get the weather in Los Angeles and ask the LLM about the weather in Los Angeles, the LLM will call your function. See https://platform.openai.com/docs/guides/function-calling

  • Added new LangchainProcessor.

  • Added Cartesia TTS support (https://cartesia.ai/)

Fixed

  • Fixed SileroVAD frame processor.

  • Fixed an issue where camera_out_enabled would cause the highg CPU usage if no image was provided.

Performance

  • Removed unnecessary audio input tasks.

v0.0.24

29 May 15:26
c444004
Compare
Choose a tag to compare

Added

  • Exposed on_dialin_ready for Daily transport SIP endpoint handling. This notifies when the Daily room SIP endpoints are ready. This allows integrating with third-party services like Twilio.

  • Exposed Daily transport on_app_message event.

  • Added Daily transport on_call_state_updated event.

  • Added Daily transport start_recording(), stop_recording and stop_dialout.

Changed

  • Added PipelineParams. This replaces the allow_interruptions argument in PipelineTask and will allow future parameters in the future.

  • Fixed Deepgram Aura TTS base_url and added ErrorFrame reporting.

  • GoogleLLMService api_key argument is now mandatory.

Fixed

  • Daily tranport dialin-ready doesn't not block anymore and it now handles timeouts.

  • Fixed AzureLLMService.

v0.0.23

23 May 21:43
fa9f49f
Compare
Choose a tag to compare

Fixed

  • Fixed an issue handling Daily transport dialin-ready event.