Nodes/ComfyUI-speech-dataset-toolkit/SileroVAD List Timestamps
ComfyUI Node

SileroVAD List Timestamps

Explode a VAD run into individual segments

By kale4eat·Created 2 years ago·Updated about a year ago· 23
SileroVAD List Timestamps
  • timestamps
  • timestamp

The same pattern this pack uses on the FasterWhisper side (SDT_FasterWhisperListSegments), applied to Silero VAD's output. SDT_SileroVADApply hands you back one bundled SILERO_VAD_TIMESTAMPS object covering the whole clip; this node splits that into a list of individual segments you can loop over one at a time.

How it works

Each item in the resulting list is a SILERO_VAD_TIMESTAMP, one detected speech region - it doesn't carry the actual audio, just the boundary information for that region, which is why the next step in a per-segment pipeline is almost always SDT_SileroVADTimestampProperty to pull out real start/end numbers you can act on. It's a straightforward list expansion - the output's is_list: true means a loop node wired to it runs once per detected speech segment instead of once for the whole batch. Nothing about the underlying detection changes here; this is purely about restructuring the bundle into something you can iterate.

The inputs and outputs that matter

  • timestamps (SILERO_VAD_TIMESTAMPS, required) - from SDT_SileroVADApply.
  • timestamp (output, SILERO_VAD_TIMESTAMP, is_list: true) - one item per detected speech segment.

There's a real fork in the road once you have this list. If you want every detected utterance saved out as its own separate file - the common case for building an ASR or TTS training set, where each row needs to be one clean clip - loop this output into SDT_SileroVADTimestampProperty to get real seconds, then SDT_TrimAudio and SDT_SaveAudioWithSequentialNumbering per iteration. If you just want a single continuous clip with the dead air removed, skip this node entirely and go straight from SDT_SileroVADApply to SDT_SileroVADCollectChunks.

How to install it

Via ComfyUI Manager: search ComfyUI-speech-dataset-toolkit, install, restart. Manually:

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 dependency for this node specifically - the onnxruntime requirement lives on SDT_SileroVADLoader upstream.

Common issues & troubleshooting

Only one item shows up downstream when you expected many. A list output only usefully fans out through an actual loop node - a plain non-looping connection typically sees just the first item. Make sure you've got the looping/batch node in place, same as any other list output in ComfyUI.

Got fewer segments than you expected. Check SDT_SileroVADApply's tuning first, not this node - min_speech_duration_ms/min_silence_duration_ms set too aggressively can merge what should've been separate segments into one, and threshold set too high can miss segments outright.

Want the actual start/end numbers per segment, not an opaque object. Chain each item into SDT_SileroVADTimestampProperty - that's the node that pulls out real, usable floats.

Categoryspeech-dataset-toolkit/ai/SileroVAD

Inputs (1)

NameTypeDefaultDescription
timestampsSILERO_VAD_TIMESTAMPS

Outputs (1)

NameTypeDescription
timestampSILERO_VAD_TIMESTAMP