Abstract:
A method of reducing noise by cascading a plurality of noise reduction algorithms is provided. A sequence of noise reduction algorithms are applied to the noisy signal. The noise reduction algorithms are cascaded together, with the final noise reduction algorithm in the sequence providing the system output signal. The sequence of noise reduction algorithms includes a plurality of noise reduction algorithms that are sufficiently different from each other such that resulting distortions and artifacts are sufficiently different to result in reduced human perception of the artifact and distortion levels in the system output signal.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     The invention relates to a method of cascading noise reduction algorithms to avoid speech distortion.  
         [0003]     2. Background Art  
         [0004]     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.  
         [0005]     For the foregoing reasons, there is a need for an improved method of cascading noise reduction algorithms to avoid speech distortion.  
       SUMMARY OF THE INVENTION  
       [0006]     It is an object of the invention to provide an improved method of cascading noise reduction algorithms to avoid speech distortion.  
         [0007]     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.  
         [0008]     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.  
         [0009]     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.  
         [0010]     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.  
         [0011]     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.  
         [0012]     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.  
         [0013]     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.  
         [0014]     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.  
         [0015]     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.  
         [0016]     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. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0017]      FIG. 1  is a diagram illustrating cascaded noise reduction algorithms to avoid speech distortion in accordance with the invention, with the algorithms being sufficiently different such that the resulting artifacts and distortions are different;  
         [0018]      FIGS. 2-3  illustrate the first stage algorithm in the preferred embodiment of the invention; and  
         [0019]      FIG. 4  illustrates the second stage algorithm in the preferred embodiment of the invention. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0020]      FIG. 1  illustrates a method of cascading noise reduction algorithms to avoid speech distortion at  10 . The method may be employed in any communication device. An input signal is converted from the time domain to the frequency domain at block  12 . Blocks  14  and  16  depict different algorithms for implementing speech enhancement. Conversion back to the time domain from the frequency domain occurs at block  18 .  
         [0021]     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.  
         [0022]     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 .  
         [0023]     It is appreciated that the illustrated embodiment in  FIG. 1  may employ two or more algorithms. 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. By making the algorithms sufficiently different, the resulting artifacts and distortions are different as well. In this way, this embodiment uses multiple stages that are sufficiently different from each other for processing.  
         [0024]     With reference to  FIGS. 2-3 , this first stage noise cancellation algorithm considers that a speech signal s(n) corrupted by additive background noise v(n) produces a noisy speech signal y(n), expressed as follows: 
 
 y ( n )= s ( n )+ v ( n ). 
 
         [0025]     As best shown in  FIG. 2 , the algorithm splits the noisy speech, y(n), in L different subbands using a uniform filter bank with decimation. Then for each subband, the envelope of the noisy speech and the envelope of the noise are obtained, and based on these envelopes a gain factor is computed for each subband i. After that, the noisy speech in each subband is multiplied by the gain factors. Then, the speech signal is reconstructed.  
         [0026]     In order to suppress the noise in the noisy speech, the envelopes of the noisy speech (E SP,i (k)) and noise floor (E NZ,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: 
 
 E   SP,i ( k )=α E   SP,i ( k −1)+(1−α)| Y   i ( k )|
 
and 
 
 E   NZ,i ( k )=β E   NZ,i ( k −1)+(1−β)| Y   i ( k )|
 
 where |Y i (k)| represents the absolute value of the signal in each subband after the decimation, and the constants α and β are defined as:  
       α   =     ⅇ       -   1           fs   M     ·   speech_estimation     ⁢   _time             
       β   =     ⅇ       -   1           fs   M     ·   noise_estimation     ⁢   _time             
 
 where (f s ) 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. 
 
         [0027]     The constants α and β can be implemented to allow different attack and decay time constants as follows: 
 
 and  
       α   =     {                 α   a     ,           If   ,              Y   i     ⁡     (   k   )            ≥       E     SP   ,   i       ⁡     (     k   -   1     )                       α   d     ,           If   ,              Y   i     ⁡     (   k   )            &lt;       E     SP   ,   i       ⁡     (     k   -   1     )                 ⁢     
     ⁢   β     =     {             β   a     ,           If   ,              Y   i     ⁡     (   k   )            ≥       E     NZ   ,   i       ⁡     (     k   -   1     )                       β   d     ,           If   ,              Y   i     ⁡     (   k   )            &lt;       E     NZ   ,   i       ⁡     (     k   -   1     )                           
 
 where the subscript (a) indicates the attack time constant and the subscript (d) indicates the decay time constant. 
 
         [0028]     Example default parameters are:  
         [0029]     Speech_attack=0.001 sec.  
         [0030]     Speech_decay=0.010 sec.  
         [0031]     Noise_attack=4 sec.  
         [0032]     Noise_decay=1 sec.  
         [0033]     After obtaining the values of E SP,i (k) and E NZ,i (k), the value of the gain factor for each subband is calculated by:  
           G   i     ⁡     (   k   )       =         E     SP   ,   i       ⁡     (   k   )         γ   ⁢           ⁢       E     NZ   ,   i       ⁡     (   k   )               
 
 where the constant γ is an estimate of the noise reduction, since in “no speech” periods E SP,i (k)≈E NZ,i (k), the gain factor becomes: 
 
 G   i ( K )≈1/γ. 
 
         [0034]     After computing the gain factor for each subband, if G i (k) is greater than 1, G i (k) is set to 1.  
         [0035]     With continuing reference to  FIGS. 2 and 3 , several more detailed aspects are illustrated. Different γ can be used for each subband based on the particular noise characteristic. For example, considering the commonly observed noise inside of a car (road noise), most of the noise is in the low frequencies, typically between 0 and 1500 Hz. The use of different γ for different subbands can improve the performance of the algorithm if the noise characteristics of different environments are known. With this approach, the gain factor for each subband is given by:  
           G   i     ⁡     (   k   )       =           E     SP   ,   i       ⁡     (   k   )           γ   i     ⁢       E     NZ   ,   i       ⁡     (   k   )           .         
 
         [0036]     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 canceller 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 canceller 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 canceller 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  FIG. 3 .  
         [0037]     The VAD decision is obtained using q(n) as input signal. Basically, two envelopes, one for the speech processed by the noise canceller (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:  
       VAD   =     {             1   ,             If   ⁢           ⁢         e   SP   ′     ⁡     (   n   )       /       e   NZ     ⁣   ⁣   ′       ⁡     (   n   )           &gt;   T               0   ,         otherwise         .           
 
         [0038]     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 G i (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 E SP,i (k) will not be updated. This can be described as:  
           E     NZ   ,   i       ⁡     (   k   )       =     {                 β   ⁢           ⁢       E     NZ   ,   i       ⁡     (     k   -   1     )         +       (     1   -   β     )     ⁢            Y   i     ⁡     (   k   )                ,             If   ⁢           ⁢   VAD     =   0                   E     NZ   ,   i       ⁡     (     k   -   1     )       ,             If   ⁢           ⁢   VAD     =   1           .           
 
         [0039]     This is shown in  FIG. 3 , by the dotted line from the output of the VAD block to the gain factors in each subband G i (k) of the noise suppressor system.  
         [0040]     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 canceller system based on the noise floor and other characteristics of the input signal (y(n)). This is also shown in  FIG. 3 .  
         [0041]     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.  
         [0042]     The noise floor estimation (e NZ (n)) of the input signal can be obtained by:  
           e   NZ     ⁡     (   n   )       =     {                 β   ⁢           ⁢       e   NZ     ⁡     (     n   -   1     )         +       (     1   -   β     )     ⁢          y   ⁡     (   n   )                ,             If   ⁢           ⁢   Vad     =   0                   e   NZ     ⁡     (     n   -   1     )       ,             If   ⁢           ⁢   Vad     =   1           .           
 
         [0043]     For different thresholds (T 1 , T 2 , . . . , T P ) different states for the noise suppressor system are invoked. For P states:  
         [0044]     State — 1, if 0&lt;T&lt;T 1    
         [0045]     State — 2, if T 1 &lt;T&lt;T 2    
         [0046]     State_P, if T p-1 &lt;T&lt;T p    
         [0047]     State_P, if T P-1 &lt;T&lt;T P    
         [0048]     For each state, different parameters (γ p , α p , β p  and others) can be used. The state machine is shown in  FIG. 3  receiving the output of the noise floor estimation.  
         [0049]     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.  
         [0050]     A simple pre-emphasis filter can be described as: 
 
 ŷ ( n )= y ( n ) −a   1   ·y ( n −1) 
 
 where a 1  is typically between 0.96≦a 1 ≦0.99. 
 
         [0051]     To reconstruct the speech signal the inverse filter should be used: 
 
 y′ ( n )= {tilde over (y)} ( n )− a   1   ·y′ ( n −1) 
 
 The pre-emphasis and de-emphasis filters described here are simple ones. If necessary, more complex, filter structures can be used. 
 
         [0052]     With reference to  FIG. 4 , the noise cancellation algorithm used in the second stage considers that a speech signal s(n) is corrupted by additive background noise v(n), so the resulting noisy speech signal d(n) can be expressed as 
 
 d ( n )= s ( n )+ v ( n ). 
 
         [0053]     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).  
         [0054]     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.  
         [0055]     This noise cancellation algorithm is also a frequency-domain based algorithm. The noisy signal d(n) is split into L subband signals, D i (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.  
         [0056]     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  
                 P     NZ   ,   i       ⁡     (   k   )       =       ⁢         (     1   -     α   NZ       )     ⁢       P     NZ   ,   i       ⁡     (     k   -   1     )         +       α   NZ     ⁢              D   i     ⁡     (   k   )            2                     =       ⁢         P     NZ   ,   i       ⁡     (     k   -   1     )       +       α   NZ     ⁡     (                D   i     ⁡     (   k   )            2     -       P     NZ   ,   i       ⁡     (     k   -   1     )         )                   
 
 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:  
           L     NZ   ,   i       ⁡     (   k   )       =                  D   i     ⁡     (   k   )            2         P     NZ   ,   i       ⁡     (     k   -   1     )         ⁢     exp   ⁡     (     1   -                D   i     ⁡     (   k   )            2         P     NZ   ,   i       ⁡     (     k   -   1     )           )             
 
 and the noise power is estimated as 
 
 P   NZ,i ( k )= P   NZ,i ( k −1)+(α NZ   L   NZ,i ( k )(| D   i ( k )| 2   −P   NZ,i ( k− 1)). 
 
         [0057]     It can be observed that L NZ,i (k) is between 0 and 1. It reaches 1 only when |D i (k)| 2  is equal to P NZ,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.  
         [0058]     In practice, less constrained estimates are computed to serve as the upper- and lower-bounds of P NZ,i (k). When it is detected that P NZ,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.  
         [0059]     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 |D i (k)| 2.  With the noise power available, an estimate of the speech power is 
 
 P   SP,i ( k )=max(| D   i ( k )| 2   −P   NZ,i ( k ), 0) 
 
 and therefore, the optimal Wiener filter gain can be computed as  
           G     T   ,   i       ⁡     (   k   )       =       max   ⁡     (       1   -         P     NZ   ,   i       ⁡     (   k   )                  D   i     ⁡     (   k   )            2         ,   0     )       .         
 
         [0060]     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 G T,i (k) needs to be further processed before being applied.  
         [0061]     When |D i (k)| 2  is much larger than P NZ,i (k), the fluctuation of noise power is minor compared to |D i (k)| 2 , and hence G T,i (k) is very reliable. On the other hand, when |D i (k)| 2  approximates P NZ,i (k) , the fluctuation of noise power becomes significant, and hence G T,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 G oms,i (k) is computed by smoothing G T,i (k) with the following algorithm: 
 
 G   oms,i ( k )= G   oms,i ( k− 1)+(α G   G   0,i   2 ( k )( G   T,i ( k )− G   oms,i ( k− 1)) G   0,i ( k )= G   oms,i ( k− 1)+0.25×( G   T,i ( k )− G   oms,i ( k− 1)) 
 
 where α G  is a time constant between 0 and 1, and G 0,i (k) is a pre-estimate of G oms,i (k) based on the latest gain estimate and the instantaneous gain. The output signal can be computed as 
 
 Ŝ   i ( k )= G   oms,i ( k ) D   i ( k ). 
 
         [0062]     It can be observed that G oms,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.  
         [0063]     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.