Free TTS Studio — two open models, zero servers, zero cost
booting…
Both engines run entirely inside your browser (WebAssembly / WebGPU). No API key, no backend, no GPU rental —
which is what makes this deployable on Hugging Face's free Static Space tier. Text you type never leaves this device.
Apache 2.0 · KokoroMIT · Piper voicesRuns on free HF static tierWorks offline after first loadWAV download
Pick an engine, press “Prepare engine”, then “Generate speech”.
Opened with ?selftest=1: checks runtime capabilities and loads both engine libraries (no model weights).
Add &load=1 (e.g. ?selftest=1&load=1) to also download the smallest Piper voice (~20 MB)
and synthesise one sentence end-to-end.
Why there is no HTTP endpoint here
Hugging Face now requires a PRO subscription for every Space that executes code — Docker Spaces, Gradio Spaces
and ZeroGPU all return “PRO required” on a free account (ZeroGPU additionally needs a 30-day-old account or a
community grant). Free accounts can only host Static Spaces, which serve files without a server process.
So the only way to get free TTS on this account is to move the inference into the visitor's browser — which is
exactly what this page does. If you later want a real /v1/audio/speech endpoint, the same two models run as
Docker services on Render/Koyeb free tiers (Piper fits 512 MB; Kokoro wants ~2 GB).
Engine comparison
—
Kokoro-82M
Piper (VITS)
Model size in browser
~92 MB (q8) / ~330 MB (fp32)
~20 MB (low) – ~63 MB (medium)
Runtime
transformers.js (WebGPU or WASM)
onnxruntime-web (WASM)
Voices / languages
54 voices · 8 languages
100+ voices · 35+ languages
Speed control
Yes (0.5×–2×)
Not exposed by the browser build
Quality
Top-tier for its size (AA Speech Arena ~1,060 Elo)