AI Audio Effects
Pitch, Speed, Reverb, Echo — a Classic DSP Toolkit With a Misleading Name
- audio
- audio
Let's get the elephant in the room out of the way: AI Audio Effects is not AI. There's no model, no GPU, no weights. Under the hood it's a friendly wrapper around SoX, the 30-year-old command-line audio swiss-army knife. That's not a knock - it means pitch shifting, time stretching, gain, reverb, echo, and normalization all run in a few milliseconds and need zero VRAM. The "AI" in the name is just the pack's branding.
You reach for this node when your generated audio is technically correct but needs reshaping. A chipmunk voice out of your TTS? pitch_shift at +4. Deep, ominous narration? −4 and a touch of reverb. The README's presets - "Phone Call," "Radio Announcer," "Stadium Announcement" - are all just combos of the effect groups this node exposes.
It takes any AUDIO (TTS output, ACE-Step music, a LoadAudio node) and returns a single processed audio output, ready for PreviewAudio or the pack's other node, AI Audio Enhancer Pro. Chain them as the author intends: source → Enhancer (quality) → Effects (creative) → preview.
How it works
The node writes your audio to a temp WAV, builds a SoX effect chain, runs it as a subprocess, and reads the result back. Fun detail: the temp files are named orpheus_sox_…, a hint this started life bolted onto a TTS model before the author generalized it. The effects run in a fixed order - normalize → gain → pitch → speed → reverb → echo - and everything is off or neutral by default. If you change nothing, it returns the input untouched.
Two mechanism notes that surprise people:
- Speed isn't what you think.
speed_factormaps to SoX'stempo -s, which time-stretches while preserving pitch. At 2.0 you get a faster clip that doesn't chipmunk up. - Pitch is in cents internally.
pitch_shift(in semitones, −12 to +12) is converted to cents for SoX'spitcheffect. The 0.5 slider step is why half-steps work fine.
The inputs that matter
audio, pitch_shift, and speed_factor are required; the rest are optional and off by default. The ones you'll actually touch:
pitch_shift- −12 to +12 semitones. 0 is natural. ±2–4 is the character-voice sweet spot.speed_factor- 0.5× to 2.0× playback speed, pitch preserved.gain_db- −20 to +20 dB. Positive gain withuse_limiteron (default) uses SoX's limited gain so it won't clip; negative gain just ducks the level.add_reverb/reverb_amount/reverb_room_scale- the reverb is SoX's classic, with room scale mapping to room size. README recipe: small room (20/25), medium (40/50), large hall (70/80), cathedral (90/95).add_echo/echo_delay/echo_decay- delay in seconds (0.1–2.0), decay how fast repeats fade. Subtle: 0.3/0.3. Canyon: 1.0/0.7.normalize_audio- applies again -nnormalization first in the chain, before everything else. Handy for TTS clips that come out quiet.
The one output, audio, is the same AUDIO dict you put in - same type, ready to chain.
Installing it - the SoX catch
The Python side installs like any pack: ComfyUI Manager search "ComfyUI-Audio_Quality_Enhancer," or
cd ComfyUI/custom_nodes
git clone https://github.com/ShmuelRonen/ComfyUI-Audio_Quality_Enhancer
cd ComfyUI-Audio_Quality_Enhancer
pip install -r requirements.txt
But the actual dependency is SoX the binary, and it's not installed by pip. This is where people get burned:
- Windows: download the installer from the SoX SourceForge page (
sox-14.4.2-win32.exe). The node auto-detects it inC:\Program Files (x86)\sox-14-4-2\sox.exe- no PATH editing needed, and thesox_pathinput lets you point at a custom location. - Linux/WSL:
sudo apt-get install sox. - macOS:
brew install sox.
One quirk worth knowing: the whole pack's requirements.txt (torch, librosa, soundfile…) installs even though this node only needs soundfile, torch, and the SoX binary. The Enhancer sibling pulls in the heavy stuff, and pip shares one Python environment - you can't install just the light half.
Troubleshooting
- "Nothing happened" but the node returned audio. That's the signature failure: if SoX can't be found, the node prints
SoX executable not foundto the console and returns your original audio unchanged. Check the terminal, not the graph - the graph looks successful either way. - Effects are on but you hear nothing. Reverb and echo are opt-in booleans.
add_reverbandadd_echomust be flipped totrue; their amount/delay sliders do nothing on their own. - Clipping on positive gain. If you turn
use_limiteroff and pushgain_dbhigh, you'll get distortion. The limiter exists precisely so you don't have to baby the gain.
It's a small, no-frills node with exactly two jobs - instant DSP effects and a clean AUDIO passthrough - and it does both without touching your GPU. For the price of installing SoX, it's the fastest pitch-and-reverb pipeline in ComfyUI.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | — | |
| pitch_shift | FLOAT | 0.0-12–12 | — |
| speed_factor | FLOAT | 1.000.5–2 | — |
| sox_pathopt | STRING | sox | — |
| gain_dbopt | FLOAT | 0.0-20–20 | — |
| use_limiteropt | BOOLEAN | true | — |
| normalize_audioopt | BOOLEAN | false | — |
| add_reverbopt | BOOLEAN | false | — |
| reverb_amountopt | FLOAT | 500–100 | — |
| reverb_room_scaleopt | FLOAT | 500–100 | — |
| add_echoopt | BOOLEAN | false | — |
| echo_delayopt | FLOAT | 0.50.1–2 | — |
| echo_decayopt | FLOAT | 0.50.1–0.9 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |