Text-to-Speech in 2026: How the Models Work and Who Leads
Speech output is the other half of a voice product: the agent has to answer out loud, the article has to be read aloud, the menu has to talk. Two years ago, good open text-to-speech meant a pipeline of specialized models and a lot of tuning. Today a handful of open models sound natural, clone a voice from a few seconds of audio, and run on the same serving engines as LLMs. This piece explains how they work, measures six of them on the same machine, and maps the rest of the landscape, licenses included.
How a model speaks
Speech is a waveform: 24,000 or more numbers per second. No model predicts those numbers one by one; there are far too many. Every TTS system first predicts something more compact, then converts it to sound.


The classic pipeline converts text to phonemes, predicts a mel spectrogram (the picture of sound that speech recognition reads, here produced instead of read), and hands it to a vocoder, a network trained to draw a waveform from a spectrogram. Tacotron and FastSpeech worked this way. Kokoro-82M, descended from StyleTTS 2, is the compact modern version of the idea: 82 million parameters, trained on a few hundred hours, and still one of the most downloaded TTS models.
Language-model TTS borrows everything from LLMs. A neural audio codec compresses speech into a few discrete tokens per frame, at 12 to 25 frames per second: a first codebook that captures the coarse content, and residual codebooks that add the detail of the voice. A language model then predicts those tokens the way an LLM predicts words, conditioned on the text and on a voice, either a preset or a clip to imitate. The codec's decoder turns tokens back into sound, chunk by chunk. Qwen3-TTS uses a 12 Hz tokenizer; Fish Audio S2 Pro splits the work into a 4-billion-parameter "slow" model over time and a 400-million-parameter "fast" model that fills in nine residual codebooks per frame.
Two consequences matter for serving. First, streaming comes naturally: the first frames can be decoded and played while the model is still generating the rest. Second, TTS becomes LLM serving: continuous batching, KV caches, CUDA graphs, and the roofline all apply. A 4-billion-parameter TTS model is memory-bound for the same reasons a 4-billion-parameter chatbot is.
Not every new model is autoregressive. OmniVoice generates all of an utterance's codec tokens at once and refines them over several steps, like a diffusion model; VoxCPM2 and Voxtral TTS mix autoregression with continuous, diffusion-style generation. Fewer steps can mean less time per second of audio, at the cost of streaming.
What "fast" means for speech
Three numbers describe a TTS system's speed, and they answer different questions:
- Time to first audio: how long until the listener hears something. For a voice agent this is what users perceive as lag, on top of speech recognition and the LLM's own first token.
- Real-time factor (RTF): generation time divided by audio length. Below 1, the model speaks faster than it can be listened to, so a stream never runs dry; above 1, playback stalls.
- Throughput with many requests: how many seconds of audio the GPU produces per second when several requests share it. This is what decides cost.
Serving with vLLM-Omni
vLLM-Omni extends vLLM to models that produce audio, images, and video. Version 0.30.0 (September 2026) serves most of the leading open TTS models behind an OpenAI-compatible /v1/audio/speech endpoint:
$ vllm serve mistralai/Voxtral-4B-TTS-2603 --omni --port 8091
$ curl http://localhost:8091/v1/audio/speech -H "Content-Type: application/json" \
-d '{"input": "Your table for two is ready, please follow me.", "voice": "neutral_male", "response_format": "wav"}' \
-o table.wav
Add "stream": true, "stream_format": "audio", "response_format": "pcm" and the audio arrives as it is decoded. Models that clone voices take ref_audio (a URL or a base64 data URL) and, for most, ref_text, the transcript of the reference clip. Each model runs as a pipeline of stages described in a deploy file shipped with vLLM-Omni (for Qwen3-TTS, a "talker" that predicts codec tokens and a "code2wav" stage that decodes them, connected by shared memory), and each stage reserves its own share of GPU memory: check those shares before running on a GPU you share with anything else.
Measured: six open models, one machine
We ran five models with vLLM-Omni 0.30.0 and Kokoro with its own library on an NVIDIA GB10 (DGX Spark), 2026-10-06, on three English texts: a short sentence, a medium one with numbers, and a paragraph. Preset voices where the model has them; for the three models built around cloning, the same 7-second clip of a LibriSpeech reader. Each sample was then transcribed by Whisper as an objective check that every word was spoken.


