ComfyUI Node

Join Audio

Stitch a whole batch of clips into one, not just a pair

By kale4eat·Created 2 years ago·Updated about a year ago· 23
Join Audio
  • audios
  • audio
silent_interval0.000

The pack already has SDT_ConcatAudio for joining exactly two named clips (audio1 + audio2). This node solves a different, more common version of the same problem: you've got a whole batch of clips - say, everything SDT_LoadAudios just pulled out of a folder - and you want them stitched into one continuous file without wiring up a chain of pairwise concat nodes by hand.

How it works

The single required input is literally called audios, matching SDT_LoadAudios's audios output field name - that's not a coincidence, it's the node this one is designed to sit downstream of. Feed it a batch of clips and it joins them in order into one waveform, inserting silent_interval seconds of silence between each pair along the way if you want a gap rather than a hard splice. Where SDT_ConcatAudio is a fixed two-input join you'd reach for inside a graph you're hand-building, SDT_JoinAudio is the "reassemble a whole folder's worth of takes" node.

The inputs and outputs that matter

  • audios - the batch of clips to join, in order.
  • silent_interval (default 0, step 0.001) - seconds of silence inserted between consecutive clips. Zero means a hard, back-to-back join; a small nonzero value is worth setting if you're reassembling separately recorded lines and want them to sound like natural speech rather than audio spliced with no breathing room between sentences.
  • audio (output) - the single combined clip.

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 - same torchaudio baseline as the rest of the pack.

Common issues & troubleshooting

Error or garbled output partway through the batch. The most likely cause is one clip in the batch not matching the sample rate or channel count of the others - torchaudio join operations need everything aligned on those dimensions before the time axis can just get concatenated. If your batch came from mixed sources (some recorded at 44.1kHz, some at 16kHz, say), run SDT_ResampleAudio over the batch first rather than assuming SDT_LoadAudios normalized anything for you - it doesn't; it just loads whatever's on disk.

You wanted just two specific clips joined, not a whole folder. That's SDT_ConcatAudio's job, not this one - it takes two named inputs (audio1/audio2) instead of a batch, which is the right tool when you're deliberately picking two clips inside a graph rather than processing everything a loader handed you.

Audible clicks at each seam. This is a straight splice at each join point, not a crossfade - clips that don't start or end near zero amplitude can produce a pop where they meet. A small silent_interval (even a few tens of milliseconds) tends to mask this better than a zero-gap join, without needing an actual crossfade step.

Order came out wrong. The join follows the order of the audios batch as it arrives at this node - if that came from SDT_LoadAudios, the order is whatever order the loader read files off disk (typically filesystem/alphabetical order), not something you control from this node. If you need a specific order, sort or rename your files before loading rather than trying to reorder after the fact.

Categoryspeech-dataset-toolkit/edit

Inputs (2)

NameTypeDefaultDescription
audiosAUDIO
silent_intervalFLOAT0.000

Outputs (1)

NameTypeDescription
audioAUDIO