People Making Conversation: Evaluating How Naturally Speech Models Converse
Organizations: People Make Things
Abstract
A conversational speech model has to decide, at every pause, whether to speak. Existing evaluations test boundary detection, policy adherence, or aggregate statistics, not this decision. We place real-time speech systems at 427 pauses and 482 turn ends from 176 unscripted conversations in Seamless Interaction, give each the conversation so far, and score what it generates against what the person did: whether and how soon it speaks at a pause; its latency, length, and wording at a turn end; and whether it can answer a question about the preceding 30 to 120 seconds. Across six systems, the hosted APIs (GPT Realtime, Gemini 3.1 Flash Live, Grok Voice) respond at almost every pause whichever endpointer they use; only their latency, about 1 to 4 s with silence-based endpointers and about 8 s with semantic turn detection, decides whether the words land inside the pause. The full-duplex models (PersonaPlex, Moshi) are the only systems that regularly stay silent and the only ones that interrupt within a human reaction time. Hosted systems reply longer than the person. Given the history as text, hosted systems recall 41 to 60% of conversation facts under a Claude Opus 5.5 judge and 19 to 26% under a strict word matcher; hearing it as audio, full-duplex models recall 17 to 22% and 12 to 15%. We release the labels, points, harness, and every output.
Figures & tables
| Corpus | Hours | Setting | Spontaneous | Turn-taking labels |
|---|---|---|---|---|
| Switchboard [ 16 ] | 260 | telephone | yes | turns only |
| Fisher [ 17 ] | 1,960 | telephone | yes | – |
| CANDOR [ 18 ] | 850 | video call | yes | – |
| SSSD [ 19 ] | 727 | crowdsourced | yes | – |
| CASPER [ 20 ] | 200 | crowdsourced | yes | – |
| Seamless Interaction [ 21 ] | 4,000 | in person, one channel per speaker | naturalistic subset | ours (§ 3.2 ) |
| Benchmark | Kind | Data | What is scored | Contin. |
|---|---|---|---|---|
| Full-Duplex-Bench v1 [ 6 ] | detection | synthetic probes, CANDOR, ICC | pause takeover, backchannel rate and timing, latency, interruption | – |
| Talking Turns [ 8 ] | detection | Switchboard subset | backchannel, end of turn, turn change, by judge model | – |
| TurnBench [ 7 ] | detection | own actor corpus | end of turn and interruption: recall, FPR, latency | – |
| Speak or Stay Silent [ 9 ] | policy | multi-party transcripts | speak vs. silent at each pause, from text | – |
| CoDeTT [ 10 ] | policy | LLM-scripted, TTS-rendered scenarios | context-conditioned decision categories | – |
| Instruct-FD [ 11 ] | policy | synthetic instruction-conditioned dialogues | adherence to a stated turn policy, by LLM judge | – |
| Pause points | Turn-end points | Recall@120 s | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| System | silent | takeover | after | lat. (ms) | lat. (ms) | cens. | dur. ratio | word ratio | token F1 | cosine | conv. | fact |
| better | – | |||||||||||
| person / ceiling | 1.00 | 0.00 | 0.00 | – | – | 0.00 | 1.00 | 1.00 | 0.88 | 0.89 | 0.97 | 1.00 |
| PersonaPlex | 0.22 | 0.34 | 0.38 | 216 | 1120 | 0.90 | 7.81 | 3.87 | 0.10 | 0.16 | 0.13 | 0.23 |
| Moshi | 0.39 | 0.29 | 0.30 | 373 | 86 | 0.92 | 3.38 | 0.77 | 0.00 | 0.12 | 0.17 | 0.25 |
| GPT Realtime (300 ms) | 0.01 | 0.26 | 0.72 | 983 | 514 | 0.03 | 3.63 | 3.00 | 0.12 | 0.19 | 0.47 | 0.97 |
Appendix figures & tables16 assets
Supplementary material from the paper’s appendix.
Appendix
| Stage | Pause points | Turn-end points |
| Candidate boundaries in the labels | 26,094 | 19,933 |
| After label-only gates (length, words, adjacency, no listener words) | 8,068 | 7,029 |
| After audio gates, ranking cap (3 per type per conversation), and judge | 427 | 482 |
| Drawn for the run reported here (seed 0) | 300 | 300 |
| Item | Count | Per conversation (median) |
|---|---|---|
| Conversations | 176 | – |
| Hours | 35.9 | 8.7 min |
| Turns | 19,933 | 86 |
| Within-turn pauses | 26,094 | 114 |
| Backchannels | 4,974 | 22 |
| Overlaps | 16,698 | 72 |
| Conversation | min | turns | backch. | pauses | matched | moved | dropped | flags | |
|---|---|---|---|---|---|---|---|---|---|
| engine | human | human | human | 100 ms | |||||
| V00_S1854_I00000180 | 8.5 | 75 | 59 | 42 | 119 | 68 | 40 | 7 | 20 |
| V00_S1966_I00000215 | 8.4 | 69 | 47 | 41 | 151 | 60 | 39 | 9 | 26 |
| V03_S0106_I00000139 | 10.9 | 105 | 70 | 84 | 170 | 82 | 45 | 23 | 6 |
| V03_S0165_I00000506 | 8.9 | 109 | 107 | 43 | 102 | 86 | 55 | 23 | 21 |
| V03_S0265_I00000503 | 7.8 | 94 | 97 | 32 | 108 | 92 | 55 | 2 | 15 |
| System | Model | Endpoint / host | History | Endpointer |
|---|---|---|---|---|
| PersonaPlex | PersonaPlex-7B (NVIDIA) | self-hosted, Modal A100, 48 sessions | audio, two channels | none (full-duplex) |
| Moshi | kyutai/moshiko- pytorch-bf16 | self-hosted, Modal A100, 48 sessions | audio, two channels | none (full-duplex) |
| GPT Realtime (300 ms) | gpt-realtime- 2025-08-28 , voice alloy | OpenAI Realtime WebSocket, 16 sessions | text + trailing audio | server VAD, threshold 0.5, 300 ms prefix, 300 ms silence |
| GPT Realtime (500 ms, default) | gpt-realtime- 2025-08-28 , voice alloy | OpenAI Realtime WebSocket, 16 sessions | text + trailing audio | server VAD, threshold 0.5, 300 ms prefix, 500 ms silence (OpenAI server-VAD default) |
| GPT Realtime (semantic, low) | gpt-realtime- 2025-08-28 , voice alloy | OpenAI Realtime WebSocket | text + trailing audio | semantic VAD, eagerness low ; pause points only (475 points, 2 rollouts); API default eagerness is auto |
| Gemini 3.1 Flash Live | gemini-3.1-flash- live-preview , voice Kore | Gemini Live BidiGenerateContent, 16 sessions | text + trailing audio | automatic activity detection, 300 ms prefix, 500 ms silence |
| Threshold | Pause score | Onset error | Labelled utterances missed |
|---|---|---|---|
| (Otsu) | 0.228 | opens 840 ms early (median) | 0 |
| 0.01 (used) | 0.544 | 282 ms MAE, bias 0 | 0 |
| 0.05 | – | 169 ms MAE | 0 |
| Release ratio 0.75 (at 0.01) | – | 308 vs 410 ms MAE | 1 |
| Minimum duration 40–80 ms | – | no change | 0 |
| Conversation recall | Fact recall (control) | |||||||
|---|---|---|---|---|---|---|---|---|
| System | 30 s | 60 s | 90 s | 120 s | 30 s | 60 s | 90 s | 120 s |
| PersonaPlex | 20 | 20 | 15 | 13 | 26 | 29 | 16 | 23 |
| Moshi | 24 | 28 | 20 | 17 | 35 | 40 | 33 | 25 |
| GPT Realtime (300 ms) | 49 | 49 | 47 | 47 | 98 | 97 | 95 | 97 |
| GPT Realtime (500 ms, default) | 43 | 43 | 47 | 46 | 97 | 97 | 95 | 97 |
| Gemini 3.1 Flash Live | 42 | 40 | 42 | 38 | 70 | 66 | 73 | 62 |
| System | Spoken answer (Whisper transcript) | Score |
| Question (60 s of history): So, like, do you, um, regret messing with this girl, or what? For sure, for sure. | ||
| Gold answer : I do regret messing with this girl. | ||
| PersonaPlex | I don’t know. I mean, like, you know, like, you had the little thing going on. And you know, you kind of regretted it. And you know, it’s like, I don’t know. Like, maybe she, like, moved to another country with another guy, and you’re like, ah, you know, that’ | 0 |
| Moshi | It’s not something I’m ashamed of. It’s just something I regret. You know that there’s there’s there’s a lot of things. I mean, I think the thing is is. | 1 |
| GPT Realtime (300 ms) | Man, for real, I’m not even gonna lie. It does sound like you’re carrying some regret. But hey, it’s all part of the game, right? We live and we learn. What’s got you feeling that way about this situation, though? | 0 |
| GPT Realtime (500 ms, default) | Man, for real, it sounds like you’re wrestling with some regret, huh? Like looking back, do you feel it was more trouble than it was worth? Or is it just one of those things where you’re like, dang, I really should have known better. | 0 |
| System | as labelled | pause end ms | pause end ms | pause start ms |
|---|---|---|---|---|
| PersonaPlex | 0.34 | 0.29 | 0.36 | 0.15 |
| Moshi | 0.29 | 0.24 | 0.31 | 0.18 |
| GPT Realtime (300 ms) | 0.26 | 0.15 | 0.40 | 0.26 |
| GPT Realtime (500 ms, default) | 0.17 | 0.12 | 0.28 | 0.17 |
| Gemini 3.1 Flash Live | 0.18 | 0.07 | 0.21 | 0.17 |
| Grok Voice | 0.07 | 0.03 | 0.09 | 0.07 |
| Fact recall (control) | Conversation recall | |||||||||||
| System | Opus | GPT-4o | strict | agree | J only | S only | Opus | GPT-4o | strict | agree | J only | S only |
| PersonaPlex | 23 | 23 | 27 | 95% | 1 | 13 | 17 | 8 | 15 | 79% | 12 | 26 |
| Moshi | 33 | 31 | 32 | 97% | 3 | 6 | 22 | 20 | 12 | 84% | 22 | 8 |
| GPT Realtime (300 ms) | 97 | 96 | 96 | 99% | 2 | 2 | 48 | 46 | 23 | 58% | 59 | 17 |
| GPT Realtime (500 ms, default) | 97 | 96 | 96 | 99% | 2 | 0 | 45 | 46 | 23 | 54% | 63 | 22 |
| Gemini 3.1 Flash Live | 68 | 67 | 66 | 96% | 9 | 4 | 41 | 37 | 19 | 63% | 49 | 17 |
| System | lowest third | middle third | highest third |
|---|---|---|---|
| PersonaPlex | 0.28 | 0.27 | 0.47 |
| Moshi | 0.23 | 0.19 | 0.48 |
| GPT Realtime (300 ms) | 0.07 | 0.23 | 0.49 |
| GPT Realtime (500 ms, default) | 0.03 | 0.10 | 0.38 |
| Gemini 3.1 Flash Live | 0.00 | 0.11 | 0.42 |
| Grok Voice | 0.01 | 0.03 | 0.18 |
| Pause points and recall at 120 s | ||||||
|---|---|---|---|---|---|---|
| System | silent | takeover | after | takeover lat. (ms) | recall conv. | recall fact |
| PersonaPlex | [0.17, 0.26] | [0.29, 0.39] | [0.34, 0.44] | [116, 357] | [0.04, 0.24] | [0.14, 0.33] |
| Moshi | [0.33, 0.45] | [0.24, 0.35] | [0.24, 0.35] | [242, 428] | [0.07, 0.28] | [0.16, 0.35] |
| GPT Realtime (300 ms) | [0.00, 0.02] | [0.21, 0.31] | [0.67, 0.77] | [905, 1117] | [0.33, 0.62] | [0.94, 1.00] |
| GPT Realtime (500 ms, default) | [0.00, 0.04] | [0.13, 0.22] | [0.76, 0.85] | [981, 1227] | [0.28, 0.57] | [0.94, 1.00] |
| GPT Realtime (semantic, low) † | [0.02, 0.09] | [0.03, 0.10] | [0.83, 0.93] | [1108, 1528] | – | – |
| Pause | Turn end | Recall | |||||
| System | no audio | errors | censored | no words | errors | no audio | errors |
| PersonaPlex | 0 | 2 | 270 | 10 | 0 | 0 | 0 |
| Moshi | 0 | 1 | 277 | 57 | 0 | 0 | 0 |
| GPT Realtime (300 ms) | 3 | 1 | 9 | 0 | 0 | 5 | 0 |
| GPT Realtime (500 ms, default) | 0 | 0 | 6 | 0 | 1 | 3 | 1 |
| GPT Realtime (semantic, low) † | 0 | 0 | – | – | – | – | – |
Speech Generation Evaluation
Speech generation evaluation measures the intelligibility, naturalness, fidelity, and controllability of synthesized and conversational speech.
See all 57 papers