SileroVAD Collect Chunks
Turn VAD timestamps into a speech-only clip
- timestamps
- audio
- audio
This is the payoff node of the Silero VAD pipeline in this pack. SDT_SileroVADLoader gets the model, SDT_SileroVADApply finds where the speech actually is and hands back a bundle of timestamps - and this node is what turns that into something you can actually use: a single audio clip containing only the detected speech, with everything VAD flagged as silence or noise stripped out.
How it works
It takes the full SILERO_VAD_TIMESTAMPS bundle plus the original clip VAD ran against, and concatenates just the detected speech regions into one continuous AUDIO clip. It's the bulk counterpart to grabbing segments one at a time - where SDT_SileroVADListTimestamps explodes the bundle for per-segment processing, this node collapses it into a single merged result.
The inputs and outputs that matter
timestamps(SILERO_VAD_TIMESTAMPS) - fromSDT_SileroVADApply.audio- the same clip VAD was run against. It has to match; the timestamps are meaningless against a different audio source.audio(output) - a new clip containing only the concatenated speech regions.
This is the node to reach for when you're prepping input for an ASR or embedding model and want to cut wasted compute on dead air, rather than building a per-utterance training set - for the latter (separate saved clips per detected utterance), you want SDT_SileroVADListTimestamps looped through SDT_SileroVADTimestampProperty and a trim node instead, not this one.
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
pip install onnxruntime-gpu # required by SDT_SileroVADLoader upstream, not this node
This node itself has no extra dependency - the onnxruntime requirement sits on the loader.
Common issues & troubleshooting
Result sounds choppy or has audible seams. Expected - this hard-concatenates disjoint chunks of the original clip together, and splicing waveforms at arbitrary points introduces discontinuities right at the seams. If you need natural-sounding continuous audio rather than a compact speech-only file, SDT_SileroVADListTimestamps plus individual trims per segment (rather than one merged blob) is the better fit.
Fed it the wrong clip and got errors or garbage output. The timestamps from SDT_SileroVADApply are computed against one specific clip - pass in a different one (resampled, already-edited) and the boundaries won't line up.
Output is empty. Check SDT_SileroVADApply's threshold - if it detected zero speech segments (threshold set too high, or the clip is genuinely just silence or noise), there's nothing here to collect.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| timestamps | SILERO_VAD_TIMESTAMPS | — | |
| audio | AUDIO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |