# Patent

## Title
Control of acoustic echo canceller adaptive filter for speech enhancement

## Abstract

A method for cancelling/reducing acoustic echoes in speech/audio signal enhancement processing comprises using a received reference signal to excite an adaptive filter wherein the output of the adaptive filter forms a replica signal of acoustic echo; an adaptation step size is controlled for updating the coefficients of the adaptive filter; the adaptation step size is initialized by using an open-loop approach and optimized by using a closed-loop approach; one of the most important parameters with the open-loop approach is an energy ratio between an energy of a returned echo signal in an input microphone signal and an energy of the received reference signal; one of the most important parameters with the closed-loop approach is a normalized correlation or a square of the normalized correlation between the input microphone signal and the replica signal of acoustic echo; the replica signal of acoustic echo is subtracted from the microphone input signal to suppress the acoustic echo in the microphone input signal.

## Background
This application claims the benefit of U.S. Provisional Application No. 62/014,359 filed on Jun. 19, 2014, entitled “Control of Acoustic Echo Canceller Adaptive Filter for Speech Enhancement,” U.S. Provisional Application No. 62/014,355 filed on Jun. 19, 2014, entitled “Energy Adjustment of Acoustic Echo Replica Signal for Speech Enhancement,” U.S. Provisional Application No. 62/014,346 filed on Jun. 19, 2014, entitled “Acoustic Echo Preprocessing for Speech Enhancement,” U.S. Provisional Application No. 62/014,365 filed on Jun. 19, 2014, entitled “Post Ton Suppression for Speech Enhancement,” which application is hereby incorporated herein by reference.


TECHNICAL FIELD
The present invention is generally in the field of Echo Cancellation/Speech Enhancement. In particular, the present invention is used to improve Acoustic Echo Cancellation.
BACKGROUND
For audio signal acquisition human/machine interfaces, especially in hands-free condition, adaptive beamforming microphone arrays have been widely employed for enhancing a desired signal while suppressing interference and noise. For full-duplex communication systems, not only interference and noise corrupt the desired signal, but also acoustic echoes originating from loudspeakers. For suppressing acoustic echoes, acoustic echo cancellers (AECs) using adaptive filters may be the optimum choice since they exploit the reference information provided by the loudspeaker signals.
To simultaneously suppress interferences and acoustic echoes, it is thus desirable to combine acoustic echo cancellation with adaptive beamforming in the acoustic human/machine interface. To achieve optimum performance, synergies between the AECs and the beamformer should be exploited while the computational complexity should be kept moderate. When designing such a joint acoustic echo cancellation and beamforming system, it proves necessary to consider especially the time-variance of the acoustic echo path, the background noise level, and the reverberation time of the acoustic environment. To combine acoustic echo cancellation with beamforming, various strategies were studied in the public literatures, reaching from cascades of AECs and beamformers to integrated solutions. These combinations address aspects such as maximization of the echo and noise suppression for slowly time-varying echo paths and high echo-to-interference ratios (EIRs), strongly time-varying echo paths, and low EIRs, or minimization of the computational complexity.
For full-duplex hands-free acoustic human/machine interfaces, often a combination of acoustic echo cancellation and speech enhancement is required to suppress acoustic echoes, local interference, and noise. However, efficient solutions for situations with high level background noise, with time-varying echo paths, with long echo reverberation time, and frequent double talk, are still a challenging research topic. To optimally exploit positive synergies between acoustic echo cancellation and speech enhancement, adaptive beamforming and acoustic echo cancellation may be jointly optimized. The adaptive beamforming system itself is already quite complex for most consumer oriented applications; the system of jointly optimizing the adaptive beamforming and the acoustic echo canceller could be too complex.
An ‘AEC first’ system or ‘beamforming first’ system which has lower complexity than the system of jointly optimizing the adaptive beamforming and the acoustic echo canceller. In the ‘AEC first’ system, positive synergies for the adaptive beamforming can be exploited after convergence of the AECs: the acoustic echoes are efficiently suppressed by the AECs, and the adaptive beamformer does not depend on the echo signals. One AEC is necessary for each microphone channel so that multiple complexity is required for multiple microphones at least for filtering and filter update in comparison to an AEC for a single microphone. Moreover, in the presence of strong interference and noise, the adaptation of AECs must be slowed down or even stopped in order to avoid instabilities of the adaptive filters. Alternatively, the AEC can be placed behind the adaptive beamformer in the ‘beamforming first’ system; the complexity is reduced to that of AEC for a single microphone. However, positive synergies can not be exploited for the adaptive beamformer since the beamformer sees not only interferences but also acoustic echoes.
Beamforming is a technique which extracts the desired signal contaminated by interference based on directivity, i.e., spatial signal selectivity. This extraction is performed by processing the signals obtained by multiple sensors such as microphones located at different positions in the space. The principle of beamforming has been known for a long time. Because of the vast amount of necessary signal processing, most research and development effort has been focused on geological investigations and sonar, which can afford a high cost. With the advent of LSI technology, the required amount of signal processing has become relatively small. As a result, a variety of research projects where acoustic beamforming is applied to consumer-oriented applications such as cellular phone speech enhancement, have been carried out. Applications of beamforming include microphone arrays for speech enhancement. The goal of speech enhancement is to remove undesirable signals such as noise and reverberation. Amount research areas in the field of speech enhancement are teleconferencing, hands-free telephones, hearing aids, speech recognition, intelligibility improvement, and acoustic measurement.
The signal played back by the loudspeaker is fed back to the microphones, where the signals appear as acoustic echoes. With the assumption that the amplifiers and the transducers are linear, a linear model is commonly used for the echo paths between the loudspeaker signal and the microphone signals. To cancel the acoustic echoes in the microphone channel, an adaptive filter is placed in parallel to the echo paths between the loudspeaker signal and the microphone signal with the loudspeaker signal as a reference. The adaptive filter forms replicas of the echo paths such that the output signal of the adaptive filter are replicas of the acoustic echoes. Subtracting the output signal of the adaptive filter from the microphone signal thus suppresses the acoustic echoes. Acoustic echo cancellation is then a system identification problem, where the echo paths are usually identified by adaptive linear filtering. The design of the adaptation algorithm of the adaptive filter requires consideration of the nature of the echo paths and of the echo signals.
SUMMARY
In accordance with an embodiment of the present invention, a method for cancelling/reducing acoustic echoes in speech/audio signal enhancement processing comprises using a received reference signal to excite an adaptive filter wherein the output of the adaptive filter forms a replica signal of acoustic echo; an adaptation step size for updating the coefficients of the adaptive filter is controlled by combining an open-loop approach and a closed-loop approach; one of the most important parameters with the open-loop approach is an energy ratio between an energy of a returned echo signal in an input microphone signal and an energy of the received reference signal; one of the most important parameters with the closed-loop approach is a normalized correlation or a square of the normalized correlation between the input microphone signal and the replica signal of acoustic echo; the replica signal of acoustic echo is subtracted from the microphone input signal to suppress the acoustic echo in the microphone input signal.
In accordance with an alternative embodiment of the present invention, a method for cancelling/reducing acoustic echoes in speech/audio signal enhancement processing comprises using a received reference signal to excite an adaptive filter wherein the output of the adaptive filter forms a replica signal of acoustic echo; an adaptation step size is controlled for updating the coefficients of the adaptive filter; the adaptation step size is initialized by using an open-loop approach and optimized by using a closed-loop approach; one of the most important parameters with the open-loop approach is an energy ratio between an energy of a returned echo signal in an input microphone signal and an energy of the received reference signal; one of the most important parameters with the closed-loop approach is a normalized correlation or a square of the normalized correlation between the input microphone signal and the replica signal of acoustic echo; the replica signal of acoustic echo is subtracted from the microphone input signal to suppress the acoustic echo in the microphone input signal.
In an alternative embodiment, a speech signal enhancement processing apparatus comprises a processor, and a computer readable storage medium storing programming for execution by the processor. The programming include instructions to use a received reference signal to excite an adaptive filter wherein the output of the adaptive filter forms a replica signal of acoustic echo; an adaptation step size for updating the coefficients of the adaptive filter is controlled by combining an open-loop approach and a closed-loop approach; one of the most important parameters with the open-loop approach is an energy ratio between an energy of a returned echo signal in an input microphone signal and an energy of the received reference signal; one of the most important parameters with the closed-loop approach is a normalized correlation or a square of the normalized correlation between the input microphone signal and the replica signal of acoustic echo; the replica signal of acoustic echo is subtracted from the microphone input signal to suppress the acoustic echo in the microphone input signal.



