Nodes/Comfyui-MOSS-Transcribe-Diarize-T8/MOSS 独立模型词级对齐 · T8star-Aix
ComfyUI Node

MOSS 独立模型词级对齐 · T8star-Aix

Word-level timestamps for MOSS — without faking the words it can't match

By T8mars·Created 25 days ago·Updated about 21 hours ago· 5
MOSS 独立模型词级对齐 · T8star-Aix
  • 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_MODEL handle 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_TRANSCRIPT you 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.

CategoryT8star-Aix/Audio/MOSS Transcribe Diarize

Inputs (3)

NameTypeDefaultDescription
alignerT8_MOSS_WORD_ALIGNMENT_MODEL
audioAUDIO
transcriptT8_MOSS_TRANSCRIPT

Outputs (3)

NameTypeDescription
带词级时间戳的 MOSS_TRANSCRIPTT8_MOSS_TRANSCRIPT
词级时间戳 JSONSTRING
对齐报告 JSONSTRING