Text in. Audio out. Twelve dollars per million characters.
A hosted speech API on open-weight models. Text-to-speech is the first product, not the only one: this page sells what runs today, and the same gateway carries whatever comes next. No subscription, no minimum, and the text you send is discarded when the request completes.
Get a free key 250,000 characters free, no card. We reply by email.
Hear it
Five of the 54 voices, from Kokoro v1.0, the model the API runs. Each sample is one sentence of the kind of text that voice would actually read, at the 24 kHz mono the API returns.
-
Audiobook, American English
af_heart -
E-learning, American English, male
am_michael -
Podcast, British English
bf_emma -
Hindi, female
hf_alpha -
Hindi, male
hm_omega
Not every voice in the list is as strong as these five, and voice quality varies with how much training audio each one had. That is what the free tier is for: run your own text through the voice you want before you buy. All 54 voices, one line each, or the full list in the docs.
What it costs
| Generation | Per million characters | Per hour of audio | Per minute |
|---|---|---|---|
| $12.00 | ~$0.60 | ~$0.010 |
The first 250,000 characters are free - four to six hours of audio, enough to know whether the quality is good enough for your product.
An hour of speech is about 50,000 characters at a typical reading pace. Fast-reading voices run to 60,000, slow ones to 43,000, so an hour costs between $0.52 and $0.71. A customer generating an hour a day pays about $18 a month.
Where $12 sits
Every figure below is from the vendor's own pricing page, read 6 to 9 October 2026.
| Vendor | Per million characters | Note |
|---|---|---|
| Google Standard | $4 | covers Hindi and Tamil |
| Speechify | ~$6.40 | derived from their $499 tier |
| Unreal Speech | $8 to $10 | serves the same open-weight model we do |
| Everlit | $8 Latin, $12 Indic | priced by script |
| Modelworks | $12 | |
| Amazon Polly Neural | $16 | Duolingo's stack runs on this tier |
| Google WaveNet / Neural2 | $16 |
Above the commodity tiers, below the managed ones - parity with Everlit on Indic, a quarter below Polly Neural and Google's mid tiers, and a fraction of the per-character cost of the managed voice platforms. The table is the market as published, so you can place us against whatever you use today.
What you are buying at $12 is not a lower per-character rate. It is the four things below, and they are the reason this is a different product rather than a cheaper one.
The four reasons
Your content is not retained. Text you send and audio you get back are discarded when the request completes. Request metadata only, 30 days. The cheapest endpoints keep content and several say so in their own terms; if your content is regulated, customer-owned, or simply not yours to leave lying around, that difference is the entire purchase.
A published DPA that incorporates the EU Standard Contractual Clauses, Module Two. Read it before you sign up, not after procurement asks: the security annex and the transfer assessment are part of it. India is not an EU adequacy country, so an EU buyer cannot use a cheap endpoint without one at all.
A sub-processor list short enough to read in a minute. No analytics, no error-tracking SaaS, no support platform, no LLM provider. Every row says what that party can actually see.
Somebody answers. A named operator who replies to email and ships the fix.
Everything else is commodity: same weights, same output, priced by the character. These four are what the price is for.
What it is built for
Batch work where quality and cost matter more than milliseconds. Audiobooks, e-learning, podcast repurposing, media archives, audio-only dubbing - anything queue-shaped, where a voice has to sound right and a million characters has to cost twelve dollars.
Text that is not yours to leave lying around. Customer documents, regulated content, unpublished manuscripts. The request is discarded when it completes, so there is nothing to leak later.
Work that has to be checkable. A published sub-processor list, a DPA you can read before signing, and a status page that carries the latency actually measured on the running deployment.
Start with the free tier
Email support@modelworks.dev with what you are building and roughly how many characters a month you expect. You get a key and 250,000 free characters; no card.
The API is OpenAI-compatible, so an existing client works with two fields changed:
curl https://api.modelworks.dev/v1/audio/speech \
-H "Authorization: Bearer $MODELWORKS_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"kokoro","voice":"af_sarah","input":"Text to read aloud."}' \
--output speech.mp3
54 voices, including four Hindi voices (two female, two male). The full list is in the docs.