Voiceover Generator
Free · Open · Bring your own key

Turn text into voiceovers
using your own Google API.

A free text-to-speech tool, opened up for everyone. You bring your own Google API key — it stays in your browser and goes straight to Google. This website's server never sees it, never stores it, never logs a single thing you do here.

380+ voices 75+ languages 2 engines Zero signup
§ Why this is safe

Your keys never leave your browser. Here's exactly how.

When you paste a key, it's saved to your browser's localStorage — a private storage area locked to this website's domain only. No other website on the internet can read it. When you click Generate, your browser opens a direct connection to texttospeech.googleapis.com and sends your key with the request — this website's server is not in that path at all. You can verify this yourself by opening DevTools → Network tab.

This is enforced by the browser itself, via the Same-Origin Policy — the same rule that stops malicious sites from reading your Gmail. No accounts, no logs, no analytics on your scripts, no server-side history. You can wipe everything with the button below.

Step 01

Paste your two API keys.

☁ Google Cloud TTS Key Not set
✦ Gemini API Key Not set
Saved locally on this device only. Don't have keys yet? Read the noob-friendly guide ↓

📖 Never used Google Cloud before? Start here.

+

You need two separate API keys from Google — one for Cloud TTS (the classic one with a generous free tier) and another for Gemini Flash TTS (the new expressive one with audio tags). Both come from the same Google account, but live in two different APIs. The wizard below walks you through both, top to bottom.

1

Go to Google Cloud Console

Open console.cloud.google.com and sign in with any Gmail account. If you've never been here, Google may ask you to accept the Terms of Service — that's normal, just click Accept.

2

Create a new project

Top-left, click the project dropdown (it says "Select a project" or shows an existing project name) → New Project → name it anything like my-voiceover → Create. Wait ~15 seconds for it to provision.

Tip: You only do this once. All your future Google API stuff lives here.
3

Enable the Text-to-Speech API

Go to this direct link (make sure your new project is selected at the top) → click the big blue ENABLE button. Wait until it says "API Enabled".

4

Create your API key

Go to Credentials → click + CREATE CREDENTIALSAPI key. A box pops up with a key starting with AIzaSy… — copy it.

Important: Treat this key like a password. Don't paste it into Discord, screenshots, or git. Read the "Keep your keys safe" tab next for hardening steps.
5

Paste it above & press Save

Scroll up to the ☁ Google Cloud TTS Key field, paste the key, click Save keys to this browser. You can now use the Cloud engine for free up to 4 million characters/month (Standard voices) or 1M chars/month for the better Neural2/WaveNet/Studio voices.

