# Realtime and turn-based voice

The turn-based engine runs on the carrier path: the caller's turn becomes text, the model answers in text, and the text is spoken — so code sits between the answer and the caller. The realtime engine is speech-to-speech, opted into per workspace, and nothing sits in that gap. You are trading a checkpoint for immediacy, and that is the decision.

- **Status:** Available
- **Audience:** both
- **Channels:** phone
- **In the app:** #/calls, #/phone-advanced
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/compare/realtime-vs-turn-based-voice/

## The structural difference

|  | Turn-based (carrier path) | Realtime (speech-to-speech) |
|---|---|---|
| Shape of a turn | Audio in, text through the model, audio out | Audio in, audio out |
| Providers | A carrier for the PSTN leg | LiveKit SIP plus a Gemini Live model, over the same carrier leg |
| Enabled | The default path | A workspace opts in |
| A rule can be | Prevented — each sentence is checked before it is spoken | Detected — the rule lives in the instructions, and a breach is counted afterwards |
| Interruption | Bounded by the turn | Barge-in is native to the conversation |
| Cost driver | Text tokens, plus speech synthesis | Audio tokens, billed at several times the text rate in both directions |

Everything else on this page follows from row four. A checkpoint you can stand at is worth a great deal, and it is exactly what speech-to-speech removes.

## Latency, with the real number

The floor on the realtime path is the model's first token plus its end-of-turn detection: **3.3 seconds median on the best measured call**. Not one to two seconds. Roughly **60%** of response time is model-bound, which means the remaining tuning surface is smaller than it looks — the target used internally is 2.5 seconds and anything past 4 seconds counts as slow, but the floor is the floor.

Two consequences that matter to a caller. A response watchdog sits at about 5.5 seconds, because dead air is worse than a filler. And barge-in is ignored for the first couple of seconds, so the greeting is not cut in half by a cough — see [barge-in without cutting the greeting](/research/barge-in-without-cutting-the-greeting/).

> **Note** Shorter replies help more than most settings. Tuning in the Voice Lab moved the median reply from 23–40 words to 19, and a reply that is half as long starts sounding finished twice as soon.

## What each one is good for

**Choose turn-based** — When something said on the call would be expensive to get wrong — commercial terms, regulated language, anything you must be able to guarantee rather than review. The check runs before the caller hears it.
**Choose realtime** — When conversation quality is the product: interruptions, overlapping speech, a caller who changes their mind mid-sentence. It sounds like a conversation because it is structured as one.
**Choose turn-based on cost grounds** — Audio tokens are billed at a multiple of text tokens in both directions; a long realtime call is not a cheap call.
**Choose realtime for languages and accents** — Speech-to-speech keeps prosody and code-mixing that a transcribe-then-speak pipeline flattens.

## Failure surfaces are not the same

- **A failed model session** ends a realtime call in a way a text-model failure on the turn-based path does not; the call is attributed rather than recorded as a success.
- **Prompt size is paid per call on both**, but it lands hardest on the realtime path where the caller is listening to the delay: about 7,500 characters of instructions gave a first token in 1.2–1.8 seconds, about 9,600 gave 2.3–3.4.
- **Worker capacity** bounds concurrent realtime calls; a line at capacity says so through line health rather than answering into silence.
- **A hard ceiling of 30 minutes** applies to a call, on either engine.
- **Rules become counts.** `price_spoken` counts lines the voice priced using the same expression the carrier path checks each sentence with, so the two paths at least agree on what a price is.

> **Careful** Neither engine offers call recording or a completed transfer to a person on the live carrier. Both are foundation, and no engine choice changes that.

## Questions

### Can I run both?

The realtime engine is something a workspace opts into, so the turn-based carrier path is what runs otherwise. Treat the choice as a property of the line rather than something to switch mid-call.

### Will the realtime engine get under two seconds?

This documentation makes no prediction about future performance. What is measured today is a 3.3-second median on the best call, with about 60% of it model-bound — and the honest planning assumption is the measurement, not a hoped-for number.

### Which is safer for a business that quotes prices?

Turn-based, unambiguously. The refusal to invent commercial terms is enforced there before a sentence is spoken; on the realtime path the same rule lives in the instructions and a breach is detected afterwards. See [rules and instructions](/docs/compare/rules-vs-instructions/).

## Related

- [The realtime voice engine](https://connectbyjbrh.com/docs/phone/realtime-engine/)
- [The carrier turn-based engine](https://connectbyjbrh.com/docs/phone/turn-based-engine/)
- [Comparisons and concepts](https://connectbyjbrh.com/docs/compare/)
- [Reply latency on a call](https://connectbyjbrh.com/docs/phone/latency/)
- [Rules and instructions](https://connectbyjbrh.com/docs/compare/rules-vs-instructions/)
- [Measuring conversational latency correctly](https://connectbyjbrh.com/research/measuring-voice-latency/)

## What this page is based on

- `docs-source/sources/PHONE.md` §12 — what is not available, and the floor
- Measured voice figures (docs-source/facts.py `MEASURED`)
- `docs-source/facts.py` CHANNELS — the two phone engines and providers
- `docs-source/sources/CHANNELS.md` §6 — safe_sales and price_spoken
