VoxTurn: Answering Several Turn-Taking Questions in One Pass with One Model
Organizations: The University of Melbourne
Abstract
A cascaded voice agent must decide, throughout each silence of its user, whether the user has finished their turn: answering too early cuts the user off, answering too late makes the agent slow. It often needs related decisions too: will the user soon go on, is speech during its own turn an interruption or a backchannel, is a sound speech at all. With open detectors, each extra decision costs another model or another call, and on the 14-language eot-bench they cut users off in more than a quarter of mid-turn pauses. Because they are trained on segmented utterances, this mismatch is the largest single source of error. We present VoxTurn, a 0.8B speech LLM that casts these decisions as multiple-choice questions, scores the hidden state of each option, and answers any set of them in one forward pass with a block-isolating attention mask, exactly as if asked one at a time. Trained on real conversational pauses with labels derived from their timing, and re-queried while a silence lasts, VoxTurn reaches 11.5% false cut-offs in English at a 300 ms latency budget, comparable to two commercial detectors, and a 14-language mean of 19.9%, the lowest among open models, at 8.3 ms per decision. In Pipecat and LiveKit it cuts off 17% and 9% of turns, and it ranks fifth of 24 in TurnBench end-of-turn detection without any TurnBench training data. The model, code and framework plugins are released.
Figures & tables
| Question | What it asks | Options | Supervised by |
| eot | Has the user finished their turn? | yes / no | Smart Turn, pause sources, SemanticVAD |
| resume | When will the user go on? | within 0.5 s / later / not in this turn | pause timing (auxiliary) |
| state4 | Easy Turn dialogue state | complete / incomplete / backchannel / wait | Easy Turn |
| intent | Is speech during the agent’s turn an interruption? | interruption / backchannel | SemanticVAD |
| invalid | Is the sound not valid input (cough, laughter, noise, music)? | yes / no | MUSAN, VocalSound; real speech as negatives |
| Source | Type | Lang. | Question | Size | Share |
| Smart Turn v3.2 [ 7 ] | segmented utterances | 23 langs | eot | 266k | 18% |
| Easy Turn [ 11 ] | segmented utterances | zh | state4 | 1.19M | 25% |
| MagicData-RAMC [ 21 ] | conversational pauses | zh | eot | 181k | 11% |
| SpokenWOZ [ 22 ] | conversational pauses (phone) | en | eot | 95k | 14% |
| Seamless Interaction [ 23 ] | conversational pauses (face-to-face) | en | eot | 179k | 14% |
| SemanticVAD [ 16 ] | dialogue text | en, zh | eot, intent | 15k | 4% |
| Benchmark | What is tested | Languages | Metric |
| eot-bench [ 1 ] | hold vs. end-of-turn silences in real user turns, scored every 100 ms into each silence | 14 | false cut-offs at a 300 / 600 ms latency budget; latency at 5 / 10% cut-offs; AUC at 200 ms |
| TurnBench [ 2 ] | end-of-turn (EOT) and interruption (INT) events in 30 h of two-party conversation | en | recall at an FPR, median latency |
| Easy Turn test [ 11 ] | four dialogue states from audio | zh | accuracy |
| TEN test [ 15 ] | finished vs. unfinished turns from text | en, zh | per-class recall |
| OpenSLR 99 [ 18 ] | nonverbal vocalisations (16 categories) vs. 1,786 valid speech clips | – | flagged / falsely rejected |
| Framework replay | 150 eot-bench English turns through Pipecat [ 26 ] and LiveKit Agents [ 27 ] | en | turns cut off, mean response delay |
| English | Chinese | 14 lang. | ||||||
| cut-offs (%) at | latency (ms) at | |||||||
| System | Open | Params | 300 ms | 600 ms | 5% | 10% | @300 | mean |
| LiveKit v1 [ 6 ] | – | – | 9.9 | 4.5 | 543 | 295 | 20.6 | 14.0 |
| turn-1 [ 10 ] | 2.8B | 10.6 | 4.5 | 553 | 322 | – | – | |
| VoxTurn v1 | 0.8B | 11.5 | 6.0 | 669 | 335 | 22.9 | 19.9 | |
| Baton [ 8 ] | – | – | 12.3 | 4.8 | 577 | 350 | – | – |
| English | Chinese | 14 lang. | |||
| Configuration | @300 (%) | @5% (ms) | AUC | @300 (%) | mean (%) |
| r0: segmented utterances, RAMC at 0.2 s | 26.2 | 921 | .896 | 42.1 | 33.0 |
| r1: + RAMC decision time within pause | 22.6 | 936 | .901 | 32.7 | – |
| r2: + SpokenWOZ pauses | 16.3 | 850 | .944 | 29.1 | – |
| r3: + Seamless pauses | 16.5 | 808 | .940 | 26.5 | 20.0 |
| 4 more training (1.2M) | 15.9 | 833 | .948 | 24.8 | 21.0 |
| EOT | INT | |||||
| System | R | FPR | ms | R | FPR | ms |
| turn-1-mini † [ 30 ] | .975 | .075 | 595 | .973 | .048 | 551 |
| Vox Maru v1 † | .960 | .072 | 548 | .964 | .085 | 368 |
| Ooma † | .951 | .082 | 388 | .968 | .076 | 567 |
| Tavus Sparrow-2 † | .930 | .084 | 615 | .958 | .126 | 959 |
| SPX-AI MicroCF † | .906 | .079 | 678 | .984 | .073 | 747 |
| Call | ms |
| 1 question, unmerged eager model | 38 |
| 1 question, serving mode | 8.3 |
| 4 questions in 4 passes | 33.2 |
| 4 questions in one pass | 9.0 |
| 4 clips in one batch, 1 question each | 16.0 |
Appendix figures & tables2 assets
Supplementary material from the paper’s appendix.
Appendix
| ar | de | en | es | fr | hi | id | it | ja | ko | nl | pt | tr | zh | mean | |
| False cut-offs at 300 ms (%) | |||||||||||||||
| LiveKit v1 (closed) | 16.2 | 11.8 | 9.9 | 15.5 | 12.7 | 10.5 | 22.3 | 16.9 | 5.6 | 5.5 | 12.5 | 20.1 | 15.7 | 20.6 | 14.0 |
| VoxTurn v1 | 21.1 | 15.4 | 11.5 | 21.4 | 13.4 | 37.5 | 30.8 | 21.0 | 11.1 | 12.8 | 15.9 | 24.1 | 20.1 | 22.9 | 19.9 |
| LiveKit v1-mini | 24.4 | 24.8 | 27.8 | 26.0 | 22.4 | 27.4 | 43.5 | 33.7 | 23.5 | 12.3 | 32.9 | 36.9 | 35.3 | 27.5 | 28.4 |
| ultraVAD | 45.5 | 35.5 | 27.7 | 41.6 | 34.4 | 39.1 | 45.0 | 40.4 | 12.0 | 33.8 | 42.3 | 42.8 | 44.9 | 38.8 | 37.4 |
| Smart Turn v3.2 | 39.2 | 35.5 | 35.2 | 38.7 | 38.9 | 42.6 | 46.2 | 44.1 | 34.9 | 30.1 | 42.3 | 42.7 | 43.3 | 42.9 | 39.7 |
| Setting | Value |
| Backbone | Qwen3-ASR-0.6B (AuT encoder frozen, Qwen3-0.6B language model) |
| Trained parameters | projector, LoRA, linear head (11.8M) |
| LoRA | rank 16, , every linear layer of the language model |
| Audio context | 8 s, left-padded with silence; 13 tokens/s (104 tokens) |
| Training samples | 300k |
| Batch | 128 (4 micro-batches of 32) |
Turn-Taking Prediction
Turn-taking prediction estimates when speakers will stop, continue, or enter a conversation, helping dialogue systems respond at appropriate moments.
See all 37 papers