Stu Mason · Folkestone, Kent
One entryMerged PR· crunch.stumason.dev· PHP

PR #38 merged: feat: word end-times + confidence on transcript (roll pack 0.0.16)

additions
+38
deletions
-15
files changed
7

What

Closes the last per-word gap between crunch's transcript and AssemblyAI's, so a downstream editor (edator) can drop the paid ASR call for caption out-times and word-level QA.

Diffed against a real AAI transcript of this pack's mic (en_uk):

AAI word fieldbeforeafter
textword (punctuated/cased)
startt_ms
endt_end_ms
confidenceconfidence (0–1)
speaker/utterances⏭️ N/A (diarization — single-presenter)

How

  • asr-sidecar — emit per-word probability (faster-whisper's w.probability, free with word_timestamps=True).
  • ProcessPack transcribe() / transcribeSysAudio() — map end → t_end_ms (shared clock via the same *TMsForSeconds offset as start) and probability → confidence. Applies to both transcript.words and sys_transcript.words.
  • CrunchAssembler / Segmenter — word shape gains optional t_end_ms?/confidence? (those consumers only read word/t_ms; ProcessPack always emits all four).
  • README — document the richer word shape.
  • Test — assert end-times + confidence survive into transcript and sys_transcript.

Caveat (kept honest for edator)

Whisper's word boundaries run ~350ms off AAI's on this take and turbo isn't verbatim-tight — fine for caption timing, but keep AAI for tight bleeps until A/B'd.

Deploy note

The asr sidecar rebuilds on this deploy (model stays cached on asr_models volume → quick pip reinstall).

Green: Pint ✓ · PHPStan lvl 7 (0) ✓ · 138 tests ✓

🤖 Generated with Claude Code