update cosmetic changelog updates for 0.0.99
This commit is contained in:
218
CHANGELOG.md
218
CHANGELOG.md
@@ -15,13 +15,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
turn starts or stops. In conversational agents, these are often referred to
|
turn starts or stops. In conversational agents, these are often referred to
|
||||||
as start/stop speaking or turn-taking plans or policies.
|
as start/stop speaking or turn-taking plans or policies.
|
||||||
|
|
||||||
User turn start strategies indicate when the user starts speaking (e.g.
|
User turn start strategies indicate when the user starts speaking (e.g.
|
||||||
using VAD events or when a user says one or more words).
|
using VAD events or when a user says one or more words).
|
||||||
|
|
||||||
User turn stop strategies indicate when the user stops speaking (e.g. using
|
User turn stop strategies indicate when the user stops speaking (e.g. using
|
||||||
an end-of-turn detection model or by observing incoming transcriptions).
|
an end-of-turn detection model or by observing incoming transcriptions).
|
||||||
|
|
||||||
A list of strategies can be specified for both strategies; strategies are
|
A list of strategies can be specified for both strategies; strategies are
|
||||||
evaluated in order until one evaluates to true.
|
evaluated in order until one evaluates to true.
|
||||||
|
|
||||||
Available user turn start strategies:
|
Available user turn start strategies:
|
||||||
@@ -40,7 +40,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- start: [VADUserTurnStartStrategy, TranscriptionUserTurnStartStrategy]
|
- start: [VADUserTurnStartStrategy, TranscriptionUserTurnStartStrategy]
|
||||||
- stop: [TranscriptionUserTurnStopStrategy]
|
- stop: [TranscriptionUserTurnStopStrategy]
|
||||||
|
|
||||||
Turn strategies are configured when setting up `LLMContextAggregatorPair`.
|
urn strategies are configured when setting up `LLMContextAggregatorPair`.
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
@@ -58,13 +58,13 @@ turn_analyzer=LocalSmartTurnAnalyzerV3(params=SmartTurnParams())
|
|||||||
)
|
)
|
||||||
```
|
```
|
||||||
|
|
||||||
In order to use the user turn strategies you must update to the new
|
In order to use the user turn strategies you must update to the new
|
||||||
universal `LLMContext` and `LLMContextAggregatorPair`.
|
universal `LLMContext` and `LLMContextAggregatorPair`.
|
||||||
(PR [#3045](https://github.com/pipecat-ai/pipecat/pull/3045))
|
(PR [#3045](https://github.com/pipecat-ai/pipecat/pull/3045))
|
||||||
|
|
||||||
- Added `RNNoiseFilter` for real-time noise suppression using RNNoise neural
|
- Added `RNNoiseFilter` for real-time noise suppression using RNNoise neural
|
||||||
network via pyrnnoise library.
|
network via pyrnnoise library.
|
||||||
(PR [#3205](https://github.com/pipecat-ai/pipecat/pull/3205))
|
(PR [#3205](https://github.com/pipecat-ai/pipecat/pull/3205))
|
||||||
|
|
||||||
- Added `GrokRealtimeLLMService` for xAI's Grok Voice Agent API with real-time
|
- Added `GrokRealtimeLLMService` for xAI's Grok Voice Agent API with real-time
|
||||||
voice conversations:
|
voice conversations:
|
||||||
@@ -75,31 +75,31 @@ turn_analyzer=LocalSmartTurnAnalyzerV3(params=SmartTurnParams())
|
|||||||
- Built-in tools support: web_search, x_search, file_search
|
- Built-in tools support: web_search, x_search, file_search
|
||||||
- Custom function calling with standard Pipecat tools schema
|
- Custom function calling with standard Pipecat tools schema
|
||||||
- Configurable audio formats (PCM at 8kHz-48kHz)
|
- Configurable audio formats (PCM at 8kHz-48kHz)
|
||||||
(PR [#3267](https://github.com/pipecat-ai/pipecat/pull/3267))
|
(PR [#3267](https://github.com/pipecat-ai/pipecat/pull/3267))
|
||||||
|
|
||||||
- Added an approximation of TTFB for Ultravox.
|
- Added an approximation of TTFB for Ultravox.
|
||||||
(PR [#3268](https://github.com/pipecat-ai/pipecat/pull/3268))
|
(PR [#3268](https://github.com/pipecat-ai/pipecat/pull/3268))
|
||||||
|
|
||||||
- Added a new `AudioContextTTSService` to the TTS service base classes. The
|
- Added a new `AudioContextTTSService` to the TTS service base classes. The
|
||||||
`AudioContextWordTTSService` now inherits from `AudioContextTTSService` and
|
`AudioContextWordTTSService` now inherits from `AudioContextTTSService` and
|
||||||
`WebsocketWordTTSService`.
|
`WebsocketWordTTSService`.
|
||||||
(PR [#3289](https://github.com/pipecat-ai/pipecat/pull/3289))
|
(PR [#3289](https://github.com/pipecat-ai/pipecat/pull/3289))
|
||||||
|
|
||||||
- `LLMUserAggregator` now exposes the following events:
|
- `LLMUserAggregator` now exposes the following events:
|
||||||
- `on_user_turn_started`: triggered when a user turn starts
|
- `on_user_turn_started`: triggered when a user turn starts
|
||||||
- `on_user_turn_stopped`: triggered when a user turn ends
|
- `on_user_turn_stopped`: triggered when a user turn ends
|
||||||
- `on_user_turn_stop_timeout`: triggered when a user turn does not stop
|
- `on_user_turn_stop_timeout`: triggered when a user turn does not stop
|
||||||
and times out
|
and times out
|
||||||
(PR [#3291](https://github.com/pipecat-ai/pipecat/pull/3291))
|
(PR [#3291](https://github.com/pipecat-ai/pipecat/pull/3291))
|
||||||
|
|
||||||
- Introducing user mute strategies. User mute strategies indicate when user
|
- Introducing user mute strategies. User mute strategies indicate when user
|
||||||
input should be muted based on the current system state.
|
input should be muted based on the current system state.
|
||||||
|
|
||||||
In conversational agents, user mute strategies are used to prevent user
|
In conversational agents, user mute strategies are used to prevent user
|
||||||
input from interrupting bot speech, tool execution, or other critical system
|
input from interrupting bot speech, tool execution, or other critical system
|
||||||
operations.
|
operations.
|
||||||
|
|
||||||
A list of strategies can be specified; all strategies are evaluated for
|
A list of strategies can be specified; all strategies are evaluated for
|
||||||
every frame so that each strategy can maintain its internal state. A user
|
every frame so that each strategy can maintain its internal state. A user
|
||||||
frame is muted if any of the configured strategies indicates it should be
|
frame is muted if any of the configured strategies indicates it should be
|
||||||
muted.
|
muted.
|
||||||
@@ -111,10 +111,10 @@ turn_analyzer=LocalSmartTurnAnalyzerV3(params=SmartTurnParams())
|
|||||||
* `AlwaysUserMuteStrategy`
|
* `AlwaysUserMuteStrategy`
|
||||||
* `FunctionCallUserMuteStrategy`
|
* `FunctionCallUserMuteStrategy`
|
||||||
|
|
||||||
User mute strategies replace the legacy `STTMuteFilter` and provide a more
|
User mute strategies replace the legacy `STTMuteFilter` and provide a more
|
||||||
flexible and composable approach to muting user input.
|
flexible and composable approach to muting user input.
|
||||||
|
|
||||||
User mute strategies are configured when setting up the
|
User mute strategies are configured when setting up the
|
||||||
`LLMContextAggregatorPair`. For example:
|
`LLMContextAggregatorPair`. For example:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
@@ -128,35 +128,35 @@ turn_analyzer=LocalSmartTurnAnalyzerV3(params=SmartTurnParams())
|
|||||||
)
|
)
|
||||||
```
|
```
|
||||||
|
|
||||||
In order to use user mute strategies you should update to the new universal
|
In order to use user mute strategies you should update to the new universal
|
||||||
`LLMContext` and `LLMContextAggregatorPair`.
|
`LLMContext` and `LLMContextAggregatorPair`.
|
||||||
(PR [#3292](https://github.com/pipecat-ai/pipecat/pull/3292))
|
(PR [#3292](https://github.com/pipecat-ai/pipecat/pull/3292))
|
||||||
|
|
||||||
- Added `use_ssl` parameter to `NvidiaSTTService`, `NvidiaSegmentedSTTService`
|
- Added `use_ssl` parameter to `NvidiaSTTService`, `NvidiaSegmentedSTTService`
|
||||||
and `NvidiaTTSService`.
|
and `NvidiaTTSService`.
|
||||||
(PR [#3300](https://github.com/pipecat-ai/pipecat/pull/3300))
|
(PR [#3300](https://github.com/pipecat-ai/pipecat/pull/3300))
|
||||||
|
|
||||||
- Added `enable_interruptions` constructor argument to all user turn
|
- Added `enable_interruptions` constructor argument to all user turn
|
||||||
strategies. This tells the `LLMUserAggregator` to push or not push an
|
strategies. This tells the `LLMUserAggregator` to push or not push an
|
||||||
`InterruptionFrame`.
|
`InterruptionFrame`.
|
||||||
(PR [#3316](https://github.com/pipecat-ai/pipecat/pull/3316))
|
(PR [#3316](https://github.com/pipecat-ai/pipecat/pull/3316))
|
||||||
|
|
||||||
- Added `split_sentences` parameter to `SpeechmaticsSTTService` to control
|
- Added `split_sentences` parameter to `SpeechmaticsSTTService` to control
|
||||||
sentence splitting behavior for finals on sentence boundaries.
|
sentence splitting behavior for finals on sentence boundaries.
|
||||||
(PR [#3328](https://github.com/pipecat-ai/pipecat/pull/3328))
|
(PR [#3328](https://github.com/pipecat-ai/pipecat/pull/3328))
|
||||||
|
|
||||||
- Added word-level timestamp support to `AzureTTSService` for accurate
|
- Added word-level timestamp support to `AzureTTSService` for accurate
|
||||||
text-to-audio synchronization.
|
text-to-audio synchronization.
|
||||||
(PR [#3334](https://github.com/pipecat-ai/pipecat/pull/3334))
|
(PR [#3334](https://github.com/pipecat-ai/pipecat/pull/3334))
|
||||||
|
|
||||||
- Added `pronunciation_dict_id` parameter to `CartesiaTTSService.InputParams`
|
- Added `pronunciation_dict_id` parameter to `CartesiaTTSService.InputParams`
|
||||||
and `CartesiaHttpTTSService.InputParams` to support Cartesia's pronunciation
|
and `CartesiaHttpTTSService.InputParams` to support Cartesia's pronunciation
|
||||||
dictionary feature for custom pronunciations.
|
dictionary feature for custom pronunciations.
|
||||||
(PR [#3346](https://github.com/pipecat-ai/pipecat/pull/3346))
|
(PR [#3346](https://github.com/pipecat-ai/pipecat/pull/3346))
|
||||||
|
|
||||||
- Added support for using the HeyGen LiveAvatar API with the `HeyGenTransport`
|
- Added support for using the HeyGen LiveAvatar API with the `HeyGenTransport`
|
||||||
(see https://www.liveavatar.com/).
|
(see https://www.liveavatar.com/).
|
||||||
(PR [#3357](https://github.com/pipecat-ai/pipecat/pull/3357))
|
(PR [#3357](https://github.com/pipecat-ai/pipecat/pull/3357))
|
||||||
|
|
||||||
- Added image support to `OpenAIRealtimeLLMService` via `InputImageRawFrame`:
|
- Added image support to `OpenAIRealtimeLLMService` via `InputImageRawFrame`:
|
||||||
- New `start_video_paused` parameter to control initial video input state
|
- New `start_video_paused` parameter to control initial video input state
|
||||||
@@ -166,37 +166,37 @@ turn_analyzer=LocalSmartTurnAnalyzerV3(params=SmartTurnParams())
|
|||||||
parameter.
|
parameter.
|
||||||
- `set_video_input_paused()` method to pause/resume video input at runtime
|
- `set_video_input_paused()` method to pause/resume video input at runtime
|
||||||
- `set_video_frame_detail()` method to adjust video frame quality
|
- `set_video_frame_detail()` method to adjust video frame quality
|
||||||
dynamically
|
dynamically
|
||||||
- Automatic rate limiting (1 frame per second) to prevent API overload
|
- Automatic rate limiting (1 frame per second) to prevent API overload
|
||||||
(PR [#3360](https://github.com/pipecat-ai/pipecat/pull/3360))
|
(PR [#3360](https://github.com/pipecat-ai/pipecat/pull/3360))
|
||||||
|
|
||||||
- Added `UserTurnProcessor`, a frame processor built on `UserTurnController`
|
- Added `UserTurnProcessor`, a frame processor built on `UserTurnController`
|
||||||
that pushes `UserStartedSpeakingFrame` and `UserStoppedSpeakingFrame` frames
|
that pushes `UserStartedSpeakingFrame` and `UserStoppedSpeakingFrame` frames
|
||||||
and interruptions based on the controller's user turn strategies.
|
and interruptions based on the controller's user turn strategies.
|
||||||
(PR [#3372](https://github.com/pipecat-ai/pipecat/pull/3372))
|
(PR [#3372](https://github.com/pipecat-ai/pipecat/pull/3372))
|
||||||
|
|
||||||
- Added `UserTurnController` to manage user turns. It emits
|
- Added `UserTurnController` to manage user turns. It emits
|
||||||
`on_user_turn_started`, `on_user_turn_stopped`, and
|
`on_user_turn_started`, `on_user_turn_stopped`, and
|
||||||
`on_user_turn_stop_timeout` events, and can be integrated into processors to
|
`on_user_turn_stop_timeout` events, and can be integrated into processors to
|
||||||
detect and handle user turns. `LLMUserAggregator` and `UserTurnProcessor` are
|
detect and handle user turns. `LLMUserAggregator` and `UserTurnProcessor` are
|
||||||
implemented using this controller.
|
implemented using this controller.
|
||||||
(PR [#3372](https://github.com/pipecat-ai/pipecat/pull/3372))
|
(PR [#3372](https://github.com/pipecat-ai/pipecat/pull/3372))
|
||||||
|
|
||||||
- Added `should_interrupt` property to `DeepgramFluxSTTService`,
|
- Added `should_interrupt` property to `DeepgramFluxSTTService`,
|
||||||
`DeepgramSTTService`, and `SpeechmaticsSTTService` to configure whether the
|
`DeepgramSTTService`, and `SpeechmaticsSTTService` to configure whether the
|
||||||
bot should be interrupted when the external service detects user speech.
|
bot should be interrupted when the external service detects user speech.
|
||||||
(PR [#3374](https://github.com/pipecat-ai/pipecat/pull/3374))
|
(PR [#3374](https://github.com/pipecat-ai/pipecat/pull/3374))
|
||||||
|
|
||||||
- `LLMAssistantAggregator` now exposes the following events:
|
- `LLMAssistantAggregator` now exposes the following events:
|
||||||
- `on_assistant_turn_started`: triggered when the assistant turn starts
|
- `on_assistant_turn_started`: triggered when the assistant turn starts
|
||||||
- `on_assistant_turn_stopped`: triggered when the assistant turn ends
|
- `on_assistant_turn_stopped`: triggered when the assistant turn ends
|
||||||
- `on_assistant_thought`: triggered when there's an assistant thought
|
- `on_assistant_thought`: triggered when there's an assistant thought
|
||||||
available
|
available
|
||||||
(PR [#3385](https://github.com/pipecat-ai/pipecat/pull/3385))
|
(PR [#3385](https://github.com/pipecat-ai/pipecat/pull/3385))
|
||||||
|
|
||||||
- Added `KrispVivaTurn` analyzer for end of turn detection using the Krisp VIVA
|
- Added `KrispVivaTurn` analyzer for end of turn detection using the Krisp VIVA
|
||||||
SDK (requires `krisp_audio`).
|
SDK (requires `krisp_audio`).
|
||||||
(PR [#3391](https://github.com/pipecat-ai/pipecat/pull/3391))
|
(PR [#3391](https://github.com/pipecat-ai/pipecat/pull/3391))
|
||||||
|
|
||||||
- Added support for setting up a pipeline task from external files. You can now
|
- Added support for setting up a pipeline task from external files. You can now
|
||||||
register custom pipeline task setup files by setting the
|
register custom pipeline task setup files by setting the
|
||||||
@@ -209,30 +209,30 @@ turn_analyzer=LocalSmartTurnAnalyzerV3(params=SmartTurnParams())
|
|||||||
async def setup_pipeline_task(task: PipelineTask):
|
async def setup_pipeline_task(task: PipelineTask):
|
||||||
...
|
...
|
||||||
```
|
```
|
||||||
(PR [#3397](https://github.com/pipecat-ai/pipecat/pull/3397))
|
(PR [#3397](https://github.com/pipecat-ai/pipecat/pull/3397))
|
||||||
|
|
||||||
- Added a keepalive task for `InworldTTSService` to keep the service connected
|
- Added a keepalive task for `InworldTTSService` to keep the service connected
|
||||||
in the event of no generations for longer periods of time.
|
in the event of no generations for longer periods of time.
|
||||||
(PR [#3403](https://github.com/pipecat-ai/pipecat/pull/3403))
|
(PR [#3403](https://github.com/pipecat-ai/pipecat/pull/3403))
|
||||||
|
|
||||||
- Added `enable_vad` to `Params` for use in the `GladiaSTTService`. When
|
- Added `enable_vad` to `Params` for use in the `GladiaSTTService`. When
|
||||||
enabled, `GladiaSTTService` acts as the turn controller, emitting
|
enabled, `GladiaSTTService` acts as the turn controller, emitting
|
||||||
`UserStartedSpeakingFrame`, `UserStoppedSpeakingFrame`, and optionally
|
`UserStartedSpeakingFrame`, `UserStoppedSpeakingFrame`, and optionally
|
||||||
`InterruptionFrame`.
|
`InterruptionFrame`.
|
||||||
(PR [#3404](https://github.com/pipecat-ai/pipecat/pull/3404))
|
(PR [#3404](https://github.com/pipecat-ai/pipecat/pull/3404))
|
||||||
|
|
||||||
- Added `should_interrupt` property to `GladiaSTTService` to configure whether
|
- Added `should_interrupt` property to `GladiaSTTService` to configure whether
|
||||||
the bot should be interrupted when the external service detects user speech.
|
the bot should be interrupted when the external service detects user speech.
|
||||||
(PR [#3404](https://github.com/pipecat-ai/pipecat/pull/3404))
|
(PR [#3404](https://github.com/pipecat-ai/pipecat/pull/3404))
|
||||||
|
|
||||||
- Added `VonageFrameSerializer` for the Vonage Video API Audio Connector
|
- Added `VonageFrameSerializer` for the Vonage Video API Audio Connector
|
||||||
WebSocket protocol.
|
WebSocket protocol.
|
||||||
(PR [#3410](https://github.com/pipecat-ai/pipecat/pull/3410))
|
(PR [#3410](https://github.com/pipecat-ai/pipecat/pull/3410))
|
||||||
|
|
||||||
- Added `append_trailing_space` parameter to `TTSService` to automatically
|
- Added `append_trailing_space` parameter to `TTSService` to automatically
|
||||||
append a trailing space to text before sending to TTS, helping prevent some
|
append a trailing space to text before sending to TTS, helping prevent some
|
||||||
services from vocalizing trailing punctuation.
|
services from vocalizing trailing punctuation.
|
||||||
(PR [#3424](https://github.com/pipecat-ai/pipecat/pull/3424))
|
(PR [#3424](https://github.com/pipecat-ai/pipecat/pull/3424))
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
@@ -244,16 +244,13 @@ turn_analyzer=LocalSmartTurnAnalyzerV3(params=SmartTurnParams())
|
|||||||
include_language_detection=True
|
include_language_detection=True
|
||||||
)
|
)
|
||||||
```
|
```
|
||||||
(PR [#3216](https://github.com/pipecat-ai/pipecat/pull/3216))
|
(PR [#3216](https://github.com/pipecat-ai/pipecat/pull/3216))
|
||||||
|
|
||||||
- Updated `SpeechmaticsSTTService` to use new Python Voice SDK with improved
|
- Updated `SpeechmaticsSTTService` to use new Python Voice SDK with improved
|
||||||
VAD,
|
VAD, Smart Turn capabilities, and brings dramatic improvements to latency
|
||||||
Smart Turn capabilities, and brings dramatic improvements to latency
|
without any impact on accuracy. Use the `turn_detection_mode` parameter to control
|
||||||
without
|
the endpointing of speech, with `TurnDetectionMode.EXTERNAL` (default),
|
||||||
any impact on accuracy. Use the `turn_detection_mode` parameter to control
|
`TurnDetectionMode.ADAPTIVE`, or `TurnDetectionMode.SMART_TURN`.
|
||||||
the
|
|
||||||
endpointing of speech, with `TurnDetectionMode.EXTERNAL` (default),
|
|
||||||
`TurnDetectionMode.ADAPTIVE`, or `TurnDetectionMode.SMART_TURN`.
|
|
||||||
```python
|
```python
|
||||||
stt = SpeechmaticsSTTService(
|
stt = SpeechmaticsSTTService(
|
||||||
api_key=os.getenv("SPEECHMATICS_API_KEY"),
|
api_key=os.getenv("SPEECHMATICS_API_KEY"),
|
||||||
@@ -264,126 +261,119 @@ turn_detection_mode=SpeechmaticsSTTService.TurnDetectionMode.ADAPTIVE,
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
```
|
```
|
||||||
(PR [#3225](https://github.com/pipecat-ai/pipecat/pull/3225))
|
(PR [#3225](https://github.com/pipecat-ai/pipecat/pull/3225))
|
||||||
|
|
||||||
- `daily-python` updated to 0.23.0.
|
- `daily-python` updated to 0.23.0.
|
||||||
(PR [#3257](https://github.com/pipecat-ai/pipecat/pull/3257))
|
(PR [#3257](https://github.com/pipecat-ai/pipecat/pull/3257))
|
||||||
|
|
||||||
- `TranscriptionFrame` and `InterimTranscriptionFrame` produced by
|
- `TranscriptionFrame` and `InterimTranscriptionFrame` produced by
|
||||||
`DailyTransport` now include the transport source (i.e., the originating
|
`DailyTransport` now include the transport source (i.e., the originating
|
||||||
audio track).
|
audio track).
|
||||||
(PR [#3257](https://github.com/pipecat-ai/pipecat/pull/3257))
|
(PR [#3257](https://github.com/pipecat-ai/pipecat/pull/3257))
|
||||||
|
|
||||||
- Updates to Inworld TTS services:
|
- Updates to Inworld TTS services:
|
||||||
|
|
||||||
- Improved `InworldTTSService`'s websocket implementation to better flush
|
- Improved `InworldTTSService`'s websocket implementation to better flush
|
||||||
and
|
and close context to better handle long inputs.
|
||||||
close context to better handle long inputs.
|
|
||||||
- Improved docstrings for `InworldTTSService` and `InworldHttpTTSService`.
|
- Improved docstrings for `InworldTTSService` and `InworldHttpTTSService`.
|
||||||
(PR [#3288](https://github.com/pipecat-ai/pipecat/pull/3288))
|
(PR [#3288](https://github.com/pipecat-ai/pipecat/pull/3288))
|
||||||
|
|
||||||
- Updated `DeepgramSTTService` to push user started/stopped speaking and
|
- Updated `DeepgramSTTService` to push user started/stopped speaking and
|
||||||
interruption frames when `vad_enabled` is set to true. This centralizes the
|
interruption frames when `vad_enabled` is set to true. This centralizes the
|
||||||
frames into the service, removing the need to have your application code
|
frames into the service, removing the need to have your application code
|
||||||
handle Deepgram's events and push these frames.
|
handle Deepgram's events and push these frames.
|
||||||
(PR [#3314](https://github.com/pipecat-ai/pipecat/pull/3314))
|
(PR [#3314](https://github.com/pipecat-ai/pipecat/pull/3314))
|
||||||
|
|
||||||
- Added encoding validation to `DeepgramTTSService` to prevent unsupported
|
- Added encoding validation to `DeepgramTTSService` to prevent unsupported
|
||||||
encodings from reaching the API. The service now raises `ValueError` at
|
encodings from reaching the API. The service now raises `ValueError` at
|
||||||
initialization with a clear error message.
|
initialization with a clear error message.
|
||||||
(PR [#3329](https://github.com/pipecat-ai/pipecat/pull/3329))
|
(PR [#3329](https://github.com/pipecat-ai/pipecat/pull/3329))
|
||||||
|
|
||||||
- Updated `read_audio_frame` & `read_video_frame` methods in
|
- Updated `read_audio_frame` & `read_video_frame` methods in
|
||||||
`SmallWebRTCClient` to check if the track is enabled before logging a
|
`SmallWebRTCClient` to check if the track is enabled before logging a
|
||||||
warning.
|
warning.
|
||||||
(PR [#3336](https://github.com/pipecat-ai/pipecat/pull/3336))
|
(PR [#3336](https://github.com/pipecat-ai/pipecat/pull/3336))
|
||||||
|
|
||||||
- Updated `CartesiaTTSService` to support setting `language=None`, resulting in
|
- Updated `CartesiaTTSService` to support setting `language=None`, resulting in
|
||||||
Cartesia auto-detecting the language of the conversation.
|
Cartesia auto-detecting the language of the conversation.
|
||||||
(PR [#3366](https://github.com/pipecat-ai/pipecat/pull/3366))
|
(PR [#3366](https://github.com/pipecat-ai/pipecat/pull/3366))
|
||||||
|
|
||||||
- The bundled Smart Turn weights are now updated to v3.2, which has better
|
- The bundled Smart Turn weights are now updated to v3.2, which has better
|
||||||
handling of short utterances, and is more robust against background
|
handling of short utterances, and is more robust against background noise.
|
||||||
noise.
|
(PR [#3367](https://github.com/pipecat-ai/pipecat/pull/3367))
|
||||||
(PR [#3367](https://github.com/pipecat-ai/pipecat/pull/3367))
|
|
||||||
|
|
||||||
- Updated `SpeechmaticsSTTService` dependency to
|
- Updated `SpeechmaticsSTTService` dependency to `speechmatics-voice[smart]>=0.2.6`
|
||||||
`speechmatics-voice[smart]>=0.2.6`
|
(PR [#3371](https://github.com/pipecat-ai/pipecat/pull/3371))
|
||||||
(PR [#3371](https://github.com/pipecat-ai/pipecat/pull/3371))
|
|
||||||
|
|
||||||
- Smart Turn now takes into account `vad_start_seconds` when buffering audio,
|
- Smart Turn now takes into account `vad_start_seconds` when buffering audio,
|
||||||
meaning that the start of the turn audio is not cut off. This improves
|
meaning that the start of the turn audio is not cut off. This improves
|
||||||
accuracy for short utterances.
|
accuracy for short utterances.
|
||||||
|
- The default value of `pre_speech_ms` is now set to 500ms for Smart Turn.
|
||||||
- The default value of `pre_speech_ms` is now set to 500ms for Smart Turn.
|
(PR [#3377](https://github.com/pipecat-ai/pipecat/pull/3377))
|
||||||
(PR [#3377](https://github.com/pipecat-ai/pipecat/pull/3377))
|
|
||||||
|
|
||||||
- Improved Krisp SDK management to allow `KrispVivaTurn` and `KrispVivaFilter`
|
- Improved Krisp SDK management to allow `KrispVivaTurn` and `KrispVivaFilter`
|
||||||
to share a single SDK instance within the same process.
|
to share a single SDK instance within the same process.
|
||||||
(PR [#3391](https://github.com/pipecat-ai/pipecat/pull/3391))
|
(PR [#3391](https://github.com/pipecat-ai/pipecat/pull/3391))
|
||||||
|
|
||||||
- Updated default model for `GroqTTSService` to `canopylabs/orpheus-v1-english`
|
- Updated default model for `GroqTTSService` to `canopylabs/orpheus-v1-english`
|
||||||
and voice ID to `autumn`.
|
and voice ID to `autumn`.
|
||||||
(PR [#3399](https://github.com/pipecat-ai/pipecat/pull/3399))
|
(PR [#3399](https://github.com/pipecat-ai/pipecat/pull/3399))
|
||||||
|
|
||||||
- Enhanced `FastAPIWebsocketTransport` with optional protocol-level audio
|
- Enhanced `FastAPIWebsocketTransport` with optional protocol-level audio
|
||||||
packetization via the `fixed_audio_packet_size` parameter to support media
|
packetization via the `fixed_audio_packet_size` parameter to support media
|
||||||
endpoints requiring strict framing and real-time pacing.
|
endpoints requiring strict framing and real-time pacing.
|
||||||
(PR [#3410](https://github.com/pipecat-ai/pipecat/pull/3410))
|
(PR [#3410](https://github.com/pipecat-ai/pipecat/pull/3410))
|
||||||
|
|
||||||
- `DeepgramTTSService` and `RimeTTSService` now set `append_trailing_space` to
|
- `DeepgramTTSService` and `RimeTTSService` now set `append_trailing_space` to
|
||||||
`True` to prevent punctuation (e.g., “dot”) from being pronounced.
|
`True` to prevent punctuation (e.g., “dot”) from being pronounced.
|
||||||
(PR [#3424](https://github.com/pipecat-ai/pipecat/pull/3424))
|
(PR [#3424](https://github.com/pipecat-ai/pipecat/pull/3424))
|
||||||
|
|
||||||
- Updated `GeminiLiveLLMService` to push `LLMThoughtStartFrame`,
|
- Updated `GeminiLiveLLMService` to push `LLMThoughtStartFrame`,
|
||||||
`LLMThoughtTextFrame`, and `LLMThoughtEndFrame` when the model returns
|
`LLMThoughtTextFrame`, and `LLMThoughtEndFrame` when the model returns
|
||||||
thought content.
|
thought content.
|
||||||
(PR [#3431](https://github.com/pipecat-ai/pipecat/pull/3431))
|
(PR [#3431](https://github.com/pipecat-ai/pipecat/pull/3431))
|
||||||
|
|
||||||
### Deprecated
|
### Deprecated
|
||||||
|
|
||||||
- `pipecat.audio.interruptions.MinWordsInterruptionStrategy` is deprecated. Use
|
- `pipecat.audio.interruptions.MinWordsInterruptionStrategy` is deprecated. Use
|
||||||
`pipecat.turns.user_start.MinWordsUserTurnStartStrategy` with
|
`pipecat.turns.user_start.MinWordsUserTurnStartStrategy` with
|
||||||
`LLMUserAggregator`'s new `user_turn_strategies` parameter instead.
|
`LLMUserAggregator`'s new `user_turn_strategies` parameter instead.
|
||||||
(PR [#3045](https://github.com/pipecat-ai/pipecat/pull/3045))
|
(PR [#3045](https://github.com/pipecat-ai/pipecat/pull/3045))
|
||||||
|
|
||||||
- `FrameProcessor.interruption_strategies` is deprecated, use
|
- `FrameProcessor.interruption_strategies` is deprecated, use
|
||||||
`LLMUserAggregator`'s new `user_turn_strategies` parameter instead.
|
`LLMUserAggregator`'s new `user_turn_strategies` parameter instead.
|
||||||
(PR [#3045](https://github.com/pipecat-ai/pipecat/pull/3045))
|
(PR [#3045](https://github.com/pipecat-ai/pipecat/pull/3045))
|
||||||
|
|
||||||
- The `LLMUserAggregatorParams` and `LLMAssistantAggregatorParams` classes in
|
- The `LLMUserAggregatorParams` and `LLMAssistantAggregatorParams` classes in
|
||||||
`pipecat.processors.aggregators.llm_response` are now deprecated. Use the new
|
`pipecat.processors.aggregators.llm_response` are now deprecated. Use the new
|
||||||
universal `LLMContext` and `LLMContextAggregatorPair` instead.
|
universal `LLMContext` and `LLMContextAggregatorPair` instead.
|
||||||
(PR [#3045](https://github.com/pipecat-ai/pipecat/pull/3045))
|
(PR [#3045](https://github.com/pipecat-ai/pipecat/pull/3045))
|
||||||
|
|
||||||
- Deprecated the `emulated` field in the `UserStartedSpeakingFrame` and
|
- Deprecated the `emulated` field in the `UserStartedSpeakingFrame` and
|
||||||
`UserStoppedSpeakingFrame` frames.
|
`UserStoppedSpeakingFrame` frames.
|
||||||
(PR [#3045](https://github.com/pipecat-ai/pipecat/pull/3045))
|
(PR [#3045](https://github.com/pipecat-ai/pipecat/pull/3045))
|
||||||
|
|
||||||
- `EmulateUserStartedSpeakingFrame` and `EmulateUserStoppedSpeakingFrame`
|
- `EmulateUserStartedSpeakingFrame` and `EmulateUserStoppedSpeakingFrame`
|
||||||
frames are deprecated.
|
frames are deprecated.
|
||||||
(PR [#3045](https://github.com/pipecat-ai/pipecat/pull/3045))
|
(PR [#3045](https://github.com/pipecat-ai/pipecat/pull/3045))
|
||||||
|
|
||||||
- ⚠️ `TransportParams.turn_analyzer` is deprecated and might result in
|
- ⚠️ `TransportParams.turn_analyzer` is deprecated and might result in
|
||||||
unexpected behavior, use `LLMUserAggregator`'s new `user_turn_strategies`
|
unexpected behavior, use `LLMUserAggregator`'s new `user_turn_strategies`
|
||||||
parameter instead.
|
parameter instead.
|
||||||
(PR [#3045](https://github.com/pipecat-ai/pipecat/pull/3045))
|
(PR [#3045](https://github.com/pipecat-ai/pipecat/pull/3045))
|
||||||
|
|
||||||
- For `SpeechmaticsSTTService`, the `end_of_utterance_mode` parameter is
|
- For `SpeechmaticsSTTService`, the `end_of_utterance_mode` parameter is
|
||||||
deprecated.
|
deprecated. Use the new `turn_detection_mode` parameter instead, with
|
||||||
Use the new `turn_detection_mode` parameter instead, with
|
`TurnDetectionMode.EXTERNAL`,`TurnDetectionMode.ADAPTIVE`, or
|
||||||
`TurnDetectionMode.EXTERNAL`,
|
`TurnDetectionMode.SMART_TURN`. The `enable_vad` parameter is also
|
||||||
`TurnDetectionMode.ADAPTIVE`, or `TurnDetectionMode.SMART_TURN`. The
|
deprecated and is inferred from the `turn_detection_mode`.
|
||||||
`enable_vad`
|
(PR [#3225](https://github.com/pipecat-ai/pipecat/pull/3225))
|
||||||
parameter is also deprecated and is inferred from the
|
|
||||||
`turn_detection_mode`.
|
|
||||||
(PR [#3225](https://github.com/pipecat-ai/pipecat/pull/3225))
|
|
||||||
|
|
||||||
- `OpenAILLMContext` and its associated things (context aggregators, etc.) are
|
- `OpenAILLMContext` and its associated things (context aggregators, etc.) are
|
||||||
now deprecated in favor of the universal `LLMContext` and its associated
|
now deprecated in favor of the universal `LLMContext` and its associated
|
||||||
things.
|
things.
|
||||||
|
|
||||||
From the developer's point of view, switching to using `LLMContext`
|
From the developer's point of view, switching to using `LLMContext`
|
||||||
machinery will usually be a matter of going from this:
|
machinery will usually be a matter of going from this:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
@@ -397,15 +387,15 @@ turn_detection_mode=SpeechmaticsSTTService.TurnDetectionMode.ADAPTIVE,
|
|||||||
context = LLMContext(messages, tools)
|
context = LLMContext(messages, tools)
|
||||||
context_aggregator = LLMContextAggregatorPair(context)
|
context_aggregator = LLMContextAggregatorPair(context)
|
||||||
```
|
```
|
||||||
(PR [#3263](https://github.com/pipecat-ai/pipecat/pull/3263))
|
(PR [#3263](https://github.com/pipecat-ai/pipecat/pull/3263))
|
||||||
|
|
||||||
- `STTMuteFilter` is deprecated and will be removed in a future version. Use
|
- `STTMuteFilter` is deprecated and will be removed in a future version. Use
|
||||||
`LLMUserAggregator`'s new `user_mute_strategies` instead.
|
`LLMUserAggregator`'s new `user_mute_strategies` instead.
|
||||||
(PR [#3292](https://github.com/pipecat-ai/pipecat/pull/3292))
|
(PR [#3292](https://github.com/pipecat-ai/pipecat/pull/3292))
|
||||||
|
|
||||||
- `FrameProcessor.interruptions_allowed` is now deprecated, use
|
- `FrameProcessor.interruptions_allowed` is now deprecated, use
|
||||||
`LLMUserAggregator`'s new parameter `user_mute_strategies` instead.
|
`LLMUserAggregator`'s new parameter `user_mute_strategies` instead.
|
||||||
(PR [#3297](https://github.com/pipecat-ai/pipecat/pull/3297))
|
(PR [#3297](https://github.com/pipecat-ai/pipecat/pull/3297))
|
||||||
|
|
||||||
- `PipelineParams.allow_interruptions` is now deprecated, use
|
- `PipelineParams.allow_interruptions` is now deprecated, use
|
||||||
`LLMUserAggregator`'s new parameter `user_turn_strategies` instead. For
|
`LLMUserAggregator`'s new parameter `user_turn_strategies` instead. For
|
||||||
@@ -421,95 +411,95 @@ start=[TranscriptionUserTurnStartStrategy(enable_interruptions=False)],
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
```
|
```
|
||||||
(PR [#3297](https://github.com/pipecat-ai/pipecat/pull/3297))
|
(PR [#3297](https://github.com/pipecat-ai/pipecat/pull/3297))
|
||||||
|
|
||||||
- `TranscriptProcessor` and related data classes and frames
|
- `TranscriptProcessor` and related data classes and frames
|
||||||
(`TranscriptionMessage`, `ThoughtTranscriptionMessage`,
|
(`TranscriptionMessage`, `ThoughtTranscriptionMessage`,
|
||||||
`TranscriptionUpdateFrame`) are deprecated. Use `LLMUserAggregator`'s and
|
`TranscriptionUpdateFrame`) are deprecated. Use `LLMUserAggregator`'s and
|
||||||
`LLMAssistantAggregator`'s new events (`on_user_turn_stopped` and
|
`LLMAssistantAggregator`'s new events (`on_user_turn_stopped` and
|
||||||
`on_assistant_turn_stopped`) instead.
|
`on_assistant_turn_stopped`) instead.
|
||||||
(PR [#3385](https://github.com/pipecat-ai/pipecat/pull/3385))
|
(PR [#3385](https://github.com/pipecat-ai/pipecat/pull/3385))
|
||||||
|
|
||||||
- Deprecated support for the `vad_events` `LiveOptions` in
|
- Deprecated support for the `vad_events` `LiveOptions` in
|
||||||
`DeepgramSTTService`. Instead, use a local Silero VAD for VAD events.
|
`DeepgramSTTService`. Instead, use a local Silero VAD for VAD events.
|
||||||
Additionally, deprecated `should_interrupt` which will be removed along with
|
Additionally, deprecated `should_interrupt` which will be removed along with
|
||||||
`vad_events` support in a future release.
|
`vad_events` support in a future release.
|
||||||
(PR [#3386](https://github.com/pipecat-ai/pipecat/pull/3386))
|
(PR [#3386](https://github.com/pipecat-ai/pipecat/pull/3386))
|
||||||
|
|
||||||
- Loading external observers from files is deprecated, use the new pipeline
|
- Loading external observers from files is deprecated, use the new pipeline
|
||||||
task setup files and `PIPECAT_SETUP_FILES` environment variable instead.
|
task setup files and `PIPECAT_SETUP_FILES` environment variable instead.
|
||||||
(PR [#3397](https://github.com/pipecat-ai/pipecat/pull/3397))
|
(PR [#3397](https://github.com/pipecat-ai/pipecat/pull/3397))
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Improved error handling in `ElevenLabsRealtimeSTTService`
|
- Improved error handling in `ElevenLabsRealtimeSTTService`
|
||||||
- Fixed an issue in `ElevenLabsRealtimeSTTService` causing an infinite loop
|
- Fixed an issue in `ElevenLabsRealtimeSTTService` causing an infinite loop
|
||||||
that blocks the process if the websocket disconnects due to an error
|
that blocks the process if the websocket disconnects due to an error
|
||||||
(PR [#3233](https://github.com/pipecat-ai/pipecat/pull/3233))
|
(PR [#3233](https://github.com/pipecat-ai/pipecat/pull/3233))
|
||||||
|
|
||||||
- Fixed a bug in `STTMuteFilter` where the user was not always muted during
|
- Fixed a bug in `STTMuteFilter` where the user was not always muted during
|
||||||
function calls, especially when there were multiple simultaneous calls.
|
function calls, especially when there were multiple simultaneous calls.
|
||||||
(PR [#3292](https://github.com/pipecat-ai/pipecat/pull/3292))
|
(PR [#3292](https://github.com/pipecat-ai/pipecat/pull/3292))
|
||||||
|
|
||||||
- Fixed a `RNNoiseFilter` issue that would cause a "[Errno 12] Cannot allocate
|
- Fixed a `RNNoiseFilter` issue that would cause a "[Errno 12] Cannot allocate
|
||||||
memory" error when processing silence audio frames.
|
memory" error when processing silence audio frames.
|
||||||
(PR [#3322](https://github.com/pipecat-ai/pipecat/pull/3322))
|
(PR [#3322](https://github.com/pipecat-ai/pipecat/pull/3322))
|
||||||
|
|
||||||
- Updated `SpeechmaticsSTTService` for version `0.0.99+`:
|
- Updated `SpeechmaticsSTTService` for version `0.0.99+`:
|
||||||
- Fixed `SpeechmaticsSTTService` to listen for
|
- Fixed `SpeechmaticsSTTService` to listen for `VADUserStoppedSpeakingFrame`
|
||||||
`VADUserStoppedSpeakingFrame` in order to finalize transcription.
|
in order to finalize transcription.
|
||||||
- Default to `TurnDetectionMode.FIXED` for Pipecat-controlled end of turn
|
- Default to `TurnDetectionMode.FIXED` for Pipecat-controlled end of turn
|
||||||
detection.
|
detection.
|
||||||
- Only emit VAD + interruption frames if VAD is enabled within the plugin
|
- Only emit VAD + interruption frames if VAD is enabled within the plugin
|
||||||
(modes other than `TurnDetectionMode.FIXED` or `TurnDetectionMode.EXTERNAL`).
|
(modes other than `TurnDetectionMode.FIXED` or `TurnDetectionMode.EXTERNAL`).
|
||||||
(PR [#3328](https://github.com/pipecat-ai/pipecat/pull/3328))
|
(PR [#3328](https://github.com/pipecat-ai/pipecat/pull/3328))
|
||||||
|
|
||||||
- Fixed an issue with function calling where a handler failing to invoke its
|
- Fixed an issue with function calling where a handler failing to invoke its
|
||||||
result callback could leave the context stuck in IN_PROGRESS, causing LLM
|
result callback could leave the context stuck in IN_PROGRESS, causing LLM
|
||||||
inference for subsequent function call results to block while waiting on the
|
inference for subsequent function call results to block while waiting on the
|
||||||
unresolved call.
|
unresolved call.
|
||||||
(PR [#3343](https://github.com/pipecat-ai/pipecat/pull/3343))
|
(PR [#3343](https://github.com/pipecat-ai/pipecat/pull/3343))
|
||||||
|
|
||||||
- Fixed an issue with DeepgramTTSService where the model would output "Dot"
|
- Fixed an issue with DeepgramTTSService where the model would output "Dot"
|
||||||
instead of a period in some circumstances.
|
instead of a period in some circumstances.
|
||||||
(PR [#3345](https://github.com/pipecat-ai/pipecat/pull/3345))
|
(PR [#3345](https://github.com/pipecat-ai/pipecat/pull/3345))
|
||||||
|
|
||||||
- Fixed an issue in `traced_stt` where `model_name` in OpenTelemetry appears as
|
- Fixed an issue in `traced_stt` where `model_name` in OpenTelemetry appears as
|
||||||
`unknown`.
|
`unknown`.
|
||||||
(PR [#3351](https://github.com/pipecat-ai/pipecat/pull/3351))
|
(PR [#3351](https://github.com/pipecat-ai/pipecat/pull/3351))
|
||||||
|
|
||||||
- Fixed an issue in GeminiLiveLLMService where TranscriptionFrames were
|
- Fixed an issue in GeminiLiveLLMService where TranscriptionFrames were
|
||||||
occasionally not pushed.
|
occasionally not pushed.
|
||||||
(PR [#3356](https://github.com/pipecat-ai/pipecat/pull/3356))
|
(PR [#3356](https://github.com/pipecat-ai/pipecat/pull/3356))
|
||||||
|
|
||||||
- Fixed potential memory leaks and initialization issues in `KrispVivaFilter`
|
- Fixed potential memory leaks and initialization issues in `KrispVivaFilter`
|
||||||
by improving SDK lifecycle management.
|
by improving SDK lifecycle management.
|
||||||
(PR [#3391](https://github.com/pipecat-ai/pipecat/pull/3391))
|
(PR [#3391](https://github.com/pipecat-ai/pipecat/pull/3391))
|
||||||
|
|
||||||
- Fixed timing issue in `BaseOutputTransport` where the bot speaking flag was
|
- Fixed timing issue in `BaseOutputTransport` where the bot speaking flag was
|
||||||
set after awaiting, allowing the event loop to re-enter the method before the
|
set after awaiting, allowing the event loop to re-enter the method before the
|
||||||
guard was set.
|
guard was set.
|
||||||
(PR [#3400](https://github.com/pipecat-ai/pipecat/pull/3400))
|
(PR [#3400](https://github.com/pipecat-ai/pipecat/pull/3400))
|
||||||
|
|
||||||
- Fixed an issue in `traced_llm` where `model_name` in OpenTelemetry appears as
|
- Fixed an issue in `traced_llm` where `model_name` in OpenTelemetry appears as
|
||||||
`unknown`.
|
`unknown`.
|
||||||
(PR [#3422](https://github.com/pipecat-ai/pipecat/pull/3422))
|
(PR [#3422](https://github.com/pipecat-ai/pipecat/pull/3422))
|
||||||
|
|
||||||
- Fixed an issue in `traced_tts`, `traced_gemini_live`, and
|
- Fixed an issue in `traced_tts`, `traced_gemini_live`, and
|
||||||
`traced_openai_realtime` where `model_name` in OpenTelemetry appears as
|
`traced_openai_realtime` where `model_name` in OpenTelemetry appears as
|
||||||
`unknown`.
|
`unknown`.
|
||||||
(PR [#3428](https://github.com/pipecat-ai/pipecat/pull/3428))
|
(PR [#3428](https://github.com/pipecat-ai/pipecat/pull/3428))
|
||||||
|
|
||||||
- Fixed `request_image_frame` (for backwards compatibility) and restored
|
- Fixed `request_image_frame` (for backwards compatibility) and restored
|
||||||
function-call–related fields in `UserImageRequestFrame` and
|
function-call–related fields in `UserImageRequestFrame` and
|
||||||
`UserImageRawFrame`, preventing a case where adding a non-LLM message to the
|
`UserImageRawFrame`, preventing a case where adding a non-LLM message to the
|
||||||
context could trigger duplicate LLM inferences (on image arrival and on
|
context could trigger duplicate LLM inferences (on image arrival and on
|
||||||
function-call result), potentially causing an infinite inference loop.
|
function-call result), potentially causing an infinite inference loop.
|
||||||
(PR [#3430](https://github.com/pipecat-ai/pipecat/pull/3430))
|
(PR [#3430](https://github.com/pipecat-ai/pipecat/pull/3430))
|
||||||
|
|
||||||
- Fixed `LLMContext.create_audio_message()` by correcting an internal helper
|
- Fixed `LLMContext.create_audio_message()` by correcting an internal helper
|
||||||
that was incorrectly declared async while being run in `asyncio.to_thread()`.
|
that was incorrectly declared async while being run in `asyncio.to_thread()`.
|
||||||
(PR [#3435](https://github.com/pipecat-ai/pipecat/pull/3435))
|
(PR [#3435](https://github.com/pipecat-ai/pipecat/pull/3435))
|
||||||
|
|
||||||
### Other
|
### Other
|
||||||
|
|
||||||
@@ -518,16 +508,16 @@ start=[TranscriptionUserTurnStartStrategy(enable_interruptions=False)],
|
|||||||
bot is not interruptible: as the user continues speaking, English
|
bot is not interruptible: as the user continues speaking, English
|
||||||
transcriptions are queued, and the bot continuously translates and speaks
|
transcriptions are queued, and the bot continuously translates and speaks
|
||||||
each queued sentence in Spanish without being interrupted by new user speech.
|
each queued sentence in Spanish without being interrupted by new user speech.
|
||||||
(PR [#3316](https://github.com/pipecat-ai/pipecat/pull/3316))
|
(PR [#3316](https://github.com/pipecat-ai/pipecat/pull/3316))
|
||||||
|
|
||||||
- Added a new foundational example `53-concurrent-llm-evaluation.py` that shows
|
- Added a new foundational example `53-concurrent-llm-evaluation.py` that shows
|
||||||
how to use `UserTurnProcessor`.
|
how to use `UserTurnProcessor`.
|
||||||
(PR [#3372](https://github.com/pipecat-ai/pipecat/pull/3372))
|
(PR [#3372](https://github.com/pipecat-ai/pipecat/pull/3372))
|
||||||
|
|
||||||
- Added a new foundational example `28-user-assistant-turns.py` that shows how
|
- Added a new foundational example `28-user-assistant-turns.py` that shows how
|
||||||
to use the new `LLMUserAggregator` and `LLMAssistantAggregator` events to
|
to use the new `LLMUserAggregator` and `LLMAssistantAggregator` events to
|
||||||
gather a conversation transcript.
|
gather a conversation transcript.
|
||||||
(PR [#3385](https://github.com/pipecat-ai/pipecat/pull/3385))
|
(PR [#3385](https://github.com/pipecat-ai/pipecat/pull/3385))
|
||||||
|
|
||||||
## [0.0.98] - 2025-12-17
|
## [0.0.98] - 2025-12-17
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user