# Patent

## Title
Electronic device, method of cancelling acoustic echo thereof, and non-transitory computer readable medium

## Abstract

An electronic device, a method of cancelling an echo signal thereof, and a non-transitory computer readable recording medium are provided. The electronic device includes a speaker configured to output a sound corresponding to a first audio signal, a microphone configured to acquire a surrounding sound of the electronic device to generate a second audio signal; a double-talk detector (DTD) configured to determine whether a double-talk state, in which an echo signal and a noise signal of the first audio signal are included in the second audio signal, occurs; and an acoustic echo canceller (AEC) configured to generate an estimated echo signal corresponding to the echo signal of the first audio signal based on an adaptive filter (AF) in response to the DTD determining that the double-talk state does not occur and cancel the generated estimated echo signal from the second audio signal to detect an error signal.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
This application claims priority from Korean Patent Application No. 10-2015-0130130, filed on Sep. 15, 2015 in the Korean Intellectual Property Office, the disclosure of which is incorporated herein by reference in its entirety.
BACKGROUND
Field
Apparatuses and methods consistent with exemplary embodiments relate to cancelling an acoustic echo, and more particularly to minimizing an effect on a filter adapting process for cancelling an acoustic echo by precisely sensing a double-talk state.
Description of the Related Art
In an electronic device such as a communication terminal, a voice of a far-end speaker may be echoed by a surrounding environment and then input through a nearby speaker. The sound of the voice reverberating in the electronic device may be referred to as an acoustic echo.
A recent display apparatus such as a smart television (TV) frequently includes a microphone to perform a voice recognition function. Therefore, there are demands for a method of cancelling an acoustic echo that may be used in various types of electronic devices including a communication terminal.
A related-art acoustic echo canceller as shown in FIG. 1 is used to cancel an acoustic echo as described above. A far-end speaker signal x(n) output through a speaker becomes an echo signal h(n)*x(n) through a surrounding environment and then input into a near-end microphone. An adaptive filter cancels ĥ(n)*x(n) from a signal d(n) input into the microphone by estimating an estimation value ĥ(n) of h(n) corresponding to an acoustic echo path. Therefore, the related-art acoustic echo canceller reduces an effect by the far-end speaker signal.
A problem of this method is a double-talk state where an echo signal h(n)*x(n) of the far-end speaker signal and a signal s(n) of a near-end speaker are simultaneously input. If the estimation value ĥ(n) is determined to cancel a near-end signal together from the adaptive filter, a real acoustic echo path is not reflected.
In order to address this double-talk problem in the related technology, a method of finding an algorithm robust to a double-talk state is examined. However, if the method is applied to a real product, a satisfactory effect is not acquired.
Also, in the related technology, if the double-talk state is sensed by using a cross-correlation between the output signal x(n) of the far-end speaker and the input signal d(n) of the near-end speaker, a method of stopping an operation of the adaptive filter is provided. However, there is a problem where many computing resources for a cross-correlation computation are consumed. Also, there is a problem where completely stopping the operation of the adaptive filter is not efficient.
SUMMARY
Exemplary embodiments address at least the above problems and/or disadvantages and other disadvantages not described above. Also, the exemplary embodiments are not required to overcome the disadvantages described above, and may not overcome any of the problems described above.
One or more exemplary embodiments provide an electronic device that controls an updating speed of an adaptive filter (AF) by estimating an echo by using variance values of error signals of a plurality of sub-bands and dividing the variance values of the error signal into a plurality of states, a method of cancelling an acoustic echo thereof, and a non-transitory computer readable recording medium.
According to an aspect of an exemplary embodiment, there is provided an electronic device including: a speaker configured to output a sound corresponding to a first audio signal, a microphone configured to generate a second audio signal by acquiring a surrounding sound of the electronic device, a double-talk detector (DTD) configured to determine a double-talk state where an echo signal and a noise signal of the first audio signal are simultaneously included in the second audio signal, and an acoustic echo canceller (AEC) configured to generate an estimated echo signal corresponding to the echo signal of the first audio signal by using an adaptive filter (AF) in response to the double-talk state not being determined and detect an error signal by cancelling the generated estimated echo signal from the second audio signal. The DTD may determine the double-talk state by using a variance value of the error signal and changes an updating speed of the AF in response to the double-talk state being determined, and the AEC may generate an estimated echo signal tracking the echo signal of the first audio signal by using the variance value of the error signal.
According to an aspect of another exemplary embodiment, there is provided a method of cancelling an echo signal of an electronic device, including: generating a second audio signal by acquiring a surrounding sound of the electronic device, determining a double-talk state where an echo signal and a noise signal of a first audio signal output from the electronic device are simultaneously included in the second audio signal, generating an estimated echo signal corresponding to the echo signal of the first audio signal by using an AF in response to the double-talk state not being determined, and detecting an error signal by cancelling the generated estimated echo signal from the second audio signal. The determining may include determining the double-talk state by using the variance value of the error signal and, in response to the double-talk state being determined, changing an updating speed of the AF, and the generating of the estimated echo signal may include generating an estimated echo signal tracking the echo signal of the first audio signal by using the variance value of the error signal.
According to an aspect of another exemplary embodiment, there is provided a non-transitory computer readable recording medium including a program for executing a method of cancelling an echo signal of an electronic device. The method may include generating a second audio signal by acquiring a surrounding sound of the electronic device, determining a double-talk state where an echo signal and a noise signal of a first audio signal output from the electronic device are simultaneously included in the second audio signal, generating an estimated echo signal corresponding to the echo signal of the first audio signal by using an AF in response to the double-talk not being determined, and detecting an error signal by cancelling the generated estimated echo signal from the second audio signal. The determining may include determining the double-talk state by using the variance value of the error signal and changing an update speed of the AF in response to the double-talk being determined, and the generating of the estimated echo signal may include generating an estimated echo signal tracking the echo signal of the first audio signal by using the variance value of the error signal.
According to various exemplary embodiments, a method of further simply and precisely determining a double-talk state may be provided. Also, an echo estimation algorithm having an improved precision in comparison with an existing algorithm may be provided.



