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 field | before | after |
|---|---|---|
text | ✅ word (punctuated/cased) | ✅ |
start | ✅ t_ms | ✅ |
end | ❌ | ✅ t_end_ms |
confidence | ❌ | ✅ confidence (0–1) |
speaker/utterances | ❌ | ⏭️ N/A (diarization — single-presenter) |
How
- asr-sidecar — emit per-word
probability(faster-whisper'sw.probability, free withword_timestamps=True). - ProcessPack
transcribe()/transcribeSysAudio()— mapend → t_end_ms(shared clock via the same*TMsForSecondsoffset as start) andprobability → confidence. Applies to bothtranscript.wordsandsys_transcript.words. - CrunchAssembler / Segmenter — word shape gains optional
t_end_ms?/confidence?(those consumers only readword/t_ms; ProcessPack always emits all four). - README — document the richer word shape.
- Test — assert end-times + confidence survive into
transcriptandsys_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