BRIEF DESCRIPTION OF THE DRAWINGS
For a more complete understanding of the present invention, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
FIG. 1 illustrates a joint optimization of Adaptive Beamforming and Acoustic Echo Cancellation (AEC).
FIG. 2 illustrates a combination of AEC and Beamforming.
FIG. 3 illustrates a traditional Beamformer/Noise Canceller.
FIG. 4 illustrates a directivity of Fixed Beamformer.
FIG. 5 illustrates a directivity of Block Matrix.
FIG. 6 illustrates an traditional AEC system.
FIG. 7 illustrates an AEC with adaptation step size control of adaptive filter.
FIG. 8 illustrates an adaptive filter with adaptation step size control.
FIG. 9 illustrates a step size determination algorithm for AEC adaptive filter.
FIG. 10 illustrates a communication system according to an embodiment of the present invention.
FIG. 11 illustrates a block diagram of a processing system that may be used for implementing the devices and methods disclosed herein.



DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
To optimally exploit positive synergies between acoustic echo cancellation and speech enhancement, adaptive beamforming and acoustic echo cancellation may be jointly optimized as shown in FIG. 1. 101 are input signals from an array of microphones; 102 is a noise reduced signal output from adaptive beamforming system; the signal 104 outputs to the speaker, which is used as a reference signal of the echo canceller to produce an echo replica signal 103; the signal 102 and the signal 103 are combined to produce an optimal output signal 105 by jointly optimizing the adaptive beamforming and the acoustic echo canceller. The adaptive beamforming system itself is already quite complex for most consumer oriented applications; the FIG. 1 system of jointly optimizing the adaptive beamforming and the acoustic echo canceller could be too complex, although the FIG. 1 system can theoretically show its advantage for high levels of background noise, time-varying echo paths, long echo reverberation time, and frequent double talk.
FIG. 2 shows an ‘AEC first’ system or ‘beamforming first’ system which has lower complexity than the system of FIG. 1. In the ‘AEC first’ system, a matrix H(n) directly models the echo paths between the speaker and all microphones without interaction with the adaptive beamforming. For the adaptive beamforming, positive synergies can be exploited after convergence of the AECs: the acoustic echoes are efficiently suppressed by the AECs, and the adaptive beamformer does not depend on the echo signals. One AEC is necessary for each microphone channel so that multiple complexity is required for multiple microphones at least for filtering and filter update in comparison to an AEC for a single microphone. Moreover, in the presence of strong interference and noise, the adaptation of AECs must be slowed down or even stopped in order to avoid instabilities of the adaptive filters H(n). Alternatively, the AEC can be placed behind the adaptive beamformer in the ‘beamforming first’ system; the complexity is reduced to that of AEC for a single microphone. However, positive synergies can not be exploited for the adaptive beamformer since the beamformer sees not only interferences but also acoustic echoes. 201 are input signals from an array of microphones; for the ‘AEC first’ system, echoes in each component signal of 201 need to be suppressed to get an array of signals 202 inputting to the adaptive beamforming system; the speaker output signal 206 is used as a reference signal 204 of echo cancellation for the ‘AEC first’ system or as a reference signal 205 of echo cancellation for the ‘beamforming first’ system. In the ‘beamforming first’ system, echoes only in one signal 203 output from the adaptive beamforming system need to be cancelled to get final output signal 207 in which both echoes and background noise have been suppressed or reduced. As the single adaptation of the echo canceller response h(n) in the ‘beamforming first’ system has much lower complexity than the matrix adaptation of the echo canceller response H(n) in the ‘AEC first’ system, obviously the ‘beamforming first’ system has lower complexity than the ‘AEC first’ system.
Beamforming can be considered as multi-dimensional signal processing in space and time. Ideal conditions assumed in most theoretical discussions are not always maintained. The target DOA (direction of arrival), which is assumed to be stable, does change with the movement of the speaker. The sensor gains, which are assumed uniform, exhibit significant distribution. As a result, the performance obtained by beamforming may not be as good as expected. Therefore, robustness against steering-vector errors caused by these array imperfections are become more and more important.
A beamformer which adaptively forms its directivity pattern is called an adaptive beamformer. It simultaneously performs beam steering and null steering. In most traditional acoustic beamformers, however, only null steering is performed with an assumption that the target DOA is known a priori. Due to adaptive processing, deep nulls can be developed. Adaptive beamformers naturally exhibit higher interference suppression capability than its fixed counterpart. FIG. 3 depicts a structure of a widely known adaptive beamformer among various adaptive beamformers. Microphone array could contain multiple microphones; for the simplicity, FIG. 3 only shows two microphones.
FIG. 3 comprises a fixed beamformer (FBF), a multiple input canceller (MC), and blocking matrix (BM). The FBF is designed to form a beam in the look direction so that the target signal is passed and all other signals are attenuated. On the contrary, the BM forms a null in the look direction so that the target signal is suppressed and all other signals are passed through. The inputs 301 and 302 of FBF are signals coming from MICs. 303 is the output target signal of FBF. 301, 302 and 303 are also used as inputs of BM. The MC is composed of multiple adaptive filters each of which is driven by a BM output. The BM outputs 304 and 305 contain all the signal components except that in the look direction. Based on these signals, the adaptive filters generate replicas 306 of components correlated with the interferences. All the replicas are subtracted from a delayed output signal of the fixed beamformer which has an enhanced target signal component. In the subtracted output 307, the target signal is enhanced and undesirable signals such as ambient noise and interferences are suppressed. FIG. 4. shows an example of directivity of the FBF. FIG. 5. shows an example of directivity of the BM. In real applications, the system FIG. 3 can be simplified and made more efficient, the details of which are out of scope of this specification and will not be discussed here.
The acoustic echo paths may vary strongly over time due to moving sources or changes in the acoustic environment requiring a good tracking performance of the adaptation algorithm. The reverberation time of the acoustic environment typically ranges from, e.g., T≈50 ms in passenger cabins of vehicles to T>1 s in public halls. With the theoretical length estimation of the adaptive filter order Nh




  
    
      N
      h
    
    ≈
    
      
        ERLE
        60
      
      ·
      
        f
        s
      
      ·
      T
    
  
  ,




