How to use it
- Paste or type your text.
- Pick a voice. The list shows the voices your browser and operating system provide, grouped by language; choose one that matches the language of your text.
- Set the speed and pitch and press Play. The sentence being read is highlighted, and the word too where the voice reports its position. Pause, Resume and Stop as you need; changes to speed, pitch or voice apply from the next sentence.
Where the voices come from
This page uses the speech synthesis part of the Web Speech API, which hands text to the voices already installed on your device or offered by your browser. That is why the list differs between a Windows PC, a Mac, an iPhone and an Android phone, and why it costs nothing and needs no account. Each voice is reported either as local (it runs on your device, so the text never leaves it) or as a remote service, which we mark “online”: for those, the browser sends the text to its maker’s speech service to be spoken. If you need privacy, choose a voice without that mark. On Linux, Chrome and Firefox only have voices if a speech engine such as speech-dispatcher is installed.
Why there is no download button
The Web Speech API plays system voices straight to your speakers; it gives the page no access to the audio, so no website can save it as a file using those voices. Tools that offer an MP3 either send your text to a server or run their own voice model in the page. We looked at running an open voice model in the page instead: the browser package for Kokoro turns text into speech sounds with a bundled copy of eSpeak NG, which is licensed under the GPL, a licence this site does not use. So we chose the device’s own voices and kept everything local.
Long texts
Long text is split into sentences, using the browser’s own sentence rules for your language, and very long sentences into pieces of at most 220 characters at a space; each piece is queued in turn. That keeps long documents playing, lets the page show which sentence is being read, and means abbreviations such as “Dr.” are joined to the sentence that follows rather than read as a sentence of their own.
What we tested
On October 15, 2026: the page’s splitter on 1,000 generated texts (abbreviations, numbers with decimal points, Japanese, line breaks and long runs with no full stop) always produced pieces that are exact slices of the text, at most 220 characters, together covering every word in order. In Chromium with a stand-in speech engine (headless Chrome has no voices of its own), a four-sentence text was queued as 4 pieces in order with the chosen voice, speed and pitch; the current sentence and word were highlighted; nothing was spoken while paused; Stop returned to the editor. With Chrome’s real, empty voice list the page shows the no-voices note, and it fits a 390 px screen.
Sources
- W3C Audio Community Group, Web Speech API (speechSynthesis, utterances and boundary events).
- MDN, SpeechSynthesisVoice.localService (local versus remote voices).
Frequently Asked Questions
Built by Derek Giordano · Part of Ultimate Design Tools