ComfyUI Node

Concat Audio

Stitch two clips together with a silence gap between them

By kale4eat·Created 2 years ago·Updated about a year ago· 23
Concat Audio
  • audio1
  • audio2
  • audio
silent_interval0.000

The complement to SDT_SplitAudio: join two clips into one, with a configurable gap of silence between them if you want it. It's the node you reach for when you're reassembling audio you've cut apart, or building a longer clip out of shorter pieces - stitching sentence-level clips back into a paragraph, for instance, with a natural pause between them.

How it works

It concatenates the two waveforms end to end and, if silent_interval is set above zero, inserts that much silence between them first - essentially the same thing SDT_MakeSilenceAudio produces standalone, but done inline as part of the join rather than as a separate node you'd have to wire in manually.

The inputs and outputs that matter

  • audio1 and audio2 - the two clips to join, in order. audio1 comes first in the output.
  • silent_interval (default 0, step 0.001) - seconds of silence inserted between the two clips. Zero means a hard join with no gap; set it if you're reassembling separately-recorded utterances and want them to sound like natural speech rather than audio spliced together with no breathing room.
  • audio (output) - the 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 crash on join. The most likely cause is a sample-rate or channel-count mismatch between audio1 and audio2 - torchaudio concatenation needs matching shapes on everything except the time dimension. Run both clips through SDT_AudioProperty to check sample rate before joining, and resample one of them with SDT_ResampleAudio if they don't match. If one's mono and the other's stereo, that's the other common mismatch to check.

Joined clip has an audible click at the seam. Even with matching sample rates, joining two clips that don't both start/end near zero amplitude can produce a click - this node does a straight concatenation, not a crossfade. If clicks matter for your use case, a small silent_interval (even a few tens of milliseconds) usually masks it better than a hard zero-gap join.

This is one of the pack's lowest-traffic nodes - expect to work through issues from the source rather than community threads if something behaves unexpectedly; nobody's really written it up anywhere.

Chaining more than two clips together. There's no multi-input concat node in this pack's schema - audio1/audio2 is strictly a pair. For three or more clips, chain multiple SDT_ConcatAudio nodes: join the first two, feed that result into audio1 of a second node alongside your third clip, and so on. It's more wiring than a single variadic node would need, but it composes cleanly and each step is easy to preview with SDT_PlayAudio before you build on top of it.

Categoryspeech-dataset-toolkit/edit

Inputs (3)

NameTypeDefaultDescription
audio1AUDIO
audio2AUDIO
silent_intervalFLOAT0.000

Outputs (1)

NameTypeDescription
audioAUDIO