1. Field of the Invention
The invention relates to a method of cascading noise reduction algorithms to avoid speech distortion.
2. Background Art
For years, algorithm developers have improved noise reduction by concatenating two or more separate noise cancellation algorithms. This technique is sometimes referred to as double/multi-processing. However, the double/multi-processing technique, while successfully increasing the dB improvement in signal-to-noise ratio (SNR), typically results in severe voice distortion and/or a very artificial noise remnant. As a consequence of these artifacts, double/multi-processing is seldom used.
For the foregoing reasons, there is a need for an improved method of cascading noise reduction algorithms to avoid speech distortion.
It is an object of the invention to provide an improved method of cascading noise reduction algorithms to avoid speech distortion.
The invention comprehends a method for avoiding severe voice distortion and/or objectionable audio artifacts when combining two or more single-microphone noise reduction algorithms. The invention involves using two or more different algorithms to implement speech enhancement. The input of the first algorithm/stage is the microphone signal. Each additional algorithm/stage receives the output of the previous stage as its input. The final algorithm/stage provides the output.
The speech enhancing algorithms may take many forms and may include enhancement algorithms that are based on known noise reduction methods such as spectral subtraction types, wavelet denoising, neural network types, Kalman filter types and others.
According to the invention, by making the algorithms sufficiently different, the resulting artifacts and distortions are different as well. Consequently, the resulting human perception (which is notoriously non-linear) of the artifact and distortion levels is greatly reduced, and listener objection is greatly reduced.
In this way, the invention comprehends a method of cascading noise reduction algorithms to maximize noise reduction while minimizing speech distortion. In the method, sufficiently different noise reduction algorithms are cascaded together. Using this approach, the advantage gained by the increased noise reduction is generally perceived to outweigh the disadvantages of the artifacts introduced, which is not the case with the existing double/multi-processing techniques.
At the more detailed level, the invention comprehends a two-part or two-stage approach. In these embodiments, a preferred method is contemplated for each stage.
In the first stage, an improved technique is used to implement noise cancellation. A method of noise cancellation is provided. A noisy signal resulting from an unobservable signal corrupted by additive background noise is processed in an attempt to restore the unobservable signal. The method generally involves the decomposition of the noisy signal into subbands, computation and application of a gain factor for each subband, and reconstruction of the speech signal. In order to suppress noise in the noisy speech, the envelopes of the noisy speech and the noise floor are obtained for each subband. In determining the envelopes, attack and decay time constants for the noisy speech envelope and noise floor envelope may be determined. For each subband, the determined gain factor is obtained based on the determined envelopes, and application of the gain factor suppresses noise.
At a more detailed level, the first stage method comprehends additional aspects of which one or more are present in the preferred implementation. In one aspect, different weight factors are used in different subbands when determining the gain factor. This addresses the fact that different subbands contain different noise types. In another aspect, a voice activity detector (VAD) is utilized, and may have a special configuration for handling continuous speech. In another aspect, a state machine may be utilized to vary some of the system parameters depending on the noise floor estimation. In another aspect, pre-emphasis and de-emphasis filters may be utilized.
In the second stage, a different improved technique is used to implement noise cancellation. A method of frequency domain-based noise cancellation is provided. A noisy signal resulting from an unobservable signal corrupted by additive background noise is processed in an attempt to restore the unobservable signal. The second stage receives the first stage output as its input. The method comprises estimating background noise power with a recursive noise power estimator having an adaptive time constant, and applying a filter based on the background noise power estimate in an attempt to restore the unobservable signal.
Preferably, the background noise power estimation technique considers the likelihood that there is no speech power in the current frame and adjusts the time constant accordingly. In this way, the noise power estimate tracks at a lesser rate when the likelihood that there is no speech power in the current frame is lower. In any case, since background noise is a random process, its exact power at any given time fluctuates around its average power.
To avoid musical or watery noise that would occur due to the randomness of the noise particularly when the filter gain is small, the method further comprises smoothing the variations in a preliminary filter gain to result in an applied filter gain having a regulated variation. Preferably, an approach is taken that normalizes variation in the applied filter gain. To achieve an ideal situation, the average rate should be proportional to the square of the gain. This will reduce the occurrence of musical or watery noise and will avoid ambience. In one approach, a pre-estimate of the applied filter gain is the basis for adjusting the adaption rate.
The first stage algorithm 14 receives its input signal from block 12 as the system input signal. Signal estimation occurs at block 20, while noise estimation occurs at block 22. Block 24 depicts gain evaluation. The determined gain is applied to the input signal at 26 to produce the stage output.
The invention involves two or more different algorithms, and algorithm N is indicated at block 16. The input of each additional stage is the output of the previous stage with block 16 providing the final output to conversion block 18. Like algorithm 14, algorithm 16 includes signal estimation block 30, noise estimation block 32, and gain evaluation block 34, as well as multiplier 36 which applies the gain to the algorithm input to produce the algorithm output which for block 16 is the final output to block 18.
It is appreciated that the illustrated embodiment in
With reference to
y(n)=s(n)+v(n).
As best shown in
In order to suppress the noise in the noisy speech, the envelopes of the noisy speech (ESP,i(k)) and noise floor (ENZ,i(k)) for each subband are obtained, and using the obtained values a gain factor for each subband is calculated. These envelopes for each subband i, at frame k, are obtained using the following equations:
ESP,i(k)=αESP,i(k−1)+(1−α)|Yi(k)|
and
ENZ,i(k)=βENZ,i(k−1)+(1−β)|Yi(k)|
where |Yi(k)| represents the absolute value of the signal in each subband after the decimation, and the constants α and β are defined as:
where (fs) represents the sample frequency of the input signal, M is the down sampling factor, and speech_estimation_time and noise_estimation_time are time constants that determine the decay time of speech and noise envelopes, respectively.
The constants α and β can be implemented to allow different attack and decay time constants as follows:
and
where the subscript (a) indicates the attack time constant and the subscript (d) indicates the decay time constant.
Example default parameters are:
Speech_attack=0.001 sec.
Speech_decay=0.010 sec.
Noise_attack=4 sec.
Noise_decay=1 sec.
After obtaining the values of ESP,i(k) and ENZ,i(k), the value of the gain factor for each subband is calculated by:
where the constant γ is an estimate of the noise reduction, since in “no speech” periods ESP,i(k)≈ENZ,i(k), the gain factor becomes:
Gi(K)≈1/γ.
After computing the gain factor for each subband, if Gi(k) is greater than 1, Gi(k) is set to 1.
With continuing reference to
Many systems for speech enhancement use a voice activity detector (VAD). A common problem encountered in implementation is the performance in medium to high noise environments. Generally a more complex VAD needs to be implemented for systems where background noise is high. A preferred approach is first to implement the noise cancellation system and then to implement the VAD. In this case, a less complex VAD can be positioned after the noise canceler to obtain results comparable to that of a more complex VAD that works directly with the noisy speech input. It is possible to have, if necessary, two outputs for the noise canceler system, one to be used by the VAD (with aggressive γ′i to obtain the gain factors G′i(k)) and another one to be used for the output of the noise canceler system (with less aggressive and more appropriate γi, corresponding to weight factors for different subbands based on the appropriate environment characteristics). The block diagram considering the VAD implementation is shown in
The VAD decision is obtained using q(n) as input signal. Basically, two envelopes, one for the speech processed by the noise canceler (e′SP(n)), and another for the noise floor estimation (e′NZ(n)) are obtained. Then, a voice activity detection factor is obtained based on the ratio (e′SP(n)/e′NZ(n)). When this ratio exceeds a determined threshold (T), VAD is set to 1 as follows:
The noise cancellation system can have problems if the signal in a determined subband is present for long periods of time. This can occur in continuous speech and can be worse for some languages than others. Here, long period of time means time long enough for the noise floor envelope to begin to grow. As a result, the gain factor for each subband Gi(k) will be smaller than it really needs to be, and an undesirable attenuation in the processed speech (y′(n)) will be observed. This problem can be solved if the update of the envelope noise floor estimation is halted during speech periods in accordance with a preferred approach; in other words, when VAD=1, the value of ESP,i(k) will not be updated. This can be described as:
This is shown in
Different noise conditions (for example: “low”, “medium” and “high” noise condition) can trigger the use of different sets of parameters (for example: different values for γi(k) for better performance. A state machine can be implemented to trigger different sets of parameters for different noise conditions. In other words, implement a state machine for the noise canceler system based on the noise floor and other characteristics of the input signal (y(n)). This is also shown in
An envelope of the noise can be obtained while the output of the VAD is used to control the update of the noise floor envelope estimation. Thus, the update will be done only in no speech periods. Moreover, based on different applications, different states can be allowed.
The noise floor estimation (eNZ(n)) of the input signal can be obtained by:
For different thresholds (T1, T2, . . . , TP) different states for the noise suppressor system are invoked. For P states:
For each state, different parameters (γp, αp, βp and others) can be used. The state machine is shown in
Considering that the lower formants of the speech signal contain more energy and noise information in high frequencies is less prominent than speech information in the high frequencies, a pre-emphasis filter before the noise cancellation process is preferred to help obtain better noise reduction in high frequency bands. To compensate for the pre-emphasis filter a de-emphasis filter is introduced at the end of the process.
A simple pre-emphasis filter can be described as:
ŷ(n)=y(n)−a1·y(n−1)
where a1 is typically between 0.96≦a1≦0.99.
To reconstruct the speech signal the inverse filter should be used:
y′(n)={tilde over (y)}(n)−a1·y′(n−1)
The pre-emphasis and de-emphasis filters described here are simple ones. If necessary, more complex, filter structures can be used.
With reference to
d(n)=s(n)+v(n).
In the case of cascading algorithms d(n) could be the output from the first stage, with v(n) being the residual noise remaining in d(n).
Ideally, the goal of the noise cancellation algorithm is to restore the unobservable s(n) based on d(n). For the purpose of this noise cancellation algorithm, the background noise is defined as the quasi-stationary noise that varies at a much slower rate compared to the speech signal.
This noise cancellation algorithm is also a frequency-domain based algorithm. The noisy signal d(n) is split into L subband signals, Di(k),i=1,2 . . . L. In each subband, the average power of quasi-stationary background noise is tracked, and then a gain is decided accordingly and applied to the subband signals. The modified subband signals are subsequently combined by a synthesis filter bank to generate the output signal. When combined with other frequency-domain modules (the first stage algorithm described, for example), the analysis and synthesis filter-banks are moved to the front and back of all modules, respectively, as are any pre-emphasis and de-emphasis.
Because it is assumed that the background noise varies slowly compared to the speech signal, its power in each subband can be tracked by a recursive estimator
where the parameter αNZ is a constant between 0 and 1 that decides the weight of each frame, and hence the effective average time. The problem with this estimation is that it also includes the power of speech signal in the average. If the speech is not sporadic, significant over-estimation can result. To avoid this problem, a probability model of the background noise power is used to evaluate the likelihood that the current frame has no speech power in the subband. When the likelihood is low, the time constant αNZ is reduced to drop the influence of the current frame in the power estimate. The likelihood is computed based on the current input power and the latest noise power estimate:
and the noise power is estimated as
PNZ,i(k)=PNZ,i(k−1)+(αNZLNZ,i(k)(|Di(k)|2−PNZ,i(k−1)).
It can be observed that LNZ,i(k) is between 0 and 1. It reaches 1 only when |Di(k)|2 is equal to PNZ,i(k−1), and reduces towards 0 when they become more different. This allows smooth transitions to be tracked but prevents any dramatic variation from affecting the noise estimate.
In practice, less constrained estimates are computed to serve as the upper- and lower-bounds of PNZ,i(k). When it is detected that PNZ,i(k) is no longer within the region defined by the bounds, it is adjusted according to these bounds and the adaptation continues. This enhances the ability of the algorithm to accommodate occasional sudden noise floor changes, or to prevent the noise power estimate from being trapped due to inconsistent audio input stream.
In general, it can be assumed that the speech signal and the background noise are independent, and thus the power of the microphone signal is equal to the power of the speech signal plus the power of background noise in each subband. The power of the microphone signal can be computed as |Di(k)|2. With the noise power available, an estimate of the speech power is
PSP,i(k)=max(|Di(k)|2−PNZ,i(k), 0)
and therefore, the optimal Wiener filter gain can be computed as
However, since the background noise is a random process, its exact power at any given time fluctuates around its average power even if it is stationary. By simply removing the average noise power, a noise floor with quick variations is generated, which is often referred to as musical noise or watery noise. This is the major problem with algorithms based on spectral subtraction. Therefore, the instantaneous gain GT,i(k) needs to be further processed before being applied.
When |Di(k)|2 is much larger than PNZ,i(k), the fluctuation of noise power is minor compared to |Di(k)|2, and hence GT,i(k) is very reliable. On the other hand, when |Di(k)|2 approximates PNZ,i(k), the fluctuation of noise power becomes significant, and hence GT,i(k) varies quickly and is unreliable. In accordance with an aspect of the invention, more averaging is necessary in this case to improve the reliability of gain factor. To achieve the same normalized variation for the gain factor, the average rate needs to be proportional to the square of the gain. Therefore the gain factor Goms,i(k) is computed by smoothing GT,i(k) with the following algorithm:
Goms,i(k)=Goms,i(k−1)+(αGG0,i2(k)(GT,i(k)−Goms,i(k−1))G0,i(k)=Goms,i(k−1)+0.25×(GT,i(k)−Goms,i(k−1))
where αG is a time constant between 0 and 1, and G0,i(k) is a pre-estimate of Goms,i(k) based on the latest gain estimate and the instantaneous gain. The output signal can be computed as
Ŝi(k)=Goms,i(k)Di(k).
It can be observed that Goms,i(k) is averaged over a long time when it is close to 0, but is averaged over a shorter time when it approximates 1. This creates a smooth noise floor while avoiding generating ambient speech.
While embodiments of the invention have been illustrated and described, it is not intended that these embodiments illustrate and describe all possible forms of the invention. Rather, the words used in the specification are words of description rather than limitation, and it is understood that various changes may be made without departing from the spirit and scope of the invention.
Number | Name | Date | Kind |
---|---|---|---|
5012519 | Adlersberg et al. | Apr 1991 | A |
6351731 | Anderson et al. | Feb 2002 | B1 |
6377637 | Berdugo | Apr 2002 | B1 |
6415253 | Johnson | Jul 2002 | B1 |
6839666 | Chandran et al. | Jan 2005 | B2 |
7068798 | Hugas et al. | Jun 2006 | B2 |
7072831 | Etter | Jul 2006 | B1 |
7146316 | Alves | Dec 2006 | B2 |
20040064307 | Scalart et al. | Apr 2004 | A1 |
20050240401 | Ebenezer | Oct 2005 | A1 |
Number | Date | Country |
---|---|---|
WO 2004036552 | Apr 2004 | WO |
Number | Date | Country | |
---|---|---|---|
20060074646 A1 | Apr 2006 | US |