kyutai-labs /pocket-tts

A TTS that fits in your CPU (and pocket)

★ 10,184⑂ 1,087👁 62▤ 16
PythonCreated 2026-01-08
TA的项目
10,184
stars
+0+14+398
1,087
forks
62
watchers
–
prs
–
issues
16
releases
–
discussions

README

Pocket TTS



A lightweight text-to-speech (TTS) application designed to run efficiently on CPUs.
Forget about the hassle of using GPUs and web APIs serving TTS models. With Kyutai's Pocket TTS, generating audio is just a pip install and a function call away.

Supports Python 3.10, 3.11, 3.12, 3.13 and 3.14. Requires PyTorch 2.5+. Does not require the gpu version of PyTorch.

🔊 Demo | 
🐱‍💻GitHub Repository | 
🤗 Hugging Face Model Card | 
📄 Paper

 Main takeaways
 Runs on CPU
 Small model size, 100M parameters, and English models down to 1.9M parameters
 Audio streaming
 Low latency, ~200ms to get the first audio chunk
 Faster than real-time, ~6x real-time on a CPU of MacBook Air M4
 Uses only 2 CPU cores
 Python API and CLI
 Voice cloning
 Multi-language support: english, french, german, portuguese, italian, spanish, dutch
 Can handle infinitely long text inputs
 Can run on client-side in the browser

Additional languages may be added in the future.

 Tech reports
 Pocket TTS: a high-quality TTS with voice cloning that runs on CPU (January 2026)
 Building a Pocket TTS with a drifting objective (September 2026)
 The tiny TTS was actually 10x too big (October 2026)

 Trying it from the website, without installing anything

Navigate to the Kyutai website to try it out directly in your browser. You can input text, select different voices, and generate speech without any installation.

 Trying it with the CLI

 The generate command
You can use pocket-tts directly from the command line. We recommend using
uv as it installs any dependencies on the fly in an isolated environment (uv installation instructions here).
You can also use pip install pocket-tts to install it manually.
On Linux, see CPU-only installation to avoid pulling in the CUDA build of PyTorch.

This will generate a wav file ./tts_output.wav saying the default text with the default voice, and display some speed statistics.
bash
uvx pocket-tts generate
 or if you installed it manually with pip:
pocket-tts generate

Modify the voice with --voice and the text with --text. We provide a small catalog of voices.
Choose a pretrained language model with --language when running generate, export-voice, or serve (default: english). Non-english languages have also biggers 24 layers variants that are higher quality but slower. You can select them by using for example --language italian_24l.
--language english_drifting_26-09 selects an English model whose sampler head was trained with drifting instead of LSD (see training/README.md for the recipe).
--language english_18m_2026-10, english_7m_2026-10 and english_2m_2026-10 select small English models with 18.2M, 6.9M and 1.9M parameters (decoder included). The _refl variants, such as english_7m_refl_2026-10, add reward fine-tuning.
The --config option accepts a local YAML path, an https:// URL, or an hf:// path (e.g. hf:///[@revision]) for custom weights.

You can take a look at this page which details the licenses
for each voice.

 alba (en)
 giovanni (i

Snapshot: 2026-11-04T14:00:00Z · Data license Apache-2.0 · JSON