elevenlabs.providers.sgit.ai / Experiments — twelve labs against one API
Experiments — twelve labs against one API
This site is a report, and a report is worth more when the reader can re-run it. These are the labs the evaluation should have had — one per feature, each with the method written down, each printing a result you can paste back as evidence.
Prose from the video vault at commit 7d1916aca5f3, 7 September 2026. The bench came from the source vault; the other eleven labs were written for this site. When the vault moves ahead, this page is behind — and says so rather than guessing.
Your own full key, in your own browser, bounded only by your plan's monthly quota. That is pattern 0 with a ceiling: the narrow case where it is defensible — the key's owner, testing their own key, on their own device — and not a pattern to publish. No key ships in this page: the field below is empty until you fill it.
ElevenLabs offers no per-key spend limit for text to speech, so nothing here caps what a leaked key could cost you except the account's own quota. Use a key scoped in the dashboard to the endpoints this lab needs, and forget it when you are done. The version of this page with no key box at all is pattern three, and it does not exist yet.
Every lab here is unrun by its authors. written, not run They were written against the vendor's published request and response shapes by a session with no network access to the API and no key verified 4–5 Sep 2026. The one exception is the bench, which a human ran from their own browser on 5 September 2026 — and which is the source of every verified claim on this site. If a lab is broken, the log at the bottom of it will tell you how, and the repository is where that becomes a fix.
The bench — text to speech, with timestamps
The test bench: connect with your own key, list voices and models, generate with character-level timestamps, watch the words light up, build an SRT. The one page on this site that has actually been run.
GET /user/subscription · /voices · /models · POST /text-to-speech/{id}/with-timestamps
Voice explorer
List every voice the key can reach, filter by accent, gender and use case, shortlist candidates, and hear any of them say your own line rather than the vendor's demo sentence.
GET /v1/voices · POST /v1/text-to-speech/{id}
Ask this site
A chat pane that answers from the site's own index, in your browser, with no key and no model — and will read the answer aloud with your own key if you give it one.
none by default · POST /v1/text-to-speech/{id} only if you turn speech on
Model A/B — latency, size and cost on one text
Race eleven_v3, multilingual_v2, flash and turbo over the same text and voice: wall-clock latency, bytes returned, spoken duration and cost per model, with the results as a markdown table.
POST /v1/text-to-speech/{id}/with-timestamps
Voice-settings sweep
Sweep one voice setting at a time — stability, similarity boost, style, speed — with everything else held constant and the seed fixed, then write down what you heard.
POST /v1/text-to-speech/{id}/with-timestamps
Captions studio — from character timings to SRT
Tune the cue rule against real alignment data: break at N characters, on a gap, or after N seconds. Live cue table, karaoke preview, SRT and VTT download. Works with no key if you paste an alignment.
POST /v1/text-to-speech/{id}/with-timestamps · or no call at all
Pronunciation lab — lexicons, and the test nobody has run
Edit a PLS lexicon in the browser, create a versioned dictionary from rules, then generate the same text with and without it. The A/B that turns a hypothesis into a lexicon.
POST /v1/pronunciation-dictionaries/add-from-rules · POST /v1/text-to-speech/{id}/with-timestamps
Concurrency probe — where is the wall?
Fire waves of parallel generations at 1, 2, 4, 8… until something fails, and record the request timeline, the 429s and the highest wave that survived. The one open item on this site that costs money to close.
POST /v1/text-to-speech/{id}
Align and verify — subtitles for old renders, and a QA gate for new ones
Forced alignment of audio you already have to the script it speaks, and Scribe transcription diffed against the expected text — the automatic version of catching an error by watching the video.
POST /v1/forced-alignment · POST /v1/speech-to-text
Sound effects and music
The sound-generation and music endpoints, with a per-second cost meter — and the house rule they were evaluated against: a two-second sting under the title slide, and nothing else.
POST /v1/sound-generation · POST /v1/music
Multi-speaker dialogue
One request, several voices, consistent pacing across the turns — a two-voice cut is one endpoint away from a single-narrator reel.
POST /v1/text-to-dialogue/with-timestamps
Key scope and quota probe
Read-only probes of every endpoint class your key can reach, plus the subscription object — and the field that does not exist anywhere in it: a per-key spend limit.
GET /v1/user/subscription · /v1/user · /v1/voices · /v1/models · /v1/pronunciation-dictionaries · /v1/history · /v1/dubbing
Cost model — no key, no network
Paste a script or a reel.json and get characters, requests, per-model cost and plan fit, with every constant visible. Runs entirely in your browser; makes no network call at all.
none — this page makes no network call
Text handling — normalisation, stitching and seeds
Three A/Bs that decide how a script should be written: does the model normalise numbers reliably, does passing neighbouring scenes as context change the read, and does a fixed seed actually repeat?
POST /v1/text-to-speech/{id}/with-timestamps
How these are built
Every lab shares one runtime, lab.js — about 350 lines, no dependencies, no build step, readable in one sitting. That is deliberate: a site whose argument is watch where your credential goes should let you watch. It does three things and nothing else.
- Keeps your keys in
localStorage, several of them, named, switchable — so a scoped key and a full key can be compared without retyping either. Nothing is sent to this site; there is no server here to send it to. - Calls exactly one host,
api.elevenlabs.io, with your key in thexi-api-keyheader vendor docs 5 Sep 2026, and logs every request it makes at the bottom of the page. A CI check on this repository fails the build if any other network origin appears in the built site verified 7 Sep 2026. - Does the shared arithmetic — characters to cost, alignment to words to cues, results to markdown you can paste back into whatever keeps your evidence.
What to run first
If you have a key and ten minutes, in this order — it closes the four oldest open items on the ledger for about fifteen cents:
- The bench, section 5 — the names test. Nobody has pressed this button since 5 September written, not run. Two minutes, and the site can finally say which names the model gets wrong.
- The pronunciation lab — attach the lexicon and hear whether the aliases fix them written, not run.
- The concurrency probe — find the wall, so the semaphore holds a measurement instead of a guess written, not run.
- The captions studio — tune the cue rule against a real script and tell us what numbers you landed on written, not run.
The cost model needs no key at all and answers the question people usually ask first.
What a lab is not
It is not a product, it is not a proxy, and it is not a pattern to copy into an application you ship. Each of these asks you to put a full account credential into a web page, which is pattern 0 with a ceiling — defensible for the key's owner testing their own key, indefensible for anything with users. The publishable version of these pages has no key box at all, and it is specified rather than built specified, not shipped.