nemo-asr List Subwords
Explode nemo-asr's token-level output into a list
- 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, fromSDT_NemoAsrTranscribe.subwords(output,NEMO_ASR_SUBWORD, list) - the exploded individual tokens. Feed each intoSDT_NemoAsrSubwordPropertyto 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.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| subwords | NEMO_ASR_SUBWORDS | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| subwords | NEMO_ASR_SUBWORD | — |