IronStratum

TTS voice cloning limits: consent gates, clone counts, and streaming caps

Voice cloning limits are published one vendor at a time, if at all. This page reads each vendor's own docs on one day and lines up what every TTS seller enforces: the consent gate, the sample floor, the clone count, the per-request text cap, and the concurrency cap. Every number carries its read date. The short version: consent checks are the first limit you hit. Clone counts are a plan feature. Streaming caps differ by more than a hundredfold.

All rows were read on 28 October 2026. Vendor limits move with plan changes and product reshapes. Treat each number as a dated reading, not a constant. One vendor reshaped its whole business this year. The market note at the end covers it.

This page owns the cloning and synthesis side. The speech-to-text side, session timers and reconnect loops, is its own guide: STT streaming session limits. The cost side of one speech lane is the Kokoro break-even guide.

A cloning limit used to mean audio length. It now means proof. Every major hosted vendor puts a consent check between you and a working clone, and the checks are getting stricter, not looser.

ElevenLabs runs a voice captcha at clone creation. You read lines aloud. The service checks your live reading against your uploaded sample. Both cloning tiers get this check, instant and professional (voice cloning concept, read 2026-10-28). Fail every attempt at a professional clone and you wait 24 hours before you can retry (verification FAQ).

Google is stricter. Its Chirp 3 Instant Custom Voice needs a recorded consent statement of up to 10 seconds. You must speak a script Google fixes, in the clone language. Your own script is refused. The reference clip is a second recording, also up to 10 seconds, made in the same room. Access itself is gated: the feature is closed to allowlisted projects, and you ask for it through sales (Chirp 3 custom voice docs).

Azure gates professional voices behind an intake form. You also submit a recording of the voice talent consenting to the use of their speech data. Microsoft checks it before training starts (custom voice overview). OpenAI offers custom voices only through an approval process. That process is built on a consent recording and a matching sample (speech guide).

Cartesia's public cloning pages name no consent step. They cover recording quality, mood, and language, with no check mentioned (instant clone guide). This is a statement about those pages, read on the date above. It is not a promise about the service.

The gates track real law, not vendor nerves. Three instruments carry the weight. In February 2024 the FCC ruled that robocall voices made by AI are artificial voices under the TCPA. That made the scam use illegal on the spot (FCC ruling). Tennessee's ELVIS Act has been in force since 1 July 2024. It treats a voice as a protectable right, defined as a sound readily tied to one person, and it bans tools whose main purpose is copying a voice without consent (Public Chapter 588). The EU AI Act's transparency article has applied since 2 August 2026. Realistic synthetic audio must be disclosed, and providers must mark it in machine-readable form (Regulation 2024/1689).

Run the models yourself and every gate disappears. An open model you host has no consent check at all. The legal duty does not disappear with it. It moves to you, and some open speech models carry licenses that forbid commercial use, so read the license before the README.

The cloning constraints table

Vendor and tierSample floorConsent gateCount or rate cap
ElevenLabs instantnone fixed; 30 s has worked, 2 to 3 min adds littlevoice captcha at creationcustom voices by plan: 3 free, 10 starter, 30 creator, 160 pro, 660 scale, 2,200 business
ElevenLabs professionalabout 30 min recommendedvoice captcha; failed checks lock retries for 24 hprofessional slots: 0 free and starter, 1 creator and pro, 3 scale, 10 business, custom enterprise
Cartesia instant10 s to start; 60 s ceiling on current models; 16 MB upload capnone described on the cloning pagespro plan or above
Cartesia pro30 min minimum; training runs up to 3 hnone described on the cloning pagesstartup plan or above
Google Chirp 3 customreference clip up to 10 srecorded consent statement, fixed script, no substitutes; allowlist through sales10 cloning keys per minute per project
Azure professional voicestudio-grade dataset, no fixed floor publishedverified talent consent recording; intake form50 custom endpoints per resource
OpenAI custom voiceno length published; consent recording plus a matching sampleapproval processnot published
This platformnot offered; fixed voice catalogs per modelnot applicablenot applicable