BRIEF DESCRIPTION OF THE DRAWINGS
The above and/or other aspects will be more apparent by describing certain exemplary embodiments, with reference to the accompanying drawings, in which:
FIG. 1 illustrates a related-art acoustic echo canceller including a double-talk detector;
FIG. 2 is a block diagram of a schematic configuration of an electronic device, according to an exemplary embodiment;
FIG. 3 is a block diagram of a detailed configuration of an electronic device, according to an exemplary embodiment;
FIG. 4 illustrates an operation of an electronic device, according to an exemplary embodiment;
FIG. 5 is a graph illustrating a variance value of an averaged error signal detected by an electronic device, according to an exemplary embodiment;
FIG. 6 is a graph illustrating a determination of a double-talk state based on a plurality of threshold values in an electronic device, according to an exemplary embodiment;
FIGS. 7A through 7C are graphs illustrating a comparison between an effect of an electronic device according to an exemplary embodiment and an effect of a related technology; and
FIGS. 8 and 9 are flowcharts of a method of cancelling an acoustic echo signal of an electronic device, according to various exemplary embodiments.



DETAILED DESCRIPTION
Exemplary embodiments are described in greater detail below with reference to the accompanying drawings.
In the following description, like drawing reference numerals are used for like elements, even in different drawings. The matters defined in the description, such as detailed construction and elements, are provided to assist in a comprehensive understanding of the exemplary embodiments. However, it is apparent that the exemplary embodiments can be practiced without those specifically defined matters. Also, well-known functions or constructions are not described in detail since they would obscure the description with unnecessary detail.
As used herein, the terms “first”, “second”, etc., may modify various types of elements regardless of orders, but these elements are not restricted by the terms. The terms may be used to distinguish one element from another. For example, without departing from the scope of the present disclosure, a first element may be referred to as a second element, and similarly, the second element may also be referred to as the first element. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
The terminology used herein is for the purpose of describing exemplary embodiments merely and is not intended to be limiting and/or restricting of exemplary embodiments. As used herein, the singular forms are intended to include the plural forms as well, unless the context clearly indicates otherwise. In the present application, the terms “include” and “comprise” designate the presence of features, numbers, steps, operations, components, elements, or a combination thereof that are written in the specification, but do not exclude the presence or possibility of addition of one or more other features, numbers, steps, operations, components, elements, or a combination thereof.
FIG. 2 is a block diagram of a schematic configuration of an electronic device 100, according to an exemplary embodiment. Referring to FIG. 2, the electronic device 100 may include a speaker 110, a microphone 120, an acoustic echo canceller (AEC) 130, and a double-talk detector (DTD) 140.
The electronic device 100 according to the present exemplary embodiment may be realized as all types of electronic devices capable of inputting and/or outputting a voice, like a display apparatus such as a smart TV, a smartphone, a tablet PC, an audio device, an interactive voice recognition device, a navigation system, or the like.
The speaker 110 may output a sound. For example, the speaker 110 may output a sound by processing an audio signal.
The microphone 120 may acquire a surrounding sound of the electronic device 100. The microphone 120 may also generate an audio signal by processing the acquired sound.
The AEC 130 may cancel an acoustic echo signal of a signal output from the speaker 110 by using an adaptive filter (AF) 131.
For example, the AEC 130 may generate an estimated echo signal tracking the signal output from the speaker 110 by updating an AF coefficient. The AEC 130 may eliminate noise caused by a voice signal of the electronic device 100 by cancelling the estimated echo signal generated from the signal acquired by the microphone 120.
According to an exemplary embodiment, the AEC 130 may generate an estimated echo signal by using a variance value of an error signal. The AEC 130 may consecutively update the estimated echo signal so as to track an echo signal of the signal output from the speaker 110. The error signal refers to a value acquired by cancelling an estimated echo signal estimated in a previous stage from an input signal. For example, if the tracking is perfect, the estimated echo signal may correspond to a real echo signal of the signal output from the speaker 110. In this case, the error signal may be 0.
The DTD 140 may determine a double-talk state from a signal received from the microphone 120. The double-talk state refers to a state where the echo signal and a noise signal of the signal output from the speaker 110 are simultaneously input. The double-talk state may mainly become a problem if a noise signal caused by a near-end speaker near to the microphone 120 is input simultaneously with the echo signal.
According to an exemplary embodiment, the DTD 140 may determine the double-talk state based on the variance value of the error signal. Also, if the double-talk state is determined, the DTD 140 may change an updating speed of the AF 131 of the AEC 130.
FIG. 3 is a block diagram of a detailed configuration of the electronic device 100, according to an exemplary embodiment. Referring to FIG. 3, the electronic device 100 may include the speaker 110, the microphone 120, the AEC 130, and the DTD 140. Also, the AEC 130 may include a plurality of AFs 131-1, 131-2, . . . , and 131-M, an analysis filter 133, and a synthesis filter 135.
Descriptions of the speaker 110 and the microphone 120 of FIG. 3 are the same as those of the speaker 110 and the microphone 120 of FIG. 2 and thus are omitted. Operations of the AEC 130 and the DTD 140 will now be described in more detail.
The analysis filter 133 performs an operation of dividing an audio signal into a plurality of frequency bands. For example, an analysis filter 133-1 may divide a signal received from the microphone 120. Also, an analysis filter 133-2 may divide a signal output from the speaker 110.
The synthesis filter 135 performs an operation of synthesizing the signal divided into the plurality of frequency bands. For example, the synthesis filter 135 may receive other signals, from which estimated echo signals are respectively cancelled, from the plurality of AFs 131-1, 131-2, . . . , and 131-M and then synthesize the other signals. A result synthesized by the synthesis filter 135 is a residual echo signal.
According to an exemplary embodiment, the AEC 130 may include the plurality of AFs 131-1, 131-2, . . . , and 131-M that operate in different frequency bands. The plurality of AFs 131-1, 131-2, . . . , and 131-M may respectively generate estimated echo signals having allocated frequency bands. The divided frequency bands may be referred to as sub-bands. Also, the AEC 130 that uses the above-described method is also referred to as a sub-band AEC.
According to an exemplary embodiment, the plurality of AFs 131-1, 131-2, . . . , and 131-M may respectively detect error signals of the allocated frequency bands. Also, the plurality of AFs 131-1, 131-2, . . . , and 131-M may calculate variance values of the detected error signals.
One of the plurality of AFs 131-1, 131-2, . . . , and 131-M according to an exemplary embodiment generates an estimated echo signal of a frequency band allocated thereto by using variance values of error signals detected by the other AFs 131-2, 131-3, . . . , and 131-M operating in different frequency bands (i.e., different sub-bands) and the error signal detected by the one AF. This characteristic of the AEC 130 according to an exemplary embodiment is merely to divide and process frequency bands, and thus the AEC 130 has a difference from a sub-band AEC.
For example, the AF 131-1 of the lowest frequency band among the plurality of AFs 131-1, 131-2, . . . , and 131-M detects an error signal of the allocated lowest frequency band. Also, the AF 131-1 of the lowest frequency band may update the estimated echo signal of the lowest frequency band by using a variance value of a right previous error signal detected by the another AF 131-M operating in the highest frequency band along with the error signal detected by the another AF 131-M.
The AEC 130 according to an exemplary embodiment may use an error signal in a whole sub-band when updating the estimated echo signal of each sub-band. For example, the AEC 130 may generate an estimated echo signal by using an averaged error variance value. The term “averaged” is used herein but does not refer to a generally used arithmetical average. The “averaged error variance” used herein means that a variance value of an error signal detected by the AF 131-1 of one sub-band and variance values of error signals detected by the other AFs 131-2, 131-3, . . . , and 131-M of other sub-bands are all considered. A detailed equation of this will be described later with reference to FIG. 4.
The DTD 140 according to an exemplary embodiment may determine a double-talk state by comparing a variance value of an error signal with a preset threshold value. For example, the DTD 140 may set a plurality of threshold values. The DTD 140 having the plurality of threshold values may also be referred to as a multi-state DTD.
The DTD 140 according to an exemplary embodiment may determine several stage states by comparing the variance value of the error signal with the plurality of threshold values. For example, the DTD 140 may divide the variance value into a plurality of sections according to the plurality of threshold values and then determine a section where the variance value of the error signal is located. Also, the DTD 140 may change an updating speed of the AF 131 by determining a parameter corresponding to the section of the plurality of sections where the variance value of the error signal is located.
The plurality of threshold values are set to distinguish the double-talk state from a state where a path of an echo signal is changed (e.g., a state where a person goes by in front of a TV). For example, if the variance value of the error signal is greater than most of the plurality of threshold values, the DTD 140 may determine that there is a high possibility of the double-talk state. The DTD 140 may also reduce an updating speed of an AF according to which one of the plurality of sections the variance value of the error signal is located in.
On the contrary to this, if the variance value of the error signal is less than most of the plurality of threshold values, the DTD 140 may determine that the error signal is generated according to a change in a path of an echo signal. Also, the DTD 140 may maintain the updating speed of the AF.
A more detailed determination method will be described later with reference to FIGS. 5 and 6.
FIG. 4 illustrates an operation of the electronic device 100, according to an exemplary embodiment.
A reference signal x(n) is output through the speaker 110. The output reference signal x(n) may be input as an echo signal h(n)*x(n) into the microphone 120 by an acoustic echo path h(n). The echo signal h(n)*x(n) may be calculated as convolutions of the acoustic echo path h(n) and the reference signal x(n). Alternatively, the echo signal h(n)*x(n) may be expressed as hT(n)x(n) by using a transposed value of the acoustic echo path h(n).
Also, a noise signal v(n) generated by a surrounding object and a noise signal s(n) generated by a near-end speaker may be input into the microphone 120. If a double-talk state becomes a problem, the noise signal v(n) generated by the surrounding object hardly affects the double-talk state, and the noise signal s(n) generated by the near-end speaker mainly becomes a problem. Here, the noise signal s(n) generated by the near-end speaker is expressed as noise but may be a voice command of a user for controlling the electronic device 100. The voice command of the user may be evaluated as noise when cancelling the echo signal and thus is expressed as the noise signal. Therefore, a signal input into the electronic device 100 through the microphone 120 is d(n) and may be expressed as in Equation 1.

