# Call corpus transcripts

Machine transcription of the complete call archive, produced 2026-08-25.

| | |
|---|---|
| calls | 5,997 |
| audio | 1,712.6 h |
| segments | 1,263,339 |
| model | parakeet-unified-en-0.6b, fine-tuned on 540 of these calls |
| compute | 3.8 h on one RTX 6000 Ada |
| failures | 0 |

## Files

**`stellar_transcripts.csv`** — one row per speech segment. Use this one for
anything that needs to locate *where* something was said.

| column | meaning |
|---|---|
| `call_id` | call identifier, joins to your call records |
| `tenant` | tenant identifier |
| `year`, `month` | when the call was recorded |
| `segment_idx` | position of the segment within the call, 0-based |
| `start_s`, `end_s` | segment boundaries in seconds from the start of the call |
| `duration_s` | segment length in seconds |
| `blank_penalty` | 0.0 = the model transcribed this unaided. >0 = it initially returned nothing and needed a decoding nudge. **Treat >0 rows as low confidence** — see accuracy below. |
| `text` | the transcript, cased and punctuated |

Segments cover speech only. Gaps between `end_s` and the next `start_s` are
silence, hold tone or dead air, which are detected and skipped.

**`stellar_transcripts_by_call.csv`** — one row per call with the whole
transcript stitched together, plus `n_segments` and `n_words`. Convenient for
search, topic analysis or eyeballing a call; use the segment file if you need
timing.

## How accurate is it

Measured against the held-out test split of 30 calls: **28.5% word error rate**.
Roughly one word in three-and-a-half differs from the reference.

Two things worth understanding about that number.

**It is not all model error.** The reference transcripts it was scored against
were themselves written by an AI, and they are imperfect. On *human*-transcribed
telephone speech (Switchboard) the same model family scores 10.8%. The real
accuracy on these calls sits somewhere between those figures; we cannot pin it
down more precisely without someone listening to a sample.

**The `blank_penalty` column is a confidence signal.** 96.5% of segments were
transcribed unaided and those score ~22% WER. The remaining 3.5% needed a
decoding nudge to produce anything at all, and those score ~75% WER. Filtering
to `blank_penalty = 0` gives you a materially cleaner corpus at the cost of 3.5%
of segments.

## What it is good for

Search, analytics, topic and keyword extraction, QA sampling, finding calls worth
listening to, and generating training data for a better model.

## What it is not good for

Anything requiring the transcript to be correct: compliance evidence, quoting a
customer verbatim, dispute resolution, or automated decisions about individuals.
At this error rate, individual sentences are frequently wrong even where the gist
is right. Listen to the audio before relying on any specific utterance.

## Handling

These transcripts contain **customer PII/PHI** — names, dates of birth, addresses,
ZIP codes, insurance details and health information. Handle under the same
controls as the call recordings themselves. They are excluded from version
control by design.
