Materials Speech-to-speech modelling

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.

Waveform Encoder causal, low rate Residual vector quantizer (RVQ) q1 semantic q2 acoustic q3 ... qN acoustic distilled toward WavLM / HuBERT residual residual latents Decoder Waveform codes q1 ... qN audio
An RVQ codec: each quantizer codes the residual left by the previous one. The first is distilled toward a semantic teacher.
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).

Say this in the interview:

"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.

Text or LM state AR LM Flow decoder Vocoder text / state speech tokens mel audio content + prosody acoustic detail, chunk by chunk HiFi-GAN / BigVGAN
Hybrid AR + flow: the LM decides content and prosody; the flow decoder and vocoder restore acoustics.
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.

Past frames codes Temporal model one step per frame Depth model small, per codebook codes state c1 c2 ... cN codebooks of frame t, one by one frame t codes become input for step t+1
RQ-style split: the temporal model advances once per frame; the depth model fills in that frame's codebooks.
  • 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: K=2Q+1=17 K = 2Q + 1 = 17 streams per step with Q=8 Q = 8 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).

Trap:

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).
Inference:

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).

Say this in the interview:

"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.

Noise Data diffusion path: curved, more steps flow matching (OT) path: straight, fewer steps
Schematic: a straight path needs fewer steps than a curved one (inference). Lipman et al. report OT paths sample faster.

Diffusion objective (DDPM)

The forward process mixes clean data x0 x_0 with Gaussian noise ϵ∼N(0,I) \epsilon \sim \mathcal{N}(0, I) . The network ϵθ \epsilon_\theta learns to predict that noise from the noisy input and the timestep t t .

xt=αˉt x0+1−αˉt ϵ,L=E ∥ϵ−ϵθ(xt,t)∥2 x_t = \sqrt{\bar\alpha_t}\,x_0 + \sqrt{1-\bar\alpha_t}\,\epsilon, \qquad \mathcal{L} = \mathbb{E}\,\big\|\epsilon - \epsilon_\theta(x_t, t)\big\|^2

Here αˉt \bar\alpha_t is the cumulative noise schedule, so it fixes how much signal survives at step t t . 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, x0 x_0 is noise and x1 x_1 is data.

xt=(1−t) x0+t x1,L=E ∥vθ(xt,t)−(x1−x0)∥2 x_t = (1-t)\,x_0 + t\,x_1, \qquad \mathcal{L} = \mathbb{E}\,\big\|v_\theta(x_t, t) - (x_1 - x_0)\big\|^2

The target velocity x1−x0 x_1 - x_0 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:

dxdt=vθ(x,t) \frac{\mathrm{d}x}{\mathrm{d}t} = v_\theta(x, t)

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 c c by extrapolating away from an unconditional prediction ∅ \varnothing . The guidance scale w w sets the strength.

v^=vθ(x,t,c)+w (vθ(x,t,c)−vθ(x,t,∅)) \hat v = v_\theta(x,t,c) + w\,\big(v_\theta(x,t,c) - v_\theta(x,t,\varnothing)\big)

The cost is two forward passes per sampling step, so CFG doubles inference compute. The same form applies to a diffusion network by swapping vθ v_\theta for ϵθ \epsilon_\theta .

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).

Inference, why flow matching won:

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

Do not mislabel these as flow matching:
  • 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).

Say this in the interview:

"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.
Say this in the interview:

"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.

LM tokens Flow decoder Audio out chunk 1 dec 1 pkt 1 chunk 2 dec 2 pkt 2 chunk 3 dec 3 pkt 3 chunk 4 dec 4 pkt 4 first-packet latency solid: chunk tokens; dashed: look-ahead tokens from the next chunk
Chunk-wise causal decoding: tokens arrive in chunks, each chunk is decoded with look-ahead, and audio streams out.

First-packet numbers

Do not compare across rows:

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).

Inference:

For flow decoders, step distillation is the biggest latency lever. For AR models, lower token rate plus a causal codec is.

Say this in the interview:

"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."