Skip to content
AI.info

Speech and audio

Real-Time Voice Agents, Duplex Interaction, and Turn-Taking

Design real-time voice agents with full-duplex audio, barge-in, endpointing, incremental ASR and TTS, tool use, state, safety, and repair.

By the end you can

Sounding human confers no authority

A voice agent is a chain of parts that all run while the others are still running: capture, VAD, ASR, dialogue state, reasoning or policy, tools, TTS, echo cancellation, interruption, and memory. What makes the interaction feel cooperative is not the quality of any single part. Neither is what keeps its actions under control. It is the timing, and the state transitions between the parts.

Two kinds of question get asked about that chain, and they are not the same question. Time to first audio, end-to-end response latency and interruption reaction are clock questions — how fast. Turn-taking errors, overlap recovery and user repair rate are conversation questions — whether the exchange worked. Neither set, on its own, is the release decision.

Neither is enough because a fluent voice hides the distinctions the system has to keep straight internally. Inside the agent there are provisional hypotheses, confirmed user decisions, tool proposals, authorized actions and durable memory. Those are five different things. Human-like timing confers none of them. A human-sounding voice confers none of them either: no understanding, no authority, no guarantee of safe intent.

Every one of those boundaries has been measured by somebody. The interval a human turn actually allows was measured across ten languages. The rate at which a streaming recognizer takes back words it has already emitted was measured and named by the engineers who built one. How often a smart speaker wakes up to a television was counted in two countries. What it costs to leave retention at its default was settled by a court, in dollars and in months. The rest of this lesson runs on those numbers instead of on the reader's intuition about what a fluent voice must understand.

A pipeline that cannot tell a hypothesis from an authorized action will act on something the user never confirmed.

Example

The agent heard the correction and finished the wrong action anyway

Take the sequence every voice team dreads. The user cuts in with "no, cancel that" while the agent is speaking. Playback cancellation works exactly as designed and the voice stops. But the tool call has already been committed. And the dialogue manager files the interruption as a new topic rather than as a correction of the thing it was already doing. No measurement records a fault. Playback stopped on time, and the wrong action still went through.

Neither half of that sequence has to be taken on trust. Both are documented quantities rather than anecdotes. The first half is that the agent had to start early. Conversation leaves gaps of roughly 200 ms, while producing language takes over 600 ms. Levinson and Torreira put the arithmetic in one line: “the gaps between turns are short (of the order of 200 ms), but the latencies involved in language production are much longer (over 600 ms)”. So anything that answers in time, human or machine, is already building its response out of a sentence that is still being spoken.

The second half is that what it starts from is revisable. A streaming recognizer emits partial results and then takes them back, at a rate its own authors count with two named metrics. The next two sections give both measurements in full.

Put the halves together and the commitment point stops being a design sin somebody was careless about. It is a place in the pipeline that the arithmetic guarantees will exist. Something will be executed from an unfinished sentence unless a named state decides otherwise. That is why this trace is the one the rest of the lesson keeps returning to.

  • The decision at stake is how to design a real-time voice agent at all. Full-duplex audio, barge-in, endpointing, incremental ASR and TTS, tool use, state, safety and repair all run at once, inside a turn-transition window of a couple of hundred milliseconds.
  • The failure it turns on is executing from an unstable partial transcript, which is not a metaphor but a counted quantity. Shangguan and colleagues defined UPWR and UPSR in 2020 for exactly this: measuring how much of a live transcript gets taken back.
  • The evidence normally reached for is time to first audio, end-to-end response latency and interruption reaction. Full-Duplex-Bench shows those clocks pointing the wrong way. The two fastest models at turn-taking, Moshi at 0.265 s and dGSLM at 0.352 s average latency, are also the two with the highest takeover rates during natural speaker pauses: 0.985/0.980 and 0.934/0.935, against Gemini Live's 0.255/0.310.
  • The practical response is an explicit state machine with named states — idle, activated, listening, thinking, confirming, acting, speaking, interrupted and failed. Then every commitment point has a name someone can point at, including the transition where a revisable partial becomes an executed call.

Case

Ten languages, and a gap under 200 milliseconds

That trace is about what an agent does with a turn. This is about how little time it has to take one. The window has been measured twice over: once by conversation scientists, and once by a telecommunications standards body that had never heard of voice agents.

