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.