Text to speech
Read text or Markdown aloud on your own device — with your system's voices (word-by-word highlighting, rate, pitch, volume) or Kokoro, a neural voice model that runs in the browser — and download the speech as a WAV file.
Added · updated 12 October 2026
How to use it
Type, paste, or open a text or Markdown file, choose an engine and a voice, and press Speak. The Reading panel highlights the word (system voices) or the passage (Kokoro) being spoken.
Engines
System voices use the speech synthesis built into your browser and operating system (Web Speech API). On macOS, Windows, iOS and Android these voices run on the device; each voice is labelled on device or online (online voices — some of Chrome’s — send the text to the browser maker). Rate, pitch and volume apply to the next sentence. Long text is spoken a few sentences at a time.
Kokoro (Kokoro-82M, Apache-2.0) is a small neural voice model that runs in a background worker in this page with kokoro-js. The text never leaves your device. Downloaded once and cached by your browser: the library (about 2 MB, jsDelivr), the model from Hugging Face — about 92 MB for the 8-bit CPU build, or 326 MB for the full-precision WebGPU build — and about 0.5 MB per voice. Speech is generated a passage at a time (about 300 characters), then played; Download WAV saves it (24 kHz, 16-bit mono). Kokoro’s 28 voices are American and British English.
Markdown and pronunciation
With Read as Markdown, headings and list items are read as sentences, links and images by their
text, and formatting is dropped; code blocks are skipped unless you untick Skip code blocks.
The Pronunciation list rewrites words before speaking — one written = spoken rule per line,
for example GPIO = G P I O or nginx = engine x.
Presenting
Karaoke-style: the text large, with the word (system voices) or passage (Kokoro) being read highlighted and kept in the middle of the screen. Enter or ▶ Read starts, Space pauses and resumes. Press ⛶ Present (beside Share link) or F to open it; Esc or F closes it and T switches between dark and light. It goes full screen where the browser allows, otherwise it fills the window, and keeps the screen awake. Controls and the pointer fade after a few idle seconds.
Share link → Link options can make a link that opens straight into this view and starts by itself. Browsers only play speech after a click, so such a link shows a large “Click to start (with sound)” button. Browsers only allow real full screen or sound after a click, so a link opened cold shows the view filling the window with a “Click for full screen” button and a “Click to start” button when the link asks to start.
Feedback is a gift. Something to improve, a feature to add, or a bug? Tell me.
Runs entirely in your browser — network requests go only to the services named on this page.