AI Platform & MLOps

Turning an Hour of Speech Into Text You Can Search

Managed speech-to-text is not interesting because it writes down words. It is interesting because of everything it attaches to each word.

Technical poster: managed ASR pipeline from audio in object storage to timestamped JSON, with batch vs streaming, diarization, custom vocabulary, and a word-error-rate warning panel

Core Concept

Managed ASR (Automatic Speech Recognition) — AWS Transcribe is the reference example — takes audio you place in object storage (S3) and returns JSON, not a paragraph. Every single token in that JSON carries three things: a start time, an end time, and a confidence score.

Those timestamps are the whole product. Plain text lets you search a wall of words; timestamps let you jump to the moment a word was said. That is the difference between a transcript you read and a recording you can navigate.

// what actually comes back, per token { "type": "pronunciation", "content": "escrow", "start_time": "412.58", "end_time": "413.04", "confidence": "0.9971" } <- high, and possibly wrong

Key Components

Mode

Batch

You hand over a whole file and the job runs asynchronously. You come back later for a finished, stable transcript. Best when the audio already exists.

Mode

Streaming

Returns PARTIAL results that get REVISED as more audio arrives. This is exactly why live captions visibly rewrite themselves mid-sentence — nothing is broken, the hypothesis just improved.

Feature

Diarization

Labels which speaker said which segment. Turns one undifferentiated stream into Speaker 1 / Speaker 2 lanes — which is what makes a meeting transcript usable at all.

Feature

Custom Vocabulary

Your product names, drug names, ticker symbols. A general model has never seen them and will confidently mangle them. Plus automatic language identification when you don't know the language up front.

How It Works

  1. Audio lands in object storage (S3) — or opens a socket if you're streaming.
  2. You start a job, declaring the boring-but-decisive options: diarization on/off, a custom vocabulary list, language (or auto-identify).
  3. The model decodes audio into tokens, each stamped with start time, end time and confidence.
  4. Batch: the job completes and you fetch stable JSON. Streaming: partials arrive immediately and are overwritten as context accumulates.
  5. You index the tokens. Now a search hit is a timecode you can seek to, not just a line you can read.

Falsification — Where This Breaks

The Test That Actually Decides It

Run it on your worst recording, not a clean one. Then count errors on the twenty terms that actually matter to you — the names, SKUs, tickers, drugs. That per-term count is your real accuracy. The aggregate WER is a number about someone else's audio.

Real-World Applications

Checkpoint — answer before you move on

  1. Besides the words themselves, what three things does the transcript attach to every token — and why is one of them what makes the output searchable rather than merely readable? Hint: one of them is the reason you can seek instead of scroll.
  2. Why do live captions visibly rewrite themselves mid-sentence, and what is the trade-off you accept by choosing that mode over the other one? Hint: partials vs. an asynchronous, stable result.
  3. A vendor shows you 5% word error rate on their benchmark. Explain why that figure can be true while the system still gets every mention of your product name wrong — and state the test you would run instead. Hint: uniform distribution is the assumption doing the damage. Also: what does high confidence actually certify?