v0.0.70

pipecat-ai/pipecatv0.0.70Jun 10, 2025by aconchillo

AI Summary

Release adding ExotelFrameSerializer, CartesiaSTTService, WebsocketTransport example, and language support to RimeHttpTTSService.

Key Highlights

  • Added ExotelFrameSerializer for telephony calls via Exotel
  • Added CartesiaSTTService for websocket-based transcription
  • Added WebsocketTransport example showing client/server connections
  • Added language support to RimeHttpTTSService (German and French)

Breaking Changes

  • Pipecat 0.0.69 forced uvloop event loop on Linux on macOS; now not enabled by default
  • SmallWebRTCTransport updated to use on_client_disconnected instead of on_client_close

New Features

  • ExotelFrameSerializer
  • CartesiaSTTService
  • WebsocketTransport example
  • Informal language option for Gladia config
  • Language support for RimeHttpTTSService

Full Release Notes

### Added

- Added `ExotelFrameSerializer` to handle telephony calls via Exotel.

- Added the option `informal` to `TranslationConfig` on Gladia config.  Allowing to force informal language forms when available.

- Added `CartesiaSTTService` which is a websocket based implementation to transcribe audio. Added a foundational example in `13f-cartesia-transcription.py`

- Added an `websocket` example, showing how to use the new Pipecat client `WebsocketTransport` to connect with Pipecat `FastAPIWebsocketTransport` or `WebsocketServerTransport`.

- Added language support to `RimeHttpTTSService`. Extended languages to include German and French for both `RimeTTSService` and `RimeHttpTTSService`.

### Changed

- Upgraded `daily-python` to 0.19.2.

- Make `PipelineTask.add_observer()` synchronous. This allows callers to call it before doing the work of running the `PipelineTask` (i.e. without invoking `PipelineTask.set_event_loop()` first).

- Pipecat 0.0.69 forced `uvloop` event loop on Linux on macOS. Unfortunately, this is causing issue in some systems. So, `uvloop` is not enabled by default anymore. If you want to use `uvloop` you can just set the `asyncio` event policy before starting your agent with:

```python
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
```

### Fixed

- Fixed an issue with various TTS services that would cause audio glitches at the start of every bot turn.

- Fixed an `ElevenLabsTTSService` issue where a context warning was printed when pushing a `TTSSpeakFrame`.

- Fixed an `AssemblyAISTTService` issue that could cause unexpected behavior when yielding empty `Frame()`s.

- Fixed an issue where `OutputAudioRawFrame.transport_destination` was being reset to `None` instead of retaining its intended value before sending the audio frame to `write_audio_frame`.

- Fixed a typo in Livekit transport that prevented initialization.