where ERLE is the desired echo suppression of the AEC in dB; as a rule of thumb it becomes obvious that with many realistic acoustic environment and sampling rates fs=4-48 kHz, adaptive FIR filters with several thousands coefficients are needed to achieve ERLE≈20 dB. Obviously, too long adaptive filter order is not practical not only in the sense of the complexity but also of the convergence time. For environments with long reverberation times, this means that the time for convergence—even for fast converging adaptation algorithms—cannot be neglected and that, after a change of echo paths, noticeable residual echoes may be present until the adaptation algorithm is re-converged.

As mentioned above, the echo reverberation time mainly depends on the location of the loudspeaker and the microphones, ranging from, e.g., T≈50 ms in passenger cabins of vehicles to T>1 s in public halls. When the case of long echo reverberation time happens, one way to keep the efficiency of the echo cancellation is to increase the order of the adaptive filter; however, this may not be realistic because of two reasons: (1) too high order of the adaptive filter causes too high complexity; (2) too high order of the adaptive filter causes too slow adaptation convergence of the adaptive filter. That is why a common order of the adaptive filter is about few hundreds for a sampling rate of 8000 Hz.
The presence of disturbing sources such as desired speech, interference, or ambient noise may lead to instability and divergence of the adaptive filter. To prevent the instability, adaptation control mechanisms are required which adjust the stepsize of the adaptation algorithm to the present acoustic conditions. With a decrease in the power ratio of acoustic echoes and disturbance, a smaller stepsize becomes mandatory, which however increases the time until the adaptive filter have converged to efficient echo path models. As the above discussion about adaptive filtering for acoustic echo cancellation shows, the convergence time of the adaptive filter is a crucial factor in acoustic echo cancellation and limits the performance of AECs in realistic acoustic environments. With the aim of reducing the convergence time while assuring robustness against instabilities and divergence even during double talk, various adaptation algorithms have been studied in public literatures and articles for realizations in the time domain and or in the frequency domain.
Even with fast converging adaptation algorithms, there are typically residual echoes present at the output of the AEC. Furthermore, it is desirable to combine the echo cancellation with noise reduction. Therefore, post echo and noise reduction is often cascaded with the AEC to suppress the residual echoes and noise at the AEC output. These methods are typically based on spectral subtraction or Wiener filtering so that estimates of the noise spectrum and of the spectrum of the acoustic echoes at the AEC output are required. These are often difficult to obtain in a single-microphone system for time-varying noise spectra and frequently changing echo paths.
FIG. 6 shows a traditional basic structure of AEC with a simplified beamforming system. To limit the computational complexity, ‘beamforming first’ system is adopted. The microphone array signals 601 are processed first by the simplified adaptive beamformer to get a single noise-reduced Tx signal 602; Rx signal 603 is employed as an excitation signal for the adaptive filter to produce an echo replica signal 604; the echo-suppressed signal 605 is obtained by subtracting the echo replica signal 604 from the Tx signal 602.
FIG. 7 shows the similar structure as FIG. 6 except a block of Adaptation-Stepsize-Control is added to efficiently produce a stepsize parameter 706 and control the adaptation of the adaptive filter. To limit the computational complexity, ‘beamforming first’ system is also adopted. The microphone array signals 701 are processed first by the simplified adaptive beamformer to get a single noise-reduced Tx signal 702; Rx signal 703 is employed as an excitation signal for the adaptive filter to produce an echo replica signal 704; the echo-suppressed signal 705 is obtained by subtracting the echo replica signal 704 from the Tx signal 702.
In the FIG. 7 system, the Adaptation-Stepsize-Control is an important diagram block. The performance of the adaptive filter highly depends on the quality of the estimated stepsize parameter 706. This is specially true in an environment of echo path change, double talk, and/or unstable noise. In order to have a nice output 705 of the AEC, the echoes in the Tx signal 702 need to be cancelled; this is achieved by producing a replica signal 704 matching the echo component in the input signal 702. In general, the smaller is the difference between the echo component in the input signal 702 and the replica signal 704 from the adaptive filter, the better quality has the output signal 705. The adaptive filter is an FIR filter, the impulsive response of which is theoretically adapted in such way that the difference between the echo component in 702 and the replica signal 704 is minimized. In realty, the exact echo component in 702 is not known; instead, the adaptation algorithm of the adaptive filter impulsive response is conducted by minimizing the difference between the 702 signal and the 704 signal in echo areas; we can imagine that emphasizing the filter adaptation in high echo energy areas may achieve better quality than low echo energy areas. The goal of the controlling of the adaptive filter is to minimize the leakage of echo component into the output signal 705.
The impulsive response of the adaptive filter of AEC can be expressed as,

