I am working on audio processing and need to seperate noisy audio files from cleaner audio files. For that I need some "measure of noise" for each audio file.
My input is a list of audio files.
The audio contains call data and hence can sometimes contain traffic and other noise.
Is there a way I can seperate the noisy files from the non noisy files?
I am not much interested in noise reducers as of now. My main focus is to quantify and classify the noisy audio from the non noisy one.
And I’d prefer a non deep learning solution.
Came across SNR, which basically divided the mean by std deviation of the data array (of audio file), but realised that the it requires all the values to be non negative, while my wavefile function from scipy returned amplitude for the wave file which was both positive and negative.
Other than this, other implementations of SNR required signal and noise seperately to calculate the SNR, but since I don’t have the signal and noise seperate, neither do I have any well defined definition of noise, I am not able to apply any SNR.
I am implementing all of this in python and have come across library like noisereduce. But that reduces the noise altogether and sometimes signal also.