An audio noise-reduction demo in HTML5/Javascript.
Use the Open button to select a wave file, or drag and drop onto the wave display. Click on the waveform to play without looping, or click the Loop button (or hit the Space bar) to loop playback (press Space again to stop playback). You can adjust the red L/R markers to delineate the loop.
Clicking the Save button will save whatever is between the L and R markers with the settings applied.
A sample wave file, artificially adulterated with noise, is loaded into the wave display to start with (this is from the Berklee College Sampling Archive, licensed under https://creativecommons.org/licenses/by/3.0/deed.en_US), so you can get started. But you can choose from any noisy audio files you have in your possession.
Wide-band noise, while intrusive, is typically less intense in absolute terms than the signal you want, otherwise you wouldn't have any audible content to salvage in the first place... Any components of the sound below the threshold, as set by the first slider, will be attenuated by the value you set using the second slider, which should catch most of the noise when you find the right settings for your audio. Note that parts of the sound that you want can be close to the threshold of noise too, and if you push for too much reduction you may affect parts of the signal as well as the noise.
The Spectral Weighting control can be tweaked in order to tell the algorithm to try to differentiate tonal peaks from a noisy spectral background. This may mitigate the above-mentioned effect.
An increase in the Perceptual Weighting parameter will make the app attempt to attenuate noise more aggressively at frequency ranges where the noise should be more noticeable to the human ear. For example, noise in the upper-mid range of the audible spectrum is more apparent to the listener than noise at the lower end.
Waveform view and playback powered by wavesurfer.js, licensed under https://creativecommons.org/licenses/by/3.0/deed.en_US, with modifications by myself.