Skip to main content

Remove noise from audio online

Remove background noise with visual noise floor analysis and A/B preview.

Free & unlimited
All processing happens in your browser — files never leave your device. The audio engine loads once from a CDN.

This is a broadband noise reducer built on ffmpeg's afftdn FFT denoiser, compiled to WebAssembly and run inside your own tab. Before you touch a control, the page scans the file in 50 ms blocks, sorts them by energy, averages the quietest fifth, and reports that figure as your noise floor in dB — so you can see how much steady noise there actually is. The processing chain is a high-pass and low-pass pair tuned to the noise profile you pick, then afftdn with a noise floor set by the strength tier and a reduction amount in dB set by the slider, then an optional 2.5 kHz presence bump to keep voices from going dull, and finally non-local-means denoising when you push past 70 percent or pick heavy. It works on steady noise. It will not remove a door slam.

Key facts about Remove noise from audio online

Key facts about Remove noise from audio online
Engineffmpeg's afftdn FFT denoiser running on single-threaded ffmpeg.wasm, not a machine-learning model
Noise profilesAuto, fan/AC hum, hiss/static, room noise, wind and traffic — each sets a different band-pass
Fan / hum bandHigh-pass 200 Hz, low-pass 12 kHz
Hiss bandHigh-pass 100 Hz, low-pass 8 kHz
Wind bandHigh-pass 220 Hz, low-pass 10 kHz
Traffic bandHigh-pass 180 Hz, low-pass 9 kHz
Room bandHigh-pass 120 Hz, low-pass 11 kHz
Strength tiersLight, medium and heavy set the afftdn noise floor to -25, -22 and -20 dB respectively
Reduction slider0-100 maps to 0-30 dB of afftdn reduction (amount x 0.30)
Voice preserveOn by default: a +2 dB peaking EQ at 2.5 kHz with a 1500 Hz width
Heavy cleanupAt 70 percent or above, or on the heavy tier, anlmdn non-local-means denoising is added to the chain
Noise floor readoutMeasured from the quietest 20 percent of 50 ms blocks, shown in dB before you process
OutputSame container and extension as the input, with a _denoised suffix on the filename
Accepted inputMP3, WAV, OGG, FLAC, AAC and M4A, up to 200 MB

What happens to your file

Your recording never leaves the tab. The page loads ffmpeg compiled to WebAssembly and runs it in a Web Worker on this device; the audio file is written into that worker's in-memory filesystem, filtered, and read back as a blob. The one network request involved is the one-time download of the ffmpeg core itself (about 32 MB) from the jsDelivr CDN, which the browser then caches for every other audio tool here. That request carries no part of your file — it is a fixed public asset, identical for every visitor. The cleaned result is a blob: URL pointing at memory in your own tab, and closing the page discards it.

About this tool

  1. 1

    Drop in the recording

    MP3, WAV, OGG, FLAC, AAC or M4A up to 200 MB. The page decodes it and draws the noise floor analysis, with the measured floor in dB above the graph.

  2. 2

    Pick a use-case preset

    Light hiss, heavy noise, wind, hum, podcast or music. Each one sets the strength tier, the noise profile and the reduction amount together, and is the fastest way to a sane starting point.

  3. 3

    Or set the profile by ear

    Choose fan/AC hum for a low rumble, hiss/static for tape or preamp hiss, wind for outdoor gusts, traffic for road noise, room for general ambience. Each profile changes the band-pass around the denoiser.

  4. 4

    Tune the amount

    The reduction slider is dB of suppression, 0 to 30. Past about 70 the chain switches on non-local-means denoising, which is much stronger and much slower, and where artefacts start.

  5. 5

    Keep voice preserve on for speech

    It adds a gentle 2 dB lift at 2.5 kHz, which is where consonants live. Turn it off for music, where that bump is audible as a hard edge.

  6. 6

    Process and compare

    Play the original and the cleaned version back to back. If the result sounds watery or the voice sounds like it is underwater, drop the amount by twenty and run again.