Three readings of the table. First, the sample floors span a factor of about 200. Ten seconds starts a Cartesia or Google clone. Thirty minutes is the professional floor at ElevenLabs and Cartesia. The floor is a vendor's quality choice, not physics. Instant tiers match your clip at request time, so seconds are enough. Professional tiers fine-tune on your dataset, so they want minutes.

Second, clone counts are the quiet axis. ElevenLabs sells 3 custom voices on the free tier and 2,200 on the business tier. A product built around per-user voices inherits the user's plan. The plan can change under you. Count caps belong in the design review, next to the rate caps.

Third, the gates differ in kind, not just strictness. A voice captcha proves a live person matched the sample. A fixed-script tape gives the vendor an artifact it can show later. An intake form puts a named human on the file. None is proof beyond doubt. ElevenLabs says so plainly: their terms put the duty for permitted use on the creator.

Streaming and session caps

Streaming means two things in TTS, and vendors mean different mixes. One is a streaming response. The connection hands you audio bytes while synthesis still runs. The other is a streaming input. You push text in pieces, sentence by sentence, while an agent is still talking. Both shapes have caps, and the caps are where pipelines break.

ProviderStreaming shapeInput cap per requestSession or audio capConcurrency
OpenAIchunk transfer on the speech route; SSE variant on newer models4,096 charactersnone publishedtier tables, no single number
ElevenLabsHTTP stream with full text, or WebSocket with incremental text5,000 to 40,000 characters by modelnone published2 to 25 concurrent requests by plan
Cartesiabytes, SSE, or WebSocket; buffering defaults to 3,000 msnot publishednone publishednot published
Google Cloud TTSbidirectional streaming sessions5,000 bytes totalnone published100 streaming sessions per project
Amazon Pollychunked HTTP stream; separate stream route for generative voices3,000 billed characters, 6,000 totalsynthesis cut at 10 min of audio8 to 80 tps by voice class; 18 to 80 concurrent requests
Azure SpeechSDK and WebSocket streamingSSML 64 KB per turn10 min of audio per request30 tps default, adjustable to 1,000
DeepgramWebSocket TTSnot publishednone published45 default streams, pay-as-you-go
This platformone request per chunk; chunked binary transfer250 to 3,500 characters by lanefirst byte budgeted 45 to 60 s by lanespend bounded by the prepaid wallet

The honest reading of this table: the input caps bite daily. OpenAI takes 4,096 characters. Google takes 5,000 bytes, a different unit, and multibyte locales make it smaller than it looks. Amazon Polly bills 3,000 characters but accepts 6,000 total, so markup does not eat your quota. ElevenLabs scales the cap by model family, from 5,000 to 40,000. Every one of them turns long narration into a chunking problem. None of them sits on the product page.

The second reading: two vendors publish a hard audio ceiling. Polly cuts the synthesis at 10 minutes of audio and discards the rest. Azure caps a request at 10 minutes too. A nine-minute read is one request on both. A twelve-minute read is two requests on both, planned in advance, because the cut is silent.

The third reading: some vendors print their concurrency caps and some print nothing. Polly, Google, Azure, and Deepgram list numbers you can plan against. ElevenLabs lists a per-plan ladder. Cartesia and OpenAI list none. Load testing, not docs, is how you learn your ceiling there.

Where the limits bite

Five failure shapes cover most of the pain.

The plan-gated clone. You validate on a free tier with 3 clone slots, then the product needs 30. The model did not change. The plan did. Read the count column before the quality column whenever clones are per-customer.

The verification lockout. The captcha compares your live reading to your sample. Record the sample and the verification reading in the same room, in the same style. Read each line once and stop. Miss every attempt and you cool down for 24 hours, or you ask support to reset the attempts.

The silent audio cut. A script that runs 11 minutes dies at minute 10 on Polly and Azure, with no error naming the cause. Split before you send. The chunking client in the long audio guide shows the pattern.

The buffered first byte. Streaming routes still buffer. Cartesia's managed buffering waits up to 3,000 ms for enough context before it speaks. Lanes that synthesize a whole request before the first byte can spend tens of seconds silent on long text. Client read timeouts below the generation time kill healthy requests. Set the timeout above the worst case for your text length.

