The French nonprofit AI lab Kyutai released Pocket TTS on Tuesday, a text-to-speech model that runs entirely on CPU and generates audio six times faster than real time on a MacBook Air M4. The model has 100 million parameters, produces the first audio chunk in roughly 200 milliseconds, and uses only two CPU cores. It supports voice cloning and seven languages: English, French, German, Portuguese, Italian, Spanish, and a higher-quality 24-layer variant for each.
The practical implication is direct. Most speech synthesis today runs through cloud APIs — ElevenLabs, OpenAI’s TTS endpoint, Google Cloud Text-to-Speech — or requires a GPU for local inference. Pocket TTS breaks that dependency. A developer can install it with pip install pocket-tts and generate speech from a Python script or command line without renting cloud compute or owning a discrete graphics card. The model is small enough that Kyutai reports no speedup when running it on a GPU versus CPU, because the batch size is one and the model is already tiny.
Kyutai is the lab behind the open-source speech model Moshi, which it released in July 2024. Pocket TTS shares the same research lineage. The paper and technical report are linked from the repository, and the authors include Manu Orsini, Simon Rouard, Gabriel De Marmiesse, Václav Volhejn, Neil Zeghidour, and Alexandre Défossez. The lab operates out of Paris with backing from Xavier Niel, Rodolphe Saadé, and Eric Schmidt.
What the numbers actually mean
The 100-million-parameter size is the key architectural choice. Most production TTS models are larger. ElevenLabs does not disclose exact sizes but its Turbo v2 model requires GPU inference. OpenAI’s TTS model runs server-side. Meta’s Voicebox, never publicly released, was estimated at over 2 billion parameters. By contrast, Pocket TTS fits into a fraction of the memory budget of a modern laptop. The model loads into RAM, not VRAM.
The 200-millisecond latency to first audio chunk matters for interactive use cases. A voice assistant, a screen reader, or a real-time translation tool cannot tolerate a multi-second delay before speech starts. Pocket TTS streams audio, so the first chunk arrives in roughly the time it takes a human to blink. The six-times-real-time throughput means generating a 30-second audio clip takes about five seconds of wall-clock compute.
The model also handles infinitely long text inputs, according to the repository. That removes a common pain point in TTS APIs, which often cap input length at a few thousand characters. A developer generating an audiobook chapter or a long narration does not need to chunk the text manually.
Voice cloning without the cloud
Pocket TTS supports voice cloning from a plain WAV file. The user provides a short audio sample, and the model extracts a voice embedding that can be saved as a safetensors file for fast reloading. The repository includes a catalog of 26 pre-made voices, named after characters from Les Misérables — alba, giovanni, lola, juergen, rafael, estelle, and others.
The voice cloning step is relatively slow on first use, because the model processes the audio sample to build the embedding. But once exported, loading the safetensors file is fast: it is essentially reading a key-value cache from disk with no additional computation. A developer can maintain multiple voice states in memory and switch between them without reloading the model.
Kyutai includes a prohibitive-use clause in the repository. Voice impersonation or cloning without explicit consent is forbidden. So is using the model for misinformation, deceptive calls, or presenting generated speech as genuine recordings. The lab disclaims liability for non-compliant use, which is standard for open-source speech models but worth noting given the ease of cloning from a short audio sample.
The ecosystem is already building
The community response has been rapid. Within days of the release, developers published ports and integrations across multiple runtimes. Laurent Mazare built a Rust port using the XN framework, with WebAssembly support and a live demo. KevinAHM exported the model to ONNX and runs it in the browser with ONNX Runtime Web. Another developer ported it to Candle, also with WebAssembly and PyO3 bindings. A single-file C++ runtime called PocketTTS.cpp uses ONNX Runtime with a CLI, HTTP server, and C API.
The sherpa-onnx project integrated Pocket TTS across Windows, macOS, Linux, and embedded boards including Raspberry Pi, Jetson, and RK3588, with bindings for 12 programming languages. A Unity 6 integration exists. A Docker container wraps the model for Home Assistant Voice. A macOS native app runs it via Core ML, Python-free and fully on-device.
This breadth of ports matters. It means Pocket TTS is not just a Python library. It can run on a Raspberry Pi in a smart home setup, in a browser tab with no backend server, inside a game engine, or as a system-level screen reader. The model’s small footprint makes it viable for environments where even a CPU-bound Python process is too heavy — the Rust and C++ ports eliminate the Python runtime entirely.
What this means for AI builders
The TTS market has been bifurcated between cloud APIs that are easy to use but expensive at scale, and local models that require GPU hardware few users own. Pocket TTS collapses that tradeoff. A developer can ship speech synthesis in a desktop app, a browser extension, or an embedded device without negotiating API pricing or provisioning GPU instances.
The cost advantage is structural. Cloud TTS APIs charge per character or per second of audio. At scale, those costs add up. A voice assistant that generates 30 minutes of speech per user per day would cost roughly $0.50 to $1.00 per user per month through most API providers. Pocket TTS costs zero per user after the initial download. The compute is the user’s own laptop or phone CPU.
There are tradeoffs. The model produces 24 kHz audio, which is below the 48 kHz or higher rates that some production systems target. The voice quality, while good for a 100M-parameter model, does not match the fidelity of ElevenLabs’ Turbo v2 or OpenAI’s HD voices. The repository also notes that adding silence to the text input to generate pauses is not supported — a limitation for natural prosody in long-form narration.
But the trajectory is clear. Kyutai has shown that a useful TTS model can run on a CPU at interactive speeds with a 100M-parameter budget. The ports to WebAssembly, ONNX, C++, and Rust suggest that the model will outlive its original Python implementation. The question for builders is no longer whether local TTS is possible. It is how much quality they are willing to trade for zero-latency, zero-cost, fully private speech synthesis that runs on hardware the user already owns.