Abstract:
An exemplary embodiment of an echo cancellation circuit is provided, for use in a voice interaction device simultaneously outputting a remote signal while receiving a local signal. The local signal may comprise an echo generated from the remote signal. A first filter learns the remote signal at a first speed to generate a first coefficient set, and filters the local signal by the first coefficient set to generate a first filter output. A second filter learns the remote signal at a second speed to generate a second coefficient set, and filters the local signal by the second coefficient set to generate a second filter output. A third filter comprises a third coefficient set, canceling the echo from the local signal to generate a third filter output as an echo cancellation result. The controller updates the third coefficient set based on the first, second and third filter outputs.

Description:
CROSS REFERENCE TO RELATED APPILCATIONS 
       [0001]    This application claims the benefit of U.S. Provisional Application No. 60/762,752, filed Jan. 27, 2006. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention 
         [0003]    The invention relates to voice interaction devices, and in particular, to an echo cancellation method utilizing different filters. 
         [0004]    2. Description of the Related Art 
         [0005]      FIG. 1  shows a conventional voice interaction device such as mobile phone, comprising a microphone  104  and speaker  102  simultaneously implemented. Remote signal #SRC received remotely, is amplified by the speaker  102  to provide local output #OUT. The microphone  104  receives local signal #MIX including vocal input #IN and environmental noise #ENV. The local output #OUT, however, may also be received by the microphone  104 , inducing unwanted echo. Conventionally, an echo canceller  110  cancels the echo in local signal #MIX. The echo canceller  110  may be a FIR filter comprising a coefficient set learned from the remote signal #SRC, with the local signal #MIX filtered by the echo canceller  110  to eliminate the echo therein, generating a destination signal #DST for further transmission. 
         [0006]    Vocal communication is typically performed in real time, making the performance of echo canceller  110  critical. The coefficient set in the echo canceller  110  is updated using normalized least mean square (NLMS) algorithm with a predetermined step size. As an example, a larger step size diverges the coefficient set faster, but renders a lower SNR filter result. Conversely, lower step size may render a quality destination signal #DST, but the speed may be insufficient for real-time communication. A tradeoff is thus presented between rapid convergence and fair filtering quality. Additionally, the local output #OUT, vocal input #IN may or may not simultaneously present. When both caller and recipient are talking, double talk is detected, and the performance of echo canceller  110  may decrease, generating noisy destination signal #DST. Thus, an enhanced echo cancellation method is desirable. 
       BRIEF SUMMARY OF THE INVENTION 
       [0007]    A detailed description is given in the following embodiments with reference to the accompanying drawings. 
         [0008]    An exemplary embodiment of an echo cancellation circuit is provided, for use in a voice interaction device simultaneously outputting a remote signal while receiving a local signal. The local signal may comprise an echo generated from the remote signal. A first filter learns the remote signal at a first speed to generate a first coefficient set, and filters the local signal by the first coefficient set to generate a first filter output. A second filter learns the remote signal at a second speed to generate a second coefficient set, and filters the local signal by the second coefficient set to generate a second filter output. A third filter comprises a third coefficient set, canceling the echo from the local signal to generate a third filter output as an echo cancellation result. The controller updates the third coefficient set based on the first, second and third filter outputs. 
         [0009]    The echo cancellation circuit may further comprise a controller, detecting remote talk, local talk and double talk according to the remote and local signals, and adjusting the second speed based on the detection result. 
         [0010]    The controller detects energy levels of the first and second filter outputs. Double talk is detected when both energy levels of the first and second filter outputs exceed a ratio of the energy of local signal. The ratio may be a value between 0 and 1. The first and second speeds are individually determined by a first step size and a second step size. When the controller detects double talk, the controller reduces the second step size. Conversely, when the controller detects no double talk, the controller increases the second step size. The second step size does not exceed the first step size. 
         [0011]    The controller detects remote talk if the energy of remote signal exceeds a remote threshold, and local talk if the energy of local signal exceeds a local threshold. When no double talk is detected, the controller further sets the second step size by the following condition. If both remote talk and local talk exist, the controller sets the second step size to a first value lower than the first step size. If only remote talk exists, the controller sets the second step size to a second value lower than the first value. If only local talk exists, the controller sets the second step size to a third value lower than or equal to the second value. 
         [0012]    The first filter is a shadow filter, and the second filter is an adaptive filter. The controller determines whether to update the third coefficient set according to energy levels of the first, second and third filter outputs, referred to as a first, a second, and a third energy. If the first energy is lower than a first ratio of the third energy, and lower than the second energy, the controller copies the first coefficient set to the third coefficient set. If the second energy is lower than a second ratio of the third energy, and lower than the first energy, the controller copies the second coefficient set to the third coefficient set. Otherwise, the third coefficient set remains as is. The first and second ratios may be values between 0 and 1. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0013]    The invention can be more fully understood by reading the subsequent detailed description and examples with references made to the accompanying drawings, wherein: 
           [0014]      FIG. 1  shows a conventional voice interaction device; 
           [0015]      FIG. 2  shows an embodiment of an echo cancellation circuit; 
           [0016]      FIG. 3  is a flowchart of an embodiment of an echo cancellation method; and 
           [0017]      FIG. 4  is a flowchart of a coefficient determination. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0018]    The following description is of the best-contemplated mode of carrying out the invention. This description is made for the purpose of illustrating the general principles of the invention and should not be taken in a limiting sense. The scope of the invention is best determined by reference to the appended claims. 
         [0019]      FIG. 2  shows an embodiment of an echo cancellation circuit  200 , comprising three filters, a first filter  210 , a second filter  220  and a third filter  230 . The first filter  210  and second filter  220  are “trial units” generating preliminary results, and the third filter  230  determines the final result based on analysis of the preliminary results. The first filter  210  is designed to have a large step size and fewer taps, and the second filter  220  has a lesser, adjustable step size with more taps. The first filter  210  rapidly reflects echo variation, and the second filter  220  provides better filter quality, such that the embodiment can take advantage of the combination of first and second filters  210  and  220 . Based on NLMS algorithm with their step sizes, the first filter  210  and second filter  220  are trained by the remote signal #SRC to individually generate a first coefficient set #C 1  and a second coefficient set #C 2 , and the local signal #MIX is correspondingly filtered thereby to generate two filter outputs, first filter output #Y 1  and second filter output #Y 2 . The third filter  230  uses third coefficient set #C 3  to generate a third filter output #Y 3  as the destination signal #DST, where the third coefficient set #C 3  is dynamically adjustable based on the first filter output #Yl and second filter output #Y 2 . The determination of third coefficient set #C 3  will be described later. 
         [0020]    A normalized least mean square algorithm can be expressed as: 
         [0000]    
       
         
           
             
               c 
                
               
                 ( 
                 i 
                 ) 
               
             
             = 
             
               
                 c 
                  
                 
                   ( 
                   
                     i 
                     - 
                     1 
                   
                   ) 
                 
               
               + 
               
                 
                   μ 
                    
                   
                     ( 
                     i 
                     ) 
                   
                 
                  
                 
                   
                     e 
                      
                     
                       ( 
                       i 
                       ) 
                     
                   
                   
                     
                        
                       
                         x 
                          
                         
                           ( 
                           i 
                           ) 
                         
                       
                        
                     
                     2 
                   
                 
                  
                 
                   x 
                    
                   
                     ( 
                     i 
                     ) 
                   
                 
               
             
           
         
       
     
         [0021]    Where c(i) denotes a current coefficient updated from the previous coefficient c(i−1), μ is the step size, e(i) is a residual error term estimated elsewhere, and x(i) is the input signal to be learned. The step size of first filter  210 , first step size μ 1 , may be a fixed large value to provide rapid convergency, and the step size in second filter  220 , second step size μ 2 , configured to be less than the first step size μ 1 , is adjustable based on the first filter output #Y 1  and second filter output #Y 2 . Thus, the filter is flexible for various conditions. For example, the second step size μ 2  may vary with different conditions such as remote talk, local talk, or double talk. 
         [0022]    In echo cancellation circuit  200 , a first controller  202  is provided, detecting remote talk, local talk and double talk according to the remote signal #SRC, the local signal #MIX, the first filter output #Y 1 , and the second filter output #Y 2 . The echo cancellation circuit  200  is coupled to the second filter  220 , adjusting the second step size μ 2  based on the detection result. First, the first controller  202  estimates energy levels of the first filter output #Y 1  and second filter output #Y 2 . The energy level may be an averaged result derived from a running average algorithm: 
         [0000]        E   av ( i )=ε· E   av ( i− 1)+(1−ε)· E ( i ) 
         [0023]    where E av (i−1) is the previous value of a signal, E(i) is the currently estimated energy value, and E av (i) is the current averaged result. The ratio ε is a value between 0 and 1. 
         [0024]    Double talk means both remote and local signals occur simultaneously such that the local output #OUT and vocal input #IN carry significant energies therewith. The first filter  210  or second filter  220  may effectively cancel the echo in the local signal #MIX, however, the corresponding first filter output #Y 1  and second filter output #Y 2  still possess the energy from the vocal input #IN. Thus, the energy levels of first filter output #Y 1  and second filter output #Y 2  are checked. If both energy levels of the first filter output #Y 1  and second filter output #Y 2  exceed a ratio of the energy of local signal #MIX, double talk is deemed positive. The second step size μ 2  can then be adjusted to render a better filter result for double talk. When the first controller  202  detects double talk, the second step size μ 2  is reduced to a minimum value, β 4 . Conversely, if no double talk is detected, the first controller  202  increases the second step size μ 2  to a value not exceeding the first step size μ 1 . 
         [0025]    Additionally, remote talk and local talk are detected by the first controller  202 . Remote talk means the energy of remote signal exceeds a remote threshold. Local talk means the energy of local signal exceeds a local threshold. When no double talk is detected, the second step size μ 2  is further determined based on the remote talk and local talk conditions: 
         [0000]        ε VAD ( R )=1 &amp;  VAD ( L )=1, μ 2 =β 1    
         [0000]        ε VAD ( R )=1 &amp;  VAD ( L )=0, μ 2 =β 2    
         [0000]        ε VAD ( R )=0 &amp;  VAD ( L )=1, μ 2 =β 3    
         [0026]    where VAD(R) and VAD(L) indicate positivities of the remote and local talk conditions, and the relationships of 0 are: 
         [0000]      β 4 &lt;β 3 ≦β 2 &lt;β 1    
         [0027]    Note these values do not exceed the first step size μ 1  in the embodiment. As an example, if the first filter  210  is a shadow filter, and the second filter  220  is an adaptive filter, both are therefore operative to generate preliminary filter outputs, and thereafter, the third filter  230  filters the local signal #MIX by a third coefficient set #C 3  estimated from the preliminary filter outputs. 
         [0028]    In the echo cancellation circuit  200 , a second controller  204  is provided to determine the third coefficient set #C 3 . Energy levels of the first filter output #Y 1 , second filter output #Y 2  and third filter output #Y 3  are compared in the second controller  204 . Among the first filter output #Y 1 , second filter output #Y 2  and third filter output #Y 3 , a best result is chosen to decide the third coefficient set #C 3 . The best result is deemed to be a filter output having the minimum energy level. Initially, third coefficient set #C 3  may be a copy of the second coefficient set #C 2  or third coefficient set #C 3 , and remains constant while rendering the third filter output #Y 3 . When a better filter output is found among the first filter  210  or second filter  220 , the third coefficient set #C 3  is updated to the corresponding first coefficient set #C 1  or second coefficient set #C 2 . The rules can be expressed as: 
         [0000]        ε E   Y1 &lt;α 1   ·E   Y3  &amp;  E   Y1   &lt;E   Y2   , #C 3 =#C 1 
         [0000]        ε E   Y2 &lt;α 2   ·E   Y3  &amp;  E   Y2   &lt;E   Y3   , #C 3 =#C 2 
         [0029]    where EY 1 , EY 2  and EY 3  denote energy levels of the first filter output #Y 1 , second filter output #Y 2  and third filter output #Y 3  respectively, and α 1  and α 2  are factors between 0 and 1. If neither of the two conditions are met, the third coefficient set #C 3  is not updated, retaining its previous value. In this way, the destination signal #DST is always the most optimized filter result among the first filter  210 , second filter  220  and third filter  230 , and no matter how the local output #OUT and vocal input #IN vary, the echo cancellation quality remains stable. 
         [0030]      FIG. 3  is a flowchart of the embodiment of echo cancellation method. In steps  301 ,  302  and  303 , the local output #OUT in  FIG. 2  is input and learned, and first filter output #Y 1 , second filter output #Y 2  and third filter output #Y 3  are generated with corresponding first coefficient set #C 1 , second coefficient set #C 2  and third coefficient set #C 3 . In step  310 , talking conditions are detected, such as double talk, remote talk or local talk. In step  312 , the second step size μ 2  is updated according to the detection result in step  310 . The second step size μ 2  affects the learning speed of step  302 . Simultaneously, energy levels of the first filter output #Y 1 , second filter output #Y 2  and third filter output #Y 3  are compared in the step  320 . In step  322 , the comparison result is used to determine the third coefficient set #C 3 . The third coefficient set #C 3  is used in step  303  to generate the third filter output #Y 3  as an echo cancellation result. 
         [0031]      FIG. 4  is a flowchart of coefficient determination. In step  410 , double talk positivity is detected. If so, step  412  is processed, the second step size μ 2  is set to β 4 . Otherwise, step  420  detects whether remote talk and local talk both exist. If so, step  422  is executed, setting the second step size μ 2  to β 1 , and if not, step  430  is processed, checking if only remote talk exists. If only remote talk happens, second step size μ 2  is set to β 2  in step  432 . Step  440  checks whether local talk exists while remote talk is absent. yes to step  442 , setting the second step size μ 2  to β 3 . In the embodiment, the values are related as β 4 &lt;β 3 ≦β 2 &lt;β 1 . 
         [0032]    The embodiment can be applied in a mobile phone, or any device simultaneously comprising a microphone and a speaker. The first controller  202  and second controller  204  can be logic units implemented by circuits or software programs. The first filter  210 , second filter  220  and third filter  230  can also be algorithms implemented by a DSP cooperating with memory devices. As an example, if the embodiment is a VOIP application, the echo cancellation circuit  200  can be a software module installed in the embedded systems such as Linux. 
         [0033]    While the invention has been described by way of example and in terms of preferred embodiment, it is to be understood that the invention is not limited thereto. To the contrary, it is intended to cover various modifications and similar arrangements (as would be apparent to those skilled in the art). Therefore, the scope of the appended claims should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements.