Nodes/dots.tts · T8star-Aix/dots.tts ASR 转写与说话人分离 · T8star-Aix
ComfyUI Node

dots.tts ASR 转写与说话人分离 · T8star-Aix

Transcribe — turn any audio into timestamped subtitles, with optional speaker separation

By T8mars·Created 23 days ago·Updated 14 days ago· 5
dots.tts ASR 转写与说话人分离 · T8star-Aix
  • audio
  • speaker_model
  • SRT 字幕
  • 时间轴 JSON
  • ASR 报告 JSON
languageauto
diarizefalse
speaker_count0
similarity_threshold0.72
asr_modelQwen/Qwen3-ASR-0.6B-hf
aligner_modelQwen/Qwen3-ForcedAligner-0.6B-hf
transportauto
release_after_runtrue
devicecuda:0

The pack's generation side is one thing, but T8_DotsTTS_Transcribe covers the other direction: feed it any AUDIO and it returns an SRT file, a standardized timeline JSON, and a full recognition report. It's ASR with a forced aligner bolted on, so the timestamps are per-word-level accurate rather than the "close enough" you get from plain Whisper-style output. Turn on diarization and it also tells you who said what - which is exactly what you need to take an existing recording and re-dub it per character.

Under the hood it uses fixed, pinned model versions: Qwen3-ASR-0.6B for recognition and Qwen3-ForcedAligner-0.6B for alignment. The dropdowns for asr_model and aligner_model are hard-pinned - you literally can't pick another version, which is deliberate: the pack validates against those exact revisions and changing them would break the verification story. First use downloads ~3.7 GB of weights with per-file size and SHA-256 checks. Also note the runtime split: the ASR side is genuinely optional in the dependency sense - qwen-asr is not in requirements.txt on purpose, so ComfyUI Manager's auto-upgrade of core transformers can't clobber your ComfyUI. If you want in-process ASR you install it manually with the exact pinned versions:

python -m pip install "qwen-asr==0.0.6" "transformers==4.57.6"

The clever part is transport, default auto. If you run the T8 Windows desktop bundle, its local ASR sidecar auto-starts - a separate Python process that loads Qwen3-ASR with a random token bound to loopback only, so your main ComfyUI environment never needs qwen-asr installed at all. auto prefers that sidecar and falls back to in-process (in_process_legacy) when it's not there. Either way, release_after_run (default on) frees the ASR VRAM after transcribing.

Diarization is the feature that makes this node a dubbing input. Flip diarize on and you must also connect a dots.tts model handle to speaker_model - the node only reads the CAM++ speaker_encoder.safetensors from it, so it won't load the full TTS model just for separation. Then tune speaker_count (0 = auto-detect, up to 32) and similarity_threshold (default 0.72) for how aggressive the same-speaker merging is. language covers auto, Chinese, English, Cantonese, Japanese, Korean; device picks cuda:0 or cpu.

Outputs: srt (subtitle text, with the node also pushing it into the UI preview as an output node), timeline_json, and asr_info - the full report including segments, timestamps, confidence and diarization labels. Both the SRT and timeline feed directly into T8_DotsTTS_Timeline if you want to normalize or re-validate them.

Where people get burned

  • The Qwen downloads are big and the ASR dependency isn't auto-installed. On a fresh machine, expect a first-run wait, and if transport can't find a sidecar you'll get a clear error telling you to install the pinned qwen-asr versions manually.
  • Diarization without connecting a model fails validation up front with a helpful message - that's by design, not a bug.
  • Version pinning is strict. Don't try to force a newer transformers into your ComfyUI to "fix" ASR; the pack's tolerance is narrow, and the README's advice to back up your environment before installing the pinned versions is worth taking.

Installation is the pack (Manager → dots-tts-t8 or clone + pip install -r requirements.txt) plus the optional pinned ASR deps above if you're not using a desktop sidecar.

CategoryT8star-Aix/Audio/dots.tts

Inputs (11)

NameTypeDefaultDescription
audioAUDIO
languageCOMBOauto6 options: auto, Chinese, English, Cantonese, Japanese, Korean
diarizeBOOLEANfalse
speaker_countINT00–32
similarity_thresholdFLOAT0.720.4–0.95
asr_modelCOMBOQwen/Qwen3-ASR-0.6B-hf1 options: Qwen/Qwen3-ASR-0.6B-hf
aligner_modelCOMBOQwen/Qwen3-ForcedAligner-0.6B-hf1 options: Qwen/Qwen3-ForcedAligner-0.6B-hf
transportCOMBOautoauto 优先连接桌面隔离服务;不可用时兼容进程内 ASR。
release_after_runBOOLEANtrue
deviceCOMBOcuda:02 options: cuda:0, cpu
speaker_modeloptT8_DOTS_TTS_MODEL

Outputs (3)

NameTypeDescription
SRT 字幕STRING
时间轴 JSONSTRING
ASR 报告 JSONSTRING