h(n)=[h0(n),h1(n),h2(n), . . . ,hN-1(n)]  (1)

wherein N is the filter order, the subscript iε{0, 1, 2, . . . , N−1} addresses the ith coefficient of the impulsive response of the adaptive filter at the time index n. In general, a normalized least mean square algorithm leads to the impulsive response h(n) updated at each time index n in the areas where echoes exist:

h(n)=h(n−1)+μ·Δh(n)  (2)

wherein Δh(n) is the maximum update portion and μ, 0≦μ≦1, is the stepsize which controls the update amount at each time index. Suppose a vecotor of the Rx signal 703 is noted as Rx(n), the Tx signal 702 is noted as Tx(n), the replica signal 704 is noted as d(n), and the difference signal 705 is noted as e(n); the maximum update portion can be expressed as a vector:





  
    
      
        
          Δ
          ⁢
          
            
          
          ⁢
          
            h
            ⁡
            
              (
              n
              )
            
          
        
        =
        
          
            
              
                R
                x
              
              ⁡
              
                (
                n
                )
              
            
            ·
            
              e
              ⁡
              
                (
                n
                )
              
            
          
          
            
              
              
                
                  R
                  x
                
                ⁡
                
                  (
                  n
                  )
                
              
              
            
            2
          
        
      
    
    
      
        (
        3
        )
      
    
  




wherein Rx(n) is the vector of the signal 703 with a length N and

e(n)=Tx(n)−d(n)  (4)

d(n)=hT(n)·Rx(n)  (5)

