v0.0.37

pipecat-ai/pipecatv0.0.37Jul 23, 2024by aconchillo

AI Summary

Implemented RTVIProcessor and added control frames for interrupting the bot and updating context/voice. Removed legacy LLM response frames.

Key Highlights

  • Added `RTVIProcessor` implementing the RTVI-AI standard.
  • Added `BotInterruptionFrame`, `TTSSpeakFrame`, `TTSVoiceUpdateFrame`, and `LLMModelUpdateFrame`.
  • Removed `LLMResponseStartFrame` and `LLMResponseEndFrame`.

Breaking Changes

  • Removed `LLMResponseStartFrame` and `LLMResponseEndFrame`.

New Features

  • RTVIProcessor
  • BotInterruptionFrame
  • TTSSpeakFrame
  • TTSVoiceUpdateFrame
  • LLMModelUpdateFrame

Full Release Notes

### Added

- Added `RTVIProcessor` which implements the RTVI-AI standard.
  See https://github.com/rtvi-ai

- Added `BotInterruptionFrame` which allows interrupting the bot while talking.

- Added `LLMMessagesAppendFrame` which allows appending messages to the current LLM context.

- Added `LLMMessagesUpdateFrame` which allows changing the LLM context for the one provided in this new frame.

- Added `LLMModelUpdateFrame` which allows updating the LLM model.

- Added `TTSSpeakFrame` which causes the bot say some text. This text will not be part of the LLM context.

- Added `TTSVoiceUpdateFrame` which allows updating the TTS voice.

### Removed

- We remove the `LLMResponseStartFrame` and `LLMResponseEndFrame` frames. These were added in the past to properly handle interruptions for the `LLMAssistantContextAggregator`. But the `LLMContextAggregator` is now based on `LLMResponseAggregator` which handles interruptions properly by just processing the `StartInterruptionFrame`, so there's no need for these extra frames any more.

### Fixed

- Fixed an issue with `StatelessTextTransformer` where it was pushing a string instead of a `TextFrame`.

- `TTSService` end of sentence detection has been improved. It now works with acronyms, numbers, hours and others.

- Fixed an issue in `TTSService` that would not properly flush the current aggregated sentence if an `LLMFullResponseEndFrame` was found.

### Performance

- `CartesiaTTSService` now uses websockets which improves speed. It also leverages the new Cartesia contexts which maintains generated audio prosody when multiple inputs are sent, therefore improving audio quality a lot.