MOSS WavLM 声纹模型 · T8star-Aix
The tiny WavLM model that lets MOSS tell speakers apart across chunks
- 声纹模型
- 声纹模型信息 JSON
Long-audio transcription in this pack works by chopping your file into chunks, and the diarization inside MOSS numbers speakers within each chunk. That means "speaker S01" in part one and "speaker S02" in part three are almost never the same person, and nothing in the transcript itself knows otherwise. T8_MOSS_SpeakerEmbeddingModelLoader is the loader half of the fix: it configures Microsoft's wavlm-base-plus-sv X-Vector speaker-verification model, which extracts a voice embedding from each local speaker's actual audio so the link node can decide who's who across chunks.
The key thing to internalize about this node: it's just configuration. It downloads the model on first run and hands the handle down the wire - all the actual embedding extraction and clustering happens in T8_MOSS_SpeakerEmbeddingLink, which you'll wire its output into. Think of the two as a loader-plus-consumer pair, same as the Whisper aligner loader feeding the word-alignment node. On its own, this node does nothing visible; skip it and you've skipped the cross-chunk speaker linking.
The inputs are few and mostly you-leave-them-alone:
- model_id - defaults to
microsoft/wavlm-base-plus-sv, pinned by the pack. You can point it at a local directory instead of a Hugging Face repo. - revision - pinned to
feb593a6c23c1cc3d9510425c29b0a14d2b07b1eby default. The pack pins auxiliary models to fixed revisions deliberately, so you get reproducible results instead of whatever the repo head happens to be next month. - device and precision - both
autoby default, which means the pack's usual resolution logic picks CUDA/BF16 when it can. - release_after_run -
trueby default. This model is loaded only while the link node runs, then released; turn it off only if you're doing a batch of runs and want to skip reload cost.
It outputs the T8_MOSS_SPEAKER_EMBEDDING_MODEL handle plus a JSON info string. That's it - the model itself is small enough that it coexists fine with the main transcription model; in the pack's own 30-minute benchmark the whole pipeline (main model plus both auxiliary models) peaked around 3.3 GB on a 24 GB card.
One genuinely nice design decision here: the loader is lazy and its cache is independent of the main transcription model. The model only downloads/loads when the link node actually executes, and releasing it after the run never touches whatever the transcribe node cached. You're not paying VRAM rent for a voice model you're not using yet, and you won't get an OOM from one of the two models evicting the other's cache.
Installing the pack
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-MOSS-Transcribe-Diarize-T8.git comfyui-MOSS-Transcribe-Diarize-T8
Then 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 - older versions are refused), and restart ComfyUI. Or search comfyui-moss-transcribe-diarize-t8 in ComfyUI Manager. The WavLM weights are pulled automatically on first link-node run - you don't run download_models.py for this one, it's a first-execution download.
The honest caveat: this loader is not a diarizer. It can't tell you "this is Maria, this is Juan" - it produces the embeddings that let the link node cluster similar voices. Whether that clustering is right depends on your recording and the similarity threshold you set downstream. Voice embeddings get you speaker identity, not speaker names, and the pack's docs are refreshingly honest that the threshold is recording-dependent and consequential output still needs a human glance.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model_id | STRING | microsoft/wavlm-base-plus-sv | — |
| revision | STRING | feb593a6c23c1cc3d9510425c29b0a14d2b07b1e | — |
| device | COMBO | auto | 2 options: auto, cpu |
| precision | COMBO | auto | 4 options: auto, bfloat16, float16, float32 |
| release_after_run | BOOLEAN | true | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| 声纹模型 | T8_MOSS_SPEAKER_EMBEDDING_MODEL | — |
| 声纹模型信息 JSON | STRING | — |