3
$\begingroup$

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

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

$\endgroup$
7
  • $\begingroup$ I'm trying to think of when I might use a Kalman filter to remove noise in audio, and I'm coming up short. If you have really good time-domain models of both the process generating the audio and the process generating the noise, then you can use the Kalman filter to find a theoretically-optimal filter. It may sound terrible, but in theory it'll be really good. Normally you'd use frequency domain techniques or you'd literally play it by ear, running various filters on the audio and seeing what they sound like. $\endgroup$
    – TimWescott
    Feb 16 at 1:22
  • $\begingroup$ I'm suspecting an XY problem. You seem to be on an unproductive path -- what are you really trying to accomplish? It seems that a better question may be to describe the noise you're trying to cancel (and, specifically, what distinguishes it from the audio you want to keep), and asking for the best method to cancel the noise. Unless this is homework, in which case you should say so, along with telling us what you've tried. $\endgroup$
    – TimWescott
    Feb 16 at 1:25
  • $\begingroup$ @TimWescott the Kalman Filter isn't what's used for noise cancellation? I've read in many research papers that entering audio through a filter such as the Kalman Filter is an optimal way to remove noise. $\endgroup$
    – Marvin
    Feb 16 at 1:26
  • $\begingroup$ @TimWescott It is not a homework question. My goal is to remove noise from my audio inputs, and I am quite sure that the noise is white noise. The signal itself is human English speech, while the noise is likely coming from a machine. $\endgroup$
    – Marvin
    Feb 16 at 1:28
  • $\begingroup$ @TimWescott I see how it seems like an XY problem, but I am confident that the Kalman Filter can and has been used to remove noise in audio. Take a look at this paper for example. Or am I missing something? $\endgroup$
    – Marvin
    Feb 16 at 2:23

1 Answer 1

0
$\begingroup$

Using the AMS-based modulation-domain Kalman Filtering framework, this can be done.

$\endgroup$
1
  • $\begingroup$ Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center. $\endgroup$
    – Community Bot
    Feb 27 at 20:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.