The key factor for the performance of the adaptive filter is the determination of the stepsize μ, 0≦μ≦1. As the goal is to cancel echo component, in non-echo areas the stepsize μ is set to zero and the adaptive filter is not updated. In echo areas, an appropriate stepsize μ value should be set; usually, the stepsize μ should be high in high echo areas and low in low echo areas. Too low stepsize μ could cause too slow convengence speed of the adaptive filter so that some echo portion may not be cancelled; too high stepsize μ could possibly cause unstable adaptive filter or cancelling needed signal portion.
FIG. 8 shows a mathematical procedure of the adaptive filter. The maximum stepsize vector 802 is the error signal e(n) 807 normalized by the reference input signal Rx 801. After determining the stepsize 805, an adaptive filter coefficient vector 803 is updated. An echo replica signal 804 is produced by passing the Rx signal 801 through the updated adaptive filter. An echo-reduced signal 807 is finally obtained by subtracting the replica signal 804 from the Tx signal 806.
FIG. 9 shows a more detailed procedure to determining the stepsize by employing parameters from both open-loop approach and closed-loop approach. The parameters 903 of open-loop echo return energy are obtained by analyzing and comparing the Tx signal 901 and Rx signal 902. An echo detection flag 904 is decided according to the parameters of open-loop echo return energy. The initial stepsize 905 based on the open-loop approach is set in the detected echo areas. A closed-loop approach will further improve and correct the initial stepsize 905. As the current stepsize should be determined before the current adaptive filter is updated, the current adaptive filter is not known yet during the determination of the current stepsize; therefore, the last adaptive filter 906 is used to filter the Rx signal 902 and estimate an echo replica signal 907. A closed-loop echo correlation 908 between the estimated replica signal 907 and the Tx signal 901 is calculated, which will be used to improve and correct the initial stepsize and get the final stepsize 909.
The following is a detailed example of determining the stepsize. Some symbols for open-loop parameters are first defined:

    
    
        EchoLoss0: Tx signal 901 energy in dB minus Rx signal 902 energy in dB at the same time frame;
        EchoLoss1: moving average value of EchoLoss0;
        EchoLoss_sm: moving average value of EchoLoss1 in lowest value areas of EchoLoss1;
        DiffEchoLoss0=EchoLoss0−EchoLoss_sm;
        DiffEchoLoss1=EchoLoss1−EchoLoss_sm;
        EchoLoss0_HF: Tx signal 901 high frequency energy in dB minus Rx signal 902 high frequency energy in dB at the same time frame;
        EchoLoss1_HF: moving average value of EchoLoss0_HF;
        EchoLoss_HF_sm: moving average value of EchoLoss1_HF in lowest value areas of EchoLoss1_HF;
        DiffEchoLoss0_HF=EchoLoss0_HF−EchoLoss_HF_sm;
        EchoFlag>=1 means echoes detected; otherwise not detected.
    
    


The open-loop echo detection flag 904 is determined like this:













 
EchoFlag=0;



if ( (DiffEchoLoss0<6 OR DiffEchoLoss0_HF<6) AND 



(DiffEchoLoss1<6) )



{



  EchoFlag=1;



}



if ( (DiffEchoLoss0<5 OR DiffEchoLoss0_HF<5) AND 



(DiffEchoLoss1<5) )



{



  EchoFlag=2;



}



if ( (DiffEchoLoss0<2) AND (DiffEchoLoss1<2) )



{



  EchoFlag=3;



}









Some symbols for closed-loop parameters are defined here:

    
    
        Corr_RxTx: square of the normalized correlation between the estimated echo replica signal 907 and the Tx signal 901;
        Corr_RxTx_sm: smoothed Corr_RxTx;
        Corr_RxTx_LF: square of the normalized correlation between the low-pass of the estimated echo replica signal 907 and the low-pass of the Tx signal 901;
        Corr_RxTx_LF_sm: smoothed Corr_RxTx_LF;
        VAD_Rx=0 means noise areas in Rx signal; otherwise non noise areas in Rx signal;
        Stepsize: controlling parameter between 0 and 1.

In more detail, the square of the normalized correlation between the echo replica Rx signal and the Tx signal is

    
    






  
    
      
        
          Corr_RxTx
          =
          
          ⁢
          
            
              
                [
                
                  
                    ∑
                    n
                  
                  ⁢
                  
                    
                      Tx
                      ⁡
                      
                        (
                        n
                        )
                      
                    
                    ·
                    
                      Rx
                      ⁡
                      
                        (
                        n
                        )
                      
                    
                  
                
                ]
              
              2
            
            
              
                [
                
                  
                    ∑
                    n
                  
                  ⁢
                  
                    
                      Tx
                      ⁡
                      
                        (
                        n
                        )
                      
                    
                    2
                  
                
                ]
              
              [
              
                
                  ∑
                  n
                
                ⁢
                
                  
                    Rx
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                  2
                
              
              ]
            
          
        
        ,
        
          
            when
            ⁢
            
              
            
            ⁢
            
              
                ∑
                n
              
              ⁢
              
                
                  Tx
                  ⁡
                  
                    (
                    n
                    )
                  
                
                ·
                
                  Rx
                  ⁡
                  
                    (
                    n
                    )
                  
                
              
            
          
          >
          0
        
      
    
  
  
    
      
        
          =
          
          ⁢
          0
        
        ,
        
          
            when
            ⁢
            
              
            
            ⁢
            
              
                ∑
                n
              
              ⁢
              
                
                  Tx
                  ⁡
                  
                    (
                    n
                    )
                  
                
                ·
                
                  Rx
                  ⁡
                  
                    (
                    n
                    )
                  
                
              
            
          
          <
          0
        
      
    
  




An example way to determine the stepsize by using and combining both open-loop parameters and closed-loop parameters is following:












Initial with open-loop parameters:


  Stepsize = EchoFlag*0.2;


Improving and correcting with closed-loop parameters:


  sqr_corr_min = MIN{ Corr_RxTx , Corr_RxTx_LF };


  sqr_corr = MAX{ sqr_corr_min-0.25,0} / 0.75;


  sqr_corr = sqr_corr *MIN{2* Corr_RxTx_sm, 1};


  if (VAD_Rx=0) {


   sqr_corr = 0;


  }


  Stepsize = MAX{ Stepsize, 0.5* sqr_corr};


  sqr_corr = sqr_corr_min - MIN{Corr_RxTx_LF, Corr_RxTx_LF_sm};


  sqr_corr = MIN{MAX{2*sqr_corr, 0}, 1};


  sqr_corr = sqr_corr *MIN{2* Corr_RxTx_LF sm, 1};


  if (VAD_Rx=0) {


   sqr_corr = 0;


  }


  Stepsize = MAX{ Stepsize, 0.5 * sqr_corr}.









