# Barge-in

Talking over Connect stops it. The realtime engine listens while it speaks, and a caller's voice cuts the reply so the two are not talking at once. Two things are deliberately outside that: the greeting, which is played with the caller's audio muted, and any interruption the voice kept speaking through for more than two seconds — that one is recorded as ignored and shows up in the call's review.

- **Status:** Available
- **Audience:** both
- **Channels:** phone
- **In the app:** #/calls
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/phone/barge-in/

## The measurement, not the intention

Barge-in is easy to claim and hard to prove, so Connect records it rather than asserting it. The worker's `TurnClock` posts a `barge_in` event for every interruption with one number attached: how long the voice kept talking after the caller started. Past **2 seconds** the interruption counts as ignored.

That threshold is not a preference about politeness. Two seconds is about the point at which a caller stops assuming they were not heard and starts repeating themselves, which is where a call goes wrong — both parties talking, neither yielding. The number is used by `voice_quality.review`, which raises an *ignored interruption* finding and names the setting that would change it.

| Finding | What happened | Where the control is |
|---|---|---|
| Ignored interruption | The voice spoke past 2 s after the caller began | Interruption threshold, in seconds and words |
| False stop | The voice stopped for something that was not the caller taking a turn | Interruption threshold; false-interruption resume |
| Unheard caller | The caller spoke and no turn started | Start-of-speech sensitivity, noise cancellation |

## The two thresholds you can actually turn

In the [Voice Lab](/docs/phone/voice-lab/) the interruption threshold is expressed twice — in seconds and in words — and both are engine knobs, meaning they become session parameters rather than sentences in a prompt. Raising them makes the voice harder to interrupt and steadier in a noisy room; lowering them makes it yield to a cough.

The companion setting is false-interruption resume: when the model decides that what stopped it was not really the caller taking a turn, it can pick the reply back up where it left off. On the model's own turn detection this is useful. On the host semantic path it is **off**, and that is not an oversight — there is no transcript to judge a false interruption by on that path, so every resume was a resume over a caller who really was speaking.

> **Careful** Do not turn on `rt_ack_after_ms`. A host-spoken acknowledgement ("Mm-hm.") on a 3.1 Flash Live call cut the caller off and then stalled the model for 22 seconds. It reads as a small courtesy and behaves as a second speaker on the line.

## Why the greeting is not interruptible

The opening line is played on its own with the caller's audio muted, and the instructions then tell the model that the opening has already been said. Both halves matter. Without the mute, a caller who says "hello?" while the greeting is playing chops the business's own introduction in half. Without the second half, the model introduces itself again — which is exactly what the 2026-09-06 gap audit found across production calls, and what the change removed: re-introductions went from one to four per call to none.

The same audit is the reason replies are short. The instructions ask for one thought and one question, under 25 words; the median words per reply moved from 23–40 to **19** and stacked questions went to zero, with no latency regression. Short replies are the cheapest barge-in policy there is, because the voice is not talking when the caller wants to.

Start-of-speech sensitivity is set to `HIGH` for the opposite reason: a single word — "yes" — should be enough to start a turn. A voice that yields quickly and speaks briefly interrupts far less often than one tuned to hold the floor.

## What barge-in cannot fix

An interruption only helps if the model can act on it quickly, and on the realtime path the floor is the model's own first token plus its end-of-turn detection — a 3.3 s median on the best call measured, not one to two seconds. A caller who interrupts and then waits three seconds for an answer has been heard and does not feel heard.

If the review keeps reporting ignored interruptions on a line whose thresholds are already low, the honest reading is usually latency rather than sensitivity. [Reply latency on a call](/docs/phone/latency/) explains what is measured and where.

## Questions

### Can I make the voice never stop for an interruption?

Not sensibly, and the settings do not offer it as a switch. You can raise the interruption threshold in seconds and words so that short noises are ignored, but a caller who talks for several seconds will always take the turn — and the call review will start reporting ignored interruptions, which is the outcome you were trying to avoid.

### Does interrupting lose what Connect was about to say?

The unspoken remainder of that reply is dropped, yes. What the caller said becomes the next turn and the answer is generated fresh, which is usually what you want: the interruption normally means the reply was going somewhere the caller did not need.

### Is barge-in available on the carrier turn-based engine too?

No, and the difference is structural rather than a setting. The turn-based path hears a sentence, writes a reply and hands it to the carrier to read out; nothing is listening while that sentence plays. Barge-in belongs to the realtime engine, where listening and speaking happen at once.

## Related

- [Turn detection and end of speech](https://connectbyjbrh.com/docs/phone/turn-detection/)
- [Reply latency on a call](https://connectbyjbrh.com/docs/phone/latency/)
- [The Voice Lab](https://connectbyjbrh.com/docs/phone/voice-lab/)
- [The realtime voice engine](https://connectbyjbrh.com/docs/phone/realtime-engine/)
- [Barge-in without cutting the greeting in half](https://connectbyjbrh.com/research/barge-in-without-cutting-the-greeting/)

## What this page is based on

- Connect phone source pack — `docs-source/sources/PHONE.md` §6 and §7
- PROJECT-STATE.md — the 2026-09-06 gap audit over 24 production calls, via that pack
- Connect capability registry — `docs-source/facts.py` (`barge_in`, `MEASURED`)
