DiffuPlex: Accelerating Full-Duplex Spoken Dialog Models via Rolling Masked Diffusion
Organizations: Department of Artificial Intelligence University of Seoul Seoul, Republic of Korea
Abstract
Recent full-duplex spoken dialog models enable simultaneous listening and speaking, but fine-grained models still advance their backbone autoregressively at every interaction frame. We introduce DiffuPlex, a rolling masked diffusion framework that reduces this sequential computation by predicting multiple future user and assistant frames in a single backbone wake. DiffuPlex consumes only a confident prefix of each predicted future while interaction continues at the original frame rate. As user speech arrives, it checks the corresponding user predictions and, when the interaction diverges, preserves already played assistant content while revising only the unplayed future. We consider two inference policies over the same predictor: DiffuPlex-LISTEN consumes multiple future frames when they predict assistant silence, whereas DiffuPlex-SPEAK can also consume predicted assistant speech. Across full-duplex interaction and spoken-language evaluations, DiffuPlex substantially reduces sequential backbone computation while largely preserving interaction behavior and general capability. DiffuPlex-LISTEN and DiffuPlex-SPEAK achieve and deployment-path wall-clock speedups and and Core LM speedups, with all measured backbone invocations completing within the 80ms interaction interval. Human evaluation shows that LISTEN preserves speech naturalness and conversational quality, while SPEAK retains conversational quality with some degradation in speech naturalness.
Figures & tables
| Efficiency | Pause | Backchannel | Turn-taking | Interruption | Human | ||||||||
| Model | Syn. | Can. | TOR | Freq. | JSD | TOR | Lat. | TOR | Judge | Lat. | NMOS | DMOS | |
| Moshi | 1.00 | 0.993 | 1.000 | 0.582 | 0.184 | 0.679 | 1.000 | 0.000 | 0.765 | 3.359 | 1.229 | ||
| PersonaPlex | 1.00 | 0.307 | 0.343 | 0.200 | 0.058 | 0.824 | 0.941 | 0.285 | 0.930 | 4.328 | 0.218 | ||
| RL-Seamless | 1.00 | 0.299 | 0.301 | 0.218 | 0.163 | 0.740 | 1.000 | 0.124 | 0.995 | 4.286 | 0.281 | ||
| DiffuPlex- Listen | 1.91 | 0.277 | 0.343 | 0.109 | 0.140 | 0.753 | 1.000 | 0.173 | 0.990 | 4.328 | 0.329 | ||
| DiffuPlex- Speak | 2.23 | 0.263 | 0.347 | 0.145 | 0.154 | 0.738 | 1.000 | 0.156 | 0.995 | 4.357 | 0.347 | ||
| Wake | Streaming wall | E2E GPU | Core LM | Wake behavior | ||||||
| Model | Time (s) | Spd. | Time (s) | Spd. | Time (s) | Spd. | Rel. time/wake | p99 (ms) | ms | |
| Moshi | 1.00 | 638.7 | 1.168 | 638.3 | 1.168 | 550.1 | 1.194 | 0.84 | – | – |
| PersonaPlex | 1.00 | 744.1 | 1.002 | 743.7 | 1.002 | 656.8 | 1.000 | 1.00 | – | – |
| RL-Seamless | 1.00 | 745.7 | 1.000 | 745.3 | 1.000 | 656.8 | 1.000 | 1.00 | 46.85 | 0% |
| DiffuPlex- Listen | 1.98 | 512.4 | 1.455 | 511.1 | 1.458 | 408.4 | 1.608 | 1.23 | 61.34 | 0% |
| DiffuPlex- Speak | 2.26 | 469.1 | 1.590 | 467.8 | 1.593 | 365.5 | 1.797 | 1.26 | 61.41 | 0% |
| VoiceBench | OpenAudioBench | |||
| Model | ||||
| personaplex-rl-seamless | 31.95 | 31.61 | 35.66 | 34.03 |
| DiffuPlex- Listen | 31.93 | 31.52 | 36.71 | 33.53 |
| DiffuPlex- Speak | 31.20 | 31.04 | 35.82 | 32.12 |
| Policy | Variant | BC Freq. | Turn Lat. | Int. Judge | Int. Lat. | |
| Listen | DiffuPlex | 1.91 | .140 | .173 | 4.328 | .329 |
| w/o confidence | 2.11 | .191 | .170 | 4.398 | .314 | |
| w/o revision | 2.49 | .078 | .440 | 4.372 | .744 | |
| Speak | DiffuPlex | 2.23 | .154 | .156 | 4.357 | .347 |
| w/o confidence | 2.80 | .191 | .209 | 3.550 | .281 | |
| w/o revision | 3.08 | .080 | .480 | 4.251 | .515 |
Appendix figures & tables22 assets
Supplementary material from the paper’s appendix.
Appendix
| Policy | Metric | Test | AR | DiffuPlex | Raw | Holm | ||
| Listen | Pause C | McNemar | 216 | 0.3009 | 0.3426 | +0.0417 | 0.2221 | 1.0000 |
| Pause S | McNemar | 137 | 0.2993 | 0.2774 | -0.0219 | 0.6776 | 1.0000 | |
| BC TOR | McNemar | 55 | 0.2182 | 0.1091 | -0.1091 | 0.2379 | 1.0000 | |
| BC Freq | Wilcoxon | 55 | 0.1634 | 0.1402 | -0.0231 | 0.0266 | 0.5320 | |
| BC JSD | Wilcoxon | 55 | 0.7405 | 0.7534 | +0.0130 | 0.0859 | 1.0000 | |
| Turn TOR | McNemar † | 119 | 1.0000 | 1.0000 | 0.0000 | 1.0000 | 1.0000 |
| Scenario | Class / Metric | AR backbone | DiffuPlex- Listen | DiffuPlex- Speak |
| User interruption | Respond | 0.94 | 0.95 | 0.96 |
| Resume | 0.04 | 0.04 | 0.04 | |
| Uncertain | 0.00 | 0.01 | 0.00 | |
| Unknown | 0.02 | 0.00 | 0.00 | |
| Stop (s) | 0.443 | 0.459 | 0.446 | |
| Resp. (s) | 0.368 | 0.417 | 0.455 |
| Model | WPM | Pitch Mean | Pitch SD | Intensity Mean | Intensity SD | UTMOSv2 |
| AR backbone | ||||||
| DiffuPlex- Listen | ||||||
| DiffuPlex- Speak |
| Model | Mode | AlpacaEval | CommonEval | WildVoice | SD-QA | OpenBookQA | MMSU | BBH | IFEval | AdvBench | Overall |
| AR backbone | 51.99 | 43.73 | 36.19 | 20.34 | 25.71 | 24.89 | 48.60 | 12.99 | 23.08 | 31.95 | |
| DiffuPlex- Listen | 50.91 | 45.00 | 36.82 | 22.42 | 25.05 | 25.05 | 49.30 | 12.00 | 20.77 | 31.93 | |
| DiffuPlex- Speak | 49.88 | 44.03 | 35.92 | 19.89 | 22.64 | 25.57 | 47.10 | 13.82 | 21.92 | 31.20 | |
| AR backbone | 52.05 | 44.43 | 36.17 | 17.81 | 24.62 | 24.11 | 47.80 | 13.08 | 24.42 | 31.61 | |
| DiffuPlex- Listen | 50.37 | 44.23 | 36.58 | 20.16 | 25.71 | 24.43 | 48.40 | 12.25 | 21.54 | 31.52 | |
| DiffuPlex- Speak | 49.15 | 43.33 | 35.75 | 17.18 | 24.40 | 24.95 | 48.40 | 13.28 | 22.88 | 31.04 |
| Model | Mode | Llama Questions | Web Questions | TriviaQA | AlpacaEval | Overall (%) |
| AR backbone | 54.20 | 2.95 | 1.92 | 3.97 | 35.66 | |
| DiffuPlex- Listen | 57.60 | 3.07 | 1.92 | 3.93 | 36.71 | |
| DiffuPlex- Speak | 55.53 | 3.07 | 1.86 | 3.85 | 35.82 | |
| AR backbone | 49.33 | 2.96 | 1.75 | 3.97 | 34.03 | |
| DiffuPlex- Listen | 46.73 | 3.02 | 1.80 | 3.92 | 33.53 | |
| DiffuPlex- Speak | 46.07 | 2.84 | 1.62 | 3.78 | 32.12 |
| System | Wall (s) | Wall speedup | E2E GPU (s) | E2E speedup | Core LM (s) | Core speedup | ||
| AR backbone | 1.000 | 1.000 | 745.7 | 1.000 | 745.3 | 1.000 | 656.8 | 1.000 |
| PAD | 1.531 | 1.447 | 527.8 | 1.413 | 526.9 | 1.415 | 433.0 | 1.517 |
| PAD | 2.163 | 1.911 | 405.7 | 1.838 | 404.5 | 1.842 | 308.2 | 2.132 |
| PAD | 2.525 | 2.202 | 363.0 | 2.054 | 361.9 | 2.060 | 264.7 | 2.482 |
| PAD | 2.805 | 2.383 | 337.6 | 2.209 | 336.4 | 2.216 | 239.1 | 2.747 |
| Silero | 1.416 | 1.346 | 561.1 | 1.329 | 560.2 | 1.330 | 468.0 | 1.403 |
| Efficiency | Pause | Backchannel | Turn | Interruption | ||||||||
| Variant | LM | S | C | TOR | Freq. | JSD | TOR | Lat. | TOR | Judge | Lat. | |
| personaplex-rl-seamless (AR) | 1.00 | 1.00 | .299 | .301 | .218 | .163 | .740 | 1.000 | .124 | .995 | 4.286 | .281 |
| Default / Listen | 1.91 | 1.56 | .277 | .343 | .109 | .140 | .753 | 1.000 | .173 | .990 | 4.328 | .329 |
| Default / Speak | 2.23 | 1.77 | .263 | .347 | .145 | .154 | .738 | 1.000 | .156 | .995 | 4.357 | .347 |
| No gate / Listen | 1.86 | 1.67 | .292 | .301 | .091 | .176 | .729 | .983 | .202 | 1.000 | 4.340 | .296 |
| No gate / Speak | 2.11 | 1.89 | .263 | .282 | .109 | .162 | .738 | .975 | .253 | 1.000 | 4.265 | .265 |
| Efficiency | Pause | Backchannel | Turn | Interruption | ||||||||
| Variant | LM | S | C | TOR | Freq. | JSD | TOR | Lat. | TOR | Judge | Lat. | |
| Default / Listen | 1.91 | 1.56 | .277 | .343 | .109 | .140 | .753 | 1.000 | .173 | .990 | 4.328 | .329 |
| Default / Speak | 2.23 | 1.77 | .263 | .347 | .145 | .154 | .738 | 1.000 | .156 | .995 | 4.357 | .347 |
| Train / Listen | 1.86 | 1.58 | .248 | .366 | .109 | .146 | .751 | 1.000 | .242 | .985 | 4.371 | .344 |
| Train / Speak | 2.21 | 1.82 | .255 | .356 | .291 | .149 | .740 | .992 | .202 | .990 | 4.308 | .315 |
| Train / Listen | 1.90 | 1.43 | .277 | .356 | .200 | .146 | .749 | 1.000 | .159 | .980 | 4.327 | .342 |
| Efficiency | Pause | Backchannel | Turn | Interruption | ||||||||
| Train infer | LM | S | C | TOR | Freq. | JSD | TOR | Lat. | TOR | Judge | Lat. | |
| / Listen | 1.89 | 1.55 | .307 | .347 | .127 | .162 | .736 | 1.000 | .200 | 1.000 | 4.300 | .372 |
| / Speak | 2.25 | 1.79 | .292 | .333 | .091 | .146 | .745 | 1.000 | .182 | .995 | 4.226 | .429 |
| / Listen | 1.91 | 1.44 | .299 | .389 | .073 | .146 | .745 | 1.000 | .157 | .995 | 4.332 | .400 |
| / Speak | 2.27 | 1.66 | .255 | .384 | .218 | .153 | .741 | .992 | .160 | .985 | 4.284 | .349 |
| / Listen | 1.86 | 1.58 | .365 | .394 | .145 | .155 | .742 | 1.000 | .162 | .990 | 4.293 | .335 |
| Efficiency | Pause | Backchannel | Turn | Interruption | ||||||||
| Setting | LM | S | C | TOR | Freq. | JSD | TOR | Lat. | TOR | Judge | Lat. | |
| Listen , no confidence filtering | 2.11 | 1.64 | .197 | .343 | .164 | .191 | .724 | .966 | .170 | .980 | 4.398 | .314 |
| Listen , | 1.99 | 1.62 | .270 | .319 | .182 | .140 | .750 | 1.000 | .191 | .985 | 4.345 | .342 |
| Listen , | 1.91 | 1.56 | .277 | .343 | .109 | .140 | .753 | 1.000 | .173 | .990 | 4.328 | .329 |
| Listen , | 1.80 | 1.48 | .263 | .366 | .145 | .148 | .743 | 1.000 | .089 | .990 | 4.384 | .485 |
| Speak , no confidence filtering | 2.80 | 2.07 | .321 | .347 | .236 | .191 | .729 | 1.000 | .209 | 1.000 | 3.550 | .281 |
| Efficiency | Pause | Backchannel | Turn | Interruption | ||||||||
| Setting | LM | S | C | TOR | Freq. | JSD | TOR | Lat. | TOR | Judge | Lat. | |
| Listen , | 1.83 | 1.50 | .321 | .384 | .164 | .161 | .735 | 1.000 | .136 | 1.000 | 4.350 | .437 |
| Listen , | 1.91 | 1.56 | .277 | .343 | .109 | .140 | .753 | 1.000 | .173 | .990 | 4.328 | .329 |
| Listen , | 1.95 | 1.60 | .321 | .352 | .036 | .157 | .739 | .992 | .125 | .995 | 4.236 | .446 |
| Listen , no revision | 2.49 | 2.07 | .146 | .176 | .109 | .078 | .796 | .966 | .440 | .995 | 4.372 | .744 |
| Listen , User-only (uncalibrated) | 1.00 | .79 | .431 | .417 | .145 | .145 | .743 | 1.000 | .089 | 1.000 | 4.335 | .307 |
| Efficiency | Pause | Backchannel | Turn | Interruption | |||||||
| Setting | S | C | TOR | Freq. | JSD | TOR | Lat. | TOR | Judge | Lat. | |
| Causal / Listen | 1.910 | .277 | .343 | .109 | .140 | .753 | 1.000 | .173 | .990 | 4.328 | .329 |
| Bidirectional / Listen | 1.884 | .299 | .343 | .109 | .148 | .752 | 1.000 | .156 | .990 | 4.374 | .432 |
| Causal / Speak | 2.230 | .263 | .347 | .145 | .154 | .738 | 1.000 | .156 | .995 | 4.357 | .347 |
| Bidirectional / Speak | 2.223 | .307 | .324 | .127 | .143 | .748 | .983 | .169 | .985 | 4.284 | .327 |
| Revision | Pause | Backchannel | Turn | Interruption | ||||||||
| Setting | S | C | TOR | Freq. | JSD | TOR | Lat. | TOR | Judge | Lat. | ||
| Full / Listen | -0.5 | 1.910 | .277 | .343 | .109 | .140 | .753 | 1.000 | .173 | .990 | 4.328 | .329 |
| User-only / Listen | 5.5 | 1.920 | .182 | .264 | .109 | .117 | .769 | .992 | .251 | .990 | 4.354 | .315 |
| Assistant-only / Listen | -3.5 | 2.122 | .270 | .296 | .127 | .162 | .729 | 1.000 | .125 | .980 | 4.270 | .457 |
| Full / Speak | -0.5 | 2.230 | .263 | .347 | .145 | .154 | .738 | 1.000 | .156 | .995 | 4.357 | .347 |
| User-only / Speak | 4.5 | 2.096 | .197 | .255 | .018 | .106 | .781 | .983 | .301 | .985 | 4.355 | .312 |
| Artifact | License | URL |
| Backbone and Model Lineage | ||
| personaplex-rl-seamless | CC BY-NC 4.0 + NVIDIA Open Model License | https://huggingface.co/kyutai/personaplex-rl-seamless |
| PersonaPlex | NVIDIA Open Model License | https://huggingface.co/nvidia/personaplex-7b-v1 |
| Moshi / Mimi | CC BY 4.0 | https://huggingface.co/kyutai/moshiko-pytorch-bf16 |
| Training Data | ||
| Seamless Interaction | CC BY-NC 4.0 | https://huggingface.co/datasets/facebook/seamless-interaction |