FIG. 10 illustrates a communication system 10 according to an embodiment of the present invention. Communication system 10 has audio access devices 7 and 8 coupled to a network 36 via communication links 38 and 40. In one embodiment, audio access device 7 and 8 are voice over internet protocol (VOIP) devices and network 36 is a wide area network (WAN), public switched telephone network (PTSN) and/or the internet. In another embodiment, communication links 38 and 40 are wireline and/or wireless broadband connections. In an alternative embodiment, audio access devices 7 and 8 are cellular or mobile telephones, links 38 and 40 are wireless mobile telephone channels and network 36 represents a mobile telephone network.
The audio access device 7 uses a microphone 12 to convert sound, such as music or a person's voice into an analog audio input signal 28. A microphone interface 16 converts the analog audio input signal 28 into a digital audio signal 33 for input into an encoder 22 of a CODEC 20. The encoder 22 can include a speech enhancement block which reduces noise/interferences in the input signal from the microphone(s). The encoder 22 produces encoded audio signal TX for transmission to a network 26 via a network interface 26 according to embodiments of the present invention. A decoder 24 within the CODEC 20 receives encoded audio signal RX from the network 36 via network interface 26, and converts encoded audio signal RX into a digital audio signal 34. The speaker interface 18 converts the digital audio signal 34 into the audio signal 30 suitable for driving the loudspeaker 14.
In embodiments of the present invention, where audio access device 7 is a VOIP device, some or all of the components within audio access device 7 are implemented within a handset. In some embodiments, however, microphone 12 and loudspeaker 14 are separate units, and microphone interface 16, speaker interface 18, CODEC 20 and network interface 26 are implemented within a personal computer. CODEC 20 can be implemented in either software running on a computer or a dedicated processor, or by dedicated hardware, for example, on an application specific integrated circuit (ASIC). Microphone interface 16 is implemented by an analog-to-digital (A/D) converter, as well as other interface circuitry located within the handset and/or within the computer. Likewise, speaker interface 18 is implemented by a digital-to-analog converter and other interface circuitry located within the handset and/or within the computer. In further embodiments, audio access device 7 can be implemented and partitioned in other ways known in the art.
In embodiments of the present invention where audio access device 7 is a cellular or mobile telephone, the elements within audio access device 7 are implemented within a cellular handset. CODEC 20 is implemented by software running on a processor within the handset or by dedicated hardware. In further embodiments of the present invention, audio access device may be implemented in other devices such as peer-to-peer wireline and wireless digital communication systems, such as intercoms, and radio handsets. In applications such as consumer audio devices, audio access device may contain a CODEC with only encoder 22 or decoder 24, for example, in a digital microphone system or music playback device. In other embodiments of the present invention, CODEC 20 can be used without microphone 12 and speaker 14, for example, in cellular base stations that access the PTSN.
The speech processing for reducing noise/interference described in various embodiments of the present invention may be implemented in the encoder 22 or the decoder 24, for example. The speech processing for reducing noise/interference may be implemented in hardware or software in various embodiments. For example, the encoder 22 or the decoder 24 may be part of a digital signal processing (DSP) chip.
FIG. 11 illustrates a block diagram of a processing system that may be used for implementing the devices and methods disclosed herein. Specific devices may utilize all of the components shown, or only a subset of the components, and levels of integration may vary from device to device. Furthermore, a device may contain multiple instances of a component, such as multiple processing units, processors, memories, transmitters, receivers, etc. The processing system may comprise a processing unit equipped with one or more input/output devices, such as a speaker, microphone, mouse, touchscreen, keypad, keyboard, printer, display, and the like. The processing unit may include a central processing unit (CPU), memory, a mass storage device, a video adapter, and an I/O interface connected to a bus.
The bus may be one or more of any type of several bus architectures including a memory bus or memory controller, a peripheral bus, video bus, or the like. The CPU may comprise any type of electronic data processor. The memory may comprise any type of system memory such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous DRAM (SDRAM), read-only memory (ROM), a combination thereof, or the like. In an embodiment, the memory may include ROM for use at boot-up, and DRAM for program and data storage for use while executing programs.
The mass storage device may comprise any type of storage device configured to store data, programs, and other information and to make the data, programs, and other information accessible via the bus. The mass storage device may comprise, for example, one or more of a solid state drive, hard disk drive, a magnetic disk drive, an optical disk drive, or the like.
The video adapter and the I/O interface provide interfaces to couple external input and output devices to the processing unit. As illustrated, examples of input and output devices include the display coupled to the video adapter and the mouse/keyboard/printer coupled to the I/O interface. Other devices may be coupled to the processing unit, and additional or fewer interface cards may be utilized. For example, a serial interface such as Universal Serial Bus (USB) (not shown) may be used to provide an interface for a printer.
The processing unit also includes one or more network interfaces, which may comprise wired links, such as an Ethernet cable or the like, and/or wireless links to access nodes or different networks. The network interface allows the processing unit to communicate with remote units via the networks. For example, the network interface may provide wireless communication via one or more transmitters/transmit antennas and one or more receivers/receive antennas. In an embodiment, the processing unit is coupled to a local-area network or a wide-area network for data processing and communications with remote devices, such as other processing units, the Internet, remote storage facilities, or the like.
While this invention has been described with reference to illustrative embodiments, this description is not intended to be construed in a limiting sense. Various modifications and combinations of the illustrative embodiments, as well as other embodiments of the invention, will be apparent to persons skilled in the art upon reference to the description. For example, various embodiments described above may be combined with each other.
Although the present invention and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the invention as defined by the appended claims. For example, many of the features and functions discussed above can be implemented in software, hardware, or firmware, or a combination thereof. Moreover, the scope of the present application is not intended to be limited to the particular embodiments of the process, machine, manufacture, composition of matter, means, methods and steps described in the specification. As one of ordinary skill in the art will readily appreciate from the disclosure of the present invention, processes, machines, manufacture, compositions of matter, means, methods, or steps, presently existing or later to be developed, that perform substantially the same function or achieve substantially the same result as the corresponding embodiments described herein may be utilized according to the present invention. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or steps.