Specs & compatibility
Input formatsMP3, WAV, OGG, FLAC, AAC, M4A
Maximum file size200 MB — the input, the decoded audio and the output all share one ~2 GB WebAssembly heap
Output formatIdentical to the input; an MP3 comes back as MP3, a WAV as WAV
Re-encodeLossy inputs are decoded and re-encoded once, so an MP3 in, MP3 out pass costs one generation of quality
Engine download~32 MB ffmpeg core, fetched once from the CDN and cached by the browser
SpeedSingle-threaded WebAssembly: expect a few times slower than a native ffmpeg run, and slower again with anlmdn in the chain
BrowsersChrome, Edge, Firefox and Safari 15+; WebAssembly and Web Workers required
CancellationStopping mid-run terminates the worker outright; the next run reloads the engine from cache
  • Look at the noise floor reading before you choose a strength. A floor around -60 dB needs a light touch; anything above -40 dB is genuinely noisy and justifies the heavy tier.
  • Start at a lower reduction than you think you need. Going too far produces the metallic, swirling 'musical noise' artefact that is far more distracting than the hiss you removed.
  • Match the profile to the noise, not to the content: a podcast recorded next to an air conditioner wants the fan profile, not the podcast preset.
  • This removes steady noise. A cough, a chair scrape or a door slam is a one-off event and needs to be cut out, which the trimmer does better.
  • If the source is an MP3, expect one generation of re-encoding. When quality matters, denoise the WAV and encode afterwards.
  • Wind noise is mostly below 220 Hz, which is why the wind profile high-passes there. On a male voice that also thins the low end, so follow with a small low-shelf lift in the equalizer if it sounds hollow.
  • Run noise reduction before normalizing, not after — otherwise you carefully set a level and then change it by removing energy.
  • FFT noise reduction with a measured noise-floor readout in dB
  • Six noise profiles with distinct band-pass settings
  • Light, medium and heavy strength tiers
  • 0-30 dB reduction slider with a live segment meter
  • Optional 2.5 kHz voice-preserve EQ
  • Automatic non-local-means pass for heavy cleanup
  • Original and cleaned playback for direct comparison
  • Output keeps the input's container and extension
  • Cleaning air-conditioner hum out of a room-recorded podcast episode
  • Salvaging an interview recorded next to a busy road
  • Removing preamp hiss from cassette or minidisc transfers
  • Taking wind rumble out of audio recorded on a phone outdoors
  • Tidying up a lecture or meeting recording before running it through a transcriber
  • Reducing fan noise in screen-recorded narration made on a laptop
No, and it is worth being clear about that. There is no machine-learning model anywhere in this tool. It runs ffmpeg's afftdn filter, a classical FFT-based spectral denoiser, together with a band-pass pair and optionally anlmdn non-local-means denoising. That family of filter is excellent at steady, stationary noise — hiss, hum, fan, road rumble — because it can estimate a noise spectrum and subtract it. It is not what a trained speech-enhancement network does, and it will not separate a voice from a competing voice or from music.
That is spectral subtraction going too far. When the denoiser removes more energy per frequency bin than the noise actually occupies, the bins that survive become isolated tones that flicker in and out between frames, which the ear hears as swirling or underwater. The fix is to reduce the amount slider, drop from heavy to medium, and make sure the noise profile matches the real noise so the band-pass is not also cutting signal. Keeping the reduction below about 70 avoids the anlmdn stage, which is the most aggressive part of the chain.
No. Speech and music are non-stationary: their spectrum changes constantly, so there is no steady noise profile to estimate and subtract. This tool is built for noise that sits at a roughly constant level behind the whole recording. Competing voices, background music, traffic horns and one-off bangs will survive the filter, and pushing the amount up to chase them will damage your foreground audio long before it touches them. Source separation is a different problem and needs a different kind of engine.
200 MB. That cap is a memory number, not a policy: ffmpeg.wasm keeps the input, its decoded form and the output inside a single WebAssembly heap of roughly 2 GB, and a compressed input expands several times over when decoded. In practice 200 MB covers a couple of hours of MP3 or around twenty minutes of 16-bit stereo WAV. Processing runs single-threaded, so long files take real time — a one-hour podcast is a several-minute job on a typical laptop, more with heavy cleanup enabled.
Yes. The tool takes the input's extension and writes the same container back out, suffixed with _denoised. An MP3 stays an MP3, a WAV stays a WAV, a FLAC stays a FLAC. For lossy inputs this means one round of re-encoding, because the audio has to be decoded to be filtered. If you care about that generation loss, keep a lossless master, clean that, and encode to MP3 or AAC once at the end using the audio converter.
No. The file is handled entirely inside your browser tab by ffmpeg compiled to WebAssembly, which runs in a Web Worker on your own machine. The only network request the tool makes is fetching the ffmpeg core, a fixed 32 MB public asset served from the jsDelivr CDN and then cached by your browser for every other audio tool on this site. That request contains nothing of yours. The cleaned file exists only as a blob: URL in your tab until you download it, and disappears when you close the page.
View all

Part of Audio tools that run in your browser

Updated

We use anonymous analytics to improve ToolChamp. No personal data is stored or sold. Privacy Policy