Word-level alignment pass #2

Closed
opened 2026-09-01 20:37:56 +00:00 by Mark · 1 comment
Owner

WhisperX's align.py produces per-word timestamps with char-level precision. Currently the output JSON has segment-level timestamps only.

What needs building:

  • --align flag triggers the second WhisperX pass (load alignment model for the detected language, then map each word's timestamp)
  • Output schema gains words: [{word, start, end, score}] per segment
  • Default: align ON for short files (<30 min), OFF for long files (alignment model is ~300MB and adds ~30s/30min of audio)

Why it matters: quotes-with-timestamps, karaoke-style captions, precise clip extraction, downstream tooling that needs per-word access.

WhisperX's `align.py` produces per-word timestamps with char-level precision. Currently the output JSON has segment-level timestamps only. **What needs building:** - `--align` flag triggers the second WhisperX pass (load alignment model for the detected language, then map each word's timestamp) - Output schema gains `words: [{word, start, end, score}]` per segment - Default: align ON for short files (<30 min), OFF for long files (alignment model is ~300MB and adds ~30s/30min of audio) **Why it matters:** quotes-with-timestamps, karaoke-style captions, precise clip extraction, downstream tooling that needs per-word access.
Author
Owner

kilo-gsd launcher attempt (t_94c9d155) for Word-level alignment pass was blocked by kilo-gsd.py preflight gate. The worktree had 50 ruff errors at spawn time (now down to 4, all in src/whisper_transcribe/feed.py from in-progress issue #13). kilo-gsd refuses to dispatch on a repo where ruff check . is non-zero. The auto-opened lint-cleanup tracking issue failed to land (HTTP 422 — kilo-gsd passed label names as strings where Forgejo requires integer label IDs). Resolution: ruff check --fix the 4 remaining errors (noqa cleanup + one TimeoutError alias) and commit, OR open a Fix the lint on whisper-transcribe issue with proper integer label IDs so the next kilo-gsd pass routes to it. Card t_94c9d155 blocked kind=capability until then.

kilo-gsd launcher attempt (t_94c9d155) for `Word-level alignment pass` was blocked by kilo-gsd.py preflight gate. The worktree had 50 ruff errors at spawn time (now down to 4, all in `src/whisper_transcribe/feed.py` from in-progress issue #13). kilo-gsd refuses to dispatch on a repo where `ruff check .` is non-zero. The auto-opened lint-cleanup tracking issue failed to land (HTTP 422 — kilo-gsd passed label names as strings where Forgejo requires integer label IDs). Resolution: `ruff check --fix` the 4 remaining errors (noqa cleanup + one TimeoutError alias) and commit, OR open a `Fix the lint on whisper-transcribe` issue with proper integer label IDs so the next kilo-gsd pass routes to it. Card t_94c9d155 blocked kind=capability until then.
Mark closed this issue 2026-09-06 05:57:17 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Mark/whisper-transcribe#2
No description provided.