Kyutai Pocket TTS 4.0: Six Tiny English Voice Models, Down to 1.9M Parameters

Introduction
How small can a voice get? Kyutai just answered with Pocket TTS v4.0.0, released on October 20 on GitHub and PyPI. The headline is six new English text-to-speech models that are tiny even by Pocket TTS standards: 18.2M, 6.9M and 1.9M parameters, each with a reward-tuned "REFL" twin. The original Pocket TTS model is about 100M. The code is MIT and the weights are CC-BY-4.0 on Hugging Face. Everything runs on a plain CPU with one uvx command, so you can try it today on the laptop you're reading this on.
What Shipped
The six models
You pick them with the --language flag. Parameter counts come from the model PR, and include the decoder:
english_18m_2026-10andenglish_18m_refl_2026-10: 18.2M (a 15.6M flow LM plus a 2.6M decoder)english_7m_2026-10andenglish_7m_refl_2026-10: 6.9M (4.3M + 2.6M)english_2m_2026-10andenglish_2m_refl_2026-10: 1.9M (0.9M + 1.0M). Kyutai labels these two experimental.
The _refl versions add reward fine-tuning (REFL) on top of the base model. Each one comes with its own small audio decoder and 27 predefined voices (Alba, Jean, Marius, Cosette and friends), and outputs 24 kHz mono audio.
Under the hood, the small models are built from options Kyutai developed on a separate branch and merged into main today: a smaller latent size, grouped-query attention, a low-rank text embedding table, one-step "drifting" sampler heads, and slimmer decoders. Every option defaults to the old behavior, so the original models are unchanged.
Also in 4.0
- A Rust runtime. The release page ships prebuilt binaries for macOS, Linux and Windows, based on Gradium's xn-ptts port. Kyutai says they have the same CLI as the Python version. They run on CPU only.
- The API server (
pocket-tts serve) can serve all six small models. - Retrained French, Italian, Dutch, German, Spanish and Portuguese models, and a new default English checkpoint.
- Cleaner audio, with a 5 ms fade-in that removes the click at the start of each chunk. Curly apostrophes and long dashes are now rewritten before synthesis because the models never saw them in training.
How Fast Is It?
I ran the official v4.0.0 package on our 8-core cloud Linux box, CPU only, no GPU, with the Alba voice and the same 15-word sentence. These numbers come from the CLI's own timer:
english(default, ~100M): 6.2 s of audio in 2.67 s, so 2.3x real timeenglish_18m_refl_2026-10: 6.6 s of audio in 1.02 s, so 6.5x real timeenglish_7m_2026-10: 6.8 s of audio in 0.67 s, so 10.1x real timeenglish_2m_2026-10: 6.3 s of audio in 0.37 s, so 17.1x real time
That's one short sentence on one machine, so treat it as a rough guide, not a benchmark. Still, the jump is real: the 7M model went from text to speech about four times faster than the default model. No GPU and no account were needed, and the weights downloaded automatically from the open repo. For scale, the 2M model's weights file is about 47 MB on disk.
Try It
You need Python and uv. On Linux, add the CPU index so you don't pull a few gigabytes of CUDA wheels you'll never use:
uvx --index https://download.pytorch.org/whl/cpu pocket-tts generate \
--language english_7m_2026-10 \
--voice alba \
--text "Hello! I'm a seven-million-parameter voice, and I live on your CPU." \
--output-path tiny.wavSwap the --language value to compare sizes, and try the _refl versions side by side. To audition voices quickly in the browser, run uvx pocket-tts serve and open the local page it prints. In Python, pip install pocket-tts scipy and pass the model name to load_model. This snippet ran as-is on our box:
from pocket_tts import TTSModel
import scipy.io.wavfile
tts = TTSModel.load_model(language="english_2m_refl_2026-10")
voice = tts.get_state_for_audio_prompt("alba")
audio = tts.generate_audio(voice, "A whole voice in under two million parameters.")
scipy.io.wavfile.write("tiny_refl.wav", tts.sample_rate, audio.numpy())On macOS and Windows you can drop the --index part, because the default PyTorch wheels are already CPU-only.
About voice cloning: the open repo ships the small models without the voice-cloning weights. To clone a voice from your own WAV file (--voice my_voice.wav), accept the terms on the gated kyutai/pocket-tts repo and log in with a Hugging Face token. Kyutai tested all six models both ways.
A few lines to try that show off pacing and punctuation:
Wait... did you hear that? Something just moved in the attic.
Welcome back, traveler. The forge is warm, and your sword is ready.
Three, two, one. Lights down, curtain up, and let's begin.
Breaking news from the bakery: the croissants are out of the oven, and they will not last.My tip: keep sentences short and use plain punctuation. The models now rewrite curly quotes and long dashes for you, but plain commas and periods still give the most natural pauses.
Why It Matters for Makers
A 7M-parameter voice that speaks ten times faster than real time on a CPU changes where TTS can live. Think game NPCs that talk without a cloud bill, offline reading apps, accessibility tools, smart toys, and tiny boards. The existing Pocket TTS community already runs it in the browser through WebAssembly, on Raspberry Pi and Jetson through sherpa-onnx, and inside ComfyUI with the community ComfyUI-Pocket-TTS node. Once those projects pick up the new configs, the small models should drop straight in. CC-BY-4.0 means you can ship it commercially, as long as you credit Kyutai.
The trade-offs: these six are English-only, the 2M models are marked experimental, and Kyutai hasn't published quality scores comparing the small models to the 100M one, so let your own ears decide. There's no official announcement post yet beyond the release notes. And it isn't on fal or Replicate, because at this size it doesn't need to be. As always, only clone voices you have permission to use.
Conclusion
Pocket TTS 4.0 shrinks Kyutai's CPU voice model to 18.2M, 6.9M and 1.9M parameters, adds reward-tuned REFL variants, ships a Rust runtime, and keeps the weights CC-BY-4.0. On a regular CPU the 7M model talked at 10x real time in my test. Run the one-line uvx command, give Alba something dramatic to say, and hear how much voice fits in a few megabytes. Happy voice-making!
Original source:
https://github.com/kyutai-labs/pocket-tts/releases/tag/v4.0.0
Weights: kyutai/pocket-tts-without-voice-cloning (open) · kyutai/pocket-tts (gated, with voice cloning) · Model PR: #382 · Package: PyPI pocket-tts 4.0.0
—Anabel ♡