A worldwide sample of ten languages went into PNAS in June 2009. Stivers and ten colleagues report that “all distributions are unimodal with the highest number of transitions occurring between 0 and 200 ms”. Differences across languages in the average gap between turns fall “within a range of 250 ms from the cross-language mean” — a narrow band, given how far apart those ten languages were. The shape of the distribution comes from conversational corpora studied by Heldner and Edlund in 2010: gap durations are positively skewed, “in part as there is an absolute lower limit, but no real upper limit”. There is a hard floor and no real ceiling.

Why that floor is so punishing is a matter of arithmetic. Levinson and Torreira stated it in one sentence in 2015: “the gaps between turns are short (of the order of 200 ms), but the latencies involved in language production are much longer (over 600 ms)”. Read those two numbers next to each other. The gap is shorter than the time it takes to build an utterance. So a human speaker cannot be waiting for the end of your sentence either. The response is under construction while you are still talking. Acting before the sentence finishes is not a corner an agent cut. It is the only way anything answers in time, which is exactly why the commitment point has to be designed rather than avoided.

The engineering budget was fixed independently, and it is no kinder. ITU-T Recommendation G.114 tells planners “to not exceed a one-way delay of 400 ms for general network planning”. It names a second, lower figure as well. A few applications are slightly affected by end-to-end (“mouth-to-ear”) delays of less than 150 ms, but “if delays can be kept below this figure, most applications, both speech and non-speech, will experience essentially transparent interactivity”. That text is from 2003. An IETF draft restates the thresholds for engineers: “For conversational audio, the International Telecommunication Union recommends less than 150 millisecond one-way end-to-end delay for high-quality real time traffic, but delays between 150 ms and 400 ms are still acceptable.” (The familiar three-band table — 0–150 ms acceptable for most user applications, 150–400 ms acceptable provided administrations are aware of the impact, above 400 ms unacceptable — belongs to pre-2003 editions of G.114, not to the 2003 text.)

So an agent that answers in 800 milliseconds is not slightly late. It sits outside the range in which people expect a turn at all. It is also double a one-way delay that a telecommunications standard has called unacceptable for general network planning since 2003. And that 400 ms was transmission alone. Capture, VAD, ASR, reasoning, tool calls and TTS still have to be paid for out of the same clock. Inside a window that small, waiting for a finished sentence costs more time than the system has.

Key idea

Stopping the audio did not stop the work

Under that pressure, four failures recur. They are the four that any broad claim about a live conversational voice system has to answer for.

The first is executing from unstable partial transcripts, and it comes with a price list. A streaming end-to-end on-device speech recognizer was analyzed in 2020, and Shangguan and four colleagues state the mechanism without decoration: “Partial results can be revised before the ASR finalizes its hypothesis, causing instability issues.” They then make the instability countable. UPWR is “the ratio of total number of unstable words in a test corpus to the total number of words in the final hypotheses”. UPSR is “the ratio between the aggregated number of revised segments and the total number of utterances in a dataset”. And they measure what stability costs: lengthening the partial-emission interval from 50 ms to 200 ms adds 75 ms to mean partial delay and yields a 71.6% improvement in UPWR and a 68.8% improvement in UPSR. Stability is purchasable, and the currency is the millisecond the previous section says you do not have. That single trade — 75 ms of delay against 71.6% fewer unstable words — is the design problem, stated in the units a designer can actually spend.

The second is barge-in that stops the audio but not the underlying action. It is the same failure seen from the other end. The voice obeyed the interruption; the work did not.

The third is conversation memory retaining sensitive ambient speech, and it too is a rate rather than a worry. Smart speakers wake up to television. Dubois and five colleagues counted how often in 2020: “After playing two rounds of 134 hours of content from 12 TV shows near popular smart speakers in both the US and in the UK, we observed cases of 0.95 misactivations per hour, or 1.43 times for every 10,000 words spoken, with some devices having 10% of their misactivation durations lasting at least 10 seconds.” Nobody in the room addressed the device. Roughly once an hour it decided otherwise, and a tenth of the time on some devices it kept listening for ten seconds or more.

The fourth is natural prosody causing users to overestimate the system's competence or authority.

Read together, they are one failure told four ways: an internal boundary collapsing into the next one. A provisional hypothesis executed as a confirmed decision. A tool proposal carried out as an authorized action. Ambient speech promoted into durable memory. A fluent delivery read as standing permission.

