Hello Audacity community,
I am working on a personal project where I am coding a Neural Network (NN) (https://en.wikipedia.org/wiki/Artificial_neural_network) to perform automatic “cleaning” of ripped vinyls. Briefly but, a NN is a program that automatically learns to map an input to an output. In this case the input would be in the form of audio recordings with errors (clicks, pops, noise, etc.), and the output would be the same recordings without errors. The NN would therefore have to learn how to turn a new, never seen before, sample with an error into a cleaned version of it.
The project is more of an exercise than anything practically useful. The final outcome would be a program that will be able to automatically detect errors in a ripped vinyl and correct them, without any human input. I know that there are already a few good tools to perform vinyl cleaning (I’ve read good things about ClickRepair) but again, this would be more of an exercise than an attempt to replace any already existing solutions. Below is a simple scheme of how the program would work when correcting errors:
To start, I am concentrating on repairing “pops” and “clicks”, especially the very annoying ones that could damage speakers.
I have already coded most of the program, however, I lack two fundamental ingredients:
- some basic knowledge of what exactly is a pop or click
- a large quantity of “dirty” recordings paired with their “cleaned” counterpart, to train the model on
So far I have been using the NN on a single vinyl track, just to test out how everything works. I have done this by manually repairing the clicks and pops using Audacity’s Repair effect. Unfortunately, perhaps due to my inexperience in cleaning ripped vinyls, my “repaired” version has indeed removed most of the pops, but it has also replaced some of them the with new errors, specifically with faint “beeps” where a pop used to be. This has the consequence of “teaching” the NN to (sometimes) replace pops with faint “beeps” rather than removing them altogether. Furthermore, the time required for this operation makes it feasible to gain some preliminary data in order to test the NN, but not remotely enough to teach it to generalize to completely new audio samples.
One last addition, if the beeps and pops were reproducible manually, one could also perform the inverse operation: introduce errors on a clean recording by synthetically adding them via a program. This solution would indeed increase the speed of obtaining new data, but would have to be used in conjunction with the previously described “traditional” method, so as not to train the NN model too much on artificially produced errors (which, even if similar to the real errors, would probably still be slightly different).
I therefore ask the following questions to the Audacity community:
- Would anybody be willing to share .wav files of before and after click/pop removal?
- Could anybody share insight on click/pop removal, therefore possibly explaining why my results so far replace the pops with faint “beeps”?
- Could anybody help me with some insight as to what a click/pop is, therefore making it possible to reproduce these artificially on clean audio recordings?