What it shows:
- Every model got the words right. Whisper transcribed all 18 samples word for word (the one difference, identical for all, was "31 to 28 percent" written "31% to 28%"). On clear English, intelligibility no longer separates the leaders; voice quality, prosody, and stability on hard text do. Listen, and test on your own text: numbers, names, and long passages are where models still differ.
- Speed spans two orders of magnitude. Kokoro produced speech 77 times faster than real time on the GPU, and 3 to 6 times faster than real time on the CPU alone. Fish S2 Pro took 2.15 seconds per second of audio, too slow to stream on this machine. Fish reports a real-time factor of 0.195 on an H200; the H200 has about 17 times the memory bandwidth of this GPU, and a 4-billion-parameter autoregressive model is bandwidth-bound, so the gap is about what the roofline predicts.
- First audio and throughput are separate choices. Qwen3-TTS answered first (106 ms) and batched well (7.9 seconds of audio per second with 8 requests). Voxtral TTS took 400 ms to start but produced the most audio under load (9.5). VoxCPM2, OmniVoice, and Fish gained little from batching on this setup: a single request already occupied most of what they could use.
- Voices differ in pace, not only timbre. The same paragraph lasted 24.9 seconds with Voxtral and 34.0 with Qwen3-TTS. A product with a time budget (a phone menu, a video) should measure duration, not only speed.
The landscape, October 2026
The six models above, and the others worth knowing, with what decides whether you can use them:
| Model | Lab | Size | Languages | Voices | License | Serving |
|---|---|---|---|---|---|---|
| Kokoro-82M | hexgrad | 82M | 8 | 54 presets | Apache 2.0 | own library, CPU-friendly |
| Qwen3-TTS (0.6B, 1.7B) | Alibaba Qwen | 0.6-1.7B | 10 | 9 presets, cloning, voice design | Apache 2.0 | vLLM-Omni |
| VoxCPM2 | OpenBMB | 2B | 30 | cloning, voice design, 48 kHz | Apache 2.0 | vLLM-Omni |
| CosyVoice 3 | Alibaba FunAudioLLM | 0.5B | 9 + dialects | cloning | Apache 2.0 | vLLM-Omni |
| Chatterbox Multilingual V3 | Resemble AI | 0.5B | 23 | cloning | MIT | own library |
| VibeVoice-Realtime | Microsoft | 0.5B | English (+9 experimental) | 1 speaker | MIT | own library |
| AuK | Tencent | 1.5B | not stated on the card | instruction-driven generation and editing | MIT | vLLM-Omni |
| Supertonic 3 | Supertone | small (ONNX) | 31 | presets | OpenRAIL | on-device, ONNX Runtime |
| Voxtral TTS | Mistral | 4B | 9 | 20 presets | CC BY-NC 4.0 | vLLM-Omni |
| Fish Audio S2 Pro | Fish Audio | 4.4B | 80+ | cloning, inline emotion tags | research license, paid for commercial use | vLLM-Omni, SGLang |
| OmniVoice | k2-fsa | 0.6B base | 600+ | cloning, voice design | weights CC BY-NC | vLLM-Omni |
| Higgs TTS 3 | Boson AI | 4B | 100+ | cloning, inline control | research and non-commercial, creator grant | vLLM-Omni |
Sizes, languages, and licenses from each model card, 2026-10-06. Licenses change; read them before you ship.
The license column divides the table more than any benchmark. Some of the most capable models, Voxtral TTS, Fish S2 Pro, OmniVoice, and Higgs TTS 3, cannot be used commercially without a separate agreement, usually because of the training data or the bundled voices. Among permissive licenses, Qwen3-TTS, VoxCPM2, and CosyVoice 3 cover the most ground, and Kokoro remains the answer when cost and CPU deployment come first.
Closed APIs remain the reference for polish and for the lowest latency without running anything: ElevenLabs lists about 75 ms for Flash v2.5 and about 100 ms for Eleven v4 Turbo (models page), and OpenAI and Google offer speech output both as TTS endpoints and inside their realtime voice models.
How to choose
- A voice agent: time to first audio first, then real-time factor under your expected load. Qwen3-TTS answered in about 100 ms here and batched well; Voxtral TTS sustains the most load if its non-commercial license fits. Budget the whole chain: speech recognition, the LLM's first token, and first audio add up.
- Narration, audiobooks, video: quality and stability over long text, and duration control. Real-time factor matters only for cost.
- High volume on a budget, or no GPU: Kokoro, which ran faster than real time on the CPU alone.
- Your own voice or a brand voice: a model that clones (VoxCPM2, Qwen3-TTS Base, CosyVoice 3), with the consent of the person whose voice it is, and a license that allows it.
- Many languages: check the card for your languages, then listen: "supports 80 languages" usually means a few that sound native and many that do not.
Next
NVIDIA ships its own speech stack, from recognition to synthesis, aimed at voice agents. The next piece looks at what Parakeet, Canary, Nemotron Speech, and Magpie are for, and when they beat the models covered here.
This post is part of the Speech AI collection (2 of 3)
Inference engineering and AI in production — depth-first, no hype.
Inference Notes
Once a week: what changed in serving AI models, and what it means if you build, run or pay for them, in about five minutes.
Related Articles
NVIDIA's Speech Stack: Parakeet, Canary, Nemotron Speech, and Magpie
What NVIDIA's open speech models are for: Parakeet and Canary for recognition, Nemotron Speech for streaming, Magpie for synthesis, and how they fit a voice agent.
Speech Recognition with Whisper on vLLM: Mel Spectrograms, Streaming, and Who Spoke When
How Whisper turns audio into text, from mel spectrograms to an encoder-decoder; serving it with vLLM, transcribing in real time, and labeling speakers.