## Claims

1. A method for cancelling or reducing acoustic echoes in speech or audio signal enhancement processing, the method comprising:
using a received reference signal (a received Rx signal) to excite an adaptive filter wherein the output of the adaptive filter forms a replica signal of acoustic echo if the adaptive filter is performed in time domain, or the output of the adaptive filter forms replica frequency domain coefficients of acoustic echo if the adaptive filter is performed in frequency domain;
controlling an adaptation step size for updating the coefficients of the adaptive filter by using both open-loop parameters and closed-loop parameters, wherein the adaptation step size reflects a new percentage amount added into the updated coefficients of the adaptive filter during each updating step, one of the most important open-loop parameters is an energy ratio between an energy of a returned echo signal in an input microphone signal (an input Tx signal) and an energy of the received reference signal, and one of the most important closed-loop parameters is a normalized correlation or a square of the normalized correlation between the input microphone signal and the replica signal of acoustic echo if in the time domain or between the frequency domain coefficients of the input microphone signal and the replica frequency domain coefficients of acoustic echo if in the frequency domain;
subtracting the replica signal or frequency domain coefficients of acoustic echo from the microphone input signal in the time domain or the frequency domain to suppress the acoustic echo in the microphone input signal.

2. The method of claim 1, wherein cancelling or reducing acoustic echoes may happen after cancelling or reducing disturbing noises.

3. The method of claim 1, wherein cancelling or reducing acoustic echoes may happen before cancelling or reducing disturbing noises.

4. The method of claim 1, wherein the coefficients of the adaptive filter are updated in echo signal area.

5. The method of claim 1, wherein the energy ratio is the input microphone signal energy in dB minus the received reference signal energy in dB at the same time frame.

