I am developing a computer program that removes or reduces the background noise from an audio file using the Simple Kalman Filter. I have implemented the Kalman Filter and a way of obtaining the "sample buffer" for the audio file.
I understand how the Kalman Filter works in terms of the purpose of each of the variables. This is my first time attempting Digital Signal Processing, however, so I am not sure what my measurements are supposed to be in order to use the Kalman Filter correctly.
I've looked at lots of research papers and articles on Noise Filtering, but they have not been helpful.
I'm getting the sense that I need to determine the frequency of the noise or determine the noise wave, and remove it, perhaps by adding the inverse of the noise wave. And that I need to estimate the signal using the signal+noise input, or estimate the noise? Is this correct?
How do I model the Kalman Filter in this particular application in order to perform background noise removal?
I am trying to achieve a similar output to https://audiodenoise.com/
UPDATE 2/15/2022
From my additional research, it seems the simple Kalman Filter deals with white noise, and I need to estimate the signal. The Kalman Gain should be higher for the samples that contain speech and low for the samples that do not contain speech.
I still don't understand, though, what I am measuring. Even if I measured every sample in the audio file individually as a one-dimensional state, then what would I do with this value?
Currently, I have the individual samples as measurements and replace my current sample with the calculated estimate for that iteration. It results in a decrease in amplitude for the entire file, which when re-amplified, reveals the noise again.
Research Papers dealing with Kalman Filter for Audio Denoising
- https://www.researchgate.net/publication/325622133_Speech_Background_Noise_Removal_Using_Different_Linear_Filtering_Techniques
- https://www.researchgate.net/publication/261356618_Speech_enhancement_using_Kalman_Filter_for_white_random_and_color_noise
- https://github.com/mahdimohajeri/Speech-Enhancement-Kalman-Filter
- https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.417.7052&rep=rep1&type=pdf
UPDATE 2/21/2022
I am currently looking into another research paper that seems to be much more specific in how I can implement speech enhancement for the Kalman Filter