Free text-to-speech. In your browser. No cap, no upload.

Built for creators who ship voiceovers in volume — and don't want to upload their drafts to anyone's server.

0 / 2,000
Model
First load: 25MB. Cached after that.

Output

Generated audio will appear here.

Captioned video · 9:16 MP4

Background music (optional)

Render an MP4 with synced captions. Runs in your browser; nothing is uploaded.

Kiki

Female · Animated

Highest energy. Best for trailers, ads, and call-to-actions.

I'm Kiki! High energy for trailers, ads, and any line that needs a punch.

Leo

Male · Smooth

Lower register, slower. Audiobook-friendly without sounding flat.

I'm Leo. A lower, slower voice that suits audiobooks and long-form reads.

Bella

Female · Warm

Friendly default. Reads narration without sounding cold.

Welcome to Kitten TTS. I read scripts in your browser, no servers in the loop.

Bruno

Male · Confident

Steady mid-low register, good for explainers and product demos.

This is Bruno. I'm a steady, confident voice for explainers and demos.

Luna

Female · Bright

Higher pitch, lighter delivery — fits social and lifestyle clips.

Hi, I'm Luna. I sound great on quick social clips and lifestyle content.

Hugo

Male · Newsroom

Crisp, even pacing. Default pick for news and documentary cuts.

I'm Hugo. Crisp diction and even pacing for news, briefings, and documentaries.

Rosie

Female · Playful

More inflection on each phrase. Pairs with light, upbeat scripts.

Hey there! I'm Rosie, and I add a little bounce to upbeat scripts.

Jasper

Male · Casual

Conversational — good for podcast intros and YouTube voiceovers.

What's up, I'm Jasper. Conversational tone for podcasts and YouTube voiceovers.

Kiki

Female · Animated

Highest energy. Best for trailers, ads, and call-to-actions.

I'm Kiki! High energy for trailers, ads, and any line that needs a punch.

Leo

Male · Smooth

Lower register, slower. Audiobook-friendly without sounding flat.

I'm Leo. A lower, slower voice that suits audiobooks and long-form reads.

Bella

Female · Warm

Friendly default. Reads narration without sounding cold.

Welcome to Kitten TTS. I read scripts in your browser, no servers in the loop.

Bruno

Male · Confident

Steady mid-low register, good for explainers and product demos.

This is Bruno. I'm a steady, confident voice for explainers and demos.

How it works

Three steps. Zero servers in the loop.

Kitten TTS runs the entire model in your browser via ONNX Runtime Web. There's no upload, no rate limit, and no monthly cap because there's nothing to bill.

  1. 01

    Type or paste your script

    Up to 2,000 characters per generation. The text never leaves your device — no upload, no log, no audit trail.

  2. 02

    Pick a voice and speed

    8 English voices, 0.5×–2× speed, 8 kHz–48 kHz output. The model loads once on first visit (about 25 MB), then runs locally for every future session.

  3. 03

    Generate and download

    Inference runs in a Web Worker on your device — typically 2–3× real-time on a modern laptop. Hit Download and you get a clean 16-bit WAV.

Built for

Made for people who ship audio every week.

Most TTS pricing assumes you're either a one-shot user or a Fortune-500 customer. Everyone in between gets squeezed.

Short-video creators

The pain. Drafting voiceovers in cloud TTS tools eats your daily quota before the cut is even rough.

Where Kitten TTS fits. Generate a hundred takes, pick the one with the right pacing, ship the clip — all without touching a credit card.

Podcast & audio editors

The pain. Re-recording a single misspoken word means setting up the booth again for one syllable.

Where Kitten TTS fits. Drop in a Kitten TTS line of the same voice family, level-match in your DAW, and move on.

Course authors & teachers

The pain. Updating a 40-minute lesson means re-recording the whole section because the narration drifts.

Where Kitten TTS fits. Regenerate just the 8 seconds that changed. Same voice, same speed, same sample rate every time — perfectly stitchable.

Indie devs & prototype shops

The pain. Dropping ElevenLabs into a side project means a paid plan before the first user shows up.

Where Kitten TTS fits. Embed the same browser pipeline in your own React or Next app — Apache 2.0, no API key, no bill.

Why Kitten TTS

Free in-browser TTS, with the receipts.

