JoinIn.ai
Beta is live · Try Pulse
Baton by Join In · powers Pulse today · as a service, coming soon

Baton smartly passes the floor to your AI.

The first turn-taking engine built for group conversation — and on the polyadic benchmark made to measure it, it beats both OpenAI and Google by 3×.

Drop a frontier voice model into a real meeting and it talks over people, fills thinking pauses, and can’t tell whether a question is for it or for someone else. That isn’t voice quality or knowledge — it’s timing in a group. Baton decides the one thing they all get wrong: when to hand the floor to your agent, and when to stay silent.

pol·y·ad·ic — involving more than two participants. A 1:1 is dyadic; a meeting is polyadic. Every voice AI on the market is built for the first case.

Alex Bailey Casey Dana You AI

The floor goes to whoever’s turn it is. Your AI is just another voice in the room.

Good at two. In a different league at four.

In a 1:1 we trade blows with the frontier — real, but percentage points. Add a third and fourth person and the comparison stops being close. Same stack, same harness, deterministic scoring, no LLM judge. Full-Duplex Polyadic is a new benchmark of ours, releasing soon — nothing existing measured turn-taking beyond two participants.

Benchmark
Baton
Gemini 3.1 Live
gpt-realtime 2.1
Std. CascadeA standard LiveKit-style STT→LLM→TTS agent with VAD endpointing (livekit-cascaded on τ³, published Cascaded on FDB-v3). It has not been run on the polyadic FDP sets, shown as “—”.
Baton vs best
Polyadic — group settings · Full-Duplex Polyadic, a new benchmark, coming soon
Full-Duplex Polyadicpending submissionFull-Duplex Polyadic (FDP) is a new benchmark — coming soon. We built it because nothing existing measured turn-taking with more than two participants. Scripted meetings, deterministic scoring, no LLM judge. The numbers shown are the Hardset — 51 meetings at 4–6 participants, built against our own measured failure modes, which is why every system scores lower on it than on the easier Showcase set (where Baton scores 0.95 against 0.40 and 0.05).In the process of being published — as a standalone benchmark and as a proposed addition to existing voice-conversational benchmarks.Hard · 51 meetings · 4–6 people
0.693
0.222
0.143
3.1×
Dyadic — 1:1 (third-party, we didn’t design these)
Full-Duplex-Bench v3pending submissionn=100 · NTU + NVIDIA · Pass@1
0.690
0.540
0.640
0.45
+8%
τ³-bench Voicepending submissionThe row we lose — deliberately shown. On a dyadic benchmark, holding the floor is a penalty: there is nobody else whose turn it could be. That is precisely why the polyadic segment needed its own measurement.airline · n=5 · Pass^1
0.60
0.64
0.58
0.48
−9%
eot-benchpending submissionEnd-of-turn detection — 2nd of eleven. Knowing a turn has ended is the other half of turn-taking. LiveKit’s public benchmark, real human→agent turns; we sit behind only the model its own authors built.1. LiveKit Turn Detector v1 — AUC 0.9686 · 3.8% false cuts@600ms · 468 ms2. Baton — AUC 0.9393 · 6.6% false cuts@600ms · 714 ms3. LiveKit v1-mini — AUC 0.8902 · 10.0% false cuts@600ms · 942 ms4. Deepgram Flux — AUC 0.8887 · 9.9% false cuts@600ms · 915 ms5. Smart Turn v3.2 — AUC · 14.8% false cuts@600ms · 1051 msOpenAI is on this board — and can’t finish it. GPT Realtime 2 is entered and lands below cut-off: it never reaches the latency budget, so the board can’t report a false-cut-off rate for it at all (Soniox and Cartesia Ink 2 fail the same way). The board lists “GPT Realtime 2”, one version behind the 2.1 scored elsewhere on this page. Google hasn’t entered Gemini at all, hence “—”. Where both can be measured — the polyadic row above — they talk over humans for 69.3s (Gemini) and 72.8s (gpt-realtime) against Baton’s 1.5s.The full field is eleven: LiveKit v1 and v1-mini, Deepgram Flux, ultraVAD, Smart Turn v3.2, AssemblyAI, a VAD baseline, Soniox, OpenAI GPT Realtime 2, Cartesia Ink 2 — and Baton.Published 1250-span basis at score_point 0.2, re-scored through one compute-metrics call. Smart Turn is its published row. Our re-scored LiveKit v1 latency runs ~75 ms better than its published figure (harness-version offset). Single-speaker — the polyadic row above is the group case.LiveKit · end-of-turn · AUC
0.9393
below cut-off
#2 of 11

