Text to Speech in Your Browser: 116 Voices You Can Also Save as WAV

Most text to speech on the web comes in two flavours. One uses the voices already installed on your computer. It is instant and free, but the audio vanishes the moment you stop playing it, and the voice you hear is whatever your operating system happens to ship. The other flavour runs on a server: stronger voices, but you upload your text, wait for a round trip, and often pay by the character.

There is a third route now. A neural voice model can be downloaded into the browser tab and run on your own processor. That is what this tool does. It offers 116 voices across 32 languages, synthesizes the speech locally, and hands you a WAV file you keep. No upload, no account, no character meter.

Here is how it works, which voice to pick, what the exported file really contains, and when the plain browser voices are still the better answer.

What text to speech in a browser usually means

The default option on the web is the Web Speech API. Every modern browser exposes it as speechSynthesis, and it plays the voices your operating system provides. The count depends on the platform: a Windows 11 machine typically offers 20 to 30 Microsoft voices, macOS goes far beyond that with 60 to 80 Apple voices, and Chrome on Android has around 10 to 30 Google voices.

That route has three properties worth remembering.

  • It is immediate. No download, no setup, no account.
  • It is tied to your machine. A colleague on a different operating system hears a different voice.
  • It cannot save audio. This is the part that surprises people. The API plays sound through the speakers; it does not hand you a file.

The second route is a cloud speech service. Google, Amazon, and Microsoft all sell speech synthesis by the character, and the results are excellent, especially for long-form narration. The costs are not purely financial. Your text travels to a server, you need a connection every time you synthesize, and a long document becomes a metered line item.

The third route is the one this tool takes: put the voice model in the browser. You get the instant, private feel of the local option and, unlike the Web Speech API, you also get a file at the end.

How the engine fits inside a browser tab

The voices come from Piper, an open-source neural text-to-speech system built on the VITS architecture. Each voice is a single model file plus a small configuration file, and the whole thing runs through ONNX Runtime compiled to WebAssembly. WebAssembly is what makes the browser part possible: it executes the model's maths at near-native speed without any plugin.

The pipeline for one sentence looks like this.

  1. The text is cleaned up and split into sentences.
  2. A phonemizer, espeak-ng compiled to WebAssembly, converts the spelling into the phonetic units the voice was trained on.
  3. Those phonemes become the numeric input for the model.
  4. The model predicts the audio waveform.
  5. The waveform is packed into a WAV container and handed back to the page.

Everything above happens inside the tab. There is no inference server, no GPU, and no queue. On a modern laptop the model runs faster than real time, so a one-minute clip does not take a minute to generate.

The one thing that does cross the network is the voice model itself. That download is the price of local synthesis, and it happens once per voice.

Picking a voice: 116 options, four quality tiers

Piper publishes its voices in four quality tiers. They differ in sample rate, file size, and how convincing the result sounds.

Tier Sample rate Typical model size How it sounds Pick it when
x_low 16 kHz 10–28 MB Clearly synthetic, very light You are on an older machine, or it is the only tier for that language
low 16 kHz ~20 MB Better than x_low, still audibly synthetic You need fast starts and small downloads
medium 22.05 kHz 30–63 MB Most listeners stop noticing the synthesis The default choice for almost everything
high 22.05 kHz 63–137 MB The best Piper gets Narration where quality outweighs a larger download

The distribution is lopsided. Piper's public index lists 175 voices: 121 medium, 26 low, 14 x_low, and 14 high. Medium is the tier languages actually have, which is why it makes sense as a starting point.

In this tool the catalogue is narrowed to the voices the engine can genuinely fetch, which leaves 116 voices in 32 languages. English carries the widest choice at 32 voices, then German at 10, Spanish, French, and Dutch at 7 each, and Russian at 4. Smaller language families often have a single voice, so if you plan to build a workflow around a specific one, check it before you commit.

Storage adds up quietly. A medium voice is 30 to 60 MB on disk. Three of them, cached for repeat use, are already about 150 MB of browser storage. If that matters, prefer a low or x_low voice for casual listening and keep the medium model for the language you use daily.

Setting a pace you can actually follow

Synthesis at the default pace is not always the pace you want. The rate slider runs from 0.5x to 2x in 0.1 steps, and the useful settings fall into a few habits.

  • 0.6x to 0.8x for language practice. Slow enough to hear individual sounds, fast enough to keep the sentence's shape.
  • 0.8x to 0.9x for proofreading. Your reading speed silently repairs what you wrote; a slightly slower voice does not.
  • 1.0x to 1.2x for listening to a document. Close to normal speech, still easy to follow.
  • 1.5x to 2x for skimming. Enough to decide whether a section deserves a careful read.

Volume works the same way, from 0 to 100% in 5% steps, and it only affects this playback. It is not baked into the exported file, so you can trim the level later without re-generating anything.

Playback controls match the shape of the task. Play starts the readout, Pause holds your place, Resume picks it up, and Stop ends it so you can start over from the top. Reset returns rate and volume to their defaults without touching the text you pasted.

What the exported WAV actually contains

Press Download WAV and you get a file called speech.wav. It holds the same voice you just previewed, synthesized the same way — which is the point of doing the synthesis locally rather than streaming audio back from a service.

The file is plain uncompressed audio: mono, 16-bit PCM, at the voice's own sample rate. That means 16 kHz for x_low and low voices, and 22.05 kHz for medium and high ones. The size follows directly from that.

Sample rate Bytes per second One minute of speech Ten minutes of speech
16 kHz ~32 kB ~1.9 MB ~19 MB
22.05 kHz ~44.1 kB ~2.6 MB ~26 MB

