Skip to content
AI

Kokoro TTS

The open Kokoro-82M voice, running in your browser: every English voice with its grade and a sample, blends of two voices, pauses and pronunciation fixes, played as it’s made and saved as WAV or MP3. Free, and your text never leaves the page.

  • Free
  • No upload
  • No sign-up

Your text

Blank line: a pause · [pause 2s]: a longer one · [word](/phonemes/): a pronunciation · Ctrl+Enter: speak0 words · 0 / 20,000 characters

Grades are Kokoro’s own, from the quality and amount of each voice’s training audio. ★ marks the narrator’s ten.

Heart · 1.00×

Checking your graphics card…

Your takes appear here, to replay and download as WAV or MP3. Try a voice, change a setting, speak again: the last twelve are kept until you leave the page.

Where it runs

Works in a current Chrome, Edge, Firefox or Safari, on Windows, Mac, Linux and Chromebook computers, Android phones, iPhones and iPads. Nothing to install, no account.

The first narration downloads the voice model once: about 93 MB on a processor, or 327 MB with a graphics card (WebGPU, in current Chrome and Edge), which is several times faster.

How to use it

4 simple steps.

  1. 01

    Type or paste your text

    Anything from a line to a few pages. A blank line makes a paragraph pause; [pause 2s] makes a longer one.

  2. 02

    Pick a voice

    All 28 English Kokoro voices, American and British, with Kokoro’s own grades. Play any sample first, or blend two voices.

  3. 03

    Speak

    The voice runs on your device and plays as it’s made. The first time, the model downloads once; after that it starts straight away, even offline.

  4. 04

    Download

    Each take keeps its waveform and settings: save it as WAV (24 kHz, uncompressed) or MP3, or compare it with the next take.

What Kokoro is

Kokoro-82M is an open text-to-speech model released by its author, hexgrad, on Hugging Face. It is small for its quality: 82 million parameters, built on the StyleTTS 2 and ISTFTNet architectures, with Apache 2.0 weights. Version 1.0 (27 January 2025) has 54 voices in 8 languages, trained on a few hundred hours of audio; the author puts the cost of training both releases at about 1,000 hours on A100 GPUs, around $1,000. It was trained on permissive and non-copyrighted audio only. It speaks at 24 kHz.1

Small means it runs almost anywhere: on a server, on a laptop’s processor, and here, in a browser tab through Transformers.js and ONNX Runtime. audiobook.tools is not affiliated with Kokoro or its author; we use the model under its licence.

The 28 English voices

Kokoro’s voice list grades each voice on the quality of its reference audio (target) and how much of it the model saw in training; the overall grade combines both.2 Higher grades hold up better over long passages. Grades are estimates: play the samples above, since voices sound better or worse to different people.

VoiceAccentOverallTargetTrained on
Heart af_heartAmerican femaleA–not given
Bella af_bellaAmerican femaleA-A10–100 h
Nicole af_nicoleAmerican femaleB-B10–100 h
Emma bf_emmaBritish femaleB-B10–100 h
Aoede af_aoedeAmerican femaleC+B1–10 h
Kore af_koreAmerican femaleC+B1–10 h
Sarah af_sarahAmerican femaleC+B1–10 h
Michael am_michaelAmerican maleC+B1–10 h
Fenrir am_fenrirAmerican maleC+B1–10 h
Puck am_puckAmerican maleC+B1–10 h
Alloy af_alloyAmerican femaleCB10–100 min
Nova af_novaAmerican femaleCB10–100 min
Isabella bf_isabellaBritish femaleCB10–100 min
George bm_georgeBritish maleCB10–100 min
Fable bm_fableBritish maleCB10–100 min
Sky af_skyAmerican femaleC-B1–10 min
Lewis bm_lewisBritish maleD+C1–10 h
Jessica af_jessicaAmerican femaleDC10–100 min
River af_riverAmerican femaleDC10–100 min
Echo am_echoAmerican maleDC10–100 min
Eric am_ericAmerican maleDC10–100 min
Liam am_liamAmerican maleDC10–100 min
Onyx am_onyxAmerican maleDC10–100 min
Alice bf_aliceBritish femaleDC10–100 min
Lily bf_lilyBritish femaleDC10–100 min
Daniel bm_danielBritish maleDC10–100 min
Santa am_santaAmerican maleD-C1–10 min
Adam am_adamAmerican maleF+D1–10 h

The other 26 voices speak Japanese (5), Mandarin Chinese (8), Spanish (3), French (1), Hindi (4), Italian (2) and Brazilian Portuguese (3). Kokoro’s own notes say support for them “may be absent or thin due to weak G2P and/or lack of training data”.2

Getting the most from it

Length

Kokoro reads best in pieces of about 100 to 200 phonemes: very short lines (a word or two) can sound weak, and very long ones rush.2 This page cuts text at sentences, joins short ones, and splits long ones at commas, so a paragraph of any length lands in that range.

