100M params · CPU-only · MIT · $0

Talk to Pocket TTS

Kyutai pocket-tts runs locally — no GPU, no API, no keys. Pick a voice and hear it synthesized on your CPU in milliseconds, or start a live voice call. Prove the claims yourself.

Connecting to the TTS engine…first load downloads weights, then it’s instant

Tap a voice’s play icon to hear it say hello. Switching language loads a different 100M model (slow the first time, cached after). Stream plays audio frame-by-frame via Web Audio so you can feel the low first-chunk latency; Speak returns the whole clip with server-measured numbers.

Why care? — cost, offline, and why it isn’t an LLM

It’s not an LLM — and that’s the point

Typical “LLM TTS” autoregresses discrete audio tokens one step at a time until the model decides to stop — latency is variable and grows with a big transformer. Pocket TTS uses a compact flow-based model over the Mimi neural codec and emits audio in fixed 80 ms frames (12.5 Hz). So the first frame arrives fast and the throughput (real-time factor) stays steady regardless of how the sentence ends. That’s why a 100M-parameter model on a CPU can beat much larger cloud models on latency, even if not on raw naturalness.

$0, offline, no GPU

Pocket TTS (local)OpenAI tts-1ElevenLabs (Flash)
Cost / 1M chars$0$15~$50–100
Runs offlineyesnono
Needs GPUno
Network round-tripnonerequiredrequired
Data leaves machinenoyesyes
LicenseMIT (public data)proprietaryproprietary

Cloud prices are public list rates and move around; the point is the order of magnitude. Local marginal cost is genuinely zero after the one-time download.

Measured on this machine

Waiting for the sidecar…

Optional: race a cloud API

If OPENAI_API_KEY is set in .env.local, this makes one real round-trip to OpenAI tts-1 and shows its latency + cost. With no key it stays local-only.