DSPRelated.com
Forums

Audio - Noise removal

Started by hurry February 12, 2007
Hi

I am using Kalman filter in building a noise removal tool for speech
signal. The questions I am faced with are:

a) To find right estimate of Signal variance
b) To find right estimate of Noise variance

I do a rough estimate of signal variance from LPC analysis of the
noisy i/p and amd updating noise variance during silence period.

But, with this technique a short lived noise during "silence period"
will be treated same as a background noise and the signal will be
filtered assuming the new updated noise variance.

To circumvent this and to make a judgement of whether the noise is
transitory or a background noise, I am planning to look at the
statistics of the filtered o/p.

The method is to compare the updated value of noise variance, during
the silent period, with variance of the (noisy signal - filtered o/p).

It would be highly appreciated if some of you can add your valuble
comments on this method.

Regards,
Hurry.


hurry wrote:

> Hi > > I am using Kalman filter in building a noise removal tool for speech > signal.
Are you trying to do the denoising in realtime or it is about the enhancement of the recordings? I.e. does the processing have to be causal? The direct application of the Kalman filter will not do much of improvement; you will need more complex model. The questions I am faced with are:
> > a) To find right estimate of Signal variance > b) To find right estimate of Noise variance
This is difficult. Speech is very unstationary. Most of the denoisers assume that the noise is stationary whereas the speech isn't, so they emphasize the changes in the spectrum.
> I do a rough estimate of signal variance from LPC analysis of the > noisy i/p
This estimate is going to be valid for a very short time (at the order of 10ms).
> and amd updating noise variance during silence period.
Is there a clear distinction between the speech and the noise? That's another problem.
> But, with this technique a short lived noise during "silence period" > will be treated same as a background noise and the signal will be > filtered assuming the new updated noise variance.
Agreed.
> To circumvent this and to make a judgement of whether the noise is > transitory or a background noise, I am planning to look at the > statistics of the filtered o/p. > The method is to compare the updated value of noise variance, during > the silent period, with variance of the (noisy signal - filtered o/p).
Can you please expain it with more details.
> It would be highly appreciated if some of you can add your valuble > comments on this method. > Regards, > Hurry.
Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
On Feb 12, 7:38 pm, "hurry" <hurrynar...@gmail.com> wrote:
> Hi > > I am using Kalman filter in building a noise removal tool for speech > signal. The questions I am faced with are: > > a) To find right estimate of Signal variance > b) To find right estimate of Noise variance > > I do a rough estimate of signal variance from LPC analysis of the > noisy i/p and amd updating noise variance during silence period. > > But, with this technique a short lived noise during "silence period" > will be treated same as a background noise and the signal will be > filtered assuming the new updated noise variance. > > To circumvent this and to make a judgement of whether the noise is > transitory or a background noise, I am planning to look at the > statistics of the filtered o/p. > > The method is to compare the updated value of noise variance, during > the silent period, with variance of the (noisy signal - filtered o/p). > > It would be highly appreciated if some of you can add your valuble > comments on this method. > > Regards, > Hurry.
Are you using a true Kalman filter (ie are you updating a Ricatti equation) or are you implementing a stationary Kalman filter (over a short time period) or Wiener filter? In eitehr case you need a voice activity detector to get at the noise and this is a major problem what with teh noise and speech rapidly changing. The better the VAD the better. F.
@ Vladimir Vassilevsky:

Hi,
Answering your questions:

> Are you trying to do the denoising in realtime or it is about the > enhancement of the recordings? I.e. does the processing have to be causal?
It is enhancement of recordings and need not be real time.
> This is difficult. Speech is very unstationary. Most of the denoisers > assume that the noise is stationary whereas the speech isn't, so they > emphasize the changes in the spectrum.
The filter is constantly updated and so signal variance from LPC is only for that particular frame ( my frame size is close to 10ms ).
> Is there a clear distinction between the speech and the noise? That's > another problem.
The VAD which I am using works good enough for speech signals ( if not for music, which is not of interest now ) so, a noise and a speech signal can be distinguished.
> > To circumvent this and to make a judgement of whether the noise is > > transitory or a background noise, I am planning to look at the > > statistics of the filtered o/p. > > The method is to compare the updated value of noise variance, during > > the silent period, with variance of the (noisy signal - filtered o/p). > > Can you please expain it with more details.
The frame in picture is a transition frame ( i.e, VAD' s decision as a signal frame, right after a transitory noise frame). Let R1 be the noise variance detected for the noisy frame. Let Q signal variance and let R2 noise variance be the right values of the present frame. The mistake here is, while processing the new frame my noise variance will be the newly updated value R1 instead R2. What I suggest is, if my signal and noise vriance estimates are correct ( Let us presently assume my Q value is more or less right ) then, the variance of "W" should be closer to my noise variance estimate. where W is, W = noisy signal - filtered o/p Please feel free to question if I had not made the point clear. Regards, Hurry.
On Feb 13, 4:55 am, minfitl...@yahoo.co.uk wrote:
> On Feb 12, 7:38 pm, "hurry" <hurrynar...@gmail.com> wrote: > > > > > Hi > > > I am using Kalman filter in building a noise removal tool for speech > > signal. The questions I am faced with are: > > > a) To find right estimate of Signal variance > > b) To find right estimate of Noise variance > > > I do a rough estimate of signal variance from LPC analysis of the > > noisy i/p and amd updating noise variance during silence period. > > > But, with this technique a short lived noise during "silence period" > > will be treated same as a background noise and the signal will be > > filtered assuming the new updated noise variance. > > > To circumvent this and to make a judgement of whether the noise is > > transitory or a background noise, I am planning to look at the > > statistics of the filtered o/p. > > > The method is to compare the updated value of noise variance, during > > the silent period, with variance of the (noisy signal - filtered o/p). > > > It would be highly appreciated if some of you can add your valuble > > comments on this method. > > > Regards, > > Hurry. > > Are you using a true Kalman filter (ie are you updating a Ricatti > equation) or are you implementing a stationary Kalman filter (over a > short time period) or Wiener filter? > > In eitehr case you need a voice activity detector to get at the noise > and this is a major problem what with teh noise and speech rapidly > changing. The better the VAD the better. > > F.
I think I have answered your questions in my reply to the previous post. Please, let me know your views on that. Regards, Hurry.