Full-duplex voice AI is a speech system that listens and speaks at the same time, like two people on a phone call. It keeps listening while it talks, so you can interrupt it, it can say "mm-hm" while you speak, and it recovers when you both start at once. Half-duplex systems take turns, like a walkie-talkie.
Walkie-talkie or phone call
The two words come from telecommunications. A walkie-talkie carries one voice at a time: you press to talk and release to listen. A telephone carries both voices at once. The two phones below make the same request to a voice assistant of each kind.
Two phones play the same request. On the left, a walkie-talkie style assistant: you hold a button to talk, let go, the AI thinks, then it answers in full. On the right, a full-duplex assistant with no button: it says "mm-hm" while you talk, answers right away, and stops when you cut in to change the time.
Read more: Speech-to-speech AI, a primer
What changes in a conversation
People take turns fast. The most common gap between one speaker finishing and the next one starting is about 200 milliseconds, across the ten languages Stivers and colleagues measured in 2009. Even one word takes longer than that to plan, so people prepare their reply while the other person is still talking. Overlap is normal too: in recordings of spontaneous speech, roughly 40 percent of changes between speakers overlap.
About 200 ms, the most common gap across ten languages (Stivers and colleagues, 2009).
About 200 ms in the best reported measurement, Moshi on an NVIDIA L4.
About 1 second end to end for a well-tuned cascade.
A full-duplex system is built to keep up with this. Four behaviours show whether it does.
HoldFto talk as black andJas blue, or press and hold a bubble.
Read more: The full-duplex threshold
How systems are labelled
Full-duplex describes how a conversation flows, so a well-built cascade can come close to it in use. The database draws a stricter line. It keeps the Full-duplex label for single models that listen and speak at once. A cascade that stops when you cut in is still labelled Cascade, because speech recognition, the language model and speech synthesis run one after another.
The timelines show the same short exchange with each of the three kinds.
Waits for you to stop, then answers. What you say while it talks is not heard.
Speech recognition, a language model and speech synthesis run in turn, which adds a gap before it answers. Many stop talking when you cut in.
One model listens while it speaks. It can say “mm-hm” while you talk, answer after a short gap, and give way when you cut in.
Guide: Full-duplex vs cascade vs half-duplex. Read more: From pipeline to integrated
How it is measured
Full-Duplex-Bench (Lin et al., 2025) is the most cited test. It plays recorded speech to a system and checks four things: whether it waits through a pause, starts talking once the user has finished, says "mm-hm" at the right moments, and responds well when interrupted. Most of the scoring rests on one rule: the system counts as having taken its turn if it says more than three words or talks for more than a second. Later versions stream audio live, use real hesitations and self-corrections, and add tool calls.
The database gives response time in two ways: the vendor's own figure, and Full-Duplex-Bench runs where they exist. They measure different things, so compare like with like.
Guides: How full-duplex voice AI is evaluated, Turn detection. In the database: 27 full-duplex benchmarks, and Analytics for hosted APIs.
What data it takes
A full-duplex model learns turn-taking from conversations recorded with each speaker on their own channel. On a single mixed track, overlaps and "mm-hm"s blur into one sound, and splitting the track afterwards loses much of that detail. The database marks these corpora Full-duplex. Their licences and consent terms vary, so check the Licence and Source columns before training.
Guide: Training data for full-duplex models. Read more: The data ceiling. In the database: 31 full-duplex datasets. The whole catalogue is also a Hugging Face dataset (CC BY 4.0).
Guides
Glossary
- Backchannel
- A short listener acknowledgement, such as "uh-huh" or "right", produced while the other person is still talking.
- Barge-in
- Interrupting a system while it is speaking. A system that handles it stops and listens.
- Cascade
- Speech-to-text, a language model and text-to-speech wired in series.
- Channel-separated
- A recording with each speaker on a separate track.
- Full-duplex
- Telephone-style conversation, where both sides can listen and speak at once.
- Full-Duplex-Bench (FDB)
- A family of benchmarks, v1 to v3, that measure full-duplex conversational behaviour.
- Half-duplex
- Walkie-talkie-style conversation, one direction at a time.
- Neural audio codec
- A model that turns a waveform into discrete tokens a language model can read and write, and turns them back into sound.
- Speech-to-speech (STS) model
- A model that takes audio in and produces audio out without a text-only stage in between.
- Speech language model
- A model that predicts speech as a sequence of tokens, the way a text model predicts words.
- Time to first audio (TTFA)
- How long a system takes to start producing sound after it receives input.
- Turn-taking
- How speakers settle who talks next, and when.
FAQ
- Which models are full-duplex?
- 37 of the 70 models in the database. Filter Models by Full-duplex to see them.
- Where can I find full-duplex training data?
- 31 of the 107 datasets are recorded with one channel per speaker. Filter Datasets by Full-duplex, then check the licence and source of each.
- Why do response times differ between pages?
- Vendor figures and benchmark runs measure different things under different conditions. The database names the source next to every number.
- Can I use these datasets commercially?
- It depends on each licence. Use the Commercial OK filter on Datasets, and read the original terms before you ship anything.
Cite this page
@misc{fullduplex_knowledge,
title = {What is full-duplex voice AI?},
author = {{Fullduplex}},
year = {2026},
howpublished = {\url{https://www.fullduplex.ai/knowledge}}
}