Nothing is compressed, so nothing is lost on the way out. A WAV in this format drops into an audio editor, a video timeline, or a transcription tool without a conversion step, which is the reason to prefer it over a compressed format for short pieces.

Two habits save time here. Do a short test pass first: paste one paragraph, listen at your intended pace, then do the full run once the settings are right. And remember that pace changes the file: at 1.5x the same paragraph produces a shorter recording, and therefore a smaller download.

Browser voices or the built-in engine?

Both are useful, and they solve different problems.

Browser voices (Web Speech API) On-device engine in this tool
Voices 10–80+, depending on your operating system 116, the same list on every machine
Setup None One model download per voice
Works offline Yes Yes, after the model is cached
Saves audio to a file No Yes, WAV
Language coverage Whatever your OS ships 32 languages and regional variants
Quality control Pick a voice from a short list Pick language and quality tier separately
Your text leaves the device No No
Cost Free Free

Use the browser voices when you want something read aloud right now and the exact voice does not matter. Use this engine when you want a specific language, a consistent voice across machines, a slower pace for study, or a file you can keep.

One caveat on quality expectations. These are compact models, not the large commercial voices behind premium narration services. A medium Piper voice reads a paragraph cleanly and predictably, which is what most listening tasks need. If you are producing a finished audiobook, this is a preview tool, not the final studio.

What people actually use it for

The most common use is not listening for pleasure. It is catching your own mistakes.

Proofreading tops the list. When you read your own draft silently, you see what you meant to write. When you hear it, you notice the missing word, the doubled phrase, and the sentence that runs out of breath. Writers, developers writing documentation, and anyone who types for a living use a readout as a second pair of eyes that never skims.

Language practice comes next. A native-sounding voice at 0.6x, looped over one paragraph, does what a textbook cannot: it lets you hear the rhythm of the language rather than the spelling of it. Because the output can be saved, the practice material ends up on a phone or a media player instead of being trapped in a browser tab.

Then there is narration. A script read aloud reveals whether it fits the time slot, whether a sentence is a mouthful, and where the emphasis should land. Turning it into a scratch track takes minutes, and a human voice can replace it later if the project needs one.

Long documents are the quiet workhorse. A report, a saved article, or a chapter of documentation becomes something you can get through while commuting or doing chores. The reading you were never going to finish at a desk often gets finished when it is spoken.

Finally, accessibility. Screen readers already speak the web, and they do it well. What they do not give you is a portable audio file for people and situations outside a browser: a handout for someone who cannot read print, an instructions file for a worker whose hands are busy, a version of a notice that can be listened to on the way to an appointment.

Privacy, offline use, and the one-time download

The privacy claim is structural rather than a policy promise. There is no speech API in the loop and no server to send text to; the synthesis runs on your processor, in the tab where you typed. What you paste is not uploaded, logged, or counted.

That same design gives you offline use, with one condition. Each voice must be downloaded once, and after that it lives in your browser's storage. From then on the page can produce speech with no connection at all, which makes it a usable tool on a laptop in a train tunnel or on a machine with an unreliable network.

The cost is the wait on first use. A medium voice is 30 to 60 MB, and on a slow connection that first sentence takes a while. The status line reports the download progress, and the voice stays ready afterwards: pick it again in a later session and the speech starts immediately.

One practical note about shared machines. Browser storage belongs to the browser profile. If you use a different profile, or a private window that discards its data, you will download the voice model again.

Two limits worth knowing before you rely on it

The first is device appetite. A high-quality voice model can be 100 MB or more, and older machines can take noticeably longer to synthesize with it. On a ten-year-old laptop an x_low voice with a 10 to 28 MB model is often the difference between a usable tool and a frustrating one.

The second is text handling. Speech synthesis reads what is on the page. Abbreviations, symbols, and numbers that look obvious to a human can still be read in ways you did not intend, especially when you move between languages. Read a short sample first; the fix is usually rewriting the line rather than changing any setting.

Neither limit is specific to this tool. They are the reality of running a neural voice on your own hardware, and knowing about them in advance is most of the work.

Frequently Asked Questions

Is this text to speech tool free?

Yes. There is no account, no subscription, and no per-character charge: the voices are open-source models and the synthesis runs on your own machine.

Can I use the audio commercially?

The voice models are open source and published for reuse, so the audio you generate is yours to use in commercial work. A few voices carry their own licence terms, so check the model you picked if it will ship inside a product.

Why do some voices sound robotic?

Because the tiers trade size for quality. x_low and low voices render at 16 kHz from small models, which is clear but audibly synthetic. Medium and high voices render at 22.05 kHz, and those are the ones listeners stop noticing.

How long can the text be?

There is no limit in the tool, but long documents take time to synthesize and the audio is held in memory while it works. For book-length text, split it into chapters.

Does it work on a phone?

Yes, in any modern mobile browser. Phones have less memory to spare for a large model, so the small x_low and low voices are the safer choice there.

Can I save a browser voice instead?

No. Voices from the Web Speech API are played by the operating system and are never exposed as data, which is why an engine that renders the audio inside the page exists at all.

Why does a new voice take a while to start?

Its model has to download before any audio can be produced, and a medium voice is 30 to 60 MB. Later sentences are fast, and a cached voice starts instantly in future sessions.

Which voice sounds most human?

High is the most natural tier and medium is usually close enough that listeners stop noticing. English and German have the widest selection, so it is easier to match a particular style there.

Is my text stored anywhere?

No. It stays in the page you typed it into: there is no upload step, no history, and no server-side log of what you converted.

Tom Tresansky
Tom Tresansky

Schenectady, NY · SO reputation 19967 · Badges: 23🥇98🥈132🥉 · SO member since 2009