WebNarrator version 1.1.0

The problem: Windows users couldn’t get good voices

WebNarrator originally used your operating system’s voices exclusively.

Windows ships with two kinds of voices: SAPI5 (the older, robotic ones) and Narrator Natural (the higher-quality neural ones). The Natural voices are great. But Windows only properly exposes them to Edge. Chrome can sometimes see them. Firefox on Windows can’t see them at all. There is no fix at the WebNarrator level.

The workaround would be to use Edge, and while I do have an Edge extension coming soon, I find that to be an unacceptable workaround. No one should ever be bullied into using a particular browser.

The fix: ship our own voices

As of 1.1.0, WebNarrator can download Kokoro-82M, an open-source neural TTS model, and run it entirely in your browser. You get six high-quality voices (three female, three male, in US and UK English), and they sound the same in Chrome, Firefox, and Edge, on Windows, macOS, and Linux.

Opt-in, on-device, no tracking

Two things to know:

  • It’s a ~310 MB one-time download from HuggingFace, cached locally in your browser’s OPFS storage. After that, the neural voices work fully offline.
  • The toggle is OFF by default. You explicitly opt in via the popup before anything is downloaded, and downloading the model is 100% optional.

Once the model is local, no audio ever leaves your machine. Speech synthesis runs on your CPU or GPU via ONNX Runtime Web, the same way OS voices run on your machine. The only network event is the initial model download itself, with your consent.

How to turn it on

Download WebNarrator via the Chrome Web Store or Firefox Add-ons.

Then open the WebNarrator popup, flip the Open-source neural voices toggle, read the consent panel, and click Download voice model. Once the download finishes, the Kokoro voices appear in your voice picker alongside any OS voices.

If you’d rather stick with OS voices, see the updated guide to downloading better voices on macOS, Windows, Linux, and ChromeOS.

Credits

Kokoro-82M is released under Apache 2.0. The runtime is built on HeadTTS, transformers.js, and ONNX Runtime Web. Full attribution lives in THIRD_PARTY_LICENSES.md in the extension’s source tree.

Feedback

Feedback / bug reports / whatever welcome. You can contact me via discord or email david@linkidex.com. No soliciting.