Tip: Free tier resets every month. Past it, Google bills you (it's cheap — see the pricing reference at the bottom of the tool).
1

This is a different key from a different place

Gemini's TTS lives under the Generative Language API, not Cloud TTS. So you need a separate key. Easiest path: aistudio.google.com/app/apikey

2

Click "Create API key"

Pick the same project you made above (my-voiceover) so everything stays in one place → it generates a new AIzaSy… key. Copy it.

3

⚠ Enable Billing — Gemini TTS has no free tier

This is "the preload step." Gemini Flash TTS will refuse to work until your project has a billing account attached, even just for testing.

Go to console.cloud.google.com/billingLink a billing account to your project → add a credit/debit card. Google charges nothing upfront — they only bill you for what you actually use.

How much will it cost? Gemini Flash TTS = ~$20 per 1 million output tokens, where 1 second of audio ≈ 25 tokens. So 1 minute of voiceover ≈ $0.03. A typical 10-minute YouTube voiceover ≈ $0.30. Always set a budget alert (next step).
4

Set a budget alert (highly recommended)

In BillingBudgets & alerts → Create budget → set $5/month or whatever you're comfortable with. Google emails you at 50%, 90%, and 100%. This is your safety net if something goes wrong — you'll know immediately and can revoke the key before it hurts.

5

Paste it above & press Save

Scroll up to ✦ Gemini API Key, paste, save. Now you can use the Gemini engine with all 30 cinematic voices and audio tags like [whispering], [excited], [laughing].

1

Set a hard budget limit on Google's side (most important)

This is the single best safety step. Go to Cloud BillingBudgets & alerts → Create budget → set a monthly cap (start with $5 or $10). Google emails you at 50%, 90%, and 100%. Even if your key leaks, the worst case is capped at your budget and you'll know within hours.

Bonus: Add hard quota limits too. cloud.google.com/iam-admin/quotas → search "Text-to-Speech" → set a max characters/day. Quotas are an instant hard cap that stops API calls the moment they're hit.
2

(Optional) Restrict the key to your IP address

If you always use this tool from the same internet connection (home or office), an IP restriction is the strongest extra lock you can add. The key will only work from your IP — useless to anyone else who might find it.

→ Find your public IP at whatismyipaddress.com (copy the IPv4 number).
→ Open Credentials → click your key → under Application restrictions pick IP addresses → paste your IP → Save.

Skip this if: you use mobile data, public Wi-Fi, a VPN, or your home IP changes often (most ISPs rotate). The key will stop working every time your IP changes. Do not pick "HTTP referrers" / website restrictions — those will break the tool, since requests come from your browser directly to Google, not from a fixed website.
3

Don't use this on a computer that isn't yours

Your keys are saved to this exact browser on this exact device. If you save keys on a friend's laptop or a library PC, the next person using that browser can use your API quota. Two safe patterns:

Your own device: save keys normally, you're fine.
Someone else's device: open this site in Incognito / Private mode, paste keys, generate, close the window. Incognito wipes localStorage automatically when you close it.

4

Don't share your keys with anyone — ever

An API key is a password to your Google billing account. Don't paste it into chats, emails, support tickets, or screenshots. Don't commit it to a git repo. Don't show it on screen during a livestream. If you absolutely must share it for some reason — delete and regenerate it right after.

5

If a key leaks → delete & replace in 30 seconds

Suspect compromise? Don't panic. Go to Credentials → click the leaked key → DELETE. The old key is dead instantly. Then create a new one, paste it here, click Save. You're protected. Check your billing for unusual usage just in case.

6

How exactly does this site keep my key safe?

The browser enforces a security rule called the Same-Origin Policy. It means: data saved in your browser's localStorage by this website can only be read by this website's JavaScript — running on your machine, in your tab. The website's server never receives it. Google says it best in their Web Storage docs: localStorage is "partitioned by origin" and persists locally only.

When you click Generate, this site's JavaScript reads your key from localStorage and sends it directly to texttospeech.googleapis.com as a ?key= URL parameter. This site's server is not part of that request — open DevTools → Network tab when you click Generate and see for yourself. The PHP backend that used to handle keys server-side has been deleted entirely.

Want to wipe? Click Wipe everything at the top of the page. Or in your browser: DevTools → Application → Local Storage → delete voiceoverKeys.
Advertisement
Step 02

Generate your voiceover.

Pick an engine, paste a script, choose a voice, generate. If you see a generation error, try a shorter paragraph first — large requests sometimes time out, and short tests confirm your key + voice combo works.

Free tier: 4M chars/month (Standard voices) · 1M chars/month (WaveNet / Neural2 / Studio)
Your script 0 / 10,000
1. Language
2. Country / Region
3. Gender
4. Voice
Speed 1.00x
Pitch 0.0
Volume 0.0 dB
Note: The text you generate goes directly to Google, not to this site. But Google logs API requests under your account, so don't paste passwords, NDAs, or anything sensitive — same as ChatGPT, same rules.

Your voiceover

Step 03 — Optional

Found a bug? Got an idea? Tell me.

This tool is maintained by one person — me. If something doesn't work, a voice sounds wrong, or you have a feature you wish existed, send a quick email. I read every message.

Advertisement
💰 Pricing reference click to expand
☁ Cloud TTS
StandardFree: 4M chars/moThen $4 / 1M chars
WaveNetFree: 1M chars/moThen $16 / 1M chars
Neural2Free: 1M chars/moThen $16 / 1M chars
StudioFree: 1M chars/moThen $160 / 1M chars
Chirp 3: HDFree: 1M chars/moThen $30 / 1M chars
Polyglot (Preview)Free: 1M chars/moThen $16 / 1M chars
✦ Gemini TTS (no free tier — billing required)
Gemini 2.5 Flash TTSNo free tier$0.50 input + $10 output / 1M tokens
Gemini 2.5 Pro TTSNo free tier$1 input + $20 output / 1M tokens

* Audio tokens ≈ 25 tokens per second of audio. 1M chars ≈ 22+ hours of voiceover.
* All pricing is paid directly to Google — this tool takes nothing. Verify current prices at cloud.google.com/text-to-speech/pricing and ai.google.dev/pricing.