Nodes/Symbiotica/NS Voice Atmosphere
ComfyUI Node

NS Voice Atmosphere

Make Voiceover Sound Like It Was Recorded in a Room

By symbiotica-ai·Created 6 months ago·Updated about 13 hours ago· 2
NS Voice Atmosphere
  • audio
  • audio
noise_type
noise_level0.020
reverb_mix0.15
room_size0.30
reverb_decay0.5
seed0

TTS voices are dry. Dead dry. Any AI voice - Kokoro, ElevenLabs, whatever - comes out of the box sounding like it was recorded in a closet padded with foam, and that reads instantly as "robot" the moment a human ear hears it. NS Voice Atmosphere is the fix: it adds background noise and a synthetic room reverb to an AUDIO track so a voice sounds like it was actually recorded in a space.

Best part: no API, no key, no cloud. It's pure local DSP that runs on the CPU in seconds. In an audio-generation workflow it's the finishing stage that makes the difference between a TTS render and something you'd ship.

How it works

Two things happen. First it layers in background noise - pick pink, white, or brown (noise_type), at the level set by noise_level (0–0.5, default 0.02 - 0.02 is already audible, don't crank it). Then it builds a synthetic room impulse response and convolves your audio with it via SciPy's fftconvolve, which is the classic way to simulate a space: the impulse response has early reflections at delays proportional to room_size, plus an exponentially decaying tail whose length is reverb_decay in seconds. reverb_mix (0–1) is the wet/dry balance - how much of that room comes through versus the original signal. The seed makes the whole thing reproducible.

Inputs and output

Required: audio (the voice track - wire it from a TTS node or this pack's NS Music output), then noise_type, noise_level, reverb_mix, room_size, reverb_decay, and seed.

The knob to learn first is room_size (0.05–1). Small values read as a phone-booth; near 1 it's a hall. reverb_decay sets how long the tail rings, and reverb_mix is where you'll live - 0.15 (the default) is a subtle room, and most voiceover wants subtle.

Output is a single audio track, ready to feed a save node or into NS Music's mixing path.

Install and setup

Part of the Symbiotica pack (symbiotica-ai/comfyui-nodes). ComfyUI Manager → search "Symbiotica", or:

cd ComfyUI/custom_nodes
git clone https://github.com/symbiotica-ai/comfyui-nodes.git symbiotica
pip install -r symbiotica/requirements.txt

Restart and it's ready - this is one of the rare Symbiotica nodes that needs no key and no ffmpeg, because the whole job happens in NumPy/SciPy.

Troubleshooting

  • No module named 'scipy' - this is the one you'll actually hit. SciPy is not in the pack's requirements.txt, so it isn't guaranteed to be in your environment. pip install scipy and restart ComfyUI.
  • It sounds like you're underwater - too much reverb_mix and/or room_size. Back both down; a good room sits at 10–20% wet.
  • The noise is distracting - noise_level is your answer. 0.02 is the intended "there's air in the room" level; below 0.01 it nearly disappears.
  • Nothing audible changes - check your source audio actually has signal. If a prior node (like a TTS or mixing step) didn't run, you're reverbing silence.
Categoryneuralsins/audio

Inputs (7)

NameTypeDefaultDescription
audioAUDIO
noise_typeCOMBO3 options: pink, white, brown
noise_levelFLOAT0.0200–0.5Volume of background noise (0 = none)
reverb_mixFLOAT0.150–1Wet/dry mix (0 = dry, 1 = fully wet)
room_sizeFLOAT0.300.05–1Simulated room size (small to large)
reverb_decayFLOAT0.50.1–3Reverb tail length in seconds
seedINT00–4294967295

Outputs (1)

NameTypeDescription
audioAUDIO