SileroVAD List Timestamps
Explode a VAD run into individual segments
- 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) - fromSDT_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.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| timestamps | SILERO_VAD_TIMESTAMPS | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| timestamp | SILERO_VAD_TIMESTAMP | — |