4 ms·
How would one go about removing the pops and clicks from recorded audio programmatically? I really like some of the audio here but it needs some post processin
by matt_wulfeck 9y ago
How would one go about removing the pops and clicks from recorded audio programmatically?
I really like some of the audio here but it needs some post processing. The only thing I can find to do it is audacity and it doesn't look very friendly to scripting.
- lisper 9y agoThose pops and clicks are part of the charm!
- paulmd 9y agoI was musing about this last night. Obviously there are standardized de-noise utilities (and I'm sure much better minds than I have given a lot of thought to those) but the fact that we have four separate recordings gives us more options. To outline the starting assumption and desired ending points, what we have are four tracks with different needle sizes. The smaller needles tend to "wobble" in the track more (will pop/hiss more) but the larger sizes may miss fine detail (treble) that the smaller needles pick up. The assertion of the Internet Archive is that the needle that is closest in size to the one used to record the track will produce the best output, but again we are not limited to just a single track, we can programmatically combine them to produce a better output. The desired end-goal is a "clean" track with maximal spectral quality and minimal pop/hiss. I think there are two distinct tasks here. Maximizing spectral quality and de-popping the track. For the first task, my layman's description of "maximizing spectral quality" would be that we combine the frequency ranges that each track is "best" at. In other words the finest needle has the best treble, while the biggest needle has the cleanest bass. That might be implemented by some kind of averaging, or a weighted average (eg weight tracks that are "most different" from the average track, or from the cleanest track). Then you de-pop the resulting track. In terms of machine learning, this should be something that is amenable to deep learning. If you train a net to identify what a "pop" or "hiss" is then you can have it directly produce a clean output, or produce a "pop/hiss track" that you can then subtract from the input waveform (same thing). If you want something more programmatic, you could again play around with generating a "noise track" by subtracting the "clean" signal (biggest needle) from the "most detailed" signal (finest needle), perhaps also repeating this with each other track as well. The "noise track" would still have some signal inside it and you would need to apply some other method to further separate that out, but you would be working only on a portion of the total signal so in theory you would lose less detail than working on the whole signal.
- flavio81 9y agoAt the end it is part of the long-standing problem of being able to differentiate "noise" (the pops and clicks) versus "data" (the audio of the recorded program). If anything, let me tell you that "clicks&pops" can be greatly minimized simply by using a better "turntable+tonearm+cartridge" combination!!