← All posts

Why we run text-to-speech on your own machine

Spoken reads text aloud with a voice model that runs in your browser, on your GPU with WebGPU or on your processor when WebGPU is unavailable. Here is why that matters, how it works, and what it costs you.

Many popular text-to-speech tools, especially those with the most natural-sounding voices, work the same way: you select some text, the tool sends it to a server, and a server sends audio back. Spoken does it differently: a neural voice model runs inside your browser, on your own graphics card through WebGPU, or on your processor when WebGPU is not available. This post explains why we chose that, how it works, and where it falls short.

What you read is often private

Think about what people actually listen to. Email. Work documents. A contract before signing it. A lab result, or a long letter from an insurer. These are exactly the things you might want read aloud, and exactly the things you might not want copied to someone else’s server.

With a cloud voice, the text has to leave your machine. That is how the service works, and the good providers say so plainly. As of November 2026:

None of this is hidden, and several of these companies make clear promises about your data. But a promise about a server is different from the text never reaching one.

Spoken never sends your text anywhere. Its only outside requests go to Hugging Face, to download the voice model and voice files. To read a PDF it may fetch the PDF again from the address it came from, usually out of the browser’s cache. The code that runs the model is bundled with the extension. There is no analytics or telemetry. Once the model is on your machine, the engine status in the popup says it directly: “Nothing leaves this browser.”

No meter running

Cloud voices cost money to run, so cloud tools measure how much you use. As of November 2026:

Speechify’s free tier is not metered by characters, but it limits you to 10 voices and playback up to 1.5x. Its Premium plan, which its pricing page says includes 400+ voices, costs $29 a month or $139 a year.

These are fair ways to pay for real server costs, and some are very cheap. NaturalReader’s free system voices are unlimited.

Spoken has no server doing the work, so there is nothing to meter. Synthesis runs on hardware you already own.

It keeps working offline

After the first download, the model is cached in the browser. Spoken asks for unlimited storage so that the browser does not quietly evict it. From then on, you can read web pages aloud with no connection. PDFs work too when the browser still has the file cached; otherwise you can still select text in them and have it spoken.

Other tools offer offline listening too, in different ways. As of November 2026, Speechify’s Chrome extension offers offline listening as a Premium feature that downloads converted audio. ElevenReader’s offline downloads are part of its paid Ultra plan and expire after 60 days. NaturalReader lets subscribers create MP3 files for offline listening. With those cloud voices you prepare audio ahead of time. Speechify’s on-device iOS voices, and the local system voices in Edge and Read Aloud, also read live text offline. Spoken does the same in desktop Chrome, with a neural model: once it is downloaded, you can select text on most web pages and hear it, online or not.

No round trip

Once the model is loaded, synthesis needs no network request: your text never goes to a server to become audio. Spoken splits text into chunks of about a sentence each, and synthesizes ahead while the current chunk plays. The first chunk is kept short so that playback can start sooner. We have speed targets for this, but they are targets, not measurements, and we will not quote them as results.

How it works

The voice model is Kokoro-82M v1.0, an open model with Apache-2.0 weights. Spoken runs it with kokoro-js, which builds on Transformers.js and ONNX Runtime Web, the libraries that let a neural network run inside a web page.

WebGPU first

WebGPU is a browser API that gives web code access to your graphics card for general computation. By default Spoken runs Kokoro on WebGPU at full precision. The engine status reads “Running on your graphics card with WebGPU.”

WASM when WebGPU is not there

If the browser has no WebGPU adapter, or WebGPU fails to load, Spoken switches to WebAssembly on your processor. This uses a smaller, quantized version of the model. It is slower than the GPU path, but it still runs locally, and the status says so: “Running on your processor (WebGPU is unavailable here). Nothing leaves this browser.”

Download once, then cached

The first time you open the Spoken popup, right-click selected text, or play something, Spoken starts downloading the model. The orb in the popup starts as a grey shell and fills with colour as the download progresses, and the status line shows the real progress in megabytes. After that the model is read from the cache. If you leave Spoken idle for a while, it unloads the engine to free memory, and loading it again comes from the cache rather than the network.

The honest trade-offs

Running locally is a real trade, not a free win.

The first download is large. The default WebGPU model is about 326 MB. The WASM fallback is about 92 MB. That is a one-time cost, but on a slow or metered connection it matters.

It needs a capable machine. The best experience is on a computer with a decent GPU and a browser with WebGPU. Spoken requires Chrome 125 or later. Without WebGPU it falls back to the processor, which is slower. Cloud tools and built-in system voices do not ask anything of your hardware, so they work well on low-end devices.

Fewer voices and languages. Spoken ships 21 Kokoro voices, and they are English only: 19 American and 2 British. Cloud services offer far more. As of November 2026, Speechify lists 60+ languages on Premium, NaturalReader’s help center lists Plus voices in more than 70 languages, and ElevenReader’s pricing page lists 90+ languages. Speechify’s Chrome extension page advertises over 1,000 voices. Large cloud voice catalogs may also sound more expressive than a small on-device model.

One browser, one machine. Spoken lives in your desktop Chrome. As of November 2026, Speechify, NaturalReader and ElevenReader all have mobile apps and accounts that follow you across devices. Speechify has also launched on-device voices on iOS that work offline, and its Mac app lists offline voices, so on those platforms its text does not have to leave the device either. Edge, Chrome and ChromeOS all include built-in read-aloud features with no install at all. If those fit what you need, they are good options.

Why we think it is worth it

For a lot of reading, the trade is a good one. You pay once in download time and disk space. In return, the text you listen to stays on your machine, nothing counts your characters, and once the model is downloaded, it works on a plane.

If that sounds right for how you read, give Spoken a try.

Sources (checked 2026-11-14)