v0.0.26

pipecat-ai/pipecatv0.0.26Jun 5, 2024by aconchillo

AI Summary

Added OpenAI TTS support, Daily REST helper for room management, and performance improvements for Daily transport.

Key Highlights

  • Added OpenAITTSService.
  • Added DailyRESTHelper for easy room and token creation.
  • Performance: Daily transport pushes audio every 20ms instead of 10ms.
  • Added PipelineTask.has_finished() and PipelineRunner SIGTERM support.

New Features

  • OpenAITTSService
  • DailyRESTHelper
  • SIGTERM support

Full Release Notes

### 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.