diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d33b8257..985834aba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,13 +9,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- Added `CartesiaHttpTTSService`. This is a synchronous frame processor - (i.e. given an input text frame it will wait for the whole output before - returning). +- Pipecat has a pipeline-based architecture. The pipeline consists of frame + processors linked to each other. The elements traveling across the pipeline + are called frames. -- A clock can now be specified to `PipelineTask` (defaults to - `SystemClock`). This clock will be passed to each frame processor via the - `StartFrame`. + To have a deterministic behavior the frames traveling through the pipeline + should always be ordered, except system frames which are out-of-band + frames. To achieve that, each frame processor should only output frames from a + single task. + + In this version we introduce synchronous and asynchronous frame + processors. The synchronous processors push output frames from the same task + that they receive input frames, and therefore only pushing frames from one + task. Asynchronous frame processors can have internal tasks to perform things + asynchronously (e.g. receiving data from a websocket) but they also have a + single task where they push frames from. + + By default, frame processors are synchronous. To change a frame processor to + asynchronous you only need to pass `sync=False` to the base class constructor. - Added pipeline clocks. A pipeline clock is used by the output transport to know when a frame needs to be presented. For that, all frames now have an @@ -23,6 +34,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 clock implementation `SystemClock` and the `pts` field is currently only used for `TextFrame`s (audio and image frames will be next). +- A clock can now be specified to `PipelineTask` (defaults to + `SystemClock`). This clock will be passed to each frame processor via the + `StartFrame`. + +- Added `CartesiaHttpTTSService`. This is a synchronous frame processor + (i.e. given an input text frame it will wait for the whole output before + returning). + - `DailyTransport` now supports setting the audio bitrate to improve audio quality through the `DailyParams.audio_out_bitrate` parameter. The new default is 96kbps.