Kokoro TTS local vs API cost: the break-even math for one model
Local Kokoro and a hosted speech lane cost the same at one daily text volume. This page works out that break-even point for Kokoro alone. The inputs: a measured 0.0149 seconds of synthesis per input character, September 2026 hardware reads, and the official power price. The answer lands in characters per day and in minutes of finished audio.
Kokoro is an 82M-parameter open-weight speech model under an Apache 2.0 license. The weights cost nothing and the license costs nothing. So the money question is narrow. With the same weights on both sides, when does the box on your desk beat a metered lane? The answer is arithmetic, and this page works it for this one model. The general formula, the full caps table, and the provider survey live in the parent guide: TTS local vs API: the break-even math.
All amounts below are US dollar amounts, written as bare numerals. Power is quoted in cents per kilowatt-hour. Rates for this platform's speech lanes are never typed by hand. They render from the catalog in the fence further down. Every worked example uses outside anchors only.
The short answer
Three sentences carry the whole page. A million characters of Kokoro costs about 19 cents of power on a 250 W box once the hardware exists. At this platform's lane rate, shown in the fence below, a used RTX 3060 bought at 280 breaks even near 26,000 characters a day. That is about 26 minutes of finished audio. Below that volume, the hosted lane is cheaper. Above it, the card pays for itself inside two years, and the rest is nearly free except power.
Two frames make the answer usable. In characters, 26,000 a day is a daily narration habit or a busy course builder. In minutes, the model card's rule of thumb is 1,000 characters to one minute of audio. So the same break-even point is 26 minutes a day, every day, before a dedicated box wins at that tier. Cheaper hosted rates push the break-even far out. The model author's own market note, quoted below, is the case that matters.
What Kokoro costs on your own hardware
The local side has three cost pieces. One, the hardware. Two, the watts it draws while it works. Three, the price of that power. The weights are free. The model card ships 82M parameters under Apache 2.0 on the StyleTTS 2 design with an ISTFTNet decoder. That decoder is why the weights sit in the hundreds of megabytes.
Hardware, at September 2026 reads. A used RTX 3060 12GB is the floor for easy Kokoro work. It traded near 200 in a February 2026 report from a builder, and near 280 in a used-price tracker read from August 2026. It launched at 329. A used RTX 3090 spread from about 650 to 1,050 across four September 2026 trackers. Sold listings sat near 1,000. It launched at 1,499 in September 2020. Use whatever number your own listings show. The formula does not care which source you trust.
Power draw comes from the maker. NVIDIA's RTX 3060 specification page lists board power at 170 W with a 550 W system supply. The RTX 3090 page lists 350 W with a 750 W supply. Speech draws less than gaming maximums. The worked examples use 250 W at the wall for a 3060-class box and 450 W for a 3090-class box.
Power prices come from the government. The EIA Short-Term Energy Outlook puts the United States home average at 18.2 cents per kilowatt-hour for 2026, up from 17.3 in 2025. Your own bill is the number that matters.
Then the piece nobody prices: speed. The measured basis on the hosted Kokoro lane is about 0.0149 seconds of synthesis per input character. It was taken on an RTX 3060 12GB-class card and re-verified in September 2026. That number turns hardware into daily capacity. Put the three local numbers together. At 250 W and 18.2 cents per kilowatt-hour, a million characters of Kokoro costs about 19 cents of power. That million characters is about seventeen hours of finished audio. The marginal cost of local speech, once the box exists, is close to nothing. The choice is nearly all hardware payback.
What hosted Kokoro costs
Rates for this platform's speech lanes render below from the live catalog. The hosted cost of D characters a day is D x P / 1,000,000. P is the rate per million characters. Read P off the fence, or put any provider's rate into the same expression.
| Model | Context | $/1M in | $/1M out | $/1M cached |
|---|---|---|---|---|
| Qwen | ||||
| qwen3.8-27b | 262K | $0.35 | $2.55 | $0.105 |
| qwen3.6-35b | 131K | $0.11 | $0.8 | $0.044 |
| Minimax | ||||
| minimax-m2.7 | 197K | $0.24 | $0.95 | $0.072 |
| Muse | ||||
| muse-glimmer-30b | 131K | $0.28 | $1.2 | $0.084 |
| Ornith | ||||
| ornith-1.5-35b | 100K | $0.35 | $2.55 | $0.105 |
| ornith-1.5-9b | 100K | $0.1 | $0.3 | $0.03 |
| Glm | ||||
| glm-5.3-flash | 1049K | $0.11 | $0.35 | $0.033 |
| Deepseek | ||||
| deepseek-v4-flash-0731 | 1311K | $0.15 | $0.42 | $0.045 |
| Gemma | ||||
| gemma-4-31b-it | 262K | $0.22 | $0.49 | $0.066 |
| Deepseek | ||||
| deepseek-v4-pro | 1000K | $1.13 | $2.21 | $0.339 |
| deepseek-v4.1-flash | 1000K | $0.19 | $0.71 | $0.06 |
| deepseek-v4.1-flash-1017 | 1049K | $0.16 | $0.65 | $0.003 |
| Glm | ||||
| glm-5.3 | 1000K | $1.32 | $4.25 | $0.4 |
| Flux | ||||
| flux-1-schnell | — | $0.003/image | ||
| flux-pro-1.1 | — | $0.04/image | ||
| Chatterbox | ||||
| chatterbox-tts | — | $25/1M chars | ||
| Kokoro | ||||
| kokoro-tts | — | $15/1M chars | ||
| pocket-tts | — | $16/1M chars | ||
| Audio | ||||
| audio8-tts | — | $8/1M chars | ||
| Hayamimi | ||||
| hayamimi-stt | — | $0.6/audio-hr | ||
| Bge | ||||
| bge-m3 | — | $0.05/1M tokens | ||
| bge-reranker-v2-m3 | — | $1.5/1k searches | ||
| Ocr | ||||
| ocr-print | — | $1/1k pages | ||
| ocr-archival | — | $3/1k pages | ||
| Whisper | ||||
| whisper | — | $0.12/audio-hr | ||
| Iab | ||||
| iab-2x | — | $0.7/1k pages | ||
| iab-3x | — | $0.7/1k pages | ||
| Gliner | ||||
| gliner-extract | — | $0.9/1k searches | ||
| Jev | ||||
| jev-fast | 1K | $0.03 | $0 | — |
| jev-causal | 1K | $0.03 | $0 | — |
| jev-batch | 1K | $0.03 | $0 | — |
| Wemm | ||||
| wemm-embed | — | $0.09/1M tokens | ||
| Molmo | ||||
| molmo2-er | 8K | $1 | $5 | $0.5 |
| Cosmos | ||||
| cosmos-reason2-2b | 4K | $0.1 | $0.4 | $0.05 |
| Sam | ||||
| sam2.1-base | — | $0.02/image | ||
| Da | ||||
| da3-small | — | $0.05/image | ||
| Smolvla | ||||
| smolvla | — | $0.001/call | ||
| Openvla | ||||
| openvla-oft | — | $0.006/call | ||
| Act | ||||
| act | — | $0.001/call | ||
The reference point for cheap hosted Kokoro comes from the model author. The model card carries an April 2025 market note. As of that date, the market rate of Kokoro served over an API was under 1 per million characters, with Replicate and DeepInfra named as the examples. Open-weight speech is the cheap end of hosted. That note is the anchor this page uses for the near-1 rate class.
The costly end is easy to place without quoting a price list. OpenAI's standard speech tier, per its own pricing page read in September 2026, sits more than ten times above the author's Kokoro anchor. ElevenLabs rates, per its pricing page read in September 2026, run several times the OpenAI standard tier. Top hosted speech is where local break-even arrives earliest. It is also where quality still leads; the honest quality statement stays in the parent guide.
Two hosted shapes are not this comparison. A flat monthly plan with a volume cap is a plan against a plan. A rented burst GPU is hardware you do not own, priced by the hour. The parent guide covers both. This page prices hardware you own against a metered lane.
The break-even table for Kokoro
The break-even point is the daily volume D* where both sides cost the same:
D* = [ G / (30 x A) ] / [ P / 1,000,000 - s x E x R / 3,600,000 ]
G is what the hardware cost you. A is the payback window in months, twenty-four by default. s is seconds of synthesis per character, about 0.0149 on a 3060-class card. E is wall draw in watts while it runs. R is the power price in dollars per kilowatt-hour, 0.182 at the 2026 national average. P is the hosted rate per million characters. The full walkthrough and the sensitivity rule live in the parent guide. Every row below regenerates from these six inputs.
| Hardware tier | Daily hardware cost over 24 months | Break-even at the fence rate | Break-even near the author's anchor | In minutes a day at the fence rate |
|---|---|---|---|---|
| Used RTX 3060 12GB at 280 | 0.39 | about 26,000 chars/day | about 480,000 chars/day | about 26 minutes |
| Same card at the February price, 200 | 0.28 | about 19,000 chars/day | about 340,000 chars/day | about 19 minutes |
| Used RTX 3090 at 1,000 | 1.39 | about 95,000 chars/day | about 2,100,000 chars/day | about 95 minutes |
| Same card at the low tracker read, 700 | 0.97 | about 66,000 chars/day | about 1,500,000 chars/day | about 66 minutes |
Read the table with your own volume in mind. The fence-rate column uses the lane rate shown above. The anchor column uses the near-1 class from the model author's April 2025 note. At the anchor class, only very heavy daily volume, eight hours of finished audio a day or more, justifies a dedicated box. The parent guide carries the same rows against two dated outside anchors.
Two variants move the numbers. An always-on box burns idle power around the clock. At a 60 W idle estimate, the 280 tier adds about 0.26 a day, and its fence-rate break-even moves from about 26,000 to about 44,000 characters a day. Let sleeping boxes sleep. A rig you already own for other work gives speech only a slice of its cost. With G at zero the break-even point disappears. The hosted side then wins only on ease.
For scale, one 3060-class card running flat out tops out near 5.8 million characters a day. This platform's hosted Kokoro lane measured 7.0 million a day at concurrency eight in September 2026. Both are ceilings, not promises. One modest card and a hosted lane sit in the same size class, so the choice is cost shape, not capacity.
How much GPU Kokoro actually needs
Far less than the ranking build logs imply. The weights sit in the hundreds of megabytes, so memory is not the limit. A February 2026 build log replaced a paid speech API with a four-3090 rig. Its own tip box says a single used RTX 3060 is more than enough for Kokoro alone. The four GPUs exist to serve language models in the same box. Any 12 GB card is beyond enough. CPU-only works at lower speed. To compare Kokoro with other small local speech models, see Pocket TTS vs Kokoro on CPU.
The same request, two ways
The OpenAI-compatible speech request shape works on both sides. That makes the choice reversible: one request body, two destinations.
Local, the model author's own library path, from the Kokoro repository:
# pip install kokoro soundfile
# plus espeak-ng for out-of-dictionary words
from kokoro import KPipeline
import soundfile as sf
pipeline = KPipeline(lang_code="a") # American English
text = "This line is synthesized on my own machine."
for i, (gs, ps, audio) in enumerate(pipeline(text, voice="af_heart")):
sf.write(f"part{i}.wav", audio, 24000)
That is the official usage: 24 kHz wav out, fixed voice packs, espeak-ng as the fallback for odd words. To give your own box the OpenAI speech shape, the community standard is Kokoro-FastAPI. It is a Docker wrapper that serves the /v1/audio/speech route on port 8880, with CPU and GPU images.
Hosted, the same synthesis through this platform's endpoint. The kokoro-tts lane is one of the speech lanes on this platform as of 2026-10-28:
curl -sS $IRONSTRATUM_BASE_URL/v1/audio/speech \
-H "Authorization: Bearer $IRONSTRATUM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "kokoro-tts", "input": "Same weights, hosted lane.", "voice": "af_heart"}' \
--output speech.mp3
Three contract facts before the first call. The body requires model, input, and voice. The model string is the catalog alias, kokoro-tts, not the display name. Voices are per model. GET /v1/audio/voices with the model query lists every valid id. The response is chunked binary audio with no Content-Length, so keep client read timeouts above the synthesis time. The kokoro-tts input cap is 3,500 characters, enforced with a 400 rejection before synthesis starts and before any billing. The first-byte budget is 55 seconds. A full-cap request is about 52.8 seconds of synthesis at the measured basis, so the budget is honest but not roomy. Longer text is yours to split at sentence boundaries. The chunking math is worked in the long audio guide. Metering is per input character against a prepaid wallet. A key whose balance hits zero is denied at request time. The worst case of a chunking bug is a top-up, not a surprise balance.
Decision rules for Kokoro
| Your situation | The rule |
|---|---|
| Privacy-critical or air-gapped | Local, full stop. No rate comparison beats a data boundary. |
| Steady narration above your break-even point | Local. Compute D* with your street price and your rate; every day past it is payback. |
| Episodic work, a few documents a week | Hosted. A card idling between projects is all fixed cost and no synthesis. |
| You already own a capable GPU | Set G to zero. The break-even point vanishes and the hosted side wins only on convenience. |
| You need voice cloning | Not hosted here. No lane on this platform clones. Cloning is a local build: Pocket TTS clones from about five seconds of audio on your own machine. Or use a vendor that hosts cloning. The voice cloning guide covers what those vendors enforce. |
Local and hosted Kokoro speak with the same open weights. The model class is the same on both sides of the table. Current per-unit rates sit on the pricing page. The TTS lane page lists every speech model on this platform. To run the numbers against a real wallet: sign up, create a key, and put a small balance behind it before you commit a narrator.
Frequently asked questions
Is Kokoro free to run locally?
The weights are. Kokoro ships 82M parameters under an Apache 2.0 license. There is no license fee and no per-character cost in the model itself. You pay for hardware and power only. At the 2026 national average price, power runs about 19 cents per million characters on a 250 W box. That is roughly seventeen hours of finished audio.
When is local Kokoro cheaper than the API?
When your daily volume passes the break-even point in the table above. Take the hardware cost spread over the payback window. Divide it by the gap between the hosted rate and your marginal power cost. On this page's anchors, a used 280 RTX 3060 over 24 months breaks even near 26,000 characters a day at the fence rate. Against the near-1 anchor class from the April 2025 note, it breaks even near 480,000 a day.
How much GPU do I need for Kokoro?
Less than you think. The weights sit in the hundreds of megabytes, so memory is not the limit. The February 2026 build log's own tip box states that a single used RTX 3060 is more than enough for Kokoro alone. Any 12 GB card is beyond enough.
Can Kokoro run on CPU only?
Yes, at lower speed. The library path works without a GPU. The Kokoro-FastAPI wrapper ships a CPU Docker image for exactly that case. The measured 0.0149 seconds per character basis comes from a 3060-class card. A CPU run takes longer per character, so daily capacity shrinks.
Is the hosted lane the same model I would run locally?
The same open-weight family, yes. The lane alias is kokoro-tts. The voice packs are the same fixed packs. Both snippets above ask for the same voice, af_heart. The differences are where it runs, who maintains it, and how you pay: per input character against a prepaid wallet, rather than in hardware and power.
What does a million characters of Kokoro sound like?
About seventeen hours of finished audio, by the model card's rule of thumb that 1,000 characters is about one minute of output. The per-request cap on this lane is 3,500 characters. One request is about three and a half minutes of audio. Long work is a series of splits at sentence boundaries, joined at playback.
Prices and metering units for every lane sit on the pricing page. To run the numbers against a real wallet: sign up, create a key, and put a small balance behind it before you commit a narrator.
Last verified: 2026-10-28