SpeechMOS Score
A naturalness number for a clip, no reference audio needed
- model
- audio
- score
The actual scoring node. Feed it a loaded SpeechMOS model and a clip, get back one float: the model's predicted Mean Opinion Score for how natural that clip sounds. No reference or ground-truth recording required - that's the whole point of a no-reference MOS predictor, and it's what makes this usable for scoring a batch of TTS output or flagging bad clips in a dataset without a human listening to every single one.
How it works
Since it's a no-reference predictor, the model scores the clip on its own - no comparison audio, no alignment step. Single clip in, single float out.
The inputs and outputs that matter
model(SPEECH_MOS) - fromSDT_SpeechMOSLoader.audio- the clip to score.score(output,FLOAT) - the predicted MOS. Traditional human-rated MOS runs on a 1-to-5 scale (1 = bad, 5 = excellent), and automatic predictors like this one are trained to approximate that same range - but neither this node nor the README pins down the exact scale or which underlying SpeechMOS checkpoint is loaded, so treat the number as a relative signal for comparing clips against each other rather than an absolute, citable score.
How to install it
Via ComfyUI Manager: search ComfyUI-speech-dataset-toolkit, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/kale4eat/ComfyUI-speech-dataset-toolkit
cd ComfyUI-speech-dataset-toolkit
pip install torchaudio --index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt
This node itself adds nothing beyond the pack baseline - the model weights and loading concerns sit on SDT_SpeechMOSLoader.
Common issues & troubleshooting
Errors immediately. Check SDT_SpeechMOSLoader loaded successfully first - same troubleshooting order as every other AI loader/apply pair in this pack.
Scores cluster tightly even between clips you can clearly hear are different. No-reference MOS predictors are a proxy, not ground truth - they're genuinely useful for catching output that's obviously broken (garbled, robotic, clipped) and for relative comparison across a batch, but less reliable for fine-grained ranking between samples that are all already decent. Don't read too much into a small score gap between two okay-sounding clips.
Comparing two TTS systems or checkpoints. Score a batch from each and compare distributions or averages rather than trusting any single clip's number - the same caveat applies to any automatic quality metric: it's noisy per-sample, more reliable in aggregate.
Barely any community discussion if you hit something odd. Consistent with SpeechMOS being a narrow academic tool rather than a mainstream one - the SpeechMOS project is the better reference, not a forum search.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model | SPEECH_MOS | — | |
| audio | AUDIO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| score | FLOAT | — |