Feature request: smooth fade-out when the agent is interrupted
The problem
When a user starts talking over the agent and the SDK confirms an interruption, the agent's voice stops instantly. The decision to stop is correct — but the abrupt cut, often mid-word, is the single most "robotic" artifact we hear on real phone calls.
Here's an example of what it sounds like today — the user interrupts and the agent stops abruptly:
https://drive.google.com/file/d/128KuaXsuUTkGBBxy9ycaxNI__Q4Pap-9/view?usp=sharing
We're on livekit-agents 1.6.0.
What we'd like
A supported option to let the agent's voice fade out over a short window (~100–250ms) when an interruption is confirmed, instead of cutting instantly.
To be clear about scope: this is only about the way the agent stops, not when. Interruption detection would stay exactly as it is — same rules, same timing. The only thing that changes is that the last fraction of a second fades out smoothly instead of being chopped off.
Ideally this would be a simple, declarative setting — something like:
interruption_fade_out = 0.2 # seconds; 0 = instant cut (today's behavior)
Feature request: smooth fade-out when the agent is interrupted
The problem
When a user starts talking over the agent and the SDK confirms an interruption, the agent's voice stops instantly. The decision to stop is correct — but the abrupt cut, often mid-word, is the single most "robotic" artifact we hear on real phone calls.
Here's an example of what it sounds like today — the user interrupts and the agent stops abruptly:
https://drive.google.com/file/d/128KuaXsuUTkGBBxy9ycaxNI__Q4Pap-9/view?usp=sharing
We're on
livekit-agents 1.6.0.What we'd like
A supported option to let the agent's voice fade out over a short window (~100–250ms) when an interruption is confirmed, instead of cutting instantly.
To be clear about scope: this is only about the way the agent stops, not when. Interruption detection would stay exactly as it is — same rules, same timing. The only thing that changes is that the last fraction of a second fades out smoothly instead of being chopped off.
Ideally this would be a simple, declarative setting — something like: