ComfyUI-speech-dataset-toolkit
Basic audio tools using torchaudio for ComfyUI. It is assumed to assist in the speech dataset creation for ASR, TTS, etc.
Nodes (55)
Read a clip's sample rate
Stitch two clips together with a silence gap between them
Remove a section of audio and close the gap
Run Demucs and get drums, bass, vocals and other back separately
Load Facebook's Demucs to split music into stems
Turn a Whisper transcript into a list you can loop over
Load Whisper the fast way, with the quantization knobs faster-whisper is built for
Pull the start time, end time and text out of one Whisper segment
Flatten a Whisper transcript into one string
Fast, accurate speech-to-text inside a ComfyUI graph
Turn a spectrogram back into audio without a neural vocoder
Stitch a whole batch of clips into one, not just a pair
Explode a kotoba-whisper transcript into per-line segments
The configurable kotoba-whisper loader, short or long form
Load kotoba-whisper's long-form Japanese ASR pipeline
Load kotoba-whisper for clips under ~30 seconds
Pull start, end, and text off one segment
Flat Japanese transcript text, no segment timing
Japanese transcription for clips past Whisper's 30-second window
Fast Japanese transcription for clips under 30 seconds
MFCC's linear-frequency sibling, and the one anti-spoofing research actually prefers
The node every graph in this pack starts from
Load a whole folder of clips as one batch
Generate exact silence for padding and gaps
The standard input feature behind most modern TTS
The classic hand-crafted speech feature, still useful for lightweight tasks
Explode nemo-asr's segments bundle into a list
Explode nemo-asr's token-level output into a list
Load ReazonSpeech's NeMo-based Japanese ASR model
Pull start, end, and text off one nemo-asr segment
Token, token ID, and timestamp for one subword
Text, subwords, and segments from one node, no config knobs
Load rinna's nue-asr, built for natural-sounding transcripts rather than strict verbatim
The flat-text half of rinna's natural-sounding ASR
Preview a clip without leaving the graph
See the mel filters before you trust a mel spectrogram
Eyeball a clip's intonation contour
Straight from audio to a spectrogram image, one node
Render an already-computed SPEC into a viewable image
The fastest sanity check on any clip
Change sample rate without the quality hit of a naive resample
Save clips as wav, mp3, flac — or the oddball formats ASR datasets actually use
Save a batch without hand-naming every file
Mute a section without shortening the clip
Find the speech timestamps in a long recording
Turn VAD timestamps into a speech-only clip
Explode a VAD run into individual segments
Load the voice-activity detector that finds where people are actually talking
Pull the actual start/end seconds out of a VAD segment
The linear-frequency alternative to a mel spectrogram
Load an automatic 'how natural does this sound' scorer
A naturalness number for a clip, no reference audio needed
Cut one clip into two at a timestamp
Keep exactly the slice of audio you want
Trim to an exact sample index, not a rounded timestamp
ComfyUI-speech-dataset-toolkit
Overview
Basic audio tools using torchaudio for ComfyUI. It is assumed to assist in the speech dataset creation for ASR, TTS, etc.
[!NOTE] The AUDIO type in this repository is compatible with the official implementation. (as of February 7, 2025).
Features
- Basic
- Load & Save audio
- Edit
- Cut and Trim
- Split and Join
- Silence
- Resample
- Visualization
- WaveForm
- Specgram
- Spectrogram
- MelFilterBank
- Pitch
- AI
Requirement
Install torchaudio according to your environment.
cd custom_nodes
git clone https://github.com/kale4eat/ComfyUI-speech-dataset-toolkit.git
cd ComfyUI-speech-dataset-toolkit
pip3 install torchaudio --index-url https://download.pytorch.org/whl/cu121
pip3 install -r requirements.txt
If you use silero-vad, install onnxruntime according to your environment.
pip install onnxruntime-gpu
Usage
At first startup, audio_input and audio_output folder is created.
ComfyUI
├── input
│ └── audio_input
├── output
│ └── audio_input
├── custom_nodes
│ └── ComfyUI-speech-dataset-toolkit
...
Fisrt of all, use a Load Audio node to load audio.

Please put the audio files you wish to process in a audio_input folder in advance.
If you've added files while the app is running, please reload the page (press F5).
You can use LoadAudio, which is official implementation of ComfyUI.
audio, the data type of ComfyUI flow, consists of waveform and sample rate.
Many nodes of this extension handle this data.
Note that waveform is torch.Tensor and has batch dim.
For example, Demucs separate drums, bass, vocals and other stems. Each of them is audio data.

Finally, use a Save Audio node to save audio. The audio is saved to audio_output folder. You can also use SaveAudio implemented by ComfyUI.

Note
There are some unsettled policies, destructive changes may be made.
This repository does not contain the nodes such as numerical operations and string processing.