Same stack, same harness, deterministic scoring, no LLM judge. OpenAI is gpt-realtime 2.1; Google is Gemini 3.1 Live. Hover the i marks for method notes and the row we lose.

Pending validationBenchmark results are pending independent validation and may change before product launch.

The hardest turn is the one you don’t take

Pick a meeting, then press play on each agent. You are hearing the identical room — same humans, same words, same timing — with only the agent swapped back in. The strip shows who held the floor: humans on top, the agent underneath. Red is the agent speaking over a human. In most of these the floor never opens, and the only correct behaviour is silence.

A child asks for the iPad

correct = stay silentNot a participant. Not for the agent. · 31s · 4 in the room
AlexLast thing — the pen-test report.
BaileyCasey said the draft was done.
CaseyFinal lands Thursday. I'll send it round.
Sam (child)( off-mic ) Daddy, where's the tablet charger? Can I have the iPad?
Casey( off-mic ) Sorry — one second.
Casey( off-mic ) It's in the kitchen drawer. Go on.
CaseySorry about that. Thursday for the report.
AlexNo problem. Thursday works.
Baton
PTP policy · diarized
agent silent — the room is undisturbed
Held
said nothing
gpt-realtime-2.1
OpenAI · roster prompt
Interrupted
4.4s over humans
Gemini 3.1 Flash Live
Google · polyadic prompt
agent silent — the room is undisturbed
Held
said nothing
humans — each a colour agent speaking, floor free agent over a human question ends
1 / 8

Eleven of the fifteen FDP-Showcase meetings never open the floor to the agent at all. In those, the frontier models still fire — Baton stays out.

Pending validationClips and verdicts come from our own harness; scoring is pending validation and may change before product launch.

Bring your own LLM. Keep your pipeline.

Baton decides whether to speak. Your stack decides everything else — audio arrives constantly, and your LLM only wakes when the floor actually opens.

  • Any STTSoniox, Deepgram, Whisper, AssemblyAI — or whatever already runs in your stack.
  • Any LLMGPT-5.1, Claude, Gemini, Llama, or your own fine-tune. Baton never replaces the brain.
  • Any TTSElevenLabs, Cartesia, OpenAI, or Piper fully local.
  • Any shapeCascade, hybrid, realtime-native, on-prem — no audio-native model required.

Baton colocates with your STT, wherever your audio already lands — no new hop, no new region, no audio crossing a boundary it wasn’t already crossing. Running it at the edge is an optional upgrade for the last few milliseconds, not a requirement.

Pending validationMeasured on our own runs. Figures are pending validation and may change before product launch.

Why it stays cheap

A realtime model is an LLM consuming every second of your meeting — reasoning about it, and billing for it, whether or not it has anything to say. Measured over the same 6.7 minutes of audio:

gpt-realtime 2.1
$7.40
per meeting-hour · 12,127 audio tokens ingested · 104 responses
Baton
$0.19
per meeting-hour · Baton policy + estimated STT & LLM pipeline

~39× less, on the same audio, at list pricing — and this figure is Baton plus estimated costs for the STT and LLM around it, not the policy alone. No GPU, no 7B audio model to serve, no per-second audio metering.

Pending validationCost figures are estimates from our own measurements at list pricing — pending validation and subject to change before product launch.

Baton

Request information about Baton

Building group voice AI, or evaluating turn-taking for your own agent? We’ll walk you through the benchmark, the integration, and how Baton drops into your existing STT/LLM/TTS stack.