Pauses and rhythm

  • Punctuation is the main control: a comma is a short breath, a full stop a longer one; question marks lift the end; an ellipsis trails off.
  • A blank line is a paragraph pause (0.6 s, adjustable). [pause 2s], [pause 500ms] or <break time="2s"/> add silence of that length, up to 10 s.
  • Speed runs from 0.5× to 2×. Kokoro changes the pace of the speech itself, not the pitch, so slower stays natural.

Numbers, dates and symbols

Before the voice sees your text, numbers, dates, times, money, percentages and common abbreviations are written out the way a narrator says them: “3 March 2026” becomes “the third of March, twenty twenty-six”, “9:30 am” becomes “nine thirty a.m.” (said as letters), “Dr. Hale” becomes “Doctor Hale”, “St. Ives” becomes “Saint Ives”, “$1,250” becomes “one thousand two hundred and fifty dollars”. Try the Numbers example above, then open the take’s phonemes to see what was said.

Pronunciation

Kokoro hears phonemes, not letters. Our phonemizer looks words up in misaki’s dictionaries (Kokoro’s own: about 184,000 American and 197,000 British entries) and works out the rest by rule. When a name comes out wrong, give it its phonemes with [word](/phonemes/). The alphabet is misaki’s, mostly IPA with a few capital letters for diphthongs:3

SymbolSoundSymbolSound
ˈ ˌmain and secondary stress, before the vowelA“ay” in hey (eɪ)
ə“a” in aboutI“igh” in high (aɪ)
i / ɪsee / sitO (US) Q (UK)“oh” (oʊ / əʊ)
u / ʊflu / woodW“ow” in how (aʊ)
ʌ / ɑ / ɔsun / spa / allY“oy” in soy (ɔɪ)
ɛ / ɜbed / herʃ ʒ“sh”, “s” in Asia
æ (US) a (UK)“a” in ashθ ðthin, than
ɒ (UK)“o” in onʤ ʧjump, chump
ᵊa muted schwa, as in pixelŋ ɹ jsung, red, yes
ː (UK)a long vowelɾ (US)the “tt” in butter

Blends

Each voice is a table of style vectors. Kokoro’s pipeline accepts several voices at once (voice='af_bella,af_sarah') and averages their tables;4 this page does the same with a weight, so 70% Heart and 30% Sarah sounds mostly like Heart with some of Sarah’s colour. Blend voices of one accent: each accent has its own pronunciations.

Where it runs

Your deviceModel (downloaded once)Speed
Graphics card (WebGPU: Chrome and Edge on most computers)full precision, about 327 MBusually several times faster than real time
Processor (WebAssembly: every current browser, phones included)8-bit, about 93 MBon a laptop, about 2–3 seconds of work per second of speech

Each take shows how long it took and on which. The voice tables are about 0.5 MB each, fetched the first time a voice speaks; the pronunciation dictionary (1.4 MB) comes from this site.

Running Kokoro yourself

The same model runs on your own machine. We ran each route below on Linux in October 2026, on a processor alone; none needs a graphics card.

Python (the reference)

Install
# optional, for a computer without an NVIDIA card: the CPU build of PyTorch (much smaller)
pip install torch --index-url https://download.pytorch.org/whl/cpu
pip install "kokoro>=0.9.4" soundfile
# Linux: also the eSpeak NG fallback for words misaki doesn't know
sudo apt-get install espeak-ng
Python
from kokoro import KPipeline
import soundfile as sf

pipeline = KPipeline(lang_code='a')  # 'a' American English, 'b' British
for i, (graphemes, phonemes, audio) in enumerate(pipeline("Hello from Kokoro.", voice='af_heart', speed=1)):
    sf.write(f'{i}.wav', audio, 24000)

The kokoro package needs Python 3.10, 3.11 or 3.12: on Python 3.13, pip finds only old versions and fails with “No matching distribution found”. A plain pip install brings PyTorch with NVIDIA’s CUDA libraries, 5.9 GB in our test; with the CPU build first it was 1.5 GB. The first run also downloads a small spaCy English model and the voice. On Windows, install eSpeak NG from its .msi; on Apple silicon, run with PYTORCH_ENABLE_MPS_FALLBACK=1 to use the GPU.4

JavaScript (Node or a browser)

Install
npm i kokoro-js
JavaScript
import { KokoroTTS } from "kokoro-js";

const tts = await KokoroTTS.from_pretrained("onnx-community/Kokoro-82M-v1.0-ONNX", {
  dtype: "q8",    // "fp32" is best on WebGPU
  device: "cpu",  // "wasm" or "webgpu" in a browser
});
const audio = await tts.generate("Hello from Kokoro.", { voice: "af_heart" });
audio.save("hello.wav");

kokoro-js (Apache 2.0) comes with the same 28 English voices. It turns text into phonemes with eSpeak NG compiled to WebAssembly, through the phonemizer package; eSpeak NG itself is GPL-3.0, which matters if you ship it inside a product.5 This page uses our own phonemizer on misaki’s dictionaries instead.

