Noise Removal

Post any examples or modules that you want to share here
User avatar
martinvicanek
Posts: 1334
Joined: Sat Jun 22, 2013 8:28 pm

Noise Removal

Post by martinvicanek »

Those of us who grew up before the digital revolution remember tape or cassette recorders. Home recording in the pre DAW era consisted in bouncing tracks while playing along adding stuff. The result was, by todays standards, of a totally inacceptable quality. Each bounce added noise and degraded the payload. I have some such historical recordings with a terrible SNR, and I was curious to try to rescue what was possible. My attempts were not very successful.

Thre tricky part of NR is not to add color to the residual noise. I have been experimenting a lot and finally got something I consider useful. The architecture is similar to a vocoder, where the same audio is supplied to both the carrier and the modulator. Each frame is analyzed and a filter is constructedwhic keeps the strong spectral components and discards the rest.

Have fun.
Attachments
NoiseRemoval2.fsm
Improved transients, added a high shelf filter to make up for lost trebble
(56.71 KiB) Downloaded 1170 times
NoiseRemoval.fsm
First post
(83.21 KiB) Downloaded 1139 times
Last edited by martinvicanek on Sun Aug 05, 2018 10:06 am, edited 2 times in total.
tulamide
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Noise Removal

Post by tulamide »

Hi Martin,

as so often, I'm probably just too stupid to handle the fsm correctly, so bear with me!

I loaded the fsm, loaded one of the many cassette-recordings I have from my early days (too embarrassing to be made public), that I never could rescue satisfyingly. But to my surprise, there's no change in the audio I hear. At one point I even relinked directly to the Amp (to compare the original versus the noise remover), and indeed there is no difference at all.

How am I supposed to use the schematic (for example, I was used to fingerprinting parts of the noise section, which isn't present here)? I'm pretty sure it's something I forget to do.
"There lies the dog buried" (German saying translated literally)
User avatar
martinvicanek
Posts: 1334
Joined: Sat Jun 22, 2013 8:28 pm

Re: Noise Removal

Post by martinvicanek »

Ouch! My stupid mistake! Where is this palmface icon? :oops:
Thanks for reporting, Tula, corrected in the original post.
tulamide
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Noise Removal

Post by tulamide »

Oh wow!

A one-knob real-time noise removal tool without fingerprinting or any of the hassle, other tools have. It's working reliable on different noise sources and strengths and is very effective. The typical issue of losing hi-freq content is due to the nature of noise, and even a wizard like you can't prevent that. I am instantly convinced of this tool. I could get rid of even very severe noise ratios already at -90 to -70 dB, and the resulting sound is at least as good as my attempts of working for half an hour in wavosaur/audacity. Which reminds me to setup wavosaur's VST support to load your remover!

Awesome tool! Thanks for sharing! :ugeek:
"There lies the dog buried" (German saying translated literally)
adamszabo
Posts: 667
Joined: Sun Jul 11, 2010 7:21 am

Re: Noise Removal

Post by adamszabo »

Wow very cool Martin, I just tried it and it works great!
User avatar
Spogg
Posts: 3368
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England
Contact:

Re: Noise Removal

Post by Spogg »

I really want to try this because I’m sure it’s excellent.

But I don’t have a suitable recording, so if anyone can supply or link to one I’d be most grateful. It doesn’t seem a fair test to create one by just adding noise to something. All I find on Google is noise reduction software and tutorials.

Cheers

Spogg
tulamide
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Noise Removal

Post by tulamide »

Spogg wrote:I really want to try this because I’m sure it’s excellent.

But I don’t have a suitable recording, so if anyone can supply or link to one I’d be most grateful. It doesn’t seem a fair test to create one by just adding noise to something. All I find on Google is noise reduction software and tutorials.

Cheers

Spogg

Whatever you're looking for, you'll find it on the wonderful freesound.org. You just need an account (and maybe contribute sounds yourself, but that's not needed, just a reminder from myself) to download files. For this specific task I recommend this soundfile:
https://freesound.org/people/NoiseCollector/sounds/46423/

Happy noise removal! :lol:

EDIT: But you can't really enjoy the elegant efficiency of this tool, if you don't try to reach the same result with tools from audio editors.
"There lies the dog buried" (German saying translated literally)
User avatar
martinvicanek
Posts: 1334
Joined: Sat Jun 22, 2013 8:28 pm

Re: Noise Removal

Post by martinvicanek »

Thanks for the feedback, guys. Spoggs observation indicates that perhaps I should publish this in the music archeology forum? :twisted:
Anyway, while the tool makes a decent job regrading noise suppression, it does smear out transients. A shorter FFT improves on transients at the cost of noise removal quality. I am trying to improve the one without sacrificing the other.
For the inclined reader: The current approach uses a linear phase filter. My plan is to convert that into a minimum phase filter. That way it should retain the spectral characteristics but with a tighter impulse response.
KG_is_back
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: Noise Removal

Post by KG_is_back »

Transient smearing is a common problem with FFT-based filters of all kinds. I have several possible solutions:
1. use wider vertical smoothing - average neighbouring bins to reduce the steepness of the filters.
2. use transient detector to detect peaks and either
a) blend in original audio right around the peaks or
b) lower the threshold or soften the knee or
c) automate smoothing as described in 1.
3. Instead of only calculating absolute value of the voice frequency bins (which effectively creates zero/linear-phase filter, which is ambiguously non-causal) also add some phase-shift to ensure the filter is minimum phase / more causal. That would remove pre-ringing on transients into post-ringing. I'm not sure how this could be done though.
User avatar
martinvicanek
Posts: 1334
Joined: Sat Jun 22, 2013 8:28 pm

Re: Noise Removal

Post by martinvicanek »

Thanks, KG, all valid comments.
1. is equivalent to shorter FFTs. It does help the transients, but it worsens the NR.
2. is interesting but it would have to be done for each bin separately. Not sure what the overall result would be.
3. was my original plan. I succeeded in converting to min phase following JOS https://ccrma.stanford.edu/~jos/filters ... html#19463, however it turned out not to be such a good idea because consecutive frames are no lnger seamless after filtering (as is the case with lin phase).

Anyway, what I did was design a carefully synchronized overlap-add scheme with linear phase filtering and that improved the transients by a factor of two. So I am quite happy with the result now (version 2 at the beginning of this thread).
Post Reply