Ian Lee
3e5be23bd8
fix(inworld): close context at end of turn instead of relying on idle timeout
...
The Inworld WS TTS plugin previously relied on the base TTS service's 3-second AUDIO_CONTEXT_TIMEOUT to detect when audio was done, then sent close_context in on_audio_context_completed. This added unnecessary latency before TTSStoppedFrame was emitted.
The original implementation likely borrowed this idea from the 11labs' impelementation. But it's likely better to mirror the Cartesia plugin pattern where on_audio_context_completed is a no-op because the server signals completion directly.
Now close_context is sent in on_turn_context_completed (right after flush_context), so the server responds with contextClosed immediately after the last audio byte. The existing receive handler already calls remove_audio_context on contextClosed, which exits the audio context handler cleanly.
2026-03-13 12:52:07 -07:00
kompfner
f2debd9b1d
Merge pull request #3963 from pipecat-ai/pk/improve-claude-changelog-skill
...
Improve changelog skill: prioritize user-facing language and update e…
2026-03-09 13:00:32 -04:00
Filipi da Silva Fuchter
0c5e936aa5
Merge pull request #3936 from pipecat-ai/filipi/fix_push_aggregation
...
Fixed TTS context not being appended to the assistant message history
2026-03-09 11:14:38 -04:00
Paul Kompfner
7f9169269c
Improve changelog skill: prioritize user-facing language and update example changelog
2026-03-09 10:45:33 -04:00
filipi87
8ec160f71e
Making the changelog more user friendly.
2026-03-09 11:37:11 -03:00
Filipi da Silva Fuchter
1e615cd095
Merge pull request #3962 from pipecat-ai/filipi/smallwebrtc_queue
...
Queuing the messages received before the data channel is ready
2026-03-09 10:29:05 -04:00
filipi87
097f9c0896
Fixed to push LLMAssistantPushAggregationFrame when the base TTSService class is responsible for pushing the TTSStoppedFrame.
2026-03-09 11:04:09 -03:00
Filipi da Silva Fuchter
16336a3ea4
Merge pull request #3937 from pipecat-ai/filipi/fix_orphan_function_call
...
Fix context summarization leaving orphaned tool responses in kept context.
2026-03-09 09:19:17 -04:00
Mark Backman
9eaa99c8e2
Merge pull request #3957 from pipecat-ai/mb/user-turn-completion-system-instruction
...
Move turn completion instructions to system_instruction
2026-03-09 09:17:06 -04:00
filipi87
aa693bb5ee
Adding changelog entry for the SmallWebRTCConnection fix.
2026-03-09 10:11:40 -03:00
Mark Backman
8a02e6fbc5
Merge pull request #3959 from ajmeraharsh/fix/livekit-call-state-updated-args
...
fix(livekit): remove redundant self arg in on_call_state_updated
2026-03-09 08:38:12 -04:00
Mark Backman
d85ba75dda
Merge pull request #3953 from pipecat-ai/mb/deepgram-flux-on-the-fly
...
Add on-the-fly Configure support for Deepgram Flux STT
2026-03-09 08:36:00 -04:00
ajmeraharsh
ae6f159b18
chore: add changelog entry for #3959
2026-03-09 09:15:03 +04:00
Aleix Conchillo Flaqué
3b947b7844
Add changelog for #3947
2026-03-08 19:02:51 -07:00
Mark Backman
64155e8f06
Add changelog for #3957
2026-03-08 10:44:45 -04:00
radhikagpt1208
b14c8e0e94
Fix turn completion mixin not resetting state after each LLM response
2026-03-08 08:46:45 -04:00
Mark Backman
4ebdacdea2
Add changelog for #3953
2026-03-07 08:48:11 -05:00
Mark Backman
1cfaea2007
Address code review feedback
2026-03-07 07:42:42 -05:00
filipi87
3000037dec
Changelog entries for the TTS improvements and fixes.
2026-03-06 16:16:25 -03:00
Aleix Conchillo Flaqué
593b75bc8b
Update foundational examples to use "user" role
...
Use system_instruction on LLM service constructors instead of adding
system messages to LLMContext. Messages added to context now use
"user" role.
2026-03-06 09:53:33 -08:00
filipi87
524b87f087
Adding changelog entry for the summarization fix.
2026-03-06 11:45:20 -03:00
Mark Backman
79131dd6c6
Merge pull request #3930 from dakshdua/main
...
Add `push_empty_transcripts` param to `BaseWhisperSTTService` to push received empty transcripts downstream
2026-03-05 19:25:15 -05:00
Aleix Conchillo Flaqué
fda4cb6732
Add changelog for #3932
2026-03-05 16:16:41 -08:00
Daksh Dua
789ce2fd5e
Add param to push empty transcripts
2026-03-05 16:16:24 -08:00
zack
380726cfd3
Update AssemblyAI turn detection example to use keyterms_prompt
...
Change the commented example from prompt string format to keyterms_prompt
list format for better clarity and consistency with API best practices.
2026-03-05 15:47:54 -05:00
zack
11024ccc2c
Add changelog entries for vad_threshold and parameter cleanup
2026-03-05 15:32:09 -05:00
Aleix Conchillo Flaqué
1aadb8bd73
Merge pull request #3918 from pipecat-ai/aleix/system-instruction-openai-anthropic
...
Wire up system_instruction in OpenAI, Anthropic, and AWS Bedrock
2026-03-04 17:40:00 -08:00
Aleix Conchillo Flaqué
3c60b0c8af
Add changelog for #3918
2026-03-04 17:37:32 -08:00
vipyne
aa31ced32f
add changelog for 3916
2026-03-04 16:58:28 -06:00
Mark Backman
4b9fe5afe3
Merge pull request #3915 from pipecat-ai/mb/function_call_timeout_secs-error-msg
...
Add per-tool function call timeout_secs
2026-03-04 15:01:34 -05:00
Mark Backman
97e4e7c647
Add changelog for #3915
2026-03-04 09:42:01 -05:00
Mark Backman
6789aee9e8
Add changelog for #3914
2026-03-03 20:09:26 -05:00
Mark Backman
ca0ec16373
Merge pull request #3889 from ai-coustics/goedev/aic-voice-focus-and-memoryview-fix
...
AIC Voice Focus version update & concurrency safety issue on audio buffer.
2026-03-03 09:28:13 -05:00
filipi87
fc905a7ef5
Merge branch 'main' into filipi/deepgram
...
# Conflicts:
# src/pipecat/services/deepgram/stt_sagemaker.py
2026-03-03 10:54:30 -03:00
aconchillo
62260454a2
Update changelog for version 0.0.104
2026-03-02 21:23:39 -08:00
Mark Backman
c79a739c85
Merge pull request #3856 from zkleb-aai/assemblyai-u3-rt-pro
...
Assemblyai u3 rt pro
2026-03-02 20:28:28 -05:00
Mark Backman
aad1211a57
Merge pull request #3885 from pipecat-ai/mb/latency-breakdown
...
Add latency breakdown to UserBotLatencyObserver
2026-03-02 19:27:35 -05:00
Aleix Conchillo Flaqué
141b0ee014
Merge pull request #3902 from pipecat-ai/aleix/deepgram-sagemaker-move
...
Move Deepgram SageMaker modules to sagemaker/ subpackage
2026-03-02 15:25:17 -08:00
Aleix Conchillo Flaqué
303616599f
Add changelog for #3902
2026-03-02 15:20:52 -08:00
zack
32773b42d6
Improve terminology: rename file and replace 'STT mode' with 'AssemblyAI turn detection'
...
- Rename 07o-interruptible-assemblyai-stt.py -> 07o-interruptible-assemblyai-turn-detection.py
- Replace 'STT mode' with 'AssemblyAI turn detection mode' throughout codebase
- Replace 'Mode 1'/'Mode 2' with descriptive 'Pipecat turn detection'/'AssemblyAI turn detection'
- Update changelog to use 'built-in turn detection' terminology
- Addresses PR feedback about confusing terminology
2026-03-02 18:08:46 -05:00
filipi87
49c73bb0a3
Merge branch 'main' into filipi/lemonslice
...
# Conflicts:
# README.md
# uv.lock
2026-03-02 19:24:52 -03:00
zkleb-aai
5c2ca0ce64
Update changelog/3856.changed.md
...
Co-authored-by: Mark Backman <m.backman@gmail.com >
2026-03-02 17:04:54 -05:00
Mark Backman
a4796a2373
Merge pull request #3898 from pipecat-ai/mb/revert-processing-metrics-deprecation
...
Revert processing metrics deprecation
2026-03-02 16:39:02 -05:00
Aleix Conchillo Flaqué
44466cfa07
Merge pull request #3896 from pipecat-ai/aleix/broadcast-interruption
...
Add broadcast_interruption() to FrameProcessor
2026-03-02 13:36:39 -08:00
Aleix Conchillo Flaqué
741ff14d3a
Rename changelog files to use PR #3896 and mark breaking change
2026-03-02 13:26:45 -08:00
Aleix Conchillo Flaqué
4a61d5bfad
Add broadcast_interruption() to FrameProcessor
...
Replace the round-trip push_interruption_task_frame_and_wait() mechanism
with broadcast_interruption(), which pushes an InterruptionFrame both
upstream and downstream directly from the calling processor.
This eliminates race conditions (transcription arriving before the
InterruptionFrame comes back), swallowed-event timeouts (frame blocked
before reaching the sink), and the complexity of _wait_for_interruption
flag / queue bypass / frame.complete() obligations.
- Add broadcast_interruption() to FrameProcessor
- Deprecate push_interruption_task_frame_and_wait() (delegates to new method)
- Remove event field and complete() from InterruptionFrame/InterruptionTaskFrame
- Remove _wait_for_interruption flag and all special-case logic
- Remove frame.complete() calls in stt_mute_filter and llm_response_universal
- Update all 17 call sites to use broadcast_interruption()
- Update tests
2026-03-02 13:26:45 -08:00
Mark Backman
d0ecb3c7a8
Revert "Deprecate processing metrics (ProcessingMetricsData)" ( #3852 )
...
This reverts commit 127b52bad5 .
2026-03-02 16:26:29 -05:00
Mark Backman
8f66272de7
Update changelog
2026-03-02 16:16:38 -05:00
Mark Backman
a738a4d82b
Add function call latency tracking to LatencyBreakdown
2026-03-02 16:11:43 -05:00
Mark Backman
ddba1b84a9
Add first-bot-speech latency to UserBotLatencyObserver
...
Measure time from ClientConnectedFrame to first BotStartedSpeakingFrame,
emitting a one-time on_first_bot_speech_latency event with breakdown.
2026-03-02 16:11:43 -05:00