0
$\begingroup$

I'm trying to understand spectral subtraction as described in the paper Steven F. Boll - Suppression of Acoustic Noise in Speech Using Spectral Subtraction. However, I'm having some trouble understanding mathematically how the Fourier transform of the noise is estimated. The equations start with noisy signal = signal + noise i.e.

$$x(k) = s(k) + n(k)$$

for $k = 0, 1, ..., L - 1$. Taking their Fourier transforms leads to

$$X(e^{j\omega}) = S(e^{j\omega}) + N(e^{j\omega}).$$

Now, the goal is to estimate $N$ with $\hat{N}$ and this is where I get confused. The paper says

The magnitude $|N(e^{j\omega})|$ of $N(e^{j\omega})$ is replaced by its average value $\mu(e^{j\omega})$ taken during nonspeech activity, and the phase $\theta_N(e^{j\omega})$ of $N(e^{j\omega})$ is replaced by the phase $\theta_x(e^{j\omega})$ of $X(e^{j\omega})$.

I'm trying to put this mathematically but I'm having some trouble. A few lines later it says

$$\hat{S}(e^{j\omega}) = H(e^{j\omega}) X(e^{j\omega})$$

where

$$H(e^{j\omega}) = 1 - \frac{\mu(e^{j\omega})}{|X(e^{j\omega})|}$$ $$\mu(e^{j\omega}) = E\{|N(e^{j\omega})|\}.$$

So, it seems to me like the whole thing is about computing $\mu$ from the nonspeech activity. But, how does one do that?

My first guess was something like this: say that we have nonspeech activity from $a, ..., a + m - 1$ and so we want to use this to "estimate" the noise. So, I thought about essentially "pretending" the noise was

$$\hat{n}(k) = \begin{cases} x(k) & k \in \{a, ..., a + m - 1\}. \\ 0 & \text{otherwise} \end{cases}$$

But, this doesn't make sense since we want to assume stationary noise and this is not stationary. I can't really come up with a reasonable second guess.

$\endgroup$
1
  • $\begingroup$ the goal is not to estimate N but to remove N from signal. N is LOCALLY stationary, meaning noise can change from frame to frame, but N within each frame noise is assumed to have same mean and deviation values thus calling it stationary within a given frame. The duration of each frame is L samples, but the actual signal is M long M >>L. So N is estimated on each L-long frame and |N| is approximated by its mean value. For each L-long frame you have to do all shown in Figure 3 block diagram : Hanning, FFT, |.| , subtract bias, half-w rectify, reduce noise residual, tell if speech, att, IFFT . $\endgroup$ Commented Oct 23 at 14:42

1 Answer 1

0
$\begingroup$

If you assume the noise to be stationary, you can pre-compute $\tilde{N}$ on a noise-only section.

If the noise is non-stationary (people talking in a busy street for example), that’s where it gets tricky. You need a VAD (Voice Activity Detector). The authors refer to it as a “voice switch” but do not go into implementation details unfortunately.

A Simple VAD can be implemented as a simple energy tracker with thresholding: noise-only sections have lower energy than noise+speech.

$\endgroup$
4
  • $\begingroup$ Thanks! Can you give me the math for how to computer $\widehat{N}$ from the noise only section when the noise is stationary (or point me somewhere that lays it out)? I'm having some trouble figuring out the details. $\endgroup$ Commented Sep 23 at 23:19
  • $\begingroup$ Also, when you say "energy", how is that defined? Is it just something like $|x(k)|$? $\endgroup$ Commented Sep 23 at 23:19
  • $\begingroup$ No problem! For your first question , look at section E “Magnitude averaging”! Basically you take the noise signal, and compute spectra (plural of “spectrum”) of overlapping frames, then average the spectra together to get your estimate. For your second question, energy can be computed in the time or frequency domain. In the time domain, it’s defined as $\sum_{n}|x(n)|^2$ $\endgroup$
    – Jdip
    Commented Sep 24 at 1:27
  • $\begingroup$ @roundsquare any luck? $\endgroup$
    – Jdip
    Commented Sep 29 at 17:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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