Transcribe by nemo-asr
Text, subwords, and segments from one node, no config knobs
- model
- audio
- text
- subwords
- segments
The richest single transcribe node in this pack. Where the kotoba-whisper and faster-whisper transcribe nodes make you pick between flat text or segment-level detail depending on which variant you use, this one hands you all three levels of granularity - flat text, individual subword tokens with timing, and sentence-like segments with timing - from a single run, with zero configuration knobs to get wrong.
How it works
It runs the loaded ReazonSpeech nemo-asr model (from SDT_NemoAsrLoader) over the audio using NVIDIA NeMo's decoding pipeline, which natively tracks token-level timing as part of how it decodes - that's not an add-on feature, it's inherent to how NeMo-format ASR models produce output. This node exposes that native structure directly rather than only surfacing the final text: subword tokens (the actual pieces the model's tokenizer broke the transcript into, each with its own timestamp and token ID) and segments (coarser, sentence-like groupings with start/end/text) come out alongside the plain transcript.
The inputs and outputs that matter
model(typeNEMO_ASR) - required, fromSDT_NemoAsrLoader.audio- required, the clip to transcribe. No optional inputs at all on this node - no prompt, no language override, nothing to tune.text(output,STRING) - the flat transcript.subwords(output,NEMO_ASR_SUBWORDS) - a bundle of the model's raw subword tokens with timing, feeds intoSDT_NemoAsrListSubwordsto explode into individual items.segments(output,NEMO_ASR_SEGMENTS) - a bundle of sentence-like segments with timing, feeds intoSDT_NemoAsrListSegments.
How to install it
ComfyUI Manager: search ComfyUI-speech-dataset-toolkit, install, restart. Manual:
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
The dependency weight here is on SDT_NemoAsrLoader upstream (NeMo's own Python package plus the model checkpoint) - this node itself adds nothing beyond that.
Common issues & troubleshooting
Not sure which output to actually use. Start with text if you just want a transcript. Reach for segments (via SDT_NemoAsrListSegments → SDT_NemoAsrSegmentProperty) for sentence-level start/end/text, the same granularity kotoba-whisper and faster-whisper's segment outputs give you. Reach for subwords only if you specifically need token-level detail - that's finer-grained than most dataset-building tasks need, and more useful for things like forced alignment or duration modeling than everyday transcription work.
Wired subwords or segments straight into something expecting individual values and got a type error. Both are bundled list-container types, not directly usable - run them through SDT_NemoAsrListSubwords/SDT_NemoAsrListSegments first to explode into individual items, then SDT_NemoAsrSubwordProperty/SDT_NemoAsrSegmentProperty to actually read the fields.
Transcribing non-Japanese audio and getting poor results. This model is trained specifically on Japanese speech via the ReazonSpeech corpus - use SDT_FasterWhisperTranscribe for other languages.
No way to prime the model with context or a prompt. Correct - unlike the faster-whisper and kotoba-whisper transcribe nodes, there's no prompt input here at all. If context-priming matters for your accuracy on tricky proper nouns, this isn't the node that offers it.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model | NEMO_ASR | — | |
| audio | AUDIO | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |
| subwords | NEMO_ASR_SUBWORDS | — |
| segments | NEMO_ASR_SEGMENTS | — |