Skip to content

0.6.0 - Single-pass decode, rescue pass, per-utterance alignment

Choose a tag to compare

@jaycollett jaycollett released this 07 Sep 23:32
· 47 commits to main since this release

The first release to change transcription output. Every change below is backed by measurement across 100 recordings from the archive plus a 6-file reference set; the method, the numbers and the rejected ideas are in docs/QUALITY_PROPOSAL.md and docs/PUNCHLIST.md.

Decode

  • One beam-5 pass with the full temperature fallback ladder replaces the five-pass scheme. Median word count across 99 recordings moved +0.18 percent, with two regressions above 5 percent, and the reference recording now completes in 45 seconds against 138 before.
  • The old winner was chosen by duration-weighted word probability, which is computed by teacher-forcing the model over text it already produced. It rewards loops, cannot see omissions, and on one recording chose a pass 458 words short. It is gone.
  • Three of the five old passes were sampling rather than beam search, because faster-whisper ignores beam size at any temperature above zero. Their beam settings never did anything.

Recovering dropped passages

  • A rescue pass fires when any minute of speech falls below 1.5 words per second. It re-decodes once with previous-text conditioning off and the ladder starting above the rung that already failed, and is selected only if it retains the primary's words. Measured firing rate is about 12 percent of recordings, selected on 8 percent.
  • This targets a specific failure: passages read aloud, scripture and quotations, were being dropped confidently, so no decode threshold tripped and no fallback rung was ever attempted. Two confirmed cases now recover, including Matthew 6:19-21 and Matthew 12:15-16.

Alignment

  • Per-utterance alignment replaces whole-file alignment. It applied on 100 percent of recordings at the first attempt. The old path failed both attempts on a 23 minute recording and wasted five minutes doing it.
  • Audio is converted to 16 kHz mono, words are assigned by sequence matching with monotonic enforcement, and Whisper word timestamps are the fallback where the aligner does not reach.

Quality signals

  • A low word-rate window now fires the rescue rather than only counting toward a penalty. No quality signal can quarantine a job any more; quarantine is reserved for output that is unusable on its face. A recording that produced 8292 plausible words was previously black-holed by a gate that retried a deterministic decode three times.
  • Boundary de-duplication is disabled. Across 64 trims it produced roughly 38 clear false positives, including four consecutive dropped segments on the acclamation in 1 Kings 18:39, and no observed true positives. The temporal implementation remains behind a switch.
  • Anomaly counts, flagged segments, speech seconds and rescue outcomes are published as additive fields on both endpoints.

Known and recorded

  • One confirmed omission remains, a passage from Exodus 24, where the rescue recovers the reading but loses more elsewhere so the retention guards correctly refuse it.
  • One recording publishes about 15 percent short of its previous transcript with no signal detecting it.
  • The profile selector is keyed on level, which does not predict fragmentation. Sample rate and bit rate do.

The public API is unchanged. New fields are additive.