Nodes/ComfyUI-speech-dataset-toolkit/nemo-asr List Subwords
ComfyUI Node

nemo-asr List Subwords

Explode nemo-asr's token-level output into a list

By kale4eat·Created 2 years ago·Updated about a year ago· 23
nemo-asr List Subwords
  • subwords
  • subwords

The finer-grained sibling of SDT_NemoAsrListSegments. SDT_NemoAsrTranscribe returns its token-level output as one bundled NEMO_ASR_SUBWORDS object - this node explodes it into a list of individual subword tokens, each of which you can inspect with SDT_NemoAsrSubwordProperty.

How it works

Pure plumbing, same pattern as every other List node in this pack - no transcription happens here. What's worth understanding is what a "subword" actually is in this context: NeMo's ASR models tokenize their output into subword units (pieces of words, not necessarily whole words or single characters) as part of how the model decodes, and it tracks a timestamp for each one natively. This node exposes that raw, per-token structure - the most granular timing data anywhere in this pack.

The inputs and outputs that matter

  • subwords (required, NEMO_ASR_SUBWORDS) - the bundle, from SDT_NemoAsrTranscribe.
  • subwords (output, NEMO_ASR_SUBWORD, list) - the exploded individual tokens. Feed each into SDT_NemoAsrSubwordProperty to read its timestamp, token ID, and token text.

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

No extra dependencies beyond what SDT_NemoAsrLoader already pulled in.

Common issues & troubleshooting

List is much longer than expected. That's normal - subword tokens are a much finer unit than segments or even whole words. A single sentence can easily produce a dozen or more subword tokens, since a "subword" is a piece of the tokenizer's vocabulary, not necessarily a full word. If you wanted sentence-level output instead, SDT_NemoAsrListSegments is almost certainly the node you actually want.

Wired in segments by mistake instead of subwords. They come off the same transcribe node and are easy to confuse - this one specifically wants NEMO_ASR_SUBWORDS. Double-check which output of SDT_NemoAsrTranscribe you're pulling from.

Not sure what to actually do with token-level data. This granularity is overkill for most transcript-building work - reach for it specifically when you need to align text to audio at a finer resolution than sentence-level, like duration modeling for TTS training or precise forced alignment, where segment-level timing isn't tight enough.

Reassembling tokens back into readable text and it looks fragmented or has odd spacing. Subword tokenization doesn't always split at word boundaries cleanly, so naively concatenating token text can produce spacing artifacts. SDT_NemoAsrTranscribe's text output already gives you the properly assembled transcript - don't try to rebuild it from tokens by hand unless you specifically need the per-token structure for something else.

Categoryspeech-dataset-toolkit/ai/nemo-asr

Inputs (1)

NameTypeDefaultDescription
subwordsNEMO_ASR_SUBWORDS

Outputs (1)

NameTypeDescription
subwordsNEMO_ASR_SUBWORD