faster-whisper Segment Property
Pull the start time, end time and text out of one Whisper segment
- segment
- start
- end
- text
Once SDT_FasterWhisperListSegments has fanned a transcript out into individual segments, this is the node that unpacks each one - pull the start time, end time, and text out of a single FASTER_WHISPER_SEGMENT so you can actually use them. This is the node you want if you're building a speech dataset: pair the text with the start/end window and you've got a labeled audio clip, one Whisper segment at a time.
How it works
Purely a property accessor - no processing, no model involved. It reads the three fields off a single segment object and exposes them as separate typed outputs so the rest of ComfyUI's graph (which works with individual FLOAT/STRING values, not opaque segment objects) can actually do something with them.
The inputs and outputs that matter
segment(FASTER_WHISPER_SEGMENT) - a single segment, fromSDT_FasterWhisperListSegments's list output. Since that node marks its output as a list, this property node runs once per segment automatically.startandend(bothFLOAT) - the segment's timestamps in seconds. Wire these straight intoSDT_TrimAudio'sstart_second/end_secondto cut the exact audio slice that segment's transcript describes.text(STRING) - the transcribed text for just this segment. Pair it with the trimmed audio clip as your dataset label.
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 - this is pure property access, no ML runtime of its own.
Common issues & troubleshooting
Feeding start/end into SDT_TrimAudio and the resulting clip feels slightly off. Whisper-family timestamps are accurate to roughly the granularity of the model's internal windowing, not sample-exact - they're good enough for dataset work but not frame-perfect. If you need cleaner boundaries, pad the trim window a little on each side rather than trusting the raw timestamp exactly.
This node fires once per segment and you weren't expecting that. That's by design - it's meant to run per-item across the list SDT_FasterWhisperListSegments produces. If you only want the whole transcript as one string instead, skip both of these nodes and use SDT_FasterWhisperTextFromSegments directly off the transcribe node's output.
Text output has odd punctuation or capitalization. That's inherited straight from what faster-whisper produced for that segment - this node doesn't touch or clean the text at all, it just passes it through. If formatting matters for your dataset, that's a job for a text-processing node elsewhere in your graph, not this one.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| segment | FASTER_WHISPER_SEGMENT | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| start | FLOAT | — |
| end | FLOAT | — |
| text | STRING | — |