6. The method of claim 1, wherein the square of the normalized correlation between the input microphone signal and the replica signal of acoustic echo is




  Corr_RxTx
  =
  
    {
    
      
        
          
            
              
                
                  [
                  
                    
                      ∑
                      n
                    
                    ⁢
                    
                      
                        Tx
                        ⁡
                        
                          (
                          n
                          )
                        
                      
                      ·
                      
                        Rx
                        ⁡
                        
                          (
                          n
                          )
                        
                      
                    
                  
                  ]
                
                2
              
              
                
                  [
                  
                    
                      ∑
                      n
                    
                    ⁢
                    
                      
                        Tx
                        ⁡
                        
                          (
                          n
                          )
                        
                      
                      2
                    
                  
                  ]
                
                [
                
                  
                    ∑
                    n
                  
                  ⁢
                  
                    
                      Rx
                      ⁡
                      
                        (
                        n
                        )
                      
                    
                    2
                  
                
                ]
              
            
            ,
          
        
        
          when
        
        
          
            
              
                ∑
                n
              
              ⁢
              
                Tx
                ⁢
                
                  
                    (
                    n
                    )
                  
                  ·
                  
                    Rx
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
              
            
            >
            0
          
        
      
      
        
          
            0
            ,
          
        
        
          when
        
        
          
            
              
                ∑
                n
              
              ⁢
              
                Tx
                ⁢
                
                  
                    (
                    n
                    )
                  
                  ·
                  
                    Rx
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
              
            
            ≤
            0
          
        
      
    
  




wherein Tx(n) is the input microphone signal and Rx(n) is the replica signal of acoustic echo if in the time domain.

7. The method of claim 1, wherein the square of the normalized correlation is based on the input microphone signal and the replica signal of acoustic echo which is produced by the adaptive filter with the last updated filter coefficients.

8. A speech signal processing apparatus comprising:
a processor; and
a non-transitory computer readable storage medium storing programming for execution by the processor, the programming including instructions to:
use a received reference signal (a received Rx signal) to excite an adaptive filter wherein the output of the adaptive filter forms a replica signal of acoustic echo if the adaptive filter is performed in time domain, or the output of the adaptive filter forms replica frequency domain coefficients of acoustic echo if the adaptive filter is performed in frequency domain;
control an adaptation step size for updating the coefficients of the adaptive filter by using both open-loop parameters and closed-loop parameters, wherein the adaptation step size reflects a new percentage amount added into the updated coefficients of the adaptive filter during each updating step, one of the most important open-loop parameters is an energy ratio between an energy of a returned echo signal in an input microphone signal (an input Tx signal) and an energy of the received reference signal, and one of the most important closed-loop parameters is a normalized correlation or a square of the normalized correlation between the input microphone signal and the replica signal of acoustic echo if in the time domain or between the frequency domain coefficients of the input microphone signal and the replica frequency domain coefficients of acoustic echo if in the frequency domain;
subtract the replica signal or frequency domain coefficients of acoustic echo from the microphone input signal in the time domain or the frequency domain to suppress the acoustic echo in the microphone input signal.

9. The method of claim 8, wherein cancelling or reducing acoustic echoes may happen after cancelling or reducing disturbing noises.

10. The method of claim 8, wherein cancelling or reducing acoustic echoes may happen before cancelling or reducing disturbing noises.

11. The method of claim 8, wherein the coefficients of the adaptive filter are updated in echo signal area.

12. The method of claim 8, wherein the energy ratio is the input microphone signal energy in dB minus the received reference signal energy in dB at the same time frame.

13. The method of claim 8, wherein the square of the normalized correlation between the input microphone signal and the replica signal of acoustic echo is




  Corr_RxTx
  =
  
    {
    
      
        
          
            
              
                
                  [
                  
                    
                      ∑
                      n
                    
                    ⁢
                    
                      
                        Tx
                        ⁡
                        
                          (
                          n
                          )
                        
                      
                      ·
                      
                        Rx
                        ⁡
                        
                          (
                          n
                          )
                        
                      
                    
                  
                  ]
                
                2
              
              
                
                  [
                  
                    
                      ∑
                      n
                    
                    ⁢
                    
                      
                        Tx
                        ⁡
                        
                          (
                          n
                          )
                        
                      
                      2
                    
                  
                  ]
                
                [
                
                  
                    ∑
                    n
                  
                  ⁢
                  
                    
                      Rx
                      ⁡
                      
                        (
                        n
                        )
                      
                    
                    2
                  
                
                ]
              
            
            ,
          
        
        
          when
        
        
          
            
              
                ∑
                n
              
              ⁢
              
                Tx
                ⁢
                
                  
                    (
                    n
                    )
                  
                  ·
                  
                    Rx
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
              
            
            >
            0
          
        
      
      
        
          
            0
            ,
          
        
        
          when
        
        
          
            
              
                ∑
                n
              
              ⁢
              
                Tx
                ⁢
                
                  
                    (
                    n
                    )
                  
                  ·
                  
                    Rx
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
              
            
            ≤
            0
          
        
      
    
  




wherein Tx(n) is the input microphone signal and Rx(n) is the replica signal of acoustic echo if in the time domain.

14. The method of claim 8, wherein the square of the normalized correlation is based on the input microphone signal and the replica signal of acoustic echo which is produced by the adaptive filter with the last updated filter coefficients.

15. A method for cancelling or reducing acoustic echoes in speech or audio signal enhancement processing, the method comprising:
using a received reference signal (a received Rx signal) to excite an adaptive filter wherein the output of the adaptive filter forms a replica signal of acoustic echo if the adaptive filter is performed in time domain, or the output of the adaptive filter forms replica frequency domain coefficients of acoustic echo if the adaptive filter is performed in frequency domain;
controlling an adaptation step size for updating the coefficients of the adaptive filter, wherein the adaptation step size reflects a new percentage amount added into the updated coefficients of the adaptive filter during each updating step, the adaptation step size is initialized by using open-loop parameters and optimized by using closed-loop parameters, wherein one of the most important open-loop parameters is an energy ratio between an energy of a returned echo signal in an input microphone signal and an energy of the received reference signal, and one of the most important closed-loop parameters is a normalized correlation or a square of the normalized correlation between the input microphone signal and the replica signal of acoustic echo if in the time domain or between the frequency domain coefficients of the input microphone signal and the replica frequency domain coefficients of acoustic echo if in the frequency domain;
subtracting the replica signal or frequency domain coefficients of acoustic echo from the microphone input signal in the time domain or in the frequency domain to suppress the acoustic echo in the microphone input signal.

16. The method of claim 15, wherein the coefficients of the adaptive filter are updated in echo signal area.

17. The method of claim 15, wherein the energy ratio is the input microphone signal energy in dB minus the received reference signal energy in dB at the same time frame.

18. The method of claim 15, wherein the square of the normalized correlation between the input microphone signal and the replica signal of acoustic echo is




  Corr_RxTx
  =
  
    {
    
      
        
          
            
              
                
                  [
                  
                    
                      ∑
                      n
                    
                    ⁢
                    
                      
                        Tx
                        ⁡
                        
                          (
                          n
                          )
                        
                      
                      ·
                      
                        Rx
                        ⁡
                        
                          (
                          n
                          )
                        
                      
                    
                  
                  ]
                
                2
              
              
                
                  [
                  
                    
                      ∑
                      n
                    
                    ⁢
                    
                      
                        Tx
                        ⁡
                        
                          (
                          n
                          )
                        
                      
                      2
                    
                  
                  ]
                
                [
                
                  
                    ∑
                    n
                  
                  ⁢
                  
                    
                      Rx
                      ⁡
                      
                        (
                        n
                        )
                      
                    
                    2
                  
                
                ]
              
            
            ,
          
        
        
          when
        
        
          
            
              
                ∑
                n
              
              ⁢
              
                Tx
                ⁢
                
                  
                    (
                    n
                    )
                  
                  ·
                  
                    Rx
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
              
            
            >
            0
          
        
      
      
        
          
            0
            ,
          
        
        
          when
        
        
          
            
              
                ∑
                n
              
              ⁢
              
                Tx
                ⁢
                
                  
                    (
                    n
                    )
                  
                  ·
                  
                    Rx
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
              
            
            ≤
            0
          
        
      
    
  




wherein Tx(n) is the input microphone signal and Rx(n) is the replica signal of acoustic echo if in the time domain.

19. The method of claim 15, wherein the square of the normalized correlation is based on the input microphone signal and the replica signal of acoustic echo which is produced by the adaptive filter with the last updated filter coefficients.