MOSS 独立模型词级对齐 · T8star-Aix
Word-level timestamps for MOSS — without faking the words it can't match
- aligner
- audio
- transcript
- 带词级时间戳的 MOSS_TRANSCRIPT
- 词级时间戳 JSON
- 对齐报告 JSON
MOSS gives you sentence-level timestamps, and for most subtitle work that's genuinely enough. But the moment you want per-word timing - karaoke, word highlighting, jumping a video to the exact syllable - sentence cues are useless. That's the gap T8_MOSS_WordAlignment fills: it runs a separate Whisper model over your audio to get real word anchors, then maps those anchors back onto the transcript MOSS actually produced.
The clever part isn't the Whisper pass, it's the mapping. Whisper's transcript will never match MOSS's word-for-word - different tokenizers, different punctuation, different hallucinations, different language handling. So the node works in units: it takes each segment of your MOSS transcript, aligns the words against Whisper's timestamps, and for every word it can match, it records the anchor as genuinely model-derived. For the words it can't match, it does something most tools are too proud to do: it marks them as interpolated - timed between two real model anchors - instead of pretending Whisper produced them. The word_timestamps_json output carries "source": "interpolated_between_model_anchors" on those words, and the alignment report tells you exactly what coverage you got.
That honesty is the whole reason to trust this node. Plenty of subtitle pipelines quietly distribute a segment's start/end time across its words and call it "word-level timestamps." This one tells you which words are real and which are math. Check the report before you rely on the timestamps - if coverage is low, treat the interpolated words as estimates, not fact.
What it takes in, all three required:
- aligner - the
T8_MOSS_WORD_ALIGNMENT_MODELhandle from the Whisper aligner loader. Nothing happens without it. - audio - the original
AUDIO, same one that went into transcription. It resamples to 16 kHz and runs the alignment over it. - transcript - the
T8_MOSS_TRANSCRIPTyou want to enrich.
And what you get out: the enriched transcript (same type, so it drops straight into subtitle postprocessing and export), a word-timestamps JSON listing per-segment words with their times and sources, and the alignment report with coverage stats. If coverage drops below 50%, the node appends a word_alignment_low_coverage warning to the transcript's diagnostics - which the quality gate and exports can then surface instead of you having to hunt for it.
The realistic expectation: coverage is not 100%, and it isn't supposed to be. The author's own FLEURS regression runs landed between ~55% and ~72% model-matched coverage depending on language and audio. Multilingual and code-switched content runs lower - Whisper-small's anchor quality degrades when it's juggling languages. If you're working with a 95%-coverage requirement, you're looking at the wrong tool.
One workflow note: because the transcript object travels the graph and each node fattens it, the order you add nodes in matters. Word alignment works fine before or after speaker linking - both operate on segments - but run it before export, obviously, and don't expect per-word timing from the JSON alone; the subtitle styling/export nodes are where those timestamps become something you can actually see on screen.
Installing the pack
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-MOSS-Transcribe-Diarize-T8.git comfyui-MOSS-Transcribe-Diarize-T8
In the ComfyUI Python environment (..\..\python_embeded\python.exe on Windows Portable): pip install -r requirements.txt, run scripts/check_transformers.py (needs Transformers >= 5.5.0, < 6), restart. ComfyUI Manager users: search comfyui-moss-transcribe-diarize-t8. Whisper-small downloads automatically on the aligner loader's first run. The 04_word_alignment_voice_link.json example shows word alignment and voice linking in one workflow - start from there, it's the fastest way to see what the report outputs actually look like.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| aligner | T8_MOSS_WORD_ALIGNMENT_MODEL | — | |
| audio | AUDIO | — | |
| transcript | T8_MOSS_TRANSCRIPT | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| 带词级时间戳的 MOSS_TRANSCRIPT | T8_MOSS_TRANSCRIPT | — |
| 词级时间戳 JSON | STRING | — |
| 对齐报告 JSON | STRING | — |