Partial results can be revised before the recognizer finalizes its hypothesis — so acting on one commits the system to a sentence the user has not finished, and cutting the audio leaves the action running.

Comparison

Taking turns, overlapping, or requiring confirmation

Where those boundaries sit is decided by the interaction model, and there are three to choose between. Half-duplex interaction alternates listening and speaking with explicit turns, so the point of commitment is never in doubt. The price for that clarity is paid on the clock the previous section described. Every explicit turn boundary is dead time inside a 200 ms window.

Full-duplex interaction is not a promise waiting for hardware. Moshi, published in 2024 by a team at Kyutai, is one: “Our resulting model is the first real-time full-duplex spoken large language model, with a theoretical latency of 160ms, 200ms in practice”. That is inside the human turn-transition window. It is worth being clear about how the window was reached. Moshi removes explicit speaker turns altogether, and abandons the VAD → ASR → dialogue → TTS pipeline that the rest of this lesson names its states along. Speed came from dissolving the very stages where a commitment point could be given a name. The gain and the cost are the same architectural decision.

A transactional voice workflow makes the opposite bargain: confirmations, audit and rollback around consequential tools, paid for in latency. The three promise different things about timing and commitment. So each one is checked in a different way, and no single test settles all three.

FigureComparison · 3 columns

Half-duplex interaction

Alternates listening and speaking with explicit turns.

  • Decision focus: Sense continuously and minimally
  • Useful evidence: Time to first audio, end-to-end response latency, and interruption reaction
  • Watch for: Executing from unstable partial transcripts
  • Best used when its assumptions are documented for real-time voice agents, duplex interaction, and turn-taking

Full-duplex interaction

Allows simultaneous listening and playback with interruption handling.

  • Decision focus: Maintain provisional state
  • Useful evidence: Turn-taking errors, overlap recovery, and user repair rate
  • Watch for: Barge-in stopping audio but not the underlying action
  • Best used when its assumptions are documented for real-time voice agents, duplex interaction, and turn-taking

Transactional voice workflow

Requires confirmations, audit, and rollback around consequential tools.

  • Decision focus: Plan and authorize
  • Useful evidence: Tool-call correctness, authorization, cancellation, and rollback
  • Watch for: Conversation memory retaining sensitive ambient speech
  • Best used when its assumptions are documented for real-time voice agents, duplex interaction, and turn-taking

Visual

A partial hypothesis is not a decision

Whichever of the three you pick, the same pipeline runs underneath it, and the middle stage is the one doing the safety work. The agent senses continuously and minimally, taking incoming audio as it arrives. It maintains provisional state, holding what it has heard as a hypothesis rather than as a decision. It plans and authorizes, separating a conversational response from an executed tool call. Then it speaks and repairs the turn, including when the user cuts in.

That middle stage is not an academic nicety, and a production system shows what it is made of. Duplex Conversation decomposes smooth turn-taking into exactly three subtasks: user state detection, backchannel selection and barge-in detection. Lin and five colleagues published it in 2022, and reported what happened when it was put into service: “We deploy the Duplex Conversation to Alibaba intelligent customer service and share lessons learned in production. Online A/B experiments show that the proposed system can significantly reduce response latency by 50%.” Note which way the number ran. Adding an explicit layer that decides whether the user has finished speaking did not cost latency. It halved it, because the system stopped waiting out silences that were never the end of a turn.

Remove that middle stage and the two ends touch. The system speaks straight from raw sensing. Every fragment it has picked up becomes something it is prepared to act on, including the ones the recognizer is about to revise. That is not a subtle bug. It is the cancelled tool call, written out as an architecture.

FigureLayers · 4 layers
  1. 01

    Sense continuously and minimally

    Manage activation, duplex audio, echo, privacy, and session boundaries.

  2. 02

    Maintain provisional state

    Track partial transcript, turn state, confidence, and user corrections.

  3. 03

    Plan and authorize

    Separate conversational response from tool execution, confirmation, and permission.

  4. 04

    Speak and repair

    Stream TTS, support barge-in, cancel work, explain state, and recover from failures.

By the time the system speaks and repairs, what continuous sensing handed it is being treated as settled, when it was only a partial hypothesis.

Steps

Draw a voice-agent state machine

