SileroVAD Timestamp Property
Pull the actual start/end seconds out of a VAD segment
- timestamp
- start
- end
The number-extraction node at the end of the Silero VAD chain. SDT_SileroVADLoader → SDT_SileroVADApply → SDT_SileroVADListTimestamps all hand you increasingly refined but still opaque VAD objects - this is where you finally get plain floats you can wire straight into a trim node. It mirrors SDT_FasterWhisperSegmentProperty on the Whisper side of this pack.
How it works
It takes one SILERO_VAD_TIMESTAMP item - typically one iteration out of a loop driven by SDT_SileroVADListTimestamps - and returns its start and end boundaries as two separate FLOAT values, in seconds.
The inputs and outputs that matter
timestamp(SILERO_VAD_TIMESTAMP, required) - a single segment, not the whole collection.startandend(outputs, bothFLOAT) - the segment's boundaries in seconds, ready to feed straight intostart_second/end_secondonSDT_TrimAudioorSDT_CutAudio.
A concrete pipeline that leans on this node: SDT_SileroVADApply → SDT_SileroVADListTimestamps looped → this node → SDT_TrimAudio (or SDT_TrimAudioBySample if you want sample-exact cuts) → SDT_SaveAudioWithSequentialNumbering. That's the whole "turn one long recording into a folder of individually-saved speech clips" pattern, and this node is the joint that connects a VAD detection to an actual seconds-based edit.
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 from Silero VAD sits on SDT_SileroVADLoader, several steps upstream of this one.
Both outputs are plain seconds, the same unit SDT_TrimAudio, SDT_CutAudio, and SDT_SilenceAudio all use for their own start/end fields - that consistency across the pack is deliberate, and it's why this node hands back seconds rather than samples even though the underlying VAD detection works internally on model-analysis windows, not raw seconds.
Common issues & troubleshooting
Type error feeding this the whole timestamps bundle. This node wants a single SILERO_VAD_TIMESTAMP, not the full SILERO_VAD_TIMESTAMPS collection - that's what SDT_SileroVADListTimestamps is for, upstream of this.
Numbers look right but the resulting trim is off. Double-check you're trimming the original clip VAD actually ran against, not a resampled or already-edited version - these second-based boundaries were computed against one specific audio source and won't line up against another.
You actually want one merged speech-only clip, not per-segment slices. Skip the per-segment extraction entirely and use SDT_SileroVADCollectChunks instead - it goes straight from the timestamps bundle to a single concatenated clip.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| timestamp | SILERO_VAD_TIMESTAMP | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| start | FLOAT | — |
| end | FLOAT | — |