1. Technical Field
The subject matter described herein generally relates to systems and methods for performing echo cancellation in an audio communication system, such as a telephony system.
2. Description of Related Art
Acoustic echo is a phenomenon that occurs in audio communication systems, such as telephony systems, when speech generated by a remote or “far-end” speaker and played back over a local or “near-end” loudspeaker is picked up by a near-end microphone and transmitted back to the far end. The transmitted signal is a delayed version of the original, which causes the echo. The received far-end signal does not transfer directly from the loudspeaker to the microphone, but is subject to the environment in which the loudspeaker and microphone are located. This may include differing signal paths causing reverberation and spectral shaping. These effects are the transfer function between the loudspeaker and the microphone. Such transfer function is dynamic, as objects in the environment move or the loudspeaker and/or microphone change position.
Acoustic echo cancellation refers to a process by which the acoustic echo is modeled and then subtracted from the signal that is to be transmitted to the far end. Acoustic echo cancellation is traditionally performed using an adaptive filter to estimate the transfer function between the loudspeaker and microphone. Typically, the filter parameters of the adaptive filter are incrementally modified over time to account for changes in certain instantaneous statistics associated with the signal being played back over the loudspeaker and the signal received via the microphone. For such acoustic echo cancellers there is always a risk of divergence and the possibility of objectionable artifacts. Furthermore, for such acoustic cancellers, it is necessary to detect periods when the near-end and far-end speakers are talking simultaneously (a condition known as “double-talk”) and to stop updating the adaptive filter during such periods to prevent divergence.
The accompanying drawings, which are incorporated herein and form part of the specification, illustrate the subject matter of the present application and, together with the description, further serve to explain the principles of the embodiments described herein and to enable a person skilled in the relevant art(s) to make and use such embodiments.
The features and advantages of the subject matter of the present application will become more apparent from the detailed description set forth below when taken in conjunction with the drawings, in which like reference characters identify corresponding elements throughout. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.
The following detailed description discloses numerous example embodiments. The scope of the present patent application is not limited to the disclosed embodiments, but also encompasses combinations of the disclosed embodiments, as well as modifications to the disclosed embodiments.
References in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
In the following sections, various systems and methods for performing acoustic echo cancellation will be described. Each of these systems and methods may be implemented as part of an audio communication system or device to help reduce or prevent the occurrence of acoustic echo. By way of example, the systems and methods described herein may be implemented in a desktop or mobile telephone, a computer-executable softphone, an audio teleconferencing system, or the like. More generally, the systems and methods described herein may be implemented in any audio communication system in which the occurrence of acoustic echo is possible.
The acoustic echo cancellation techniques described in the following sections are described as processing speech signals. However, persons skilled in the relevant art(s) will readily appreciate that all of the acoustic echo cancellation techniques described herein can also process music signals, and audio signals generally. Thus, any reference to a speech signal is not intended to be limiting. Where the term “speech signal” is used, the term “music signal” and “audio signal” may be used interchangeably.
Persons skilled in the relevant art(s) will also readily appreciate that the techniques described herein for performing acoustic echo cancellation may also be applied to attenuate or cancel other types of echo that may be present in an audio communication system. For example, such techniques may be applied to perform line echo cancellation in an audio communication system.
A system that performs acoustic echo cancellation can be viewed as a multi-sensor-input, single-output system that operates to suppress in a signal produced by a microphone, a signal being played back by a loudspeaker and picked up as echo by the microphone. In this context, the sensor signals would be the microphone signal and the signal being played back by the loudspeaker.
2.1 Linear Acoustic Echo Cancellation
It is to be understood that the operations performed by the various components of system 100 are performed in the time domain.
As also shown in
In one embodiment, the FFT operations performed by FFT components 212 and 214 and the IFFT operations performed by IFFT component 220 are performed on a frame basis with suitable overlap and windowing for proper sampling of the spectrum in time.
2.1.1 Closed-Form Single-Tap Frequency Domain Solution
A closed-form solution can be derived in the time or frequency domain without loss of generalization. In the following, it is carried out in the frequency domain based on system 200 shown in
where n is the discrete time index, m is the frame index for the Discrete Fourier Transforms (DFTs), and f is the frequency index. The output is expanded as
Allowing the acoustic echo cancellation taps, Hl(f), to be complex prevents taking the derivative with respect to the coefficients due to the complex conjugate (of Ŝ(m, f)) not being differentiable. The complex conjugate does not satisfy the Cauchy-Riemann equations. However, since the cost function of Eq. 1 is real, the gradient can be calculated as
(see S. Haykin, “Adaptive Filter Theory,” Prentice Hall, 2nd edition, 1991, which is incorporated by reference herein). Hence, the gradient will be with respect to the complex tap for every frequency bin, H(f), is expanded as
This solution can be written as
2.1.2 Hybrid Closed-Form Frequency Domain Solution
In the example solution derived in Section 2.1.1 (single-tap per frequency bin) the frequency resolution is determined by the FFT size. In many cases, this is a system compromise in the interest of overall complexity, and the FFT size may not provide adequate frequency resolution to perform satisfactory acoustic echo cancellation. This will generally be the case if the size of the FFT is smaller than the impulse response of the acoustic echo path. It may not be practical to have a separate larger size FFT (and IFFT) only for the acoustic echo cancellation. To address this issue, this section provides an alternative approach in the form of applying a time direction filter to individual frequency bins to incorporate longer memory into the model of the acoustic path. Effectively, the time direction filters in individual frequency bins increase the frequency resolution by providing a non-flat frequency response within a bin. This approach also enables the acoustic echo canceller to have a longer tail length than that otherwise provided by the size of the FFT, which is useful for environments having high reverberation and thus a longer impulse response.
As shown in
As also shown in
It should be noted that time direction filter order K can be frequency dependent so that the frequency resolution is not increased to the same extent in all frequency ranges.
The derivation of acoustic echo cancellation taps H0(f) through HK(f) will now be described. Again, the objective is to minimize the output power of the acoustic echo canceller:
where n is the discrete time index, m is the frame index for the DFTs, and f is the frequency index. The output for a particular frequency bin is expanded as
Allowing the acoustic echo cancellation taps, Hl(f), to be complex prevents taking the derivative with respect to the coefficients due to the complex conjugate (of Ŝ(m, f)) not being differentiable. The complex conjugate does not satisfy the Cauchy-Riemann equations. However, since the cost function of Eq. 8 is real, the gradient can be calculated as
(see S. Haykin, “Adaptive Filter Theory,” Prentice Hall, 2nd edition, 1991, which is incorporated by reference herein). Hence, the gradient will be with respect to K+1 complex taps for every frequency bin and result in a system of equations to solve for the complex AEC taps of every frequency bin. The gradient with respect to a particular complex tap, Hk(f), is expanded as
The set of K+1 equations (for k=0, 1, . . . , K) of Eq. 11 provides a matrix equation for every frequency bin f to solve for Hk(f) k=0, 1, . . . , K:
This solution can be written as
and superscript “T” denotes non-conjugate transpose. The solution per frequency bin to the AEC taps is given by
H(f)=(RX(f))−1·rD,X*(f) (Eq. 17)
This appears to require a matrix inversion of order K+1. Accordingly, for a non-hybrid linear AEC it becomes a simple division consistent with Section 2.1.1. Although it requires a matrix inversion in general, in most practical applications this is not needed. Up to order 4 (hybrid order 3) direct-form solutions may be derived to solve Eq. 13. For the sake of completeness, mathematical details for deriving such solutions are provided in
In one embodiment, a hybrid closed-form frequency domain solution for acoustic echo cancellation is used having a time direction filter order K=2 (i.e., 3 filter taps per frequency bin) for narrowband speech, while for wideband speech, a first order hybrid (i.e., 2 filter taps per frequency bin) is used.
2.2 Updating of Statistics
The closed-form solutions described above all require knowledge of various signal statistics: Eq. 6, 7, 14, and 15. In practice these must be estimated from the available signals/spectra, and should accommodate changes to the echo path. Changes to the echo path are a common result of a user or phone moving, or the physical environment changing. This can occur rapidly and the estimation of statistics needs to be able to properly track these changes, which are reflected in the statistics. This suggests using some sort of mean with a forgetting factor, and although many possibilities exist, a suitable approach for obtaining the estimated statistics comprises utilizing a running mean of the instantaneous statistics with a certain leakage factor (also referred to in the following as update rate). The term “instantaneous statistics” refers to individual products within the summations in Eq. 6, 7, 14 and 15.
In at least one embodiment, a rate for updating the estimated statistics necessary for implementing any of the closed-form solutions described above is controlled on a frequency bin by frequency bin basis in accordance with a measure of coherence between the frequency domain representation of the signal being sent to the speaker (e.g., X(f) as shown in
Generally speaking, if the measure of coherence for a given frequency bin is low, then desired speech is likely being received via the microphone with little echo being present. However, if the measure of coherence is high then there is likely to be significant acoustic echo. In accordance with certain embodiments, an aggressive tracker is utilized that maps a high measure of coherence to a fast update rate for the estimated statistics and maps a low measure of coherence to a low update rate for the estimated statistics, which may include not updating at all. In an embodiment in which the statistics are estimated by calculating a running mean, the aforementioned mapping may be achieved by controlling the weight attributed to the current instantaneous statistics when calculating the mean. Thus, to achieve a slow update rate, little or no weight may be assigned to the current instantaneous statistics, but to achieve a fast update rate, more significant weight may be assigned current instantaneous statistics.
In further accordance with such an embodiment, a conservative tracker may also be used that applies a fixed update rate that is fairly slow but is constant. For each frequency bin, the result of the application of the closed-form solution of the acoustic echo canceller can be determined in accordance with the estimated statistics generated using the aggressive tracker and in accordance with the estimated statistics generated using the conservative tracker. For each frequency bin, the lower-power result may be selected as the output of the acoustic echo canceller for that frequency bin, since that result will be the one that removes the most echo. Furthermore, a “safety net” may be applied to each frequency bin such that if the selected result for that frequency bin has a power that is greater than that of the corresponding frequency bin of the microphone input signal, then the selected result may be discarded and the frequency component associated with the microphone input signal may be used instead. This can help avoid the introduction of distortion by the acoustic echo canceller and avoid divergence.
2.3 Exemplary Methods for Performing Practical Non-Linear Acoustic Echo Cancellation
The method of flowchart 400 begins at step 402, in which a far-end speech signal and a microphone signal are received. In system 200 of
At step 404, estimated statistics associated with the far-end speech signal and the microphone signal are updated based on instantaneous statistics associated with the far-end speech signal and the microphone signal. In system 200 of
The instantaneous statistics in Eq. 6 and 14 may be referred to as the instantaneous statistics of the far-end speech signal. Such instantaneous statistics may be determined for a particular frequency bin by multiplying the complex conjugate of the spectrum of the far-end speech signal for a particular frame and the particular frequency bin by the spectrum of the far-end speech signal for the particular frame and the particular frequency bin.
The instantaneous statics in Eq. 7 and 15 may be referred to as the instantaneous cross-channel statistics of the far-end speech signal and the microphone signal. Such instantaneous statistics may be determined for a particular frequency bin by multiplying the spectrum of the far-end speech signal for a particular frame and the particular frequency bin by a complex conjugate of the spectrum of the microphone signal for the particular frame and the particular frequency bin. Alternatively, the instantaneous cross-channel statistics of the far-end speech signal and the microphone signal may be determined for a particular frequency bin by multiplying a complex conjugate of the spectrum of the far-end speech signal for a particular frame and the particular frequency bin by the spectrum of the microphone signal for the particular frame and the particular frequency bin. In accordance with this alternative approach, a complex conjugate of the filter taps will be obtained, which can be accommodated for during the filtering operation.
In one embodiment, updating the estimated statistics comprises updating a running mean of the instantaneous statistics with a certain leakage factor, although this is merely one approach. As previously discussed in Section 2.2, the estimated statistics may be updated at a rate that is determined at least in accordance with a measure of coherence between the far-end speech signal and the microphone signal.
At step 406, one or more filter parameters are calculated based upon the updated estimated statistics. In system 200 of
At step 408, the far-end speech signal is filtered in accordance with the one or more filter parameters calculated during step 606 to generate an estimated acoustic echo signal. In system 200 of
At step 410, an estimated near-end speech signal is generated by subtracting the estimated acoustic echo signal from the microphone signal. In system 200 of
In an embodiment that utilizes both an aggressive tracker and a conservative tracker as discussed above in Section 2.2, an adaptive update rate may be used to generate a first estimated acoustic echo signal and a fixed update rate may be use to generate a second estimated acoustic echo signal. A first signal may then be generated by subtracting the first estimated acoustic echo signal from the microphone signal and a second signal may be generated by subtracting the second estimated acoustic echo signal from the microphone signal. The estimated near-end speech signal may then be generated by selecting for each of a plurality of frequency bins a frequency component from among a frequency component of the first signal and a frequency component of the second signal. For example, the lower-power frequency component may be selected for each frequency bin, since that result will be the one that removes the most echo.
In an embodiment that utilizes a safety net approach as discussed above in Section 2.2, the estimated acoustic echo signal may be subtracted from the microphone signal to generate a first signal. Then, the estimated near-end speech signal may be obtained by selecting for each of a plurality of frequency bins a frequency component from among a frequency component of the first signal and a frequency component of the microphone signal. For example, the lower-power frequency component may be selected for each frequency bin. This can help avoid the introduction of distortion by the acoustic echo canceller and avoid divergence.
In an embodiment that utilizes an aggressive tracker and a conservative tracker and also utilizes the safety net approach, an adaptive update rate may be used to generate a first estimated acoustic echo signal and a fixed update rate may be use to generate a second estimated acoustic echo signal. A first signal may then be generated by subtracting the first estimated acoustic echo signal from the microphone signal and a second signal may be generated by subtracting the second estimated acoustic echo signal from the microphone signal. The estimated near-end speech signal may then be generated by selecting for each of a plurality of frequency bins a frequency component from among a frequency component of the first signal, a frequency component of the second signal, and a frequency component of the microphone signal. For example, the lowest-power frequency component may be selected for each frequency bin, since that result will be the one that removes the most echo.
In system 200 and system 300, it is to be understood that steps 402, 404 and 406 may be performed by logic within the system that is not explicitly shown in
2.4 Non-Linear Acoustic Echo Cancellation
The nonlinearities produced by a miniature speaker such as in a cellular handset and accompanying amplifier can be well modeled by a memoryless non-linearity. (See F. Kuech, A. Mitnacht, W. Kellermann, “Nonlinear Acoustic Echo Cancellation Using Adaptive Orthogonalized Power Filters,” Proc. IEEE ICASSP, 2005, pp. III-105-III-108, the entirety of which is incorporated by reference). By approximating such a non-linearity by a Taylor expansion, a non-linear acoustic echo canceller based on power filters can be deduced. This is generally represented by system 500 of
This structure is linear in the filters h1(k), h2(k), . . . , hM(k) and by transforming the linear part of the structure to the frequency domain, system 600 shown in
As shown in
As also shown in
The objective of suppressing R(f) in D(f) based on X1(f), X2(f), . . . , XM(f) can be achieved by minimizing the output power of the acoustic echo canceller:
where n is the discrete time index, m is the frame index for the DFTs, and f is the frequency index. The output is expanded as
Allowing the AEC taps, Hl(f), to be complex prevents taking the derivative with respect to the coefficients due to the complex conjugate (of Ŝ(m, f)) not being differentiable. The complex conjugate does not satisfy the Cauchy-Riemann equations. However, since the cost function of Eq. 18 is real, the gradient can be calculated as
(see S. Haykin, “Adaptive Filter Theory,” Prentice Hall, 2nd edition, 1991, which is incorporated by reference herein). Hence, the gradient will be with respect to M complex taps for every frequency bin and result in a system of equations to solve for the complex AEC taps of every frequency bin. The gradient with respect to a particular complex tap, Hk(f), is expanded as
The set of M equations (for k=1, 2, . . . M) of Eq. 21 provides a matrix equation for every frequency bin f to solve for Hk(f) k=1, 2, . . . , M:
This solution can be written as
and superscript “T” denotes non-conjugate transpose. The solution per frequency bin to the AEC taps on the outputs from the blocking matrices is given by
H(f)=(RX(f))−1·rD,X*(f) (Eq. 27)
This appears to require a matrix inversion of an order equivalent to the number of power filters. Accordingly, for a linear AEC it becomes a simple division. Although it requires a matrix inversion in general, in most practical applications this is not needed. Up to order 4 (power 4) closed-form solutions can be derived to solve Eq. 23. For the sake of completeness, mathematical details for deriving such solutions are provided in
2.5 Practical Non-Linear Acoustic Echo Cancellation
The systems for performing non-linear acoustic echo cancellation described above in Section 2.4 quickly become impractical as the number of powers increases. Experiments showed a notable increase in Echo Return Loss Enhancement (ERLE) with the joint set of powers from 2 through 12. This is, however, impractical to implement. This section focuses on a practical alternative for performing non-linear acoustic echo cancellation. The fundamental structure is represented by system 700 of
Although in the following the linear AEC and the second-stage AEC are implemented using closed form solutions, it is noted that each of these components may also be implemented using traditional adaptive solutions as well. Furthermore, although in the following the linear AEC and the second-stage AEC are described as being frequency domain acoustic echo cancellers, it is noted that the linear AEC and/or the second-stage AEC may be implemented as acoustic echo cancellers that operate in the time domain as well.
As shown in
As also shown in
First FDAEC 716 may comprise, for example, an AEC that implements a closed-form single-tap frequency domain solution such as that described above in Section 2.1.1 or an AEC that implements a hybrid closed-form frequency domain solution such as that described above in Section 2.1.2. However, these are examples only are not intended to be limiting.
As further shown in
Second FDAEC 722 utilizes the frequency domain representation of the non-linear acoustic echo reference signal to obtain an estimated non-linear acoustic echo signal. Second FDAEC 722 subtracts the estimated non-linear acoustic echo signal from the first estimated near-end speech signal output by first FDAEC 716 in the frequency domain, thereby generating a second estimated near-end speech signal. Second FDAEC 722 then outputs the second estimated near-end speech signal, which is passed to an IFFT component 724. IFFT component 724 converts the second estimated near-end speech signal from the frequency domain to the time domain. The time domain version of this signal, shown as ŝ(n), may then be transmitted to another node in an audio communication system, such as a far-end audio communication system or device.
The non-linear couplings present in the echo path may be due to amplifier 704 and loudspeaker 706. In certain implementations, such non-linearities may be approximated by a memoryless limiter.
Like first FDAEC 716, second FDAEC 722 may comprise an AEC that implements a closed-form single-tap frequency domain solution such as that described above in Section 2.1.1 or an AEC that implements a hybrid closed-form frequency domain solution such as that described above in Section 2.1.2. However, these are examples only are not intended to be limiting.
In accordance with system 900 of
As further shown in
The time direction filter order K for first FDAEC 716 and/or the time direction filter order L for second FDAEC 722 can be frequency dependent so that the frequency resolution is not increased to the same extent in all frequency ranges.
The solution for the taps for G0(f) through GL(f) can be easily written from Section 2.1.2 as
It is also straightforward to write the solution for joint optimization of H(f) and G(f), but it will come at increased complexity compared to a sequential approach. Additionally, in practice it was found that using the coherence between ŜLin(m, f) and {circumflex over (X)}NL(m, f) to control adaptive estimation of RX
2.5.1 Adaptive Non-Linear Preprocessing Function
The simulation results shown in
From system 1100 of
2.5.1.1 Gradient with Respect to Preprocessing Function for Non-Hybrid Non-Linear FDAEC
Initially, for simplicity the gradient with respect to the parameters of the preprocessing function is carried out assuming a non-hybrid non-linear FDAEC. Similar to previous sections the objective is to minimize the output power of the acoustic echo canceller:
where n is the discrete time index, m is the frame index for the DFTs, and f is the frequency index. The output is expanded as
where x(m, n), n=0, . . . , N−1 is the current frame of the input signal, weighted by the analysis window, w(n), n=0, . . . , N−1.
The gradient can be calculated as
With a non-linear preprocessing function it will be difficult to derive a closed form solution for b by setting the gradient to zero. However, the numerical value of the gradient can be calculated and used in a steepest gradient descent type algorithm. The numerical value of the gradient at frame m is reduced to
It requires the calculation of the DFT of the derivatives of the preprocessing function with respect to b at the input samples of the current frame m. The parameters of the preprocessing function can be adaptively tracked/estimated by a steepest descent algorithm
(See S. Haykin, “Adaptive Filter Theory,” Prentice Hall, 2nd edition, 1991, which is incorporated by reference herein).
2.5.1.2 Gradient with Respect to Preprocessing Function for Hybrid Non-Linear FDAEC
With a hybrid non-linear FDAEC the output becomes
where L is the hybrid order. The numerical value of the gradient at frame m is
Hence, to accommodate the hybrid feature the DFT of the derivative of the preprocessing function needs to be buffered.
2.5.1.3 Gradient with Memoryless Limiter
For memoryless limiter 802 shown in
and the derivative with respect to T is
Combining Eqs. 37 and 39 provides the numerical gradient for the simple memoryless limiter at frame m:
From Eq. 39 it is evident that if all signal samples are within the saturation threshold of the limiter, i.e. in [−T;T], then the gradient will become zero, and effectively the adaptation will be stuck. To address this issue a slow decay of the saturation threshold can be incorporated for frames where the derivatives are all zero, and hence the complete update rule becomes
Repeating the equivalent simulations of
At high volume settings where non-linearities are typically most dominant the steepest descent method provides performance equivalent to the fixed optimal saturation threshold. Somewhat unexpectedly, it provides a significant improvement of up to 3.5 dB at low to medium volume settings. Intuitively, the fixed optimal threshold was set for high volume setting, and hence it may not be optimal for low to medium volume setting. However, it is surprising that there is that much to be gained at these lower volume settings. Perhaps there is notable non-linear coupling even at the lower volume settings.
In accordance with system 1300 of
As further shown in
As also shown in
An FFT component 1316 converts
into the frequency domain and passes the frequency domain representation to component 1318. Component 1318 combines the frequency domain representation of
with the filter tap G0(f) to obtain a gradient ∇L(EŜ(m)). Component 1318 passes gradient ∇L(EŜ(m)) to memoryless limiter 1312, which uses the gradient to adjust the threshold L.
2.5.1.4 Gradient with Memoryless Soft Limiter
In B. S. Nollett, D. L. Jones, “Nonlinear Echo Cancellation for Hands-free Speakerphones,” Proc. NSIP, 1997, Mackinac Island, Mich., USA, September 1997 (the entirety of which is incorporated by reference herein), a soft limiter is proposed (for a different structure) given by
This can be used as the non-linear preprocessing function. Similar to the hard limiter described above it saturates the output at T. The parameter, α, controls how hard the saturation is. For α=2 it simplifies to
and the derivative with respect to T is
The gradient can be calculated according to Eq. 40, and the update rule becomes
It should be noted that no special treatment is necessary since there is no trap with a trivial gradient of zero as was seen for the hard limiter.
2.5.1.5 Gradient with Memoryless General Soft Limiter
In Section 2.5.1.4 the gradient and update rule for the special case (α=2) of the general non-linear preprocessing function of Eq. 42 was derived. However, to further facilitate modeling of non-linear coupling both T and α can be adaptive parameters. Diagram 1400 in
As can be seen from the plot the parameter α controls the degree of non-linearity. Making both parameters adaptive further complicates matters and requires the partial gradients with respect to both parameters to be derived. From Eq. 37:
Hence, the partial derivatives of fα,T(x) with respect to T and α are required. By using the quotient rule and the derivative of absolute value
the derivative with respect to T is derived
By inserting α=2 it can be seen to reduce to the special case of Eq. 44. Using the quotient rule and the generalized power rule, the derivative of the preprocessing function with respect to α is derived as
The update rule of the gradient descent algorithm for the two parameters of the general soft limiter is then given by
2.6 Updating of Statistics for Non-Linear AEC
The preceding section described a two-stage structure in which a first FDAEC is used to attenuate or cancel linear acoustic echo components of a microphone signal to generate an output signal and a second FDAEC is used to attenuate or cancel non-linear acoustic echo components of the output signal generated by the first FDAEC. In accordance with one embodiment, the techniques described in Section 2.2 above are used to update the estimated signal statistics used to implement the first FDAEC. In a further embodiment, somewhat similar techniques are used to update the estimated signal statistics used to implement the second FDAEC. The techniques used to update the estimated signal statistics used to implement the second FDAEC in accordance with one example embodiment will now be described.
In accordance with the example embodiment, a rate for updating the estimated statistics necessary for implementing the second FDAEC are controlled on a frequency bin by frequency bin basis in accordance with a measure of coherence between the frequency domain representation of the signal output by the preprocessing function and the signal being output by the first FDAEC. In one embodiment, the measure of coherence for each frequency bin is determined by calculating the squared magnitude of the normalized cross-spectrum between the signal output by the preprocessing function and the signal output by the first FDAEC. However, this is only one example, and other methods for determining the measure of coherence on a frequency bin by frequency bin basis may be used.
In accordance with certain embodiments, an aggressive tracker is utilized that maps a high measure of coherence to a fast update rate for the estimated statistics and maps a low measure of coherence to a low update rate for the estimated statistics, which may include not updating at all. In an embodiment in which the statistics are estimated by calculating a running mean, the aforementioned mapping may be achieved by controlling the weight attributed to the current instantaneous statistics when calculating the mean. Thus, to achieve a slow update rate, little or no weight may be assigned to the current instantaneous statistics, but to achieve a fast update rate, more significant weight may be assigned current instantaneous statistics. For each frequency bin, the result of the application of the closed-form solution of the acoustic echo canceller is determined in accordance with the estimated statistics generated using the aggressive tracker. Furthermore, a “safety net” may be applied to each frequency bin such that if the selected result for that frequency bin has a power that is greater than that of the corresponding frequency bin of the signal output by the first FDAEC, then the selected result may be discarded and the frequency component associated with the signal output by the first FDAEC may be used instead. This can help avoid the introduction of distortion by the second FDAEC and avoid divergence.
2.7 Exemplary Methods for Performing Practical Non-Linear Acoustic Echo Cancellation
The method of flowchart 1500 begins at step 1502, in which a far-end speech signal and a microphone signal are received. In example system 700 of
At step 1504, the far-end speech signal is utilized to generate an estimated linear acoustic echo signal. In example system 700 of
At step 1506, the estimated linear acoustic echo signal is subtracted from the microphone signal to generate a first estimated near-end speech signal. In example system 700 of
At step 1508, a preprocessing function is applied to the far-end speech signal to generate a non-linear acoustic echo reference signal. In example system 700 of
At step 1510, the non-linear acoustic echo reference signal is utilized to generate an estimated non-linear acoustic echo signal. In example system 700 of
At step 1512, the estimated non-linear acoustic echo signal is subtracted from the first estimated near-end speech signal to generate a second estimated near-end speech signal. In example system 700 of
In one embodiment, step 1504 comprises generating the estimated linear acoustic echo signal by filtering the far-end speech signal with a filter that is determined from estimated statistics associated with the far-end speech signal and the microphone signal.
In an alternate embodiment, step 1504 comprises generating the estimated linear acoustic echo signal by passing each of a plurality of frequency components of a frequency domain representation of the far-end speech signal through a respective one of a plurality of time direction filters, wherein the filter taps associated with each time direction filter are determined from estimated statistics associated with the far-end speech signal and the microphone signal.
In another embodiment, step 1510 comprises generating the estimated non-linear acoustic echo signal by filtering the non-linear acoustic echo reference signal with a filter that is determined from estimated statistics associated with the non-linear acoustic echo reference signal and the first estimated near-end speech signal. It is to be understood that the filtering described in this step may comprise either convolution in the time domain with the impulse response or multiplication in the frequency domain with the frequency domain representation of the impulse response.
In a further embodiment, step 1510 comprises generating the estimated non-linear acoustic echo signal by passing each of a plurality of frequency components of a frequency domain representation of the non-linear acoustic echo reference signal through a respective one of a plurality of time direction filters, wherein the filter taps associated with each time direction filter are determined from estimated statistics associated with the non-linear acoustic echo reference signal and the first estimated near-end speech signal.
In certain embodiments, step 1504 comprises generating the estimated linear acoustic echo signal based at least in part on statistics associated with the far-end speech signal and the microphone signal. In further accordance with such embodiments, the statistics may be updated at a rate determined at least in accordance with a measure of coherence between the far-end speech signal and the microphone signal. The update rate may be determined on a frequency bin basis based on a measure of coherence between the far-end speech signal and the microphone signal for each frequency bin.
In another embodiment, step 1504 and step 1506 comprise: (i) generating a first estimated linear acoustic echo signal based at least in part on statistics associated with the far-end speech signal and the microphone signal that are updated in accordance with an adaptive update rate; (ii) generating a first signal by subtracting the first estimated linear acoustic echo signal from the microphone signal; (iii) generating a second estimated linear acoustic echo signal based at least in part on statistics associated with the far-end speech signal and the microphone signal that are updated in accordance with a fixed update rate; (iv) generating a second signal by subtracting the second estimated linear acoustic echo signal from the microphone signal; and (v) generating the first estimated near-end speech signal by selecting for each of a plurality of frequency bins a lower-power frequency component from among a frequency component of the first signal and a frequency component of the second signal.
In a further embodiment, step 1506 comprises generating a first signal by subtracting the estimated linear acoustic echo signal from the microphone signal and generating the first estimated near-end speech signal by selecting for each of a plurality of frequency bins a lower-power frequency component from among a frequency component of the first signal and a frequency component of the microphone signal.
In certain embodiments, step 1510 comprises generating the estimated non-linear acoustic echo signal based at least in part on statistics associated with the non-linear acoustic echo reference signal and the first estimated near-end speech signal. In further accordance with such embodiments, the statistics may be updated at a rate determined at least in accordance with a measure of coherence between the non-linear acoustic echo reference signal and the first estimated near-end speech signal. The update rate may be determined on a frequency bin basis based on a measure of coherence between the non-linear acoustic echo reference signal and the first estimated near-end speech signal for each frequency bin.
In another embodiment, step 1510 and step 1512 comprise: (i) generating a first estimated non-linear acoustic echo signal based at least in part on statistics associated with the non-linear acoustic echo reference signal and the first estimated near-end speech signal that are updated in accordance with an adaptive update rate; (ii) generating a first signal by subtracting the first estimated non-linear acoustic echo signal from the first estimated near-end speech signal; (iii) generating a second estimated non-linear acoustic echo signal based at least in part on statistics associated with the non-linear acoustic echo reference signal and the first estimated near-end speech signal that are updated in accordance with a fixed update rate; (iv) generating a second signal by subtracting the second estimated non-linear acoustic echo signal from the first estimated near-end speech signal; and (v) generating the second estimated near-end speech signal by selecting for each of a plurality of frequency bins a lower-power frequency component from among a frequency component of the first signal and a frequency component of the second signal.
In a further embodiment, step 1512 comprises generating a first signal by subtracting the estimated non-linear acoustic echo signal from the first estimated near-end speech signal and generating the second estimated near-end speech signal by selecting for each of a plurality of frequency bins a lower-power frequency component from among a frequency component of the first signal and a frequency component of the first estimated near-end speech signal.
Each of the systems and methods described above may be implemented in hardware, by software executed by a processing unit, or by a combination thereof. In particular, each of systems 100, 200, 300, 500, 600, 700, 800, 900, 1100 and 1300 and each of the steps of flowchart 400 and flowchart 1500 may be implemented in hardware, by software executed by a processing unit, or by a combination thereof.
Where elements or steps described herein are implemented by software executed by a processing unit, such elements or steps may be implemented by one or more processor-based computer systems. An example of such a computer system 1600 is depicted in
As shown in
Computer system 1600 also includes a main memory 1606, preferably random access memory (RAM), and may also include a secondary memory 1620. Secondary memory 1620 may include, for example, a hard disk drive 1622, a removable storage drive 1624, and/or a memory stick. Removable storage drive 1624 may comprise a floppy disk drive, a magnetic tape drive, an optical disk drive, a flash memory, or the like. Removable storage drive 1624 reads from and/or writes to a removable storage unit 1628 in a well-known manner. Removable storage unit 1628 may comprise a floppy disk, magnetic tape, optical disk, or the like, which is read by and written to by removable storage drive 1624. As will be appreciated by persons skilled in the relevant art(s), removable storage unit 1628 includes a computer-readable storage medium having stored therein computer software and/or data.
In alternative implementations, secondary memory 1620 may include other similar means for allowing computer programs or other instructions to be loaded into computer system 1600. Such means may include, for example, a removable storage unit 1630 and an interface 1626. Examples of such means may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable storage units 1630 and interfaces 1626 which allow software and data to be transferred from the removable storage unit 1630 to computer system 1600.
Computer system 1600 may also include a communication interface 1640. Communication interface 1640 allows software and data to be transferred between computer system 1600 and external devices. Examples of communication interface 1640 may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, or the like. Software and data transferred via communication interface 1640 are in the form of signals which may be electronic, electromagnetic, optical, or other signals capable of being received by communication interface 1640. These signals are provided to communication interface 1640 via a communication path 1642. Communications path 1642 carries signals and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link and other communications channels.
As used herein, the terms “computer program medium” and “computer readable medium” are used to generally refer to non-transitory media such as removable storage unit 1628, removable storage unit 1630 and a hard disk installed in hard disk drive 1622. Computer program medium and computer readable medium can also refer to non-transitory memories, such as main memory 1606 and secondary memory 1620, which can be semiconductor devices (e.g., DRAMs, etc.). These computer program products are means for providing software to computer system 1600.
Computer programs (also called computer control logic, programming logic, or logic) are stored in main memory 1606 and/or secondary memory 1620. Computer programs may also be received via communication interface 1640. Such computer programs, when executed, enable the computer system 1600 to implement features of the various embodiments discussed herein. Accordingly, such computer programs represent controllers of the computer system 1600. Where an embodiment is implemented using software, the software may be stored in a computer program product and loaded into computer system 1600 using removable storage drive 1624, interface 1626, or communication interface 1640.
The embodiments described herein are also directed to computer program products comprising software stored on any computer readable medium. Such software, when executed in one or more data processing devices, causes a data processing device(s) to operate as described herein. Embodiments described herein may employ any computer readable medium, known now or in the future. Examples of computer readable mediums include, but are not limited to, primary storage devices (e.g., any type of random access memory) and secondary storage devices (e.g., hard drives, floppy disks, CD ROMS, zip disks, tapes, magnetic storage devices, optical storage devices, MEMs, nanotechnology-based storage device, etc.).
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. It will be understood by those skilled in the relevant art(s) that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined in the appended claims.
For example, the present invention has been described above with the aid of functional building blocks and method steps illustrating the performance of specified functions and relationships thereof. The boundaries of these functional building blocks and method steps have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed. Any such alternate boundaries are thus within the scope and spirit of the claimed invention. One skilled in the art will recognize that these functional building blocks can be implemented by discrete components, application specific integrated circuits, processors executing appropriate software and the like or any combination thereof. Thus, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
This application claims the benefit of U.S. Provisional Patent Application No. 61/601,986, filed on Feb. 22, 2012, and U.S. Provisional Patent Application No. 61/672,615, filed on Jul. 17, 2012. Each of these applications is incorporated by reference herein in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
5121426 | Baumhauer et al. | Jun 1992 | A |
5148427 | Buttle et al. | Sep 1992 | A |
5263020 | Yatsuzuka et al. | Nov 1993 | A |
5283784 | Genter | Feb 1994 | A |
5319585 | Amrany | Jun 1994 | A |
5323458 | Park et al. | Jun 1994 | A |
5631899 | Duttweiler | May 1997 | A |
5680450 | Dent et al. | Oct 1997 | A |
5778055 | Paneth et al. | Jul 1998 | A |
5818945 | Makino et al. | Oct 1998 | A |
6147979 | Michel et al. | Nov 2000 | A |
6249581 | Kok | Jun 2001 | B1 |
6335949 | Kim | Jan 2002 | B1 |
6546099 | Janse | Apr 2003 | B2 |
6597787 | Lindgren et al. | Jul 2003 | B1 |
6687235 | Chu | Feb 2004 | B1 |
6813311 | Pal et al. | Nov 2004 | B1 |
7027592 | Sträussnigg et al. | Apr 2006 | B1 |
7209566 | Griniasty | Apr 2007 | B2 |
7558729 | Benyassine et al. | Jul 2009 | B1 |
7672445 | Zhang et al. | Mar 2010 | B1 |
7764783 | Pai et al. | Jul 2010 | B1 |
7813496 | Kubin et al. | Oct 2010 | B2 |
7813498 | Zhang et al. | Oct 2010 | B2 |
7856098 | Rossello | Dec 2010 | B1 |
7881460 | Looney et al. | Feb 2011 | B2 |
8155302 | Roovers | Apr 2012 | B2 |
8175871 | Wang et al. | May 2012 | B2 |
8213598 | Bendersky et al. | Jul 2012 | B2 |
8279912 | Dabiri et al. | Oct 2012 | B2 |
8284947 | Giesbrecht et al. | Oct 2012 | B2 |
8340317 | Pfaffinger et al. | Dec 2012 | B2 |
8498423 | Thaden et al. | Jul 2013 | B2 |
8538034 | Eriksson et al. | Sep 2013 | B2 |
20040076271 | Koistinen et al. | Apr 2004 | A1 |
20040264686 | Enzner | Dec 2004 | A1 |
20060147063 | Chen | Jul 2006 | A1 |
20060172781 | Mohebbi | Aug 2006 | A1 |
20060188089 | Diethorn et al. | Aug 2006 | A1 |
20060222172 | Chhetri et al. | Oct 2006 | A1 |
20070041575 | Alves et al. | Feb 2007 | A1 |
20070116255 | Derkx et al. | May 2007 | A1 |
20080085009 | Merks et al. | Apr 2008 | A1 |
20080219463 | Liu et al. | Sep 2008 | A1 |
20090310796 | Seydoux | Dec 2009 | A1 |
20100189274 | Thaden et al. | Jul 2010 | A1 |
20100310027 | Malladi et al. | Dec 2010 | A1 |
20110033059 | Bhaskar et al. | Feb 2011 | A1 |
20110093102 | Aichner et al. | Apr 2011 | A1 |
20110096942 | Thyssen | Apr 2011 | A1 |
20120237018 | Barron et al. | Sep 2012 | A1 |
20120250871 | Lu et al. | Oct 2012 | A1 |
20120250882 | Mohammad et al. | Oct 2012 | A1 |
20120308025 | Hendrix et al. | Dec 2012 | A1 |
20130163781 | Thyssen et al. | Jun 2013 | A1 |
20130216056 | Thyssen | Aug 2013 | A1 |
20130287216 | Eriksson et al. | Oct 2013 | A1 |
20140133649 | Lu et al. | May 2014 | A1 |
Entry |
---|
Mossi, et al., “Robust and Low-Cost Cascaded Non-Linear Acoustic Echo Cancellation”, ICASSP, Jul. 11, 2011, pp. 89-92. |
Nollett, et al., “Nonlinear Echo Cancellation for Hands-Free Speakerphones”, University of Illinois at Urbana-Champaign, 1997, 5 pages. |
Number | Date | Country | |
---|---|---|---|
20130216057 A1 | Aug 2013 | US |
Number | Date | Country | |
---|---|---|---|
61672615 | Jul 2012 | US | |
61601986 | Feb 2012 | US |