NS Voice Atmosphere
Make Voiceover Sound Like It Was Recorded in a Room
- audio
- audio
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 scipyand restart ComfyUI.- It sounds like you're underwater - too much
reverb_mixand/orroom_size. Back both down; a good room sits at 10–20% wet. - The noise is distracting -
noise_levelis 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.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | — | |
| noise_type | COMBO | 3 options: pink, white, brown | |
| noise_level | FLOAT | 0.0200–0.5 | Volume of background noise (0 = none) |
| reverb_mix | FLOAT | 0.150–1 | Wet/dry mix (0 = dry, 1 = fully wet) |
| room_size | FLOAT | 0.300.05–1 | Simulated room size (small to large) |
| reverb_decay | FLOAT | 0.50.1–3 | Reverb tail length in seconds |
| seed | INT | 00–4294967295 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |