Speech-to-speech modelling
Speech generation
Codecs and speech tokenizers
The tokenizer fixes the sequence length the LM sees and the ceiling on audio quality. Four families matter.
| Family | Examples | Key facts |
|---|---|---|
| RVQ with semantic distillation | Mimi (arXiv 2410.00037), SpeechTokenizer (arXiv 2308.16692) | Mimi: causal, 12.5 Hz, 8 codebooks, 1.1 kbps, first codebook distilled from WavLM. SpeechTokenizer: RVQ whose first layers carry semantic information distilled from a HuBERT teacher, with acoustic detail in later layers. |
| Single-codebook, low rate | WavTokenizer (arXiv 2408.16532), X-Codec2 (arXiv 2502.04128), BiCodec (arXiv 2503.01710) | WavTokenizer: 40 or 75 tokens/s. X-Codec2: single-layer FSQ codec at a 50 Hz latent rate, with Wav2Vec2-BERT semantic features (arXiv 2502.04128, arXiv 2601.20185). BiCodec: semantic tokens plus fixed-length global speaker tokens. |
| FSQ tokens | CosyVoice 2 (arXiv 2412.10117) | Replaces VQ in the speech tokenizer with finite scalar quantization to improve codebook utilisation. |
| Continuous latents | VibeVoice (arXiv 2508.19205), MELLE (arXiv 2407.08551) | VibeVoice tokenizer: 7.5 Hz frame rate; the authors report 80x better compression than EnCodec at comparable performance. MELLE argues that vector quantization sacrifices fidelity compared to continuous representations. |
Qwen3-TTS ships two tokenizers: 25 Hz single-codebook and 12 Hz multi-codebook (arXiv 2601.15621).
Trade-offs
| Axis | Low frame rate | Semantic distillation | Continuous latents |
|---|---|---|---|
| Gain | Fewer AR steps, near text rate | Easier LM modelling, better phonetic content | No quantization loss |
| Cost | Reconstruction quality | Conflicts with reconstruction quality; the Moshi authors recover MUSHRA from 57.8 to 64.0 with a split RVQ, at a small ABX cost (arXiv 2410.00037) | Needs a regression or diffusion head; no top-p sampling |
Evidence on low frame rates
A controlled frame-rate ablation reproduces a quality cliff at 6.25 Hz. Its authors trace the cliff to the training configuration (fixed clip duration gives too few tokens at low rates), not to a fundamental barrier. After the fix, WER degrades smoothly with phonemic load down to 3.1 Hz and 1.6 Hz (arXiv 2606.16969). Another paper pools X-Codec-2.0 from 50 Hz to a 25 Hz latent rate and reports a 0.29 UTMOSv2-based MOS gain (arXiv 2601.20185).
"The trade is rate against fidelity. Low rate and semantic distillation make the LM's job easy; continuous latents or a flow decoder win back what quantization loses."
Generation paradigms
There are four ways to generate speech from text or from an LM state. The dominant high-quality design is the hybrid.
| Paradigm | Examples | Core idea |
|---|---|---|
| AR codec LM | Llasa (arXiv 2502.04128), Spark-TTS (arXiv 2503.01710), CSM, Moshi (arXiv 2410.00037) | One Transformer predicts tokens left to right |
| NAR masked | SoundStorm (arXiv 2305.09636), MaskGCT (arXiv 2409.00750) | Parallel iterative filling of tokens |
| NAR flow/diffusion | Voicebox (arXiv 2306.15687), F5-TTS (arXiv 2410.06885), Seed-TTS DiT (arXiv 2406.02430) | Generate the whole utterance by ODE or diffusion |
| Hybrid AR + flow | CosyVoice 2 (arXiv 2412.10117), Qwen3-TTS 25 Hz (arXiv 2601.15621), FlashTTS (arXiv 2606.09141) | LM for content and prosody, flow for acoustics |
AR codec LMs
- Llasa: a single Llama-style Transformer over X-Codec2 tokens, 1B/3B/8B, with inference-time search using speech-understanding verifiers (arXiv 2502.04128).
- Spark-TTS: Qwen2.5 LLM plus BiCodec (arXiv 2503.01710).
- CosyVoice 2: an LLM predicts speech tokens, then a chunk-aware causal flow-matching model decodes them (arXiv 2412.10117).
- Newer entries: IndexTTS2 (arXiv 2506.21619), Step-Audio-EditX (LLM-based audio editing with reinforcement learning; arXiv 2511.03601), Higgs Audio v2 (pretrained on over 10 million hours of audio, per the Boson AI repo).
Multi-codebook handling
An RVQ frame has several codes, so the model needs a trick.
- Sesame CSM: a Llama backbone models the zeroth Mimi codebook from interleaved text and audio, and a smaller audio decoder with a linear head per codebook models the rest; Mimi runs at 12.5 Hz (Sesame blog).
- Moshi: streams per step with codebooks (8 user audio, 8 own audio, 1 text). Its RQ-Transformer splits temporal and per-codebook (depth) modelling (arXiv 2410.00037).
- Qwen3-Omni's Talker uses an MTP module to emit codec frames (arXiv 2509.17765).
NAR notes
SoundStorm uses bidirectional attention and confidence-based parallel decoding to generate codec tokens, and the authors report 30 s of audio in 0.5 s on a TPU-v4 (arXiv 2305.09636). MaskGCT is two-stage (text to semantic tokens, then semantic to acoustic tokens), mask-and-predict in both, with no explicit alignment or phone-level duration model, trained on 100K h (arXiv 2409.00750).
MaskGCT is a masked generative model (mask-and-predict). Do not cite it as a flow model.
The "LM for content, flow for acoustics" split
- Inference Why the LM: text streaming, interleaving with text, reuse of LLM serving stacks, in-context learning.
- Inference Why flow: it can restore acoustic detail lost to quantization, and CosyVoice 2 shows it can decode chunk by chunk (arXiv 2412.10117).
The hybrid may be transitional, since Qwen3-Omni replaces block-wise diffusion with a lightweight causal ConvNet over a multi-codebook codec (arXiv 2509.17765).
"The LM decides what is said and how, the renderer decides how it sounds. That split is why I can stream the LM and distil the renderer separately."
Diffusion and flow matching for speech
Flow matching is the objective behind many recent TTS systems. It plays two roles: fully NAR TTS, and the acoustic decoder after an AR LM.
Diffusion objective (DDPM)
The forward process mixes clean data with Gaussian noise . The network learns to predict that noise from the noisy input and the timestep .
Here is the cumulative noise schedule, so it fixes how much signal survives at step . Sampling runs the learned denoiser backwards from pure noise.
This is the noise-prediction objective of the DDPM paper (arXiv 2006.11239).
Conditional flow matching objective
Flow matching regresses a network onto a velocity field. With a linear (optimal-transport) path, is noise and is data.
The target velocity is constant along the path, so training is plain regression. There is no noise schedule and no SNR weighting.
Sampling integrates the learned ODE from noise to data:
The linear path and velocity regression follow Flow Matching with optimal-transport paths (arXiv 2210.02747).
Classifier-free guidance (CFG)
CFG pushes the output toward the condition by extrapolating away from an unconditional prediction . The guidance scale sets the strength.
The cost is two forward passes per sampling step, so CFG doubles inference compute. The same form applies to a diffusion network by swapping for .
Classifier-free guidance was introduced for diffusion models (arXiv 2207.12598); the form above applies it to a velocity network.
In speech, ZipVoice targets the CFG cost (arXiv 2506.13053). Lipman et al. show OT paths train and sample faster than diffusion paths (arXiv 2210.02747).
A plain regression target with no noise schedule or SNR weighting. Straighter paths mean fewer steps and better RTF. Infilling is natural (Voicebox, E2).
Where it sits
| Role | Models |
|---|---|
| Fully NAR TTS | Voicebox (arXiv 2306.15687), E2 TTS (arXiv 2406.18009), F5-TTS (arXiv 2410.06885; the authors report RTF 0.15, trained on 100K h), ZipVoice (arXiv 2506.13053; the authors report 3x smaller and up to 30x faster than a DiT-based flow-matching baseline) |
| Diffusion, not flow | DiTTo-TTS (latent diffusion DiT, 790M parameters, 82K h; arXiv 2406.11427); Seed-TTS DiT (fully diffusion-based NAR variant; arXiv 2406.02430) |
| Decoder after AR LM | CosyVoice 2 (arXiv 2412.10117), GLM-4-Voice (conditional flow matching plus HiFi-GAN; arXiv 2412.02612), Kimi-Audio (chunk-wise flow matching from 12.5 Hz tokens to 50 Hz mel, then a BigVGAN vocoder; arXiv 2504.18425) |
Counterexamples and traps
- Qwen3-Omni: the Talker emits AR codec frames with an MTP module; a lightweight causal ConvNet (Code2Wav) makes the waveform. Not flow. Qwen2.5-Omni used a sliding-window DiT (arXiv 2503.20215).
- MiniMax-Speech has a "Flow-VAE" (arXiv 2505.07916). Do not call it flow matching.
- MaskGCT: mask-and-predict in both stages (arXiv 2409.00750).
ASR has little flow work. Drax is the clearest, using discrete flow matching for NAR ASR (arXiv 2510.04162).
"Flow matching is regression onto a velocity field, so training is simple and few-step sampling is natural. In S2S it is mostly the acoustic renderer behind an AR content model."
Continuous autoregression and next-token diffusion
A smaller, newer branch drops discrete tokens. An AR model predicts continuous latents, and a small diffusion or flow head samples each next frame or patch.
| Model | Design | Notes |
|---|---|---|
| MELLE (arXiv 2407.08551) | Regresses continuous mel frames; spectrogram flux loss; latent sampling replaces top-p | The authors report a 47.9% relative WER reduction over VALL-E on continuation |
| DiTAR (ICML 2025; arXiv 2502.03930) | LM over aggregated patch embeddings, bidirectional-attention diffusion transformer (LocDiT) generates each patch | Temperature maps to the noise-injection point in the reverse ODE |
| VibeVoice (arXiv 2508.19205) | LLM hidden states condition a light diffusion head predicting continuous VAE features; 7.5 Hz | The authors report 80x better compression than EnCodec at comparable performance; up to 90 min of speech in a 64K context |
| dots.tts (arXiv 2606.07080) | 2B continuous autoregressive TTS in a learned AudioVAE latent space; flow-matching head conditioned on full history | The authors report first-packet latencies of 85 / 54 ms (output streaming / dual-streaming) after MeanFlow distillation |
| VoxCPM (arXiv 2509.24650) | Tokenizer-free: a text-semantic LM and a residual acoustic LM guide a local diffusion decoder, trained end to end with a diffusion objective | The authors report 1.8M h of bilingual training data for VoxCPM-0.5B |
Inference The two lists below are design analysis, not results from the papers.
The case for
- No quantization loss, so higher ceiling on naturalness.
- Very low frame rates shorten the AR sequence (VibeVoice runs at 7.5 Hz).
The case against
- Per-frame diffusion or flow cost on top of the LM step.
- RL is harder without discrete tokens. GROW notes that trajectory-level policy-gradient RL for flow-matching TTS must track per-step likelihood ratios, which adds overhead (arXiv 2608.03215). CosyVoice 3's DiffRO optimises the speech tokens directly with a differentiable reward, and targets discrete-token models (arXiv 2505.17589).
- Sampling control is weaker than top-p over a categorical.
- Inference Qwen3-Omni uses a codec plus a causal ConvNet decoder (arXiv 2509.17765), which suggests continuous heads may stay niche for duplex products.
"Continuous AR removes the quantization bottleneck, but you pay in per-step sampling cost and lose easy RL. For a duplex product I would start discrete and revisit."
Streaming and low-latency generation
Streaming TTS needs a causal, low-frame-rate codec on the AR side, and a chunkable, few-step decoder on the acoustic side.
First-packet numbers
All figures are the authors' self-reports, and the definitions differ.
| System | Figure | Source |
|---|---|---|
| Moshi | 160 ms theoretical, about 200 ms in practice | arXiv 2410.00037 |
| Qwen3-TTS (12 Hz) | 97 ms first packet | arXiv 2601.15621 |
| Qwen3-Omni | 234 ms theoretical cold-start first packet | arXiv 2509.17765 |
| FlashTTS (Jun 2026) | 325 ms first-packet latency with a 2-NFE decoder; its own table lists 843 ms for CosyVoice 2 at 10 NFE | arXiv 2606.09141 |
| Qwen3-ASR 0.6B | Average TTFT as low as 92 ms (ASR side) | arXiv 2601.21337 |
Latency levers
| Lever | How it works |
|---|---|
| Causal, low-rate codec | Fewer AR steps per second of audio, no future context needed |
| Chunk-aware causal flow | CosyVoice 2 samples one of four attention masks (non-causal, full-causal, chunk-M, chunk-2M) uniformly in training, so one model serves streaming and offline (arXiv 2412.10117) |
| Look-ahead | Kimi-Audio uses chunk-wise causal masking with a look-ahead mechanism to fix chunk-boundary issues (arXiv 2504.18425); CosyVoice 2 also uses a look-ahead pre-convolution (arXiv 2412.10117) |
| Few-step distillation | ZipVoice flow distillation reduces sampling steps and removes the CFG overhead (arXiv 2506.13053); MeanFlow learns average velocity over an interval (arXiv 2505.13447); Int-MeanFlow distils for speech (arXiv 2510.07979); FlashTTS uses an X-pred mean-flow decoder at 2 NFE (arXiv 2606.09141) |
| Multi-token prediction | VITA-Audio emits several audio tokens per forward pass (arXiv 2505.03739); FlashTTS adds parallel MTP modules |
| Sampling schedule | F5-TTS's Sway Sampling is an inference-time flow-step strategy that needs no retraining (arXiv 2410.06885) |
MeanFlow's headline FID 3.43 is an ImageNet one-step result (arXiv 2505.13447). IntMeanFlow reports 1-NFE token-to-spectrogram and 3-NFE text-to-spectrogram inference for speech (arXiv 2510.07979).
For flow decoders, step distillation is the biggest latency lever. For AR models, lower token rate plus a causal codec is.
"I budget first-packet latency per stage. For the renderer the lever is NFE, so I would distil to 2 steps. For the LM it is token rate and multi-token prediction."