A local server with an OpenAI-style API

Docker
docker run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu:latest
Request
curl http://localhost:8880/v1/audio/speech \
  -H "Content-Type: application/json" \
  -d '{"model": "kokoro", "input": "Hello from Kokoro.", "voice": "af_heart", "response_format": "mp3"}' \
  -o hello.mp3

Kokoro-FastAPI (Apache 2.0, a community project) serves Kokoro at /v1/audio/speech in the same shape as OpenAI’s speech API, so tools that speak to OpenAI can use it, with a web page at http://localhost:8880/web. The CPU image is about 5 GB; a GPU image exists for NVIDIA cards.6 There is also kokoro-onnx (MIT) for Python without PyTorch.

Kokoro and other open voices

ModelLicenceRunsVoice cloning
Kokoro-82MApache 2.0, commercial use allowedon your device, browser includedno (blends only)
PiperMIT for the original; GPL-3.0 since development moved to piper1-gplon your device, very fast on small computersno
XTTS-v2 (Coqui)Coqui Public Model License: non-commercial use of the model and its output onlyon your device, a GPU helpsyes, from a 6-second clip
Chatterbox (Resemble AI)MITon your device, a GPU helpsyes
edge-ttsLGPL-3.0 (the client)sends text to Microsoft Edge’s online speech serviceno

Licences checked on each project’s own repository and model card, October 2026.7 For selling an audiobook, the licence of the model and of its output both matter.

Sources

  1. hexgrad/Kokoro-82M, model card (Hugging Face)
  2. Kokoro-82M VOICES.md, voices and grades
  3. misaki EN_PHONES.md, the English phoneme set
  4. hexgrad/kokoro, README and pipeline.py (voice averaging)
  5. kokoro-js README; phonemizer on npm (“Simple text to phones converter using eSpeak NG”)
  6. remsky/Kokoro-FastAPI README
  7. piper1-gpl; coqui/XTTS-v2 and its LICENSE.txt; resemble-ai/chatterbox; rany2/edge-tts

FAQ

Questions, answered.

Is Kokoro TTS free?

Yes. Kokoro-82M is open-weight under the Apache 2.0 licence, and this page runs it in your browser at no cost, with no account, no character limit per month and no watermark. The only download is the model itself, from Hugging Face, once.

Can I use Kokoro voices commercially?

Kokoro’s weights are Apache 2.0, which allows commercial use, including selling what you make with it. Keep the licence notice if you redistribute the model. You still need the rights to the text, and audiobook stores have their own rules on AI narration: see our AI audiobooks guide.

Is my text uploaded?

No. The text is turned into phonemes and then audio by a Web Worker in this tab. Nothing you type is sent anywhere: the model and the voice tables are downloaded to you, never the other way round.

Does Kokoro support voice cloning?

No. Kokoro’s voices are fixed style tables, and its author released the decoder only, without the encoder that would turn a recording into a new voice. What you can do is blend voices: this page averages two voices’ tables by the weight you choose, as Kokoro’s own pipeline does for a list of voices.

Does Kokoro support SSML, emotions or laughter?

No. Kokoro reads plain text: punctuation shapes its rhythm (commas, full stops, question and exclamation marks, ellipses), but there are no emotion tags or SSML. This page adds pauses itself: [pause 1.5s], [pause 500ms] or SSML’s <break time="2s"/> insert silence of that length, up to 10 seconds.

Which languages does Kokoro speak?

The model has 54 voices in 8 languages: American and British English, Japanese, Mandarin Chinese, Spanish, French, Hindi, Italian and Brazilian Portuguese. This page offers the 28 English voices, the best-trained ones: other languages need their own phonemizers, and the usual one (eSpeak NG) is GPL-licensed, which we don’t ship.

How do I fix how a word is said?

Write it as [word](/phonemes/), Kokoro’s own override syntax, for example [Saoirse](/sˈɜɹʃə/). The “Fix a pronunciation” tab looks up how a word is said now, lets you edit the phonemes with symbol keys, plays it, and puts it into your text everywhere the word appears.

Does it work offline?

After the first use, yes: your browser keeps the model and the voices you’ve used, so this page speaks without a connection. On a phone, a laptop or a desktop, any current browser works; a graphics card (WebGPU in Chrome and Edge) makes it several times faster.

How is Kokoro different from ElevenLabs?

ElevenLabs is a paid cloud service: your text goes to its servers, and it offers voice cloning and many languages. Kokoro is a small open model that runs on your own device, free, with fixed voices and English as its strongest language. For narration that needs no cloning, Kokoro is often all you need.

Can I make a whole audiobook with it?

For a few pages, yes. For a book, use text to audiobook, EPUB to audiobook or PDF to audiobook: the same voices, with chapters, saving as it goes so a closed tab resumes, and an M4B with chapter marks and a cover.

Keep going