v0.0.20

pipecat-ai/pipecatv0.0.20May 22, 2024by aconchillo

AI Summary

This release focuses on improving interruption handling through audio loudness normalization and fixes critical bugs related to LLM response triggering and task execution.

Key Highlights

  • Implemented audio loudness calculation using `pyloudnorm` to improve interruption detection
  • Fixed `StartInterruptionFrame` causing incorrect LLM responses
  • Resolved task and thread pausing issues caused by executor starvation

New Features

  • Audio loudness level computation using pyloudnorm

Full Release Notes

### Added

- In order to improve interruptions we now compute a loudness level using [pyloudnorm](https://github.com/csteinmetz1/pyloudnorm). The audio coming WebRTC transports (e.g. Daily) have an Automatic Gain Control (AGC) algorithm applied to the signal, however we don't do that on our local PyAudio signals. This means that currently incoming audio from PyAudio is kind of broken. We will fix it in future releases.

### Fixed

- Fixed an issue where `StartInterruptionFrame` would cause `LLMUserResponseAggregator` to push the accumulated text causing the LLM respond in the wrong task. The `StartInterruptionFrame` should not trigger any new LLM response because that would be spoken in a different task.

- Fixed an issue where tasks and threads could be paused because the executor didn't have more tasks available. This was causing issues when cancelling and recreating tasks during interruptions.