The double-billed retry. A client times out, the link cuts, the client retries. On routes with no replay, and binary audio routes have none, a retry runs the work again and bills again. Keep what you received. Decide, then act. Make retries safe on your side. The wallet guard patterns are in how to avoid API bill shock.

One market note, dated. Resemble AI publishes the Chatterbox models. Its own docs root states that its voice models stay open and free to build on, but are no longer sold as paid products (Resemble docs, read 2026-10-28). The paid voice market lost a vendor this year. The open lane grew. Expect more movement, and re-read the row you rely on before you commit.

Voice cloning and streaming on this platform

This platform does not offer custom voice cloning. No endpoint takes reference audio. There is no check flow, because there is nothing to check against. Each speech model ships a fixed voice catalog. The ids pass through to you exactly as the model defines them. That is the honest posture, stated plainly rather than implied.

Four speech lanes are live as of 2026-10-28: kokoro-tts, pocket-tts, chatterbox-tts, and audio8-tts. All four meter per input character. Each lane carries its own per-request cap, sized to a first-byte budget. The caps: kokoro-tts 3,500 characters, pocket-tts 2,500, chatterbox-tts 400, audio8-tts 250. A request over its cap is refused with a 400 before synthesis starts. Nothing is billed for it.

The streaming contract is one request per chunk. Audio returns by chunked binary transfer, with no length header, so play can start at the first byte. Synthesis is buffered. The first byte can take tens of seconds on long text. Keep client read timeouts above that. A mid-stream fault cuts the connection: delivered bytes stand, and the turn is not billed. A retry re-bills, by design. Treat retries as purchases.

Rates render from the catalog, never typed by hand.

ModelContext$/1M in$/1M out$/1M cached
Qwen
qwen3.8-27b262K$0.35$2.55$0.105
qwen3.6-35b131K$0.11$0.8$0.044
Minimax
minimax-m2.7197K$0.24$0.95$0.072
Muse
muse-glimmer-30b131K$0.28$1.2$0.084
Ornith
ornith-1.5-35b100K$0.35$2.55$0.105
ornith-1.5-9b100K$0.1$0.3$0.03
Glm
glm-5.3-flash1049K$0.11$0.35$0.033
Deepseek
deepseek-v4-flash-07311311K$0.15$0.42$0.045
Gemma
gemma-4-31b-it262K$0.22$0.49$0.066
Deepseek
deepseek-v4-pro1000K$1.13$2.21$0.339
deepseek-v4.1-flash1000K$0.19$0.71$0.06
deepseek-v4.1-flash-10171049K$0.16$0.65$0.003
Glm
glm-5.31000K$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
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-fast1K$0.03$0—
jev-causal1K$0.03$0—
jev-batch1K$0.03$0—
Wemm
wemm-embed—$0.09/1M tokens
Molmo
molmo2-er8K$1$5$0.5
Cosmos
cosmos-reason2-2b4K$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

Metering draws down a prepaid wallet. A key with an empty wallet is refused at request time. That is the natural spending cap here. The worst case of a client bug is the balance loaded.

A first call, voices first:

# every valid voice id for a lane (the model parameter is required)
curl -sS "$IRONSTRATUM_BASE_URL/v1/audio/voices?model=kokoro-tts" \
  -H "Authorization: Bearer $IRONSTRATUM_API_KEY"

# one synthesis, consumed while it arrives (chunked transfer, no length header)
curl -sS "$IRONSTRATUM_BASE_URL/v1/audio/speech" \
  -H "Authorization: Bearer $IRONSTRATUM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"kokoro-tts","input":"The consent gate is a design input.","voice":"af_heart"}' \
  --no-buffer --output speech.mp3

Contract facts that save an afternoon. The body takes model, input, and voice. Its voice id comes from the voices call above, and ids are per model. The response forwards the audio format the lane produces, mp3 by default. Long text is the client's to split at sentence boundaries. The CPU-side comparison between the two fixed-catalog lanes is the Pocket TTS vs Kokoro guide. The hosted-versus-local cost math is the TTS break-even guide.

