Repository navigation
word-align 1.0.0
First stable release. Word-accurate subtitle timing from audio + transcript, or from audio alone.
Two modes, both GPU-verified end-to-end
- Reference mode — the production-derived waterfall: Vosk → WhisperX/wav2vec2 → MFA gap-filling → interpolation → segmenter.
- Ensemble mode — no transcript needed: WhisperX + Qwen3-ASR + Vosk vote on the words, Vosk seeds the timing, and low-agreement words are flagged for review. Qwen runs out-of-process via a subprocess bridge so its dependencies never clash with the WhisperX stack.
Subtitle layout follows the .srt standard
Configurable per-line CPL × line count — --max-cpl 42 (regular video) or 32 (vertical/social), --max-lines, --max-duration-ms, --min-cue-ms.
Review-ready output
- No forced bad breaks (gold → silver split, else leave the line visible for a human).
- Abbreviations stay whole (
St. Michael'sis never split at the period);[music]-style tags never merge into dialogue. - Overlaps resolved to zero without moving a Vosk-anchored timestamp; no sub-frame cues.
Quality
23 logic tests (no GPU/audio needed), several pinned to specific bugs. MIT licensed.