Today we published something we have been quiet about for a long time: Spirelight now has its own speech-to-text API. It is live, access is open by request, and you can read about it on the API page. We have been building it for two years, and it is trained on nothing but speech data we created ourselves.
I want to explain why a speech data company would do this, because the reasoning is the product.
We watched the same failure for years
Spirelight's day job is producing training data for teams building voice AI. We recruit consented speakers, record to spec, transcribe, and human-validate every batch before it ships. That work gives you an unusual vantage point: you see exactly where speech recognition breaks, because clients come to you precisely when their models are failing.
And they fail in the same place every time. Not on clean audio. Modern speech-to-text is excellent when a single speaker talks clearly into a good microphone. It falls apart on what I have started calling complicated speech: strong accents and dialects, spontaneous conversation full of false starts and repairs, two people talking over each other, street noise and room echo, and the domain vocabulary that gets silently replaced with the nearest common word.
The reason is not a secret. Most models learn from enormous amounts of scraped audio, and scraped audio is biased toward clean, common, well-lit speech. The conditions that break recognizers are exactly the conditions that are rare in a web crawl. You cannot fix that with a bigger crawl. You fix it by recording the missing speech on purpose.
Two years of doing it the slow way
That is the thing we happened to be uniquely equipped to do. We already had the machine: a network of more than 10,000 consented contributors, trained transcribers, and a human validation layer that audits every batch. Two years ago we started pointing that machine at a model of our own.
The loop was simple and slow. Train. Test on the hardest audio we could find. Identify what the model was weak on. Then go record and transcribe exactly that, with the right speakers in the right conditions, and train again. When the weakness was a dialect, we recruited native speakers of that dialect. When it was crosstalk, we recorded real multi-party conversation, not simulated overlap. When it was noise, we captured audio in the environments the noise actually comes from.
Doing it this way costs more and takes longer than scraping. It also means something I have not been able to say about any other model we have worked with: every hour of speech in the training set is an hour we can account for. Recorded by a consented contributor, transcribed by a trained person, checked by a reviewer. No scraped audio, no data of unknown origin, nothing we would hesitate to explain to a client or a regulator.
What the API actually gives you
The interface is deliberately boring. You send audio to one endpoint and get back a structured transcript: word-level timestamps, stable speaker labels, per-segment confidence scores, and punctuation that reads like text instead of a token stream. It is the same standard we hold our dataset deliveries to, returned in clean JSON for every file you send.
The difference is what happens on the hard files. This model was shaped, batch after batch, by the audio our clients could not get transcribed anywhere else. If your recordings involve accents, real conversation, noise, or terminology that matters, that is the audio it was built for.
Two things worth saying plainly. First, your audio is processed to return your transcript and is not added to our training data unless you explicitly agree to that in writing. Second, nothing changes for the teams who train their own models with our data. The API and the data services run on the same operation, and that operation keeps running.
Try it on your hardest files
The API is live now and we are onboarding the first teams. While we do, access is by request: tell us what your audio sounds like and roughly how much of it you have, and we will set you up with credentials and help you run your first files.
Start at the speech-to-text API page, or contact us directly. Send us the recordings other engines gave up on. That is the audio we built this for.