Decision rules

Your situationThe rule
Cloning a voice you do not ownUse a lane with a recorded consent gate. Keep the consent file. The duty is yours either way.
Clones scale with your customersBuy by the count column, not the quality column. Counts move with plans.
One brand voice, production qualityTake the professional tier and record 30 minutes or more. Budget the training wait.
Live agent, sub-second responsesUse a WebSocket input shape, and load test: the vendors without published concurrency publish nothing.
Narration over 4,000 charactersEvery row in the table makes you a chunker. Split at sentence boundaries and join at playback.
You want no consent gate at allHost an open model. The gate is gone; the law and the license are not.
Fixed voices are enoughClone nothing. A fixed catalog lane meters per character and has no verification step to fail.

Rates for every lane sit on the pricing page. To run the first call above on a real key, sign up. Create the key, load a small wallet, and point the snippet at a sentence of your own.

Frequently asked questions

How many seconds of audio does voice cloning need?

Between 10 seconds and 30 minutes. The number is a tier decision. Cartesia starts an instant clone from 10 seconds. It caps the useful sample at 60 on current models. Google's Chirp 3 custom voice takes a reference clip up to 10 seconds. ElevenLabs instant clones have no fixed floor. Their docs cite good clones from 30 seconds, and little gain past 2 to 3 minutes. The professional tiers at ElevenLabs and Cartesia ask for about 30 minutes of clean audio. Past those floors, more seconds buy stability, not identity.

Is AI voice cloning illegal?

Cloning itself, no. Cloning without consent, in the wrong channel, yes. In February 2024 the FCC ruled that AI robocall voices count as artificial under the TCPA. Since July 2024, the ELVIS Act makes a copied voice actionable in Tennessee. It reaches tools built mainly to copy voices. Since August 2026, the EU AI Act requires disclosure of realistic synthetic audio. Consent plus disclosure keeps paid cloning legal in every regime above.

How many voice clones can an account hold?

It is a plan feature, not a technical constant. ElevenLabs allows 3 custom voices on its free tier and 2,200 on business, with professional clone slots at 0, 1, 3, or 10 depending on the plan. Google allows 10 cloning keys per minute per project. Azure allows 50 custom endpoints per speech resource. OpenAI publishes no count. If your product creates one clone per customer, the count cap is your growth ceiling.

What is the character limit for one text-to-speech request?

Anywhere from 250 to 40,000. This platform caps each lane by its first-byte budget: 250, 400, 2,500, or 3,500 characters. OpenAI takes 4,096. Google takes 5,000 bytes. Polly bills 3,000 characters and accepts 6,000 total. ElevenLabs sets the cap by model, 5,000 to 40,000. Long narration is a chunking problem on every row of that list, and the chunking client pattern is in the long audio guide.

Can text to speech stream while it synthesizes?

Yes, in two senses. Know which one you need. A streaming response hands you bytes as the audio generates. OpenAI, ElevenLabs, Cartesia, and this platform all do that. A streaming input lets you push text in pieces while an agent talks. That is the WebSocket shape at ElevenLabs, Cartesia, and Deepgram. Buffering waits of a few seconds set the pace there. A plain HTTP lane still returns one file, complete, after full synthesis.

Does this platform offer voice cloning?

No. The speech lanes here use fixed voice catalogs per model, listed through the voices endpoint. There is no reference-audio route. If your product needs clones, the table above tells you what each vendor enforces. If fixed voices are enough, a per-character lane with a prepaid wallet is the simplest shape on the market.

Why did my cloned voice fail verification?

Usually a mismatch between the sample and the live reading. Record both in the same room, in the same style. Read each check line exactly once. At ElevenLabs, using up your attempts locks retries for 24 hours. Support can reset the attempts if all looks right. Training can also fail on its own. Short or noisy datasets come back weak or get rejected. Re-recording beats re-uploading.


Rates and metering units for every lane sit on the pricing page. To run one sentence on a real key, sign up. Create the key, load a small wallet, then run the snippet before you commit a narrator.

Last verified: 2026-10-28