d(n)=h(n)x(n)+s(n)+v(n)  (1)

The AF 131 may generate an estimated echo signal ĥ(n)x(n). Also, the AF 131 may cancel the estimated echo signal ĥ(n)x(n) from the input signal d(n). An error signal e(n) becomes a signal that is acquired by cancelling the estimated echo signal from the input signal.

e(n)=d(n)−{circumflex over (h)}(n)x(n)  (2)

The AEC 131 according to an exemplary embodiment may include a plurality of AFs 131, an analysis filter 133, and a synthesis filter 135. An analysis filter 133-1 divides the input signal d(n) according to frequency bands. For example, as shown in FIG. 4, if M AFs 131-1, 131-2, . . . , and 131-M exist, the analysis filter 133-1 divides the input signal d(n) into M bands. Divided frequency bands may be expressed as sub-bands.
The plurality of AFs 131 according to an exemplary embodiment respectively cancels an estimated echo signal from an input signal of an allocated frequency band. Therefore, the plurality of AFs 131 may respectively detect error signals of allocated frequency bands. The plurality of AFs 131 may update an estimated filter coefficient ĥ(n) by using the detected error signals. For example, the AF 131 may generate an estimated echo signal through an updated filter coefficient as in Equation 3 below:




  
    
      
        
          
            
              h
              ^
            
            b
          
          ⁡
          
            (
            
              n
              +
              1
            
            )
          
        
        =
        
          
            
              
                h
                ^
              
              b
            
            ⁡
            
              (
              n
              )
            
          
          +
          
            
              μ
              b
            
            ⁢
            
              
                e
                b
              
              ⁡
              
                (
                n
                )
              
            
            ⁢
            
              
                
                  
                    x
                    b
                  
                  ⁡
                  
                    (
                    n
                    )
                  
                
                ⁢
                
                  
                    
                    
                      
                        x
                        b
                      
                      ⁡
                      
                        (
                        n
                        )
                      
                    
                    
                  
                  2
                
              
              
                
                  
                    
                    
                      
                        x
                        b
                      
                      ⁡
                      
                        (
                        n
                        )
                      
                    
                    
                  
                  4
                
                +
                
                  γσ
                  
                    e
                    n
                  
                  4
                
              
            
          
        
      
    
    
      
        (
        3
        )
      
    
  