Most 'free tier' text-to-speech tools have a meter ticking somewhere. We don't, because there's no server-side cost to meter.

  • Your text never leaves your browser

    Inference runs client-side via ONNX Runtime Web. No request reaches our servers once the model is cached, so we can't see your scripts even if we wanted to.

  • Free, with no usage cap

    There's nothing to bill — your CPU does the work. Generate 5 clips or 5,000, the cost to us is the same: zero.

  • 8 voices in v1, more on the way

    Mixed male and female, calm to animated. Pick a default and switch on a per-line basis — the workbench remembers your last choice.

  • Works offline after first load

    The 25 MB model and ONNX runtime cache to IndexedDB for 7 days. After that, the page works on a plane or with the WiFi off — sign-in is the only network feature.

  • Open source, Apache-2.0 model

    The model is from KittenML, the browser pipeline is open source. Fork it, embed it, ship it — no license dance, no usage tracking pixel.

Pricing

Free now. Forever. Plus a deal for early believers.

The browser tool stays free with no usage cap — that part isn't changing. If you want to lock in every Pro feature we ship later (voice cloning, multilingual, emotion, API), the Founder's Deal does it once.

v1 — Free forever

Available now

The full browser tool. No account required. Sign in with Google only if you want last-20-generations history synced across devices.

  • 8 English voices
  • 0.5×–2× speed, 8 kHz–48 kHz output
  • Up to 2,000 characters per generation
  • WAV download, no watermark
  • Full commercial use allowed (Apache 2.0)
Use it now

Founder's Deal

Limited
$29once · lifetime

Pay once, lock in every Pro feature we ship in v2+ for the lifetime of the product. Honest version: none of this exists yet. You're betting that we'll make it.

  • Voice cloning (upload a 30-second sample, get a custom voice)
  • Multilingual output (Spanish, French, Japanese to start)
  • Emotion + style controls (excited, melancholy, whisper)
  • API endpoint for embedding in your own product
  • Longer-form input (book chapter mode)
  • Founder badge in the app + Discord (forever)
Sign in to claim

We need an account on file so future features unlock for you automatically.

Stripe-secured. Refunds within 14 days, no questions asked, if any of the above features haven't shipped that you wanted.

FAQ

The questions everyone asks first.

How is this free? Where's the catch?
There's no catch. The model runs in your browser, so there's no cloud bill on our side. We pay for the domain, a free-tier Cloudflare Workers plan, and the R2 bucket that hosts the 25 MB model file. The marginal cost of you generating a clip is zero.
Is my text uploaded anywhere?
No. Once the model is loaded (a one-time 25 MB download cached for 7 days), every generation runs entirely in your browser via ONNX Runtime Web. There's no API call back to a server during inference. You can verify this in the Network tab — it should be silent during Generate.
Can I use the audio commercially?
Yes. The Kitten TTS model is Apache-2.0 licensed by KittenML, which permits commercial use, modification, and redistribution with attribution preserved in the source. Audio you generate is yours — same legal footing as if you'd recorded it on your own laptop.
What languages are supported?
English only in v1. The phonemizer (espeak) is English-only here. Spanish, French, and Japanese are on the v2 roadmap.
Why does it sound robotic on long passages?
The 15-million-parameter model has a quality ceiling on dramatic delivery and very long sentences. We chunk input by sentence, generate each chunk, and stitch them — usually seamless, sometimes audible if you listen for it. For best results, keep individual sentences under 200 characters.
Does it work on mobile?
Yes, the same pipeline runs on mobile Safari and Chrome. Initial 25 MB load on a phone takes 5–15 seconds depending on connection; after that it's instant. Generation is slower on phones (1–2× real-time vs 2–3× on a laptop), but works fine for short scripts.
Why do I need to sign in?
You don't. Anonymous use is the same product. Signing in with Google only enables one thing: your last 20 generations sync across devices. If you only use one device, sign-in adds nothing.
How does this compare to ElevenLabs / Play.ht / etc.?
Those are higher quality on dramatic delivery and offer voice cloning and many languages. They charge $5–22/month for use that's beyond a small free tier. Kitten TTS is the right tool when: you draft voiceovers in volume and quality is good enough, you care about privacy, or you'd rather not maintain a subscription. They're the right tool when: you ship final-mix audiobook narration or need 30+ languages.
Can I run this offline?
Yes, after the first load. The browser caches the model and ONNX runtime in IndexedDB for 7 days. After the first visit, the page itself is the only thing fetched from the network — and once that's cached too (we set Cache-Control: immutable), the app works on a plane with WiFi off.
Is this affiliated with KittenML?
No. We use their open-source model under Apache-2.0. We're not affiliated, endorsed, or supported by KittenML. The page brands itself as 'Unofficial · Powered by Kitten TTS' to make this explicit.