ElevenLabs vs local TTS cost: the crossover arithmetic
ElevenLabs bills its speech API at 0.04 to 0.08 per 1,000 characters, read from its own price page in October 2026. A used card crosses over against those rates at a volume you can compute. This page runs the math on dated inputs, then adds a third option most reviews skip: hosted open weights near 1 per million.
This is a volume question, and volume questions have answers in math. The pages that rank for it mostly sell something else: a Mac app, an affiliate link, a paste-your-text box that prices API plans only. None of them takes a hardware input. So the local half of the query stays unpriced on the results page. This page prices it.
All amounts are United States dollar amounts, written as bare numerals. Rates for this platform's own speech lane are never typed by hand. They render live from the catalog in the fence further down. Every outside number carries its source and its read date.
The short answer
Three facts carry the decision. Their rates first. The ElevenLabs API bills text to speech at 0.08 per 1,000 characters on its multilingual models, and 0.04 on its flash and turbo models. That is its own price page, read 28 October 2026. Then the local side. A used 280 card, spread over 24 months, costs about 0.39 a day. The power to voice a million characters on it costs about 0.19 at the national price. Then the crossover. Divide the daily hardware cost by the rate gap. The 280 card pays for itself near 4,900 characters a day against the full rate, or near 9,800 against the flash rate.
In minutes, that is a small habit. The model author's rule of thumb, printed on the Kokoro model card, is 1,000 characters to one minute of finished audio. So 4,900 characters a day is about five minutes of narration, every day, before a used card beats the top hosted rate. Below that volume, the API is cheaper. Above it, every day past the crossover is payback.
One more frame makes the ladder real. The break-even volume against the flash rate, on the 280 card, is about 293,000 characters a month. That sits between the monthly quotas of the second and third paid plans on their ladder. People already paying for those quotas are the very people whose spend a used card could replace.
What the search results give you instead
Two demand signals shape this query, and both still held when checked on 28 October 2026.
Search completions pair the two sides. Typing the head query offers "elevenlabs tts api pricing", "elevenlabs vs openai tts", and "how much does elevenlabs cost". The price question rides inside the matchup question.
Competitors keep building for it, and each covers a slice. One February 2026 review, the strongest ranker, walks quality, privacy, and a one-time-cost pitch for its own Mac app. Its tier figures are months stale. It lists a mid plan at less than half the price on today's ladder. A May 2026 post titled around a full month of costs holds no rates, no hardware, and no math at all. It argues that revisions feel cheaper when each run is free, which is true and unpriced. The calculators price API plans only. One was checked again today: twelve vendor tiers, a paste box, zero hardware inputs. Two pages from the earlier roundup are now gone or parked.
What nobody hands you is the division. This page is that division.
What ElevenLabs charges, read today
Their pricing runs on two systems, and mixing them is where most reviews go wrong.
The API system bills in dollars. Per the price page read 28 October 2026, text to speech costs 0.08 per 1,000 characters on the multilingual models. Today that means Eleven v4, Eleven v3, and v2. The flash and turbo models cost 0.04 per 1,000 characters. Today that means v4 Turbo, v3 Conversational, and Flash. The v4 pair is marked new on the page. Their own FAQ states the shape plainly: API usage is billed in dollars, not credits.
The credit system bills in plans. The same page lists the ladder. A free plan carries 10,000 credits a month. Paid plans carry 30,000, then 121,000, then 600,000, then 1.8 million, then 6 million credits a month, with seats on the top two. Their docs price the unit: text to speech costs one credit per character of input text. Annual billing is ten monthly prices, their way of saying two months free. Unused paid credits roll over for up to two months, up to twice the monthly quota. A prepaid balance draws down after the plan credits run out.
Here is the part worth saying twice. Spread any paid plan's monthly quota over its listed monthly price. Each character then costs more than double the dollar-billed full rate. The monthly ladder is priced for the studio tools and the commercial license. If your use is pure API volume, the dollar-billed rates are the ones to compare. The rest of this page uses only those.
The rates move, and that matters. In September 2026 the same API page printed 0.05 and 0.10 per 1,000 characters. Today it prints 0.04 and 0.08. Both bands came down about a fifth in five weeks. Date every rate you read on this market, including the ones here.
One dated change next door: OpenAI's per-character speech models were deprecated on 1 October 2026 and shut down on 6 January 2027, per its own docs read today. The per-character speech market is settling on fewer rate cards. That makes the math, not the brand, the thing worth keeping.
Their models also cap request length, and the caps differ per model. From their docs, read today: Eleven v3 caps at 5,000 characters. Eleven v4 and v2 cap at 10,000. Flash caps at 40,000. Their guidance for longer text is to split it into segments. Concurrency is set by plan. Their docs offer a rule of thumb: a limit of five supports around one hundred live audio streams at once.
What local speech actually costs
Local has three cost pieces: the hardware, the watts it draws, and the price of that power. The weights are free. Kokoro, the small model used here as the local yardstick, is 82 million parameters under an Apache 2.0 license, per its model card. It runs on a modest card, or even a CPU.
Hardware, at dated reads. A used RTX 3060 12GB traded near 200 in a February 2026 builder report. It traded near 280 in an August 2026 used-price tracker read. It launched at 329. A used RTX 3090 spread from about 650 to 1,050 across four September 2026 trackers, with sold listings near 1,000. It launched at 1,499 in 2020. A scan of used listings today sat in the same band. Use whatever number your own listings show. The formula does not care which source you trust.
Power draw comes from the maker. NVIDIA's spec pages list the RTX 3060 at 170 W board power with a 550 W system supply. They list the RTX 3090 at 350 W with 750 W. Speech draws less than gaming maximums. The worked tiers use 250 W at the wall for a 3060-class box and 450 W for a 3090-class box. Both sit below the maker's combined ceilings.
Power price comes from the government. The United States home average is 18.2 cents per kilowatt-hour for 2026, per the EIA Short-Term Energy Outlook read 28 October 2026. Your own bill is the number that matters.
Then the piece nobody prices: speed. The measured basis for Kokoro on a 3060-class card is about 0.0149 seconds of synthesis per input character. That is a platform measurement, re-verified in September 2026. Put the three pieces together. A million characters on the 250 W box costs about 0.19 of power at the national price. A million on the 450 W box costs about 0.34. That million characters is roughly seventeen hours of finished audio. Once the card exists, the marginal cost of local speech is close to nothing. The decision is almost all hardware payback. That is why the crossover formula is mostly a hardware formula.
The crossover formula
| 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 formula reads its hosted-rate variable, P, off any vendor's price page, the fence above included. The full walkthrough, the sensitivity rule, and the rented-burst lane live in the parent guide: TTS local vs API: the break-even math.
crossover D* = [ G / (30 x A) ] / [ P / 1,000,000 - s x E x R / 3,600,000 ]
The named variables:
| Variable | Meaning | Value used here |
|---|---|---|
| P | hosted rate per 1M characters | 40 or 80, the two ElevenLabs bands, dated today |
| G | what the hardware cost you | 280, 200, 1,000, or 700, dated reads |
| A | payback window in months | 24 |
| s | seconds of synthesis per character | 0.0149, the measured Kokoro basis |
| E | wall draw in watts while synthesizing | 250 or 450, from maker board power |
| R | power price per kilowatt-hour, in dollars | 0.182, the 2026 national average |
Two rules fall out of the shape. First, the denominator is a gap. It is the hosted rate per character minus your power cost per character. At ElevenLabs rates, the power term is under half a percent of that gap. The crossover is then close to payback times a million over P. Second, the crossover moves against the rate. Halve the rate and the crossover roughly doubles. That is why cheap hosted open weights, not premium hosted, are what push a card out of reach.
The crossover table
Every cell below regenerates from the six inputs by a small script kept beside this page.
| Hardware tier | Daily cost over 24 months | Crossover at 40 per 1M | Crossover at 80 per 1M | In minutes a day at 80 |
|---|---|---|---|---|
| Used RTX 3060 12GB at 280 | 0.39 | about 9,800 chars/day | about 4,900 chars/day | about 5 minutes |
| Same card at the February price, 200 | 0.28 | about 7,000 chars/day | about 3,500 chars/day | about 3.5 minutes |
| Used RTX 3090 at 1,000 | 1.39 | about 35,000 chars/day | about 17,400 chars/day | about 17 minutes |
| Same card at the low tracker read, 700 | 0.97 | about 24,500 chars/day | about 12,200 chars/day | about 12 minutes |
Read the table against your own month, not just your day. The 280 card at the full rate crosses at about 146,000 characters a month. That is a shade under 2.5 hours of finished audio. At the flash rate it crosses at about 293,000, nearly five hours. The first figure sits just above the second paid plan's monthly quota. The second sits below the third. If you are already on those plans for API volume, the card is in play at your spending level, not at some far-off scale.
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. Its crossover against the full rate then moves from about 4,900 to about 8,200 characters a day. Let sleeping boxes sleep. And a rig you already own for other work gives speech only a slice of its cost. With G at zero, the crossover disappears. Your marginal cost is power alone, about 0.19 per million characters. Hosted then wins only on convenience.
At the crossover volume, the two sides cost the same by construction. A day of their spend at 4,900 characters equals the card's 0.39 daily payback payment. Past that point, the card's marginal cost, under two tenths per million, does the rest.
The third option: hosted open weights
The matchup is not two-sided. The same open weights that run on your card also run behind metered APIs. The model author's own market note, dated April 2025, put hosted Kokoro under 1 per million characters. It names Replicate and DeepInfra as the examples. Against rates that low, no owned card breaks even at any volume a narrator makes. On a used 3060 at 280, the crossover at the near-1 class sits near 26,000 characters a day, about twenty-six minutes of finished audio. That row lives in the parent guide, not in a person's habit.
This platform serves the same model class behind one OpenAI-compatible endpoint. The kokoro-tts lane is one of the speech lanes on this platform as of 28 October 2026. It is metered per input character against a prepaid wallet. Its current rate sits on the pricing page. The measured basis on that lane is the same 0.0149 seconds per character used in the table above.
The first call takes one request body:
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 model class, metered per character.", "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 here. Voices are per model. One catalog call, GET /v1/audio/voices with the model query, lists every valid id. The input cap on this lane is 3,500 characters, enforced with a 400 rejection before synthesis starts and before any billing. The first-byte budget is 55 seconds. Their flash tier allows 40,000 characters a request and ours allows 3,500. Long text is client-side splitting on both: cut at sentence bounds, one request per piece. The chunking math is worked in the long audio guide.
So the honest three-way summary is this. Premium hosted leads on top-end voice quality and cloning breadth. Local wins on marginal cost once volume passes the table. Hosted open weights win everywhere else. They are what make the premium-versus-local question a narrow one about the top of the voice range.
Quality and cloning: the honest remainder
Cost is not the only axis, and the quality gap has a documented shape. A forum thread asked which local models can match ElevenLabs. Its author answered with the whole trade in one post. The best local output was, in the author's words, not even close to what that hosted service gives. The same author called the service very pricey for them. One reply underneath had survived on Piper because the hosted price was too high, then switched to Kokoro. The market position is right there: top quality, top price, and buyers caught between the two ends.
Two structural facts complete it. Kokoro speaks in fixed voice packs, 54 voices across 8 languages per the model card, with no cloning. ElevenLabs clones a voice from a short sample and covers more than 90 languages on its newest model. Their flash class is built for live talk, near 75 milliseconds of model inference per their docs. This platform's lanes buffer the whole request before the first byte. That is a batch-narration shape, not a live-call shape. If your product is a phone agent, their flash tier or a realtime lane is the right tool, and no crossover table changes that. No lane on this platform clones. The open models that clone do it in local builds, and the consent constraints the cloning vendors enforce are covered in the voice cloning guide.
Decision rules
| Your situation | The rule |
|---|---|
| Under about three and a half minutes of finished audio a day | Hosted. Any tier. A card cannot pay back inside two years at that volume. |
| Steady narration above the crossover in the table | Local. Every day past it is payback, and the cost after is power. |
| You already own a capable card | Local, with G at zero. The crossover vanishes. Hosted wins only on convenience. |
| Privacy-critical or air-gapped work | Local, full stop. No rate matchup beats a data boundary. |
| You need one specific cloned voice | The cloning-capable lanes, local or hosted. Fixed voice packs cannot do this job. |
| Live calls, sub-second turnaround | Their flash class or a realtime lane. Whole-request buffering is the wrong shape. |
| Volume API spend on a mid paid plan | Re-run the table with your bill. The card is in play at plan-level spend, not just at scale. |
Whichever side you land on, the model class is the same open-weight family people run under their desks. Current per-unit rates 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.
Frequently asked questions
Is ElevenLabs expensive compared to local TTS?
At small volume, no. At steady volume, the gap compounds. A used 280 card spread over 24 months costs about 0.39 a day. Their full rate spends that in about 4,900 characters. Below that daily volume, their API is the cheaper side. Above it, local power costs about 0.19 per million characters while their rate spends 80 per million.
How many characters per day make local TTS cheaper?
Between about 3,500 and 9,800 a day on a used 3060-class card. The low end compares against the full band at 80. The high end compares against the flash band at 40. On a used 3090 the range is about 12,200 to 35,000. Every row is the daily hardware cost divided by the rate gap. Each one regenerates from the printed inputs.
Did ElevenLabs change its API prices recently?
Yes. The API page printed 0.05 and 0.10 per 1,000 characters at the September 2026 read. It printed 0.04 and 0.08 at the 28 October 2026 read. Both bands came down about a fifth. The page also added the v4 model pair at the same rates. This is why every rate here carries its read date.
Do ElevenLabs plan credits cost the same as API rates?
No, and the gap is built in. Their monthly plans bundle credits, studio tools, and a commercial license. Spread any paid plan's monthly quota over its listed monthly price. Each character then costs more than double the dollar-billed full rate. Pure API volume should be priced against the dollar-billed rates: 0.08 per 1,000 characters full quality, 0.04 flash, read 28 October 2026.
What GPU do I need to beat ElevenLabs on cost?
Less than you think. Kokoro is 82 million parameters, with weights in the hundreds of megabytes. A used 12 GB card is beyond enough, and CPU-only runs at lower speed. The table's low tier, a used 3060 at 200, pays back at about 3,500 characters a day against the full rate. The card you already own pays back at once.
Is the free ElevenLabs tier enough for real work?
Ten minutes a month of finished audio is the honest size of it. The free plan carries 10,000 credits a month. Their docs price text to speech at one credit per character. At the 1,000 characters per minute rule, that is 10 minutes of output. One daily narration habit passes it inside a week.
Can I switch later without rewriting my code?
Mostly yes. The OpenAI-compatible speech shape, one request body with model, input, and voice, works against this platform's endpoint. It also works against the community wrappers that serve open weights from your own box. A client moves between them by changing the base URL and the model string. The difference that bites is the caps: 3,500 characters on this lane, up to 40,000 on their flash tier. Chunking code is portable. The cap constant is per vendor.
Prices and metering units for every lane sit on the pricing page. The general formula, the rented-burst lane, and the vendor survey live in the parent break-even guide. To price your own volume instead of guessing it: sign up, create a key, and put a small balance behind the kokoro lane before your next narration batch.
Last verified: 2026-10-28