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.
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-1 | ElevenLabs (Flash) | |
|---|---|---|---|
| Cost / 1M chars | $0 | $15 | ~$50–100 |
| Runs offline | yes | no | no |
| Needs GPU | no | — | — |
| Network round-trip | none | required | required |
| Data leaves machine | no | yes | yes |
| License | MIT (public data) | proprietary | proprietary |
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.