The way to catch that missing middle before a user does is to draw the state machine: idle, activated, listening, thinking, confirming, acting, speaking, interrupted and failed. Draw it well enough that someone from another team can point at one transition and say: that is executing from an unstable partial transcript. If no transition can be named that way, the drawing is not finished yet. Name the cancellation semantics on the same diagram — what stops playback, what stops inference, what stops queued work, and what stops an external action already in flight. Those are four different stops, and only the first one is audible.

Then walk it, and not only along the path where a clean request gets a clean answer. The adversarial dialogues worth walking are the ones the literature already measures: a pause that is not the end of a turn, a backchannel that is not a request, an interruption in mid-sentence, a partial that gets revised after the tool call was assembled, and an activation nobody in the room asked for. Keep a short record of three things while you do. What sensing continuously and minimally assumes. One counterexample that breaks the assumption. And what speaking and repairing does when it breaks.

FigureProcess · 4 steps
  1. 1. Enumerate states

    Idle, activated, listening, thinking, confirming, acting, speaking, interrupted, and failed.

  2. 2. Define transitions

    Specify acoustic, transcript, policy, tool, and user events.

  3. 3. Add cancellation semantics

    State what stops playback, inference, queued work, and external actions.

  4. 4. Run adversarial dialogues

    Test ambiguity, correction, denial, background speech, and network failure.

A diagram never walked through ambiguity, correction, denial, background speech and a dropped connection is a picture of the happy path.

Example

Faster on every clock, worse on retention

A finished state machine tells you what to measure. It takes a portfolio rather than a headline number, because the two halves can move in opposite directions at once. That is no longer a hypothetical. Full-Duplex-Bench is a public benchmark built for exactly this: “we introduce Full-Duplex-Bench, a benchmark that systematically evaluates key interactive behaviors: pause handling, backchanneling, turn-taking, and interruption management.” It appeared in 2025. Its evaluation set is enumerated rather than gestured at: 216 Candor pause-handling samples, 119 Candor smooth-turn-taking, 55 ICC backchannel, 200 synthetic user-interruption and 137 synthetic pause-handling.

Read two of its columns together and the lesson's warning becomes a table. The end-to-end models are fastest at turn-taking: Moshi at 0.265 s and dGSLM at 0.352 s average latency, against Freeze-Omni at 0.953 s and Gemini Live (gemini-2.0-flash-live-001) at 1.301 s. The same two models have the highest takeover rates during natural speaker pauses — Moshi 0.985/0.980 and dGSLM 0.934/0.935, against Gemini Live's 0.255/0.310, lower being better. The fastest system on the clock is the one most likely to start talking while you were only drawing breath. A release decision that reads only the latency column records that as progress.

The lifecycle column is the one nobody reads until a court does. Alexa kept voice recordings by default. The complaint the Department of Justice filed on behalf of the FTC in May 2023 alleged: “Since launching its first Echo smart speaker, Amazon has set its default settings to retain users' voice recordings indefinitely.” The stipulated order entered by Judge Tana Lin on 19 July 2023 imposed a $25,000,000 civil penalty and mandated deletion, including of what the order defines as “Inactive Alexa Child Profile” data — a child profile unused for 18 months or more. A retention default became a dollar figure and a deadline measured in months. Neither of them would ever have surfaced in a latency percentile.

So four kinds of evidence have to travel together, and the portfolio owes one more thing besides. It should say when an unstable partial transcript requires the agent to abstain or fall back rather than act.

  • The core task evidence is the clock — time to first audio, end-to-end response latency and interruption reaction, read against the 200 ms human gap and the 400 ms one-way delay G.114 calls unacceptable for general network planning.
  • System behavior is the conversation, and Full-Duplex-Bench names the four behaviours to score: pause handling, backchanneling, turn-taking and interruption management. Turn-taking latency and pause takeover rate go side by side, never one without the other.
  • The robustness slice is where the cancelled call would have surfaced. It covers tool-call correctness, authorization, cancellation and rollback — including whether cancelling playback cancels the external action.
  • Lifecycle evidence is what no clock can see and what moves slowest: privacy retention, session leakage, task completion and severe incidents. The Alexa order is what it looks like when the retention line goes unread until a $25,000,000 judgment reads it for you.

Report time to first audio, end-to-end response latency, and interruption reaction together with privacy retention, session leakage, task completion, and severe incidents.

Key takeaways