Measuring voice agents: turn-taking, tool calls and expressive speech
A voice agent has to choose when to speak, which action to take, and how its reply should sound. We measured those decisions separately, using local models and cloud API configurations. The results help us choose components for private voice applications.
In our earlier survey of full-duplex speech and tools, we followed a spoken request through listening, interruption, tool execution and synthesis. This post adds measurements. You can inspect the complete leaderboard and its 30 October snapshot.
Three measurements for three decisions
TurnBench
When to speak
Turn ends caught, false alarms and decision latency.
SLURP commands
Which action to take
Correct action selection and argument accuracy.
InstructTTSEval
How to sound
Following a voice description, delivery direction or role.
We measure these three abilities separately. An assistant can wait for you to finish speaking and still choose the wrong tool. It can also speak clearly while missing the emotion or style you asked for.
We ran the local models on an Apple M5 Pro with 48 GiB of memory. For cloud services, we tested the model versions and settings listed in the results.
Each section explains how many recordings we used, which languages we tested and any results still being checked. These details help you compare the scores.
TurnBench: when a pause is a turn end
TurnBench distinguishes a speaker finishing from a pause inside a turn. It also distinguishes an interruption from a backchannel such as “mm-hmm.” Our table below focuses on end-of-turn detection.
We used TurnBench’s public development recordings and its own scoring code. The table shows the run size for each model. The official leaderboard uses a separate test set.
Recall is the share of real turn endings the model detects. FPR (false-positive rate) is the share of labelled pauses within a turn that it incorrectly treats as the speaker finishing.
Our leaderboard orders models by recall minus FPR. The official test leaderboard ranks models by recall, placing those with an FPR above 15% below those that meet the limit.
| Configuration | Recall ↑ | FPR ↓ | Median ms | Scope |
|---|---|---|---|---|
| Neosapience Nunchi v2Published predictions · rescored | 96.6% | 6.4% | 355 | 5 conversations; 238 turn ends · published predictions |
| Vox Maru v1Published predictions · rescored | 96.6% | 7.9% | 830 | 5 conversations; 238 turn ends · published predictions |
| p99lab turn-1-miniPublished predictions · rescored | 98.3% | 9.9% | 777 | 5 conversations; 238 turn ends · published predictions |
| Zero Runtime Echo Omni DuplexPublished predictions · rescored | 98.3% | 12.9% | 867 | 5 conversations; 238 turn ends · published predictions |
| VAPLocal CPU | 88.2% | 7.4% | 641 | 5 conversations; 238 turn ends |
| Mimi endpointerLocal CPU | 81.1% | 2.0% | 1,011 | 5 conversations; 238 turn ends |
| OpenAI GPT-Realtime-mini, server VAD (1.8 s silence)Cloud API | 82.3% | 4.5% | 2,005 | 5 conversations; 238 turn ends |
| OpenAI GPT-Realtime-mini, semantic VAD (high eagerness)Cloud API | 83.6% | 7.4% | 2,437 | 5 conversations; 238 turn ends |
| Parakeet EOU 120M + Silero VADOn device | 92.9% | 17.8% | 1,315 | 5 conversations; 238 turn ends |
| Silero VAD + silence timeoutOn device | 92.4% | 17.8% | 1,317 | 5 conversations; 238 turn ends |
| Smart Turn v3.2 + Silero VADOn device | 87.4% | 16.3% | 1,639 | 5 conversations; 238 turn ends |
| ElevenLabs AgentsCloud API | 86.5% | 20.4% | 831 | 3 conversations; 193 turn ends |
| Smart Turn v3On device | 88.2% | 24.3% | 1,031 | 5 conversations; 238 turn ends |
| OpenAI GPT-Live-1Cloud API | 63.0% | 6.9% | 1,589 | 5 conversations; 238 turn ends |
| Gemini 3.8 LiveCloud API | 60.1% | 10.9% | 1,239 | 5 conversations; 238 turn ends |
| WavLM-Base causalLocal CPU | 54.6% | 13.9% | 573 | 5 conversations; 238 turn ends |
| WavLM-Large causalLocal CPU | 53.4% | 17.3% | 586 | 5 conversations; 238 turn ends |
We added four TurnBench submissions by rescoring their published predictions on the same five conversations, without changing their decisions or rerunning their models. Nunchi v2 has the highest recall-minus-FPR score on this slice: 96.6% recall and 6.4% FPR. VAP reaches 88.2% recall with 7.4% FPR; Mimi makes fewer false detections, at 2.0%, but catches fewer turn endings and takes longer to decide.
VAP (Voice Activity Projection) listens to both speakers on separate audio channels and predicts their upcoming speech activity. It uses the recent conversation to estimate whether the current speaker will continue or hand over to the other person. Research on VAP shows that it learns to use cues in the voice, such as pitch and rhythm.
The version we ran was trained further on 104 hours of conversational audio from otoSpeech. Our interpretation is that this training and its view of both speakers help explain its strong result in our comparison.
SLURP: choosing from all available actions
SLURP contains spoken home-assistant requests with an annotated action and argument values. We are moving our command comparison to the original closed-set task: every recording offers all 60 intent labels, including the correct one. There is no missing-tool condition or no-action target in this run.
The first completed rerun uses local Parakeet transcripts and MiniLM to select the nearest labelled training example. It chooses the correct intent on 691 of the same 1,000 recordings: 69.1% overall, 349/480 (72.7%) on headset recordings and 342/520 (65.8%) on far-field recordings. Eleven empty transcripts count as errors. The cloud configurations below have not yet been rerun with all 60 choices, so these scores do not establish a local-versus-cloud ranking.
Earlier comparison: ten candidate actions and missing-tool checks
Our earlier experiment supplied ten candidate intents and a no-action option. In 190 of the 1,000 recordings, the annotated intent was absent and the expected response was no action. The original SLURP evaluation measures intent recognition and entity extraction; this unavailable-tool rejection test was our addition. The following results describe that earlier setup.
Most systems use 1,000 recordings, including close-talk and far-field audio. Far-mic accuracy measures correct choices on recordings made from farther away, when the requested tool is available. Calls despite a missing tool counts requests where the system returned an action even though the annotated tool was absent. It pools close-talk and far-field recordings, and does not measure activation from background speech or silence. The table shows the exact counts.
| System | Far-mic accuracy ↑ | Calls despite missing tool ↓ | Arguments exact ↑ | Run size |
|---|---|---|---|---|
| OpenAI gpt-audio-1.5Cloud API | 83.0% | 42.6%81/190 | 44.7% | 1,000 recordings |
| Amazon Nova 2.5 SonicCloud API | 75.9% | 18.9%36/190 | 45.4% | 1,000 recordings |
| Parakeet → Gemma 4 E2BOn device | 75.2% | 46.3%88/190 | — | 1,000 recordings |
| Parakeet → TypeSafe Jev 1.13Cloud API | 73.5% | 11.6%22/190 | — | 1,000 recordings |
| Parakeet → GLiNER2.5-DecideOn device | 73.5% | 39.0%74/190 | — | 1,000 recordings |
| Gemini 2.5 FlashCloud API | 73.0% | 17.4%33/190 | 40.6% | 1,000 recordings |
| Liquid d1-omni 600MOn device | 72.8% | 69.0%131/190 | — | 1,000 recordings |
| ElevenLabs AgentsCloud API | 66.7% | 28.6%2/7 | 41.9% | 50 recordings |
| Mistral Voxtral Mini 3BOn device | 61.7% | 16.3%31/190 | 35.1% | 1,000 recordings |
| NeuDecide 55MOn device | 56.5% | 89.5%170/190 | 34.9% | 1,000 recordings |
| Parakeet → MiniLM routerOn device | 50.8% | 5.8%11/190 | — | 1,000 recordings |
| Parakeet → FunctionGemma 270MOn device | 36.4% | 34.7%66/190 | 17.6% | 1,000 recordings |
The local Parakeet → Gemma 4 E2B pipeline reaches 75.2% far-mic accuracy, close to Nova’s 75.9% and behind GPT Audio’s 83.0%. But on the 190 requests whose correct tool was unavailable, Gemma still chose an action 88 times: its 46.3% false-activation rate. One example was “delete item”: with list removal unavailable, it chose calendar removal. It also rejected 88 requests whose correct tool was available and selected the wrong tool on another 69.
Jev and GLiNER both choose the correct tool on 311 of the 423 supported far-mic requests, giving 73.5% accuracy. Their behaviour changes when the correct tool is missing: Jev still chooses an action on 22 of 190 requests (11.6%), while GLiNER does so on 74 (39.0%). For example, GLiNER interpreted a request to lower speaker volume as dimming a light when the volume tool was absent. These examples selected a different action from the one requested. Broader tool descriptions can also overlap: a recipe request may be sent to a general cooking tool. Our count follows the annotated intent, so it does not establish that every alternative was semantically unreasonable.
Nova has the highest score for matching both the tool and all required argument values: 45.4%, or 368 of 810 supported requests. It chose the correct tool on 643 requests, but the arguments failed the match on 275 of those. In 147 cases the values differed from the reference; another 128 omitted at least one argument, sometimes alongside value differences.
The most frequent value mismatch was a time, appearing in 34 of those cases. We also saw missing dates and misnamed fields. For an alarm request that included “this week,” Nova returned the time but left out the date. Some failures are wording differences: “lasagna” does not match the reference’s “lasagne” under this strict text comparison. The score counts both kinds of mismatch.
InstructTTSEval: delivery has its own failure modes
For InstructTTSEval, we keep the spoken script fixed and generate separate clips using three types of instruction:
- APS (Acoustic-Parameter Specification) gives detailed voice settings, such as pitch, pace, volume and vocal texture. For example: “Low pitch, slow pace, soft volume and a slightly breathy voice.”
- DSD (Descriptive-Style Directive) describes the delivery in natural language, leaving some voice traits open. For example: “Speak warmly and reassuringly.”
- RP (Role-Play) gives a character or situation and asks the model to infer how to sound. For example: “You’re a doctor comforting an anxious patient.”
The percentage for each type shows how often the generated speech followed that instruction.
The larger cohort contains 25 English and 25 Chinese source lines, three checks each: 150 clips per system. Nova covers the 25 English lines, with 75 checks. Overall is total passes divided by total checks; with equal task sizes, it is the mean of APS, DSD and RP. A saved Gemini Pro judge supplies the style verdicts, while transcription checks the spoken words separately.
Original recordings are the benchmark’s human source audio. We score them with the same instructions and judge used for the 150-check runs to give the synthesized voices a reference point. Their 73.3% means the judge accepted 110 of 150 instruction checks.
| System | Overall | APS | DSD | RP | Scope / status |
|---|---|---|---|---|---|
| Qwen3-TTS 1.7B VoiceDesign (speech-swift)On device | 76.7%23/30 | 70.0%7/10 | 100.0%10/10 | 60.0%6/10 | 5 English + 5 Chinese lines; 30 style checks Pilot · different judge setting |
| Original recordingsHuman reference audio | 73.3%110/150 | 84.0%42/50 | 94.0%47/50 | 42.0%21/50 | 25 English + 25 Chinese lines; 150 style checks Reference |
| Google Gemini 3.8 Flash TTSCloud API | 67.3%101/150 | 76.0%38/50 | 78.0%39/50 | 48.0%24/50 | 25 English + 25 Chinese lines; 150 style checks Measured |
| Breeze TTS 2 (speech-swift, BF16)On device | 66.7%20/30 | 60.0%6/10 | 80.0%8/10 | 60.0%6/10 | 5 English + 5 Chinese lines; 30 style checks Pilot · different judge setting |
| FireRedTTS3-Instruct (speech-swift, FP32)On device | 65.3%98/150 | 68.0%34/50 | 78.0%39/50 | 50.0%25/50 | 25 English + 25 Chinese lines; 150 style checks Provisional · 1 judge response under review |
| ElevenLabs v4Cloud API | 63.3%95/150 | 68.0%34/50 | 76.0%38/50 | 46.0%23/50 | 25 English + 25 Chinese lines; 150 style checks Input adapter under review |
| VoxCPM2 2B (speech-swift)On device | 59.3%89/150 | 64.0%32/50 | 68.0%34/50 | 46.0%23/50 | 25 English + 25 Chinese lines; 150 style checks Provisional · 1 judge response under review |
| MOSS-VoiceGenerator (speech-swift, BF16 + FP32 codec)On device | 56.0%84/150 | 52.0%26/50 | 76.0%38/50 | 40.0%20/50 | 25 English + 25 Chinese lines; 150 style checks Provisional · 1 judge response under review |
| Qwen3-TTS 1.7B CustomVoice (speech-swift)On device | 52.7%79/150 | 54.0%27/50 | 64.0%32/50 | 40.0%20/50 | 25 English + 25 Chinese lines; 150 style checks Measured |
| Qwen3-TTS 0.6B CustomVoice (speech-swift)On device | 48.0%72/150 | 48.0%24/50 | 60.0%30/50 | 36.0%18/50 | 25 English + 25 Chinese lines; 150 style checks Experimental input · 1 judge response under review |
| Amazon Nova 2.5 Sonic (speech generation)Cloud API | 40.0%30/75 | 32.0%8/25 | 56.0%14/25 | 32.0%8/25 | 25 English lines; 75 style checks English only |
| CosyVoice3 0.5B (speech-swift)On device | 34.7%52/150 | 4.0%2/50 | 60.0%30/50 | 40.0%20/50 | 25 English + 25 Chinese lines; 150 style checks Input conditioning and judge response under review |
| Fish Audio S2 Pro (speech-swift, BF16)On device | 34.7%52/150 | 28.0%14/50 | 50.0%25/50 | 26.0%13/50 | 25 English + 25 Chinese lines; 150 style checks Provisional · 2 judge responses under review |
On the matched 150-check cohort, FireRedTTS3-Instruct scores 65.3% and MOSS-VoiceGenerator scores 56.0%. Google’s TTS run scores 67.3%. On the 75 English checks, FireRed scores 72.0%, MOSS 52.0% and Google 72.0%. VoxCPM2’s BF16 run remains at 59.3%; its role-play result, 46.0%, is weaker than its voice-description and direction results. The larger Qwen CustomVoice checkpoint scores 52.7%, versus 48.0% for the smaller experimental-input run. Size alone did not determine the score.
Our ElevenLabs instruction-to-tag conversion dropped requested singing and some emotion changes. CosyVoice3 failed the word-content check on 48 of 50 APS clips; its generation setup also omitted reference conditioning present in the official implementation. These issues still need corrected-input validation. Fish’s corrected run and several other rows contain judge responses that claimed audio was unavailable; we preserve those verdicts and mark the affected rows provisional. These are results for our ports, input adapters and judge, rather than a finding that an upstream model has the same limits in every implementation.
Most failures on the human recordings are in role-play: 29 of 50 checks fail, compared with eight for APS and three for DSD. A real recording can fit a detailed voice description yet not match the role assigned to it, and the judge can also make mistakes. The reference row helps us interpret instruction scores; it does not rate the quality of human speech.
Voice design can be a synthesis backend
Qwen’s VoiceDesign checkpoint generates a voice from a written description. CustomVoice instead applies directions to a selected preset voice. The checkpoint and control channel matter: a field named “instruction” does not give a model a capability it was never trained to use.
We tested Qwen3-TTS 1.7B VoiceDesign and Breeze TTS 2 on the same five English and five Chinese sources, giving 30 checks per model. Four calibration checks are outside their scores. We retained all outputs, including one spoken-word flag per model.
VoiceDesign passed 23/30 checks and Breeze passed 20/30. With ten source recordings shared across the three tasks, this is a development screen. The paired 10-point difference has a wide source-cluster interval that includes zero. The judge setting also differs from the larger cohort, so the pilot does not establish that VoiceDesign outperforms Google’s 67.3% result.
A voice-design request, not a benchmark result
Spoken text: “Your delivery is scheduled for Friday morning.”
Voice brief: “An adult British English narrator with a warm tone, clear articulation and an unhurried pace.”
Keep the script unchanged when trying another delivery. A designed voice and a clone from an authorised reference are different inputs; test consistency across the whole passage.
FireRedTTS3-Instruct and MOSS-VoiceGenerator now each have 150 style checks in the table above. The separate content check flagged 0/150 FireRed clips and 12/150 MOSS clips for word error above 30%. Their short-script runtime samples remain in the Space. First available PCM was about 4.50 s for FireRed and 0.47 s for MOSS on the warm English script; FireRed returns a complete waveform while MOSS streams. Those timings do not establish instruction quality or a matched quality-speed ranking. Existing-model latency and memory certification remains inconclusive.
Turn-taking research now asks for more than an endpoint
Research snapshot: 30 October 2026. The official TurnBench held-out board has newer external submissions beyond the paper’s original baselines. p99 turn-1-mini is listed at 97.5% recall, 7.5% false positives and 595 ms median latency. Its Apache 2.0 release includes a 5.3-million-parameter model and streaming ONNX graphs. That is an organiser-published test result we have not reproduced. Our small dev slice cannot rank against it.
LiveKit’s eot-bench complements this with real human-to-agent turns in 14 languages. It sweeps endpointing policies and compares latency at a fixed false-cutoff budget, including the full tradeoff curve. That is a useful next step for a multilingual product because a threshold that works in English need not suit another language.
MultiPartyTurnBench, submitted this month, expands floor control to two to five speakers. Its authors report strong turn-entry performance alongside near-chance selective interruption handling for the evaluated agents. Its generated conversations provide controlled tests, with real-audio checks needed alongside them. Meetings and shared rooms require more than extending a two-speaker endpoint rule.
Full-Duplex-Bench v3 pairs real disfluent speech with chained tool calls, exposing self-corrections and multi-step failures. DuplexAct, also submitted this month, evaluates interaction actions and whether the agent follows through. We see these as complementary tests for the gap between detecting an event and completing a useful interaction. We have not run these newer benchmarks in this post.
Private synthesis, directed dubbing and English voice choices
Soniqo’s private runtime and on-device SDKs provide building blocks for speech applications in your own environment. We work with teams building expressive synthesis and emotionally directed dubbing pipelines: retain the intended words, choose a voice, supply a delivery brief, then review the result in context.
You can plug a voice-design backend into the synthesis stage while keeping turn policy and tool execution separate. For a narrated scene, the application can specify calm reassurance or rising urgency rather than infer an emotion and change the performance without a director’s control. A dubbing workflow also needs timing, speaker continuity and a listening review; the three benchmarks above do not certify that complete workflow.
English voice choices include American and British preset voices in the Kokoro catalogue. Style-aware backends add natural-language voice briefs. Preset selection, voice design and cloning are distinct controls, and support varies by model. A requested regional accent needs evaluation with listeners familiar with that variety; transcription accuracy and speaker similarity do not establish authenticity.
With a local backend and model assets provisioned, synthesis can stay in the deployment environment. The exact deployment and model choice depend on the target hardware and the model’s terms. Research-only benchmark data and restricted model weights are not a blanket commercial licence.
Build a voice workflow on your infrastructure
Bring the target platform, language and accent requirements, voice permissions, and examples of the delivery you need. We can scope the runtime, synthesis backend and evaluation around that workload.
Explore private speech deploymentThe choices these measurements support
- Choose a turn policy by its operating point. In our dev slice, VAP and Mimi offer different recall, false-alarm and delay tradeoffs. Current held-out research has moved beyond those original baselines.
- Compare command models with the same choices. Our all-60-intent rerun starts at 69.1% for Parakeet → MiniLM. The earlier ten-candidate experiment also exposed incorrect argument values and missing fields; its scores describe a different task.
- Test delivery by instruction type. Role-play is a weaker area in several runs. The VoiceDesign pilot warrants a larger matched comparison, rather than a claim of a new overall winner.
Our next useful measurements are a larger VoiceDesign cohort with matched judging, multilingual endpointing at fixed cutoff rates, and interaction tests that carry a correction through to the final tool call. Human review of accent, naturalness and performance continuity belongs alongside the automatic scores for production voice work.
Read the live results and protocols, explore speech-swift, or discuss a private deployment. The tables above retain the run sizes and settings from the linked snapshot.
