Nodes/comfyui-indextts25-t8/IndexTTS 2.5 ASR 自动校对 · T8star-Aix
ComfyUI Node

IndexTTS 2.5 ASR 自动校对 · T8star-Aix

CER/WER, word timestamps, pass/fail in one node

By T8mars·Created 14 days ago·Updated a day ago· 25
IndexTTS 2.5 ASR 自动校对 · T8star-Aix
  • audio
  • 识别文本
  • 是否通过
  • 相似度
  • 词级时间戳 JSON
  • 校对报告 JSON
expected_text
languageAUTO
backendauto
model_namebase
deviceauto
threshold0.82

TTS models mispronounce. Names get mangled, polyphones land wrong, and if you're generating dozens of lines you can't listen to all of them. This node is the automated proofreader: it takes any ComfyUI AUDIO plus the text you expected, transcribes the audio locally with Whisper, and tells you how close the two are - with a pass/fail verdict, a similarity score, word-level timestamps, and a full report. It's the "did the model actually say what I wrote" check, run by a machine.

How it works

Whisper (either the openai-whisper package or the faster CTranslate2-backed faster-whisper - pick via backend) transcribes your audio. The comparison is normalized before scoring: NFKC, case, simplified/traditional Chinese, Chinese numerals, and punctuation are unified so "2025年" vs "二〇二五年" doesn't count as an error. Then it scores CER (character error rate) for Chinese and Japanese, WER (word error rate) for English, Spanish, and Arabic - language set to AUTO picks the metric from the text's detected language. Outputs:

  • 识别文本 - what Whisper actually heard.
  • 是否通过 - boolean verdict against your threshold (default 0.82).
  • 相似度 - the score, as a float.
  • 词级时间戳 JSON - per-word timing, useful for subtitle work.
  • 校对报告 JSON - the full breakdown, including difference details.

The inputs worth tuning

model_name (tiny / base / small / medium / turbo) is the accuracy-vs-speed dial: tiny downloads in seconds and is decent, small/medium are meaningfully better on accented or noisy output, turbo is the big one. device (auto / CUDA / CPU) - Whisper runs fine on CPU for short clips, so don't assume you need GPU. threshold is your acceptance bar: raise it for strict subtitle work, lower it when you just want a gross sanity check.

Installation - this is the one that isn't automatic

ASR is an optional extra in this pack, so the node exists but the backend doesn't come with the base install. With ComfyUI's own Python:

python -m pip install "openai-whisper>=20250625" "opencc-python-reimplemented>=0.1.7"

or for the faster backend:

python -m pip install "faster-whisper>=1.2.0" "opencc-python-reimplemented>=0.1.7"

First run downloads the Whisper weights to ComfyUI/models/TTS/Whisper/. Skip the install and the node errors with "ASR backend not available" - which is a good failure mode: the rest of the pack (generation, timeline editing, subtitle rewriting) keeps working without it. Also note the pack feeds audio to Whisper as waveform directly, so no system FFmpeg dependency.

Honest positioning

This is the most "production pipeline" node in the pack - it's for when wrong words cost you something. For casual use it's overkill; for a 50-line dialogue you want it in the loop, ideally wired into the multi-role generator's built-in per-line ASR so bad lines get flagged at generation time. One caveat: ASR similarity is not pronunciation quality. A homophone that changes meaning (银行 said as xíng vs háng) can pass a similarity check, so treat it as a mispronunciation gate, not a meaning gate.

CategoryT8star-Aix/Audio/IndexTTS 2.5

Inputs (7)

NameTypeDefaultDescription
audioAUDIO
expected_textSTRING
languageCOMBOAUTO6 options: AUTO, ZH, EN, JA, ES, AR
backendCOMBOauto3 options: auto, openai_whisper, faster_whisper
model_nameCOMBObase5 options: tiny, base, small, medium, turbo
deviceCOMBOauto3 options: auto, cuda, cpu
thresholdFLOAT0.820–1

Outputs (5)

NameTypeDescription
识别文本STRING
是否通过BOOLEAN
相似度FLOAT
词级时间戳 JSONSTRING
校对报告 JSONSTRING