wherein b denotes an index of a sub-band. For example, if an input signal is divided into M sub-bands as shown in FIG. 4, b=0, . . . , M−1.

Also, n denotes a discrete time instance, and μ denotes a parameter controlling an updating speed of the AF 131.
As in Equation 3, the plurality of AFs 131-1, 131-2, . . . , and 131-M independently update filter coefficients. However, variance values of error signals used for updating the filter coefficients are not error signal variance values of independent sub-bands. The AEC 130 according to an exemplary embodiment may use an averaged error variance value smoothed for a whole band instead of using error variances of independent sub-bands in order to increase a robustness to a double talk. An averaged error variance value σen may be determined as in Equation 4 below.




  
    
      
        {
        
          
            
              
                
                  
                    σ
                    n
                  
                  ⁡
                  
                    (
                    0
                    )
                  
                
                =
                
                  
                    
                      ασ
                      
                        n
                        -
                        1
                      
                    
                    ⁡
                    
                      (
                      
                        M
                        -
                        1
                      
                      )
                    
                  
                  +
                  
                    
                      (
                      
                        1
                        -
                        α
                      
                      )
                    
                    ⁢
                    
                      
                        σ
                        
                          e
                          n
                        
                      
                      ⁡
                      
                        (
                        0
                        )
                      
                    
                  
                
              
            
          
          
            
              
                
                  
                    σ
                    n
                  
                  ⁡
                  
                    (
                    b
                    )
                  
                
                =
                
                  
                    
                      ασ
                      n
                    
                    ⁡
                    
                      (
                      
                        b
                        -
                        1
                      
                      )
                    
                  
                  +
                  
                    
                      (
                      
                        1
                        -
                        α
                      
                      )
                    
                    ⁢
                    
                      
                        σ
                        
                          e
                          n
                        
                      
                      ⁡
                      
                        (
                        b
                        )
                      
                    
                  
                
              
            
          
        
      
    
    
      
        (
        4
        )
      
    
  




An expression described in Equation 4 above is an expression of the AF 131-1 of the lowest frequency band among the plurality of AFs 131. Also, an expression described below is an expression of the other AFs 131-2, . . . , and 131-M. α is a smoothing parameter.
For example, the AF 131-1 of the lowest frequency band among the plurality of AFs 131-1, 131-2, . . . , and 131-M may derive an averaged error variance value by using a variance value σen(0) of an error signal of an allocated sub-band and an averaged error variance value σn-1(M−1) detected from the AF 131-M operating in the highest band in a previous stage. The derived averaged error variance value may be substituted into Equation 3 above to be used so as to acquire an adaptive coefficient.
As another example, an AF 131-b of a b+1th frequency band among a plurality of AFs may derive an averaged error variance value by using a variance value σen(b) of an error signal of an allocated sub-band and an averaged error variance value σn(b−1) of an AF 131-b−1 of an adjacent lower band (i.e., a bth band).
Through this process, if an increase in an error variance value caused by a double-talk is detected in a low frequency band, the double-talk may be checked in a high frequency band and may be spread to the highest frequency band.
For example, if a frequency band is divided into three sub-bands, an averaged error variance of each of the three sub-bands may be expressed as in Equation 5 below.




  
    
      
        
          
            
              σ
              n
            
            ⁡
            
              (
              0
              )
            
          
          =
          
            
              
                ασ
                
                  n
                  -
                  1
                
              
              ⁡
              
                (
                2
                )
              
            
            +
            
              
                (
                
                  1
                  -
                  α
                
                )
              
              ⁢
              
                
                  σ
                  
                    e
                    n
                  
                
                ⁡
                
                  (
                  0
                  )
                
              
            
          
        
        ⁢
        
          

        
        ⁢
        
          
            
              
                
                  
                    σ
                    n
                  
                  ⁡
                  
                    (
                    1
                    )
                  
                
                =
                
                ⁢
                
                  
                    
                      ασ
                      n
                    
                    ⁡
                    
                      (
                      0
                      )
                    
                  
                  +
                  
                    
                      (
                      
                        1
                        -
                        α
                      
                      )
                    
                    ⁢
                    
                      
                        σ
                        
                          e
                          n
                        
                      
                      ⁡
                      
                        (
                        1
                        )
                      
                    
                  
                
              
            
          
          
            
              
                =
                
                ⁢
                
                  
                    
                      α
                      2
                    
                    ⁢
                    
                      
                        σ
                        
                          n
                          -
                          1
                        
                      
                      ⁡
                      
                        (
                        2
                        )
                      
                    
                  
                  +
                  
                    
                      (
                      
                        1
                        -
                        α
                      
                      )
                    
                    ⁢
                    
                      (
                      
                        
                          
                            ασ
                            
                              e
                              n
                            
                          
                          ⁡
                          
                            (
                            0
                            )
                          
                        
                        +
                        
                          
                            σ
                            
                              e
                              n
                            
                          
                          ⁡
                          
                            (
                            1
                            )
                          
                        
                      
                      )
                    
                  
                
              
            
          
        
        ⁢
        
          

        
        ⁢
        
          
            
              
                
                  
                    σ
                    n
                  
                  ⁡
                  
                    (
                    2
                    )
                  
                
                =
                
                ⁢
                
                  
                    
                      ασ
                      n
                    
                    ⁡
                    
                      (
                      1
                      )
                    
                  
                  +
                  
                    
                      (
                      
                        1
                        -
                        α
                      
                      )
                    
                    ⁢
                    
                      
                        σ
                        
                          e
                          n
                        
                      
                      ⁡
                      
                        (
                        2
                        )
                      
                    
                  
                
              
            
          
          
            
              
                =
                
                ⁢
                
                  
                    
                      α
                      3
                    
                    ⁢
                    
                      
                        σ
                        
                          n
                          -
                          1
                        
                      
                      ⁡
                      
                        (
                        2
                        )
                      
                    
                  
                  +
                  
                    
                      (
                      
                        1
                        -
                        α
                      
                      )
                    
                    ⁢
                    
                      (
                      
                        
                          
                            α
                            2
                          
                          ⁢
                          
                            
                              σ
                              
                                e
                                n
                              
                            
                            ⁡
                            
                              (
                              0
                              )
                            
                          
                        
                        +
                        
                          
                            ασ
                            
                              e
                              n
                            
                          
                          ⁡
                          
                            (
                            1
                            )
                          
                        
                        +
                        
                          
                            σ
                            
                              e
                              n
                            
                          
                          ⁡
                          
                            (
                            2
                            )
                          
                        
                      
                      )
                    
                  
                
              
            
          
        
      
    
    
      
        (
        5
        )
      
    
  




As shown in Equation 5 above, variance values of error signals detected in all sub-bands are reflected on an averaged error variance derived from each sub-band.
As described above, the AEC 130 according to an exemplary embodiment may increase an adaptive speed and prevent a divergence of a filter by using a variance value of an error signal.
The DTD 140 according to an exemplary embodiment may determine a double-talk state by merely examining an averaged error signal variance value. Therefore, the DTD 140 may determine the double-talk state without using a cross-correlation requiring many resources and a lot of time for computations.
If the averaged error variance value is illustrated with time, a graph as shown in FIG. 5 may be acquired. Parts expressed as peaks on the graph correspond to parts where double-talk occurs. Therefore, the DTD 140 may set a threshold value and, if an error variance exceeding the set threshold value occurs, determine that double-talk occurs.
However, if double-talk is determined based on one threshold value as described in a related technology (i.e., in case of a two-state DTD), a determination may not be made as to whether double-talk occurs or a momentary echo path is changed.
On the contrary to this, the DTD 140 according to an exemplary embodiment may determine double-talk (i.e., a multi-state DTD) based on a plurality of threshold values. The DTD 140 may set a threshold value of a lowest level by tracking a noise floor of an averaged error variance. For example, a threshold value T1 of a lowest level may be determined by multiplying an estimated floor level σnfloor by a particular coefficient c1.

T1=c1σnfloor  (6)

Also, threshold values of next levels may be determined from the threshold value of the lowest level. For example, the threshold values may be determined as a value acquired by multiplying the threshold value of a previous level by a particular coefficient. For example, if a plurality of threshold values are set in S stages, the DTD 140 may set a threshold value as in Equation 7 below.

Ti=ciTi-1,i=2, . . . ,S 

1<ci≦2  (7)

Referring to FIG. 6, a two-dot chain line illustrated in a lowest location corresponds to the threshold value T1 of the lowest level. Also, a one-dot chain line illustrated in a second location and a dotted line illustrated in a third location respectively denote T3 and T6. As shown in FIG. 6, the DTD 140 may set the threshold value of the lowest level by tracking the noise floor of the averaged error variance. Therefore, a plurality of threshold values may be changed with time.
The DTD 140 according to an exemplary embodiment may determine which one of a plurality of sections the averaged error variance value is located in by comparing the plurality of set threshold values and the averaged error variance value. Also, the DTD 140 may determine a DTD state according to the determined section. The DTD 140 may control an updating speed of the AF 131 by changing the parameter μ of Equation 3 according to the determined DTD state.
For example, the DTD 140 may control the updating speed according to DTD state S as in Equation 8 below. S_dtd in Equation 8 may be determined by an experiment.




  
    
      
        {
        
          
            
              
                μ
                ,
              
            
            
              
                
                  if
                  ⁢
                  
                    
                  
                  ⁢
                  S
                
                ≤
                
                  S
                  dtd
                
              
            
          
          
            
              
                
                  μ
                  /
                  
                    2
                    
                      S
                      -
                      
                        S
                        dtd
                      
                    
                  
                
                ,
              
            
            
              otherwirse
            
          
        
      
    
    
      
        (
        8
        )
      
    
  




FIGS. 7A through 7C are graphs illustrating a comparison between an effect of the electronic device 100 according to an exemplary embodiment and an effect of a related technology. FIGS. 7A through 7C are spectrograms of error signals.
FIG. 7A corresponds to a case where a DTD is not used. As shown in FIG. 7A, a signal generated by a sound such as a reverberation appears. Even in a case of a related-art DTD as shown in FIG. 7B, an AF rapidly diverges, and thus a reverberation signal as shown in FIG. 7B is frequently observed.
On the contrary to this, if the multi-state DTD 140 according to an exemplary embodiment shown in FIG. 7C is used, a divergence of the AF 131 may not be prevented, and thus a signal as described above is not observed.
The electronic device 100 according to various exemplary embodiments as described above may cancel an acoustic echo so as to be more robust to a double-talk state by using error signal variance values of all sub-bands. Also, the electronic device 100 may determine a double-talk state by setting a plurality of threshold values so as to increase a reliability of the determination of the double-talk state of the electronic device 100 of a user. Also, instead of completely stopping an operation of an AF, an effect of the AF that adapts at an appropriate speed may be acquired.
Methods of cancelling an echo signal of the electronic device 100 according to various exemplary embodiments will now be described with reference to FIGS. 8 and 9.
FIG. 8 is a flowchart of a method of cancelling an echo signal of the electronic device 100, according to an exemplary embodiment. Referring to FIG. 8, in operation 5810, the electronic device 100 may generate a second audio signal by acquiring a surrounding sound. The second audio signal may be a mixture of an echo signal of a signal output from the electronic device 100 and other noise signals. The electronic device 100 may receive the second audio signal through a microphone or the like.
In operation S820, the electronic device 100 may detect an error signal by cancelling an estimated echo signal from the second audio signal. The electronic device 100 may cancel an echo signal of a first audio signal output from the electronic device 100 by using an AF. For this, the electronic device 100 may generate an estimated echo signal corresponding to the echo signal of the first audio signal.
In operation S830, the electronic device 100 may determine a double-talk state by using a variance value of an error signal. If the electronic device 100 determines the double-talk state in operation S830, the electronic device 100 may change an updating speed of the AF. For example, the electronic device 100 may enable an echo path estimation of the AF not to be ruined due to the double-talk state by lowering the updating speed. If the double-talk state is not determined in operation S830, the electronic device 100 may maintain the updating speed of the AF and continuously perform an adaptive operation.
In operation S850, the electronic device 100 generates an estimated echo signal by using the variance value of the error signal. An adaptive speed that updates the estimated echo signal may be changed according to whether the double-talk state is determined. In operation S820, the electronic device 100 continuously performs an error signal detection by using the estimated echo signal that is updated and generated.
FIG. 9 is a flowchart of a method of cancelling an echo signal of the electronic device 100, according to another exemplary embodiment. Referring to FIG. 9, in operation S910, the electronic device 100 may generate a second audio signal by acquiring a surrounding sound.
In operation S920, the electronic device 100 may divide the second audio signal into a plurality of frequency bands and respectively allocate the divided frequency bands to a plurality of AFs. In operation S930, the plurality of AFs may detect error signals of allocated frequency bands by cancelling an estimated echo signal from an input signal.
In operation S940, the plurality of AFs may derive an averaged error signal variance value by using merely the independently detected error signals and reflecting an error signal detected by an AF operating in a different band together. The plurality of AFs may respectively generate an estimated echo signal of an allocated frequency band by using a variance value of a detected error signal and a variance value of an error signal detected by another AF operating in an adjacent lower frequency band. Also, the plurality of AFs may respectively detect an error signal of a corresponding band by cancelling the generated estimated echo signal from the input signal.
For example, an adjacent lower frequency band does not exist in a case of an AF of a lowest frequency band. In order to reflect an adaptive process of a previous stage, the AF of the lowest frequency band may use a variance value of an error signal detected in a previous stage of another AF operating in a highest frequency band.
In operation S950, the electronic device 100 may determine a double-talk state by comparing the derived averaged error signal variance value with a plurality of threshold values. The electronic device 100 may track and determine a noise floor of an averaged error variance by using the plurality of threshold values. For example, a threshold value of a lowest level may be determined as a multiple of the noise floor, and threshold values of other levels may be determined as multiples of the lowest level.
If the double-talk state is determined in operation S950, the electronic device 100 may determine which one of a plurality of sections the averaged error variance value is located in, by using the plurality of threshold values. In operation S960, the electronic device 100 may change an updating speed of an AF according to the section in which the averaged error variance value is located.
The electronic device 100 may generate estimated echo signals of the plurality of AFs (i.e., of sub-bands) by using the variance value of the averaged error signal. The electronic device 100 may acquire an effect of increasing a robustness to the double-talk state by using an averaged error signal variance reflecting error values of all sub-bands.
Also, the electronic device 100 may continuously perform an adaptive operation by using an updated estimated echo signal.
The above-described methods may be embodied as program instructions that may be executed by processor, integrated circuit, computer, etc. and may be recorded on a computer readable recording medium. The computer readable medium may include program instructions, data files, data structures, or combinations thereof. The program instructions that are recorded on the computer readable recording medium may be particularly designed or configured for the present embodiments or may be known to those skilled in the art and then may be used. Examples of the computer readable recording medium includes magnetic media such as a hard disk, a floppy disk, and a magnetic disk, optical media such as a CD-ROM and a DVD, magneto-optical media such as a floptical disk, and a hardware device that is particularly configured to store and perform program instructions like an ROM, an RAM, a flash memory, or the like. Examples of the program instructions may include machine language codes that are made by a compiler and high-level language codes that may be executed by a computer by using an interpreter or the like. The hardware device may be configured to operate as one or more software modules so as to perform operations, and an opposite case is the same.
The foregoing exemplary embodiments are merely exemplary and are not to be construed as limiting. The present teaching can be readily applied to other types of apparatuses. Also, the description of the exemplary embodiments is intended to be illustrative, and not to limit the scope of the claims, and many alternatives, modifications, and variations will be apparent to those skilled in the art.

## Claims

1. An electronic device comprising:
a speaker configured to output a sound corresponding to a first audio signal;
a microphone configured to obtain a surrounding sound of the electronic device to generate a second audio signal;
a double-talk detector configured to determine whether a double-talk state, in which an echo signal and a noise signal of the first audio signal are included in the second audio signal, occurs; and
an acoustic echo canceller configured to, in response to the double-talk detector determining that the double-talk state does not occur, generate an estimated echo signal corresponding to the echo signal of the first audio signal based on an adaptive filter and detect an error signal by canceling the generated estimated echo signal from the second audio signal,
wherein the double-talk detector is further configured to, in response to detecting the error signal, determine whether the double-talk state occurs based on a variance value of the error signal, and in response to determining that the double-talk states occurs, change an updating speed of the adaptive filter, and
wherein the adaptive filter comprises a first adaptive filter configured to operate in a first frequency band and a second adaptive filter configured to operate in a second frequency band different from the first frequency band,
wherein the error signal comprises a first error signal in the first frequency band and a second error signal in the second frequency band,
wherein the first adaptive filter is configured to detect the first error signal in the first frequency band, and generate the estimated echo signal in the first frequency band based on a first variance value of the first error signal and a second variance value of the second error signal detected by the second adaptive filter.

2. The electronic device of claim 1, wherein the first frequency band of the first adaptive filter and the second frequency band of the second adaptive filter are adjacent to each other.

3. The electronic device of claim 1, wherein, when the first frequency band is a lowest frequency band, the second frequency band is a highest frequency band.

4. The electronic device of claim 1, wherein the double-talk detector compares the variance value of the error signal with a preset threshold value to determine whether the double-talk state occurs.

5. The electronic device of claim 1, wherein the double-talk detector detects a section in which the variance value of the error signal is located among a plurality of sections divided by a plurality of predetermined threshold values, determine whether the double-talk state occurs based on the section in which the variance value of the error signal is located, and
in response to determining that the double-talk state occurs, changes an updating speed of the adaptive filter into an updating speed corresponding to the section in which the variance value of the error signal is located.

6. A method of cancelling an echo signal of an electronic device, the method comprising:
obtaining a surrounding sound of the electronic device to generate a second audio signal;
determining whether a double-talk state, in which an echo signal and a noise signal of a first audio signal output from the electronic device are included in the second audio signal, occurs;
in response to determining that the double-talk states does not occur, generating an estimated echo signal corresponding to the echo signal of the first audio signal based on an adaptive filter; and
detecting an error signal by cancelling the generated estimated echo signal from the second audio signal,
wherein the determining comprises determining whether the double-talk state occurs based on a variance value of the error signal in response to detecting the error signal and, in response to determining that the double-talk state occurs, changing an updating speed of the adaptive filter, and
wherein the adaptive filter comprises a first adaptive filter configured to operate in a first frequency band and a second adaptive filter configured to operate in a second frequency band different from the first frequency band,
wherein the error signal comprises a first error signal in the first frequency band and a second error signal in the second frequency band,
wherein the detecting the error signal comprises detecting the first error signal and detecting the second error signal, and
wherein the generating the estimated echo signal comprises generating the estimated echo signal in the first frequency band based on a first variance value of the first error signal and a second variance value of the second error signal detected in the second frequency band by the second adaptive filter.

7. The method of claim 6, wherein the first frequency band of the first adaptive filter and the second frequency band of the second adaptive filter are adjacent to each other.

8. The method of claim 6, wherein, when the first frequency band is a lowest frequency band, the second frequency band is a highest frequency band.

9. The method of claim 6, wherein the determining comprises comparing the variance value of the error signal with a preset threshold value to determine whether the double-talk state occurs.

10. The method of claim 6, wherein the determining comprises:
detecting a section in which the variance value of the error signal is located among a plurality of sections divided by a plurality of predetermined threshold values;
determining whether the double-talk state occurs based on the section in which the variance value of the error signal is located, and
in response to determining that the double-talk state occurs, changing an updating speed of the adaptive filter into an updating speed corresponding to the section in which the variance value of the error signal is located.

11. A non-transitory computer readable storage medium storing a program that is executable by a computer to perform a method of cancelling an echo signal of an electronic device, wherein the method comprises:
obtaining a surrounding sound of the electronic device to generate a second audio signal;
determining whether a double-talk state, in which an echo signal and a noise signal of a first audio signal output from the electronic device are included in the second audio signal, occurs;
in response to determining that the double-talk state does not occur, generating an estimated echo signal corresponding to the echo signal of the first audio signal based on an adaptive filter; and
detecting an error signal by cancelling the generated estimated echo signal from the second audio signal,
wherein the determining comprises determining whether the double-talk state occurs based on the variance value of the error signal in response to detecting the error signal, and changing an update speed of the adaptive filter in response to determining that the double-talk state occurs, and
wherein the adaptive filter comprises a first adaptive filter configured to operate in a first frequency band and a second adaptive filter configured to operate in a second frequency band different from the first frequency band,
wherein the error signal comprises a first error signal in the first frequency band and a second error signal in the second frequency band,
wherein the detecting the error signal comprises detecting the first error signal and detecting the second signal, and
wherein the generating the estimated echo signal comprises generating the estimated echo signal in the first frequency band based on a first variance value of the first error signal and a second variance value of the second error signal detected in the second frequency band by the second adaptive filter.