How to remove background noise from podcast
- Step 1Drop your podcast recording onto the tool — Use the ai-noise-reducer page. It accepts a single audio file (MP3, WAV, FLAC, M4A) or a video file — FFmpeg pulls the audio track automatically. Files stay on your device.
- Step 2Pick an output format — The only control is Output format: WAV (default, lossless 16-bit), MP3, FLAC, or M4A (AAC). There is no strength or mix slider — RNNoise applies a fixed, trained suppression. Choose WAV if you will edit further; MP3/M4A if this is the final file.
- Step 3Run the denoise — FFmpeg 8.1 decodes and resamples to 48 kHz mono float, RNNoise cleans each 480-sample frame on your CPU, and the cleaned audio is re-wrapped as 16-bit WAV. Lossy targets (MP3/M4A) are then re-encoded at 192 kbps.
- Step 4Note the mono downmix — RNNoise is mono-only, so a stereo source is downmixed to one channel. For a solo podcast this is fine — voice is centred anyway. If you need true stereo, denoise before you pan, or keep the original stereo for non-voice beds.
- Step 5Download and audition the result — Listen on the worst monitoring you expect listeners to use (phone speaker, cheap earbuds). The steady bed should be gone; the voice should sound natural, not gated.
- Step 6Hand off to the rest of your chain — Denoise is step one. Send the clean WAV to silence-stripper to cut dead air, then loudness-normalizer for -16 LUFS, or run the whole sequence at once with podcast-master.
What the podcast denoiser does — and does not — touch
RNNoise is a speech-trained network, not a configurable gate. These are the controls that actually exist plus the things people assume exist but do not.
| Aspect | Behaviour | Why |
|---|---|---|
| Output format | WAV (default) / MP3 / FLAC / M4A (AAC) — the only control on the page | needsOptions is false; format is the lone user choice |
| Denoise strength | Fixed — no slider, no intensity/mix knob | RNNoise is a trained NN, not a threshold-based noise gate |
| Channels | Always mono out — stereo is downmixed before processing | RNNoise operates on a single 48 kHz mono stream |
| Sample rate | Internally forced to 48 kHz for the network | RNNoise is defined for 48 kHz / 480-sample frames |
| WAV bit depth | 16-bit PCM (pcm_s16le) | The cleaned float buffer is re-wrapped to 16-bit on export |
| MP3 / M4A bitrate | 192 kbps CBR-equivalent on re-encode | Fixed bitrate in the re-encode stage (encoderForExt) |
Noise types vs RNNoise effectiveness
RNNoise excels at steady, broadband, non-speech noise. It is weaker on transient and tonal-musical content. Use the right tool for the job.
| Noise on the track | RNNoise result | If it falls short |
|---|---|---|
| HVAC / AC hum, room tone | Strongly suppressed — the model's core training case | Already the best fit |
| Laptop / desk fan whine | Strongly suppressed | Already the best fit |
| Distant traffic / street rumble | Well suppressed under speech | Add a high-pass via voice-eq for sub-80 Hz rumble |
| Keyboard clicks, mouth clicks | Partially reduced (transient, not steady) | Edit out manually with audio-splitter |
| Mic plosives / pops | Not the target — these are speech-adjacent transients | Use a high-pass in voice-eq |
| Background music / TV | Poor — tonal content overlaps the speech band | RNNoise cannot separate music from voice |
Cookbook
Concrete podcast-cleanup scenarios. The 'before' is the raw problem; the 'after' is what RNNoise plus the right format choice produces. No find/replace — each case maps to a real pipeline decision.
Solo episode recorded next to a noisy desktop
A solo host records a USB mic two feet from a gaming PC. The fan adds a steady ~3 kHz whine plus low rumble. RNNoise's core competency — the whine vanishes, the voice is untouched.
Input: episode-12-raw.wav (stereo, 44.1 kHz, 48 min, fan whine throughout) Output format: WAV Pipeline: FFmpeg 8.1: decode -> 48 kHz MONO 32-bit float RNNoise: suppress steady fan bed, frame by frame Re-wrap: 16-bit PCM WAV, 48 kHz, mono Output: episode-12-raw-clean.wav (mono, 48 kHz, 48 min) Note: stereo -> mono is expected; a solo voice is centred anyway.
Field-recorded segment with AC hum, exported as MP3
An interview segment cut into a podcast was recorded in a cafe with an air-con unit overhead. You want a publish-ready MP3 in one step.
Input: cafe-segment.m4a (mono, 32 min) Output format: MP3 Result: RNNoise removes the AC hum bed Re-encode -> MP3 @ 192 kbps Output: cafe-segment-clean.mp3 Why 192k: fixed re-encode bitrate; transparent for spoken voice.
Two-host stereo file where each host is on a channel
Some setups record host A hard-left and host B hard-right. RNNoise downmixes to mono, which sums both voices into one channel. That is fine for a mono podcast feed but collapses the L/R separation.
Input: two-host.wav (stereo: L = host A, R = host B) RNNoise downmix: mono = (L + R) * 0.5 Output: two-host-clean.wav (MONO — both hosts summed) If you need to keep them separate: 1. Split channels first: /audio-tools/channel-splitter 2. Denoise each mono file independently 3. Re-combine if desired
Denoise then strip silence then normalise (full chain)
The recommended order for a finished episode. Denoise first so the silence detector sees a clean noise floor, then cut pauses, then hit a loudness target.
Step 1 ai-noise-reducer raw.wav -> clean.wav (WAV out) Step 2 silence-stripper clean.wav -> tight.wav (-40 dB, 0.5 s) Step 3 loudness-normalizer tight.wav -> final.mp3 (-16 LUFS) Or run all three at once: /audio-tools/podcast-master
Episode with background music under the host — wrong tool
A host talks over a music bed. RNNoise is speech-trained and treats tonal music as noise it cannot cleanly separate — you get artefacts on the music and little benefit on the voice.
Input: intro-with-music.wav (voice + music bed) RNNoise output: music smeared, voice barely cleaner Better approach: - Mix the music in AFTER denoising the dry voice, OR - Skip denoise on music-bed sections entirely RNNoise cannot do source separation.
Edge cases and what actually happens
Stereo input comes back as mono
By designRNNoise processes a single 48 kHz mono stream, so a stereo file is downmixed (L+R averaged) before denoising and the output is mono. For a solo or summed-mono podcast this is the correct result. If you must preserve stereo imaging, split channels with channel-splitter, denoise each, and recombine.
Background music under the voice gets mangled
Not supportedRNNoise is a speech denoiser, not a source separator. Tonal, musical content overlaps the speech band and the network cannot tell music from noise. Expect artefacts and little gain. Denoise the dry voice first, then add music afterward.
Keyboard / mouth clicks survive
ExpectedClicks are short transients, not the steady broadband bed RNNoise targets. Some are reduced, but the model is built for continuous noise. Edit isolated clicks manually with audio-splitter or audio-trimmer.
RNNoise WASM module fails to load
ErrorIf the ~85 KB RNNoise WebAssembly bundle cannot load, processing throws 'RNNoise WASM module is unavailable.' This usually means a very old browser or a network block on the dynamic import. Use an up-to-date Chromium, Firefox, or Safari and retry.
File over your tier's size cap is rejected
413-style rejectAI denoise runs against the aiDenoise preview quota: Free is capped at 10 MB per file, Pro at 50 MB. A 90-minute lossless episode easily exceeds those. Trim the file first with audio-trimmer, export a smaller MP3, or upgrade to Pro+Media for files up to 100 GB.
Daily free denoise already used
Quota exhaustedThe free tier allows one AI-denoise run per day (resets at UTC midnight); Pro allows five. When the daily count is spent the run is blocked with an upgrade prompt. Pro+Media (£19/mo) removes the cap entirely.
Very high noise floor — voice still slightly thin after denoise
ExpectedWhen noise is nearly as loud as the voice, removing it can leave the voice sounding thin because the network had little clean signal to preserve. Follow with voice-eq to add warmth or speech-leveler to even the dynamics.
Output bitrate is fixed at 192 kbps for MP3/M4A
By designThe re-encode stage uses a fixed 192 kbps bitrate for lossy targets. There is no bitrate control on this tool. If you need a specific bitrate, export WAV here and run it through bitrate-changer.
Sample rate is forced to 48 kHz
By designRNNoise is defined for 48 kHz, so input is resampled to 48 kHz mono regardless of its original rate, and the output WAV is 48 kHz. If your pipeline needs 44.1 kHz, convert afterward with sample-rate-converter.
Frequently asked questions
Is my podcast uploaded anywhere?
No. RNNoise and FFmpeg 8.1 both run as WebAssembly inside your browser tab. The audio is decoded, denoised, and re-encoded entirely on your device — nothing is sent to a server or a cloud GPU. This is why it is safe for unreleased episodes and embargoed interviews.
Can I control how aggressive the noise removal is?
No. RNNoise is a fixed, pre-trained neural network — there is no strength, intensity, or wet/dry mix slider. The only control on the page is the output format. The trade-off is consistency: the same file always denoises identically, which keeps a multi-episode series uniform.
Will it remove a background music bed?
No — RNNoise is trained on speech versus steady noise, not on separating music from voice. Music is tonal and overlaps the speech band, so the model both fails to remove it cleanly and adds artefacts. Mix music in after you denoise the dry voice instead.
Why is my stereo recording mono after denoising?
RNNoise operates on a single mono channel, so stereo input is downmixed (left and right averaged) before processing. For a solo or summed-mono podcast that is the intended outcome. To keep stereo, split the channels first with channel-splitter, denoise each, and recombine.
What formats can I export?
WAV (default, lossless 16-bit), MP3, FLAC, or M4A (AAC). WAV is best if you will run silence-stripping or loudness normalisation next; MP3 or M4A if this is the final publish file. Lossy formats are re-encoded at 192 kbps.
Does it work on a video file?
Yes. The tool accepts video as well as audio — FFmpeg extracts the audio track, denoises it, and returns an audio file. If you need to put the cleaned audio back into the video, that is a separate mux step outside this tool.
How big a file can I denoise?
AI denoise uses the aiDenoise preview quota: Free is limited to a 10 MB file and one run per day, Pro to 50 MB and five runs per day. Pro+Media (£19/mo) removes both caps and supports files up to 100 GB. A long lossless episode usually needs Pro+Media or an MP3 export first.
Is this the same RNNoise that OBS and Discord use?
Yes — it is the RNNoise model (via the @shiguredo/rnnoise-wasm build), the same recurrent-net denoiser those apps ship for real-time voice cleanup. Here it runs offline on a whole file rather than live on a stream.
What is the right order: denoise, then cut silence, then normalise?
Yes, that order. Denoise first so the silence detector and loudness measurement see a clean noise floor. Then strip silence, then normalise loudness. You can chain the steps manually or run podcast-master to do all of it at once.
Why does the output sound a little thin sometimes?
When the original noise was almost as loud as the voice, the network has little clean speech to preserve, so the result can sound thinner. Add body back with voice-eq, or even out the dynamics with speech-leveler after denoising.
Can I batch a whole season at once?
AI denoise processes one file per run, and the free/Pro tiers cap daily runs. Pro+Media is unlimited and allows up to 100 files in a batch. For a season, Pro+Media is the practical tier; on free you would be limited to one episode per day.
Does it change the sample rate?
Yes — input is resampled to 48 kHz mono because that is what RNNoise requires, and the output WAV is 48 kHz. If your delivery spec needs 44.1 kHz, convert the cleaned file afterward with sample-rate-converter.
Privacy first
Every JAD Audio tool runs entirely in your browser via FFmpeg (WebAssembly) and RNNoise. Your audio files never leave your device — verified by zero outbound network requests during processing.