EP2710789A1 - Non-linear post-processing for super-wideband acoustic echo cancellation - Google Patents
Non-linear post-processing for super-wideband acoustic echo cancellationInfo
- Publication number
- EP2710789A1 EP2710789A1 EP11721217.5A EP11721217A EP2710789A1 EP 2710789 A1 EP2710789 A1 EP 2710789A1 EP 11721217 A EP11721217 A EP 11721217A EP 2710789 A1 EP2710789 A1 EP 2710789A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- signal stream
- frequencies
- range
- audio streams
- signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M9/00—Arrangements for interconnection not involving centralised switching
- H04M9/08—Two-way loud-speaking telephone systems with means for conditioning the signal, e.g. for suppressing echoes for one or both directions of traffic
- H04M9/085—Two-way loud-speaking telephone systems with means for conditioning the signal, e.g. for suppressing echoes for one or both directions of traffic using digital techniques
Definitions
- the . present invention relates generally to a method and system for cancellation of echoes in telecommunication systems. It particularly relates to a method and system for removing echo from super- wideband audio streams.
- Speech quality is an important factor for telephony system suppliers.
- An echo which is a delayed version of what was originally transmitted, is regarded as a severe distraction to the speaker if the delay is long. For short round trip delays of less than approximately 20 ms, the speaker will not be able to distinguish the echo from the side tone in the handset. However, for long-distance communications, such as satellite communications, a remotely generated echo signal often has a substantial delay. Moreover, the speech and channel coding compulsory in digital radio communications systems and for telephony over the Internet protocol (IP telephony, for short) also result in significant delays which make the echoes generated a relatively short distance away clearly audible to the speaker. Hence, canceling the echo is a significant factor in maintaining speech quality.
- An echo canceller typically includes a linear filtering part which essentially is an adaptive filter that tries to adapt to the echo path. In this way, a replica of the echo can be produced from the far-end signal and subtracted from the near-end signal, thereby canceling the echo.
- the filter generating the echo replica may have a finite or infinite impulse response. Most commonly it is an adaptive, linear finite impulse response (FIR) filter with a number of delay lines and a corresponding number of coefficients, or filter delay taps. The coefficients are values, which when multiplied with delayed versions of the filter input signal, generate an estimate of the echo.
- the filter is adapted, i.e. updated, so that the coefficients converge to optimum values.
- a traditional way to cancel out the echo is to update a finite impulse response (FIR) filter using the normalized least mean square (NLMS) algorithm.
- the AEC employs the linear filter as a first stage to model the system impulse response.
- An estimated echo signal is obtained by filtering the far-end signal. This estimated echo signal is then subtracted from the near-end signal to cancel the echo.
- a problem is that some audible echo will generally remain in the residual error signal after this first stage.
- a second stage post-processor needs to be applied to remove the residual echo.
- Supper-wideband may refer to signals with a sampling rate above wideband sampling rate, for example, 32 kHz (as compared to 8 kHz and 16 kHz for narrowband and wideband, respectively).
- a method for removing echo from audio streams includes receiving input audio streams, splitting the received audio streams into a first signal stream and a second signal stream such that the first signal stream includes a first range of frequencies and the second signal stream includes a second range of frequencies higher than the first range of frequencies, and applying a single upper-band suppression factor to the second signal stream of one of the input audio streams to reduce echo.
- the first range of frequencies includes frequencies between 0-8 kHz and the second range of frequencies includes frequencies between 8 kHz -16 kHz.
- the method includes computing the single upper-band suppression factor by averaging suppression factors from a range of frequency bands included in the first signal stream.
- the method includes computing the single upper-band suppression factor by averaging suppression factors from the 4-8 kHz frequency band included in the first signal stream.
- the input audio streams include a far-end signal stream, a near-end signal stream, and an error signal stream output from a linear adaptive filter.
- the method includes computing a first coherence value by comparing correlations between the first signal stream of the far-end signal and the first signal stream of the near-end signal, computing a second coherence value by comparing correlations between the first signal stream of the near-end signal and first signal stream of the error signal, and applying the first and second coherence values to compute the suppression factors.
- a system for removing echo from audio streams includes a splitting filter that receives input audio streams and splits the received audio streams into a first signal stream and a second signal stream such that the first signal stream includes a first range of frequencies and the second signal stream includes a second range of frequencies higher than the first range of frequencies.
- the system also includes a non-linear processor that applies a single upper-band suppression factor to the second signal stream of one of the input audio streams to reduce echo.
- the non-linear processor computes the single upper-band suppression factor by averaging suppression factors from a range of frequency bands included in the first signal stream.
- the non-linear processor computes the single upper-band suppression factor by averaging suppression factors from the 4-8 kHz frequency band included in the first signal stream.
- the non-linear processor is configured to: compute a first coherence value by comparing correlations between the first signal stream of the far-end signal and the first signal stream of the near-end signal; compute a second coherence value by comparing correlations between the first signal stream of the near-end signal and first signal stream of the error signal; and apply the first and second coherence values to compute the suppression factors.
- a computer-readable storage medium having stored thereon computer executable program for removing echo from audio streams.
- the computer program when executed causes a processor to execute the steps of: receiving input audio streams, splitting the received audio streams into a first signal stream and a second signal stream such that the first signal stream includes a first range of frequencies and the second signal stream includes a second range of frequencies higher than the first range of frequencies, and applying a single upper-band suppression factor to the second signal stream of one of the input audio streams to reduce echo.
- the computer program when executed causes the processor to further execute the step of computing the single upper- band suppression factor by averaging suppression factors from a range of frequency bands included in the first signal stream.
- the computer program when executed causes the processor to further execute the step of computing the single upper- band suppression factor by averaging suppression factors from the 4-8 kHz frequency band included in the first signal stream.
- the computer program when executed causes the processor, to further execute the steps of: computing a first coherence value by comparing correlations between the first signal stream of the far-end signal and the first signal stream of the near-end signal, computing a second coherence value by comparing correlations between the first signal stream of the near-end signal and first signal stream of the error signal, and applying the first and second coherence values to compute the suppression factors.
- a method for generating comfort noise for audio streams includes receiving input audio streams and splitting the received audio streams into a first signal stream and a second signal stream such that the first signal stream includes a first range of frequencies and the second signal stream includes a second range of frequencies higher than the first range of frequencies, and applying a single upper-band noise estimate to generate comfort noise for the second signal stream of one of the input audio streams.
- the method includes computing the single upper-band noise estimate by averaging noise estimates from a range of frequency bands included in the first signal stream.
- the method includes computing the single upper-band noise estimate by averaging noise estimates from the 4-8 kHz frequency band included in the first signal stream.
- the method includes computing the noise estimates by utilizing a minimum statistic method on the near-end signal stream.
- the method includes generating comfort noise by utilizing the single-upper band noise estimate and a single upper- band suppression factor.
- the method includes computing a first coherence value by comparing correlations between the first signal stream of the far-end signal and first signal stream of the near-end signal, computing a second coherence value by comparing correlations between the first signal stream of the near-end signal and first signal stream of the error signal, and applying the first and second coherence values to compute the upper-band suppression factor.
- a system for generating comfort noise for audio streams is disclosed.
- the system includes a splitting filter that receives input audio streams and splits the received audio streams into a first signal stream and a second signal stream such that the first signal stream includes a first range of frequencies and the second signal stream includes a second range of frequencies higher than the first range of frequencies, and a non-linear processor that applies a single upper-band noise estimate to generate comfort noise for the second signal stream of one of the input audio streams.
- the non-linear processor computes the single upper-band noise estimate by averaging noise estimates from a range of frequency bands included in the first signal stream.
- the non-linear processor computes the single upper-band noise estimate by averaging noise estimates from the 4-8 kHz frequency band included in the first signal stream.
- the non-linear processor computes the noise estimates by utilizing a minimum statistic method on the near-end signal stream.
- the non-linear processor generates comfort noise by utilizing the single-upper band noise estimate and a single upper- band suppression factor.
- the non-linear processor is configured to: compute a first coherence value by comparing correlations between the first signal stream of the far-end signal and first signal stream of the near-end signal, compute a second coherence value by comparing correlations between the first signal stream of the near-end signal and first signal stream of the error signal, and apply the first and second coherence values to compute the upper-band suppression factor.
- a computer-readable storage medium having stored thereon computer executable program for generating comfort noise for audio streams
- the computer program when executed causes a processor to execute the steps of: receiving input audio streams and splitting the received audio streams into a first signal stream and a second signal stream such that the first signal stream includes a first range of frequencies and the second signal stream includes a second range of frequencies higher than the first range of frequencies, and applying a single upper-band noise estimate to generate comfort noise for the second signal stream of one of the input audio streams.
- the computer program when executed causes the processor to further execute the step of computing the single upper- band noise estimate by averaging noise estimates from a range of frequency bands included in the first signal stream.
- the computer program when executed causes the processor to further execute the step of computing the single upper- band noise estimate by averaging noise estimates from the 4-8 kHz frequency band included in the first signal stream.
- the computer program when executed causes the processor to further execute the step of computing the noise estimates by utilizing a minimum statistic method on the near-end signal stream.
- the computer program when executed causes the processor to further execute the step of generating comfort noise by utilizing the single-upper band noise estimate and a single upper-band suppression factor.
- the computer program when executed causes the processor to further execute the steps of: computing a first coherence value by comparing correlations between the first signal stream of the far-end signal and first signal stream of the near-end signal, computing a second coherence value by comparing correlations between the first signal stream of the near-end signal and first signal stream of the error signal, and applying the first and second coherence values to compute the upper-band suppression factor.
- Fig. 1 is a block diagram of an acoustic echo canceller in accordance with an embodiment of the present invention.
- Fig. 2 illustrates a more detailed block diagram describing the functions performed in the adaptive filter of Fig. 1 in accordance with an embodiment of the present invention.
- FIG. 3 illustrates computational stages of the adaptive filter of Fig. 2 in accordance with an embodiment of the present invention.
- FIG. 4 illustrates a more detailed block diagram describing block G m in Fig.
- Fig. 5 illustrates a flow diagram describing computational stages of the nonlinear processor of Fig. 1 in accordance with an embodiment of the present invention.
- Fig. 6 is a block diagram of an acoustic echo canceller for processing lower-band and upper-band signal streams in accordance with an embodiment of the present invention.
- Fig. 7 is a flow diagram illustrating operations performed by the acoustic echo canceller according to an embodiment of the present invention illustrated in Fig. 6.
- Fig. 8 is a flow diagram illustrating operations performed by the acoustic echo canceller according to a further embodiment of the present invention illustrated in Fig. 6.
- FIG. 9 is a block diagram illustrating an exemplary computing device that is arranged for acoustic echo cancellation in accordance with an embodiment of the present invention.
- Fig. 1 illustrates an acoustic echo canceller (AEC) 100 in accordance with an exemplary embodiment of the present invention.
- AEC acoustic echo canceller
- the AEC 100 is designed as a high quality echo canceller for voice and audio communication over packet switched networks. More specifically, the AEC 100 is designed to cancel acoustic echo 130 that emerges due to the reflection of sound waves of a render device 10 from boundary surfaces and other objects back to a near-end capture device 20. The echo 130 may also exist due to the direct path from render device 10 to the capture device 20.
- Render device 10 may be any of a variety of audio output devices, including a loudspeaker or group of loudspeakers configured to output sound from one or more channels.
- Capture device 20 may be any of a variety of audio input devices, such as one or more microphones configured to capture sound and generate input signals.
- render device 10 and capture device 20 may be hardware devices internal to a computer system, or external peripheral devices connected to a computer system via wired and/or wireless connections.
- render device 10 and capture device 20 may be components of a single device, such as a microphone, telephone handset, etc.
- one or both of render device 10 and capture device 20 may include analog-to-digital and/or digital-to-analog transformation functionalities.
- the echo canceller 100 includes a linear filter 102, a nonlinear processor (NLP) 104, a far-end buffer 106, and a blocking buffer 108.
- a far- end signal 110 generated at the far-end and transmitted to the near-end is input to the filter 102 via the far-end buffer (FEBuf) 106 and the blocking buffer 108.
- the far-end signal 110 is also input to a play-out buffer 112 located near the render device 10.
- the output signal 116 of the far-end buffer 106 is input to the blocking buffer 108 and the output signal 118 of the blocking buffer is input to the linear filter 102.
- the far-end buffer 106 is configured to compensate for and synchronize to buffering at sound devices (not shown).
- the blocking buffer 108 is configured to block the signal samples for a frequency-domain transformation to be performed by the linear filter 102 and the NLP 104.
- the linear filter 102 is an adaptive filter.
- Linear filter 102 operates in the frequency domain through, e.g., the Discrete Fourier Transform (DFT).
- the DFT may be implemented as a Fast Fourier Transform (FFT).
- FFT Fast Fourier Transform
- the other input to the filter 102 is the near-end signal (Sin) 122 from the capture device 20 via a recording buffer 114.
- the near-end signal 122 includes near-end speech 120 and the echo 130.
- the NLP 104 receives three signals as input. It receives (1) the far-end signal via the far-end buffer 106 and blocking buffer 108, (2) the near-end signal via the recording buffer 1 14, and (3) the output signal 124 of the filter 102.
- the output signal 124 is also referred to as an error signal. In a case when the NLP 104 attenuates the output signal 124, a comfort noise signal is generated which will be explained later.
- each frame is divided into 64 sample blocks. Since this choice of block size does not produce an integer number of blocks per frame the signal needs to be buffered before the processing. This buffering is handled by the blocking buffer 108 as discussed above. Both the filter 102 and the NLP 104 operate in the frequency domain and utilize DFTs of 128 samples.
- the performance of the AEC 100 is influenced by the operation of the play- out buffer 112 and the recording buffer 114 at the sound device.
- the AEC 100 may not start unless the combined size of the play-out buffer 112 and the recording buffer 1 14 is reasonably stable within a predetermined limit. For example, if the combined size is stable within +/- 8 ms of the first started size, for four consecutive frames, the AEC 100 is started by filling up the internal far-end buffer 106.
- FIG. 2 illustrates a more detailed block diagram describing the functions performed in the filter 102 of Fig. 1.
- Fig. 3 illustrates computational stages of the filter 102 in accordance with an embodiment of the present invention.
- the adaptive filter 102 includes a first transform section 200, an inverse transform section 202, a second transform section 204, and an impulse response section (H) 206.
- the far-end signal x(n) 210 to be rendered at the render device 10 is input to the first transform section 200.
- the output signal X(n, k) of the first transform section 200 is input to the impulse response section 206.
- the output signal Y(n, k) is input to the second transform section 202 which outputs the signal y(n).
- This signal y(n) is then subtracted from the near-end signal d(n) 220 captured by the capture device 20 to output an error signal e(n) 230 as the output of the linear stage of the filter 102.
- the error signal 230 is also input to the second transform section 204 the output signal of which, E(n, k), is also input to the impulse response section 206.
- the above-mentioned adaptive filtering approach relates to an implementation of a standard blocked time-domain Least Mean Square (LMS) algorithm.
- LMS Least Mean Square
- the complexity reduction is due to the filtering and the correlations being performed in the frequency domain, where time-domain convolution is replaced by multiplication.
- the error is formed in the time domain and is transformed to the frequency domain for updating the filter 102 as illustrated in Fig. 2.
- Fig. 4 illustrates a more detailed block diagram describing block G m in the FLMS method of Fig. 3 in accordance with an embodiment of the present invention.
- v is a N x N-sized identity matrix, and 0 ⁇ is a N x N-sized zero matrix. This means that the time domain vector is appended with N zeros before the Fourier transform.
- x ⁇ k-m [x ((k - m-2JN) ... x((k - m)N-l)
- the estimated echo signal is then obtained as the N last coefficients of the inverse transformed sum of the filter products performed at step S320 from which first block is discarded at step S322.
- the estimated echo signal is represented as
- N zeros are inserted at step S316 to the error vector, and the augmented vector is transformed at step S318 as
- Fig. 4 illustrates a more detailed block diagram describing block G m in Fig. 3 in accordance with an embodiment of the present invention where the filter coefficient update can be expressed as
- the modification includes a power normalization followed by a magnitude limiter 410.
- the normalized error vector is also shown in Fig. 4, is
- the diagonal matrix X(k-m) is conjugated by the conjugate unit 420 which is then multiplied with vector B(k) prior to performing an inverse DFT transform by the Inverse Discrete Fourier Transform (IDFT) unit 430. Then the discard last block unit 440 discards the last block. After discarding the last block, a zero block is appended by the append zero block unit 450 prior to performing a DFT by the DFT unit 460. Then, a block delay is introduced by the delay unit 480 which outputs Wm(k).
- IDFT Inverse Discrete Fourier Transform
- Fig. 5 illustrates a flow diagram describing computational processes of the NLP 104 of Fig. 1 in accordance with an embodiment of the present invention.
- the NLP 104 of the AEC 100 accepts three signals as input: i) the far-end signal x(n) 110 to be rendered by the render device 10, ii) the near-end signal d(n) 122 captured by the capture device 20, and iii) the output error signal e(n) 124 of the linear stage performed at the filter 102.
- the error signal e(n) 124 typically contains residual echo that should be removed for good performance.
- the objective of the NLP 104 is to remove this residual echo.
- the first step is to transform all three input signals to the frequency domain.
- the far-end signal 1 10 is transformed to the frequency domain.
- the near-end signal 122 is transformed to the frequency domain and at step S501 ", the error signal 124 is transformed to the frequency domain.
- the NLP 104 is block-based and shares the block length N of the linear stage, but uses an overlap-add method rather than overlap- save: consecutive blocks are concatenated, windowed and transformed. By defining o as the element-wise product operator, the k th transformed block is expressed as
- F is the 2N DFT matrix as before, is a length N time-domain sample column vector and is a length 2N square-root Harming window column vector with entries
- the length 2N DFT vectors are retained.
- the redundant N - 1 complex coefficients are discarded.
- Xu, D 3 ⁇ 4 and E* refer to the frequency-domain representations of the k* far-end, near- end and error blocks, respectively.
- echo suppression is achieved by multiplying each frequency band of the error signal e(n) 124 with a suppression factor between 0 and 1.
- each band corresponds to an individual DFT coefficient. In general, however, each band may correspond to an arbitrary range of frequencies. Comfort noise is added and after undergoing an inverse FFT, the suppressed signal is windowed, and overlapped and added with the previous block to obtain the output.
- the power spectral density (PSD) of each signal is obtained.
- the PSD of the far-end signal x(n) 1 10 is computed.
- the PSD of the near- end signal d(n) 122 is computed and at step S503", the PSD of the error signal e(n) 124 is computed.
- the PSDs of the far-end signal 1 10, near-end signal 122, and the error signal 124 are represented by S x , S d , and S e , respectively.
- the complex-valued cross-PSDs between i) the far-end signal x(n) 110 and near-end signal d(n) 122, and ii) the near-end signal d(n) 122 and error signal e(n) 124 are also obtained.
- the complex-valued cross-PSD between the far-end signal 110 and the near-end signal 122 is computed and at step S504', the complex-valued cross-PSD between the near-end signal 122 and the error signal 124 is computed.
- the complex-valued cross-PSD of the far-end signal 110 and near-end signal 122 is represented as S xd .
- the complex-valued cross-PSD of the near-end signal 122 and error signal 124 is represented as Sa e -
- the PSDs are exponentially smoothed to avoid sudden erroneous shifts in echo suppression.
- the PSDs are given by
- an old block is selected to best synchronize it with the corresponding echo in the near-end at step S505.
- This estimated delay index is used to select the best block at step S507 for use in the far-end PSDs. Additionally, the far-end auto-PSD is thresholded at step S509 in order to avoid numerical instability as follows:
- the linear filter 102 diverges from a good echo path estimate. This tends to result in a highly distorted error signal, which although still useful for analysis, should not be used for output.
- divergence may be detected fairly easily, as it usually adds rather than removes energy from the near-end signal d(n) 122.
- the divergence state determined at step S51 1 is utilized to either select (S512) Ek or Dk as follows: If l
- Sj3 ⁇ 4-3 ⁇ 4!li > £ ⁇ 4D fc lii then the "diverge" state is entered, in which the effect of the linear stage is reversed by setting E k O k .
- the diverge state is left if o " o j3 ⁇ 4£;J
- i, ⁇ 0 1.05 ⁇ Furthermore, if divergence is very high, such as
- the PSDs are used to compute the coherence measures for each frequency band between i) the far-end signal 110 and near-end signal 122 at step S513 as follows:
- Coherence is a frequency- domain analog to time-domain correlation. It is a measure of similarity with 0 ⁇ c(n) ⁇ 1 ; where a higher coherence corresponds to more similarity.
- x is considered to increase robustness, as described below, though ⁇ e tends to be more useful in practice. Contrary to Cd e > c x d 1S relatively high when there is echo 130, and low otherwise. To have the two
- the echo 130 is suppressed while allowing simultaneous near-end speech 120 to pass through.
- the NLP 104 is configured to achieve this because the coherence is calculated independently for each frequency band. Thus, bands containing echo are fully or partially suppressed, while bands free of echo are not affected.
- the average coherence across a set of preferred bands is computed at step S517 for Cd e , and at step S 5 1 7 ' for c ' x d as
- f s is the sampling frequency
- f s 16000 Hz in super-wideband due to the splitting.
- the preferred bands were chosen from frequency regions most likely to be accurate across a range of scenarios.
- step S519 the system either selects C de or c X( j.
- x d is tracked over time to determine the broad state of the system at step S521. The purpose of this is to avoid suppression when the echo path is close to zero (e.g. during a call with a headset).
- a thresholded minimum of c X d is computed at step S519 as follows:
- the system may contain echo and otherwise does not contain echo.
- the echo state is provided through an interface for potential use by other audio processing components.
- the suppression factor s is computed at step S520 by selecting the minimum of C d e , c ' X ( j in each band as
- suppression is limited by selecting suppression factors as follows at step S520, S524 and S518:
- the minimum si level is computed at step S527 and tracked at step S529 over time i *t - i _ J i s i - s i ⁇ if Sl ⁇ 3 ⁇ 4- ⁇ ⁇ 0>6 b n - - 1
- the overdrive ⁇ is set at step S531 such that applying it to the minimum will result in the target suppression level:
- s, and ⁇ are configurable to control the suppression aggressiveness; by default they are set to -11.5 and 2, respectively.
- the Sh level is computed at step S533.
- the final suppression factors s T are produced according to the following algorithm.
- s is first weighted towards Sh according to a weighting vector V S N with components 0 ⁇ (n) ⁇ 1 :
- ⁇ is artificial noise and at step S537, an inverse transform is performed to obtain the output signal y(n).
- the suppression removes near-end noise as well as echo, resulting in an audible change in the noise level. This issue is mitigated by adding generated "comfort noise” to replace the lost noise.
- the generation of N will be discussed in a later section below.
- Fig. 6 is a block diagram of the AEC 100 for processing lower-band and upper- band signal streams in accordance with an embodiment of the present invention.
- the AEC 100 includes a first splitting filter 600, a second splitting filter 602, a linear filter 604, a non-linear post-processor (NLP) 606, a comfort noise generator 608, and ajoining filter 610.
- NLP non-linear post-processor
- the linear filter 604 performs the same functionalities as the filter 102 described above with reference to Figs. 2-4 in addition to the functionalities described herein with reference to Fig. 6.
- the NLP 606 performs the same functionalities as the NLP 104 described above with reference to Fig. 5 in addition to the functionalities described herein with reference to Fig. 6.
- the first splitting filter 600, the second splitting filter 602, and the linear filter 604, in combination comprise the linear stage.
- lower band and upper band signal streams may include components in frequency ranges other than the exemplary frequency ranges used herein.
- the frequency ranges of 0-8 kHz and 8-16 kHz are used for the lower band and upper band signal streams, respectively.
- a frequency range of 0-12 kHz may be used for the lower band signal stream and a frequency range of 12-24 kHz used for the upper band signal stream.
- frequency ranges of 0-7 kHz and 7-20 kHz may be used for the lower band and upper band signal streams, respectively.
- narrowband wideband
- super-wideband is sometimes used herein to refer to audio signals with sampling rates at or above certain threshold sampling rates, or with sampling rates within certain ranges. These terms may also be used relative to one another in describing audio signals with particular sampling rates.
- “super-wideband” is sometimes used herein to refer to audio signals with a sampling rate above wideband sampling rate of, e.g., 16 kHz.
- super-wideband is used to refer to audio signals sampled at a higher rate of, e.g., 32 kHz or 48 kHz. It should be understood that such use of the terms “narrowband,” “wideband,” and/or “super-wideband” are not in any way intended to limit the scope of the disclosure.
- the near-end signal 120 is input to the first splitting filter 600 and the far- end signal 110 is input to the second splitting filter 602.
- the super- wideband input signals are split into two, e.g., 8 kHz frequency bands before arriving at the AEC 100.
- the linear filter 604 processes the lower band.
- the upper band is not used by the linear filter 604 at the linear stage.
- the NLP 104 is relied upon to control echo in the upper-band.
- the first splitting filter 600, the second splitting filter 602, and the linear filter 604 in combination comprise the linear stage.
- the first splitting filter 600 splits the frequency bands of the near-end signal 120 into streams of a lower frequency band of, e.g., 0-8 kHz and an upper frequency band of, e.g., 8-16 kHz.
- the second splitting filter 602 splits the frequency bands of the far-end signal 1 10 in a manner such that only the lower frequency band of 0- 8 kHz is input to the liner filter 604 and other frequency bands are discarded.
- the output from the first splitting filter 600 and the output from the second splitting filter 602 are input to the linear filter 604.
- the linear filter 604 processes only the lower band since the upper band is not used by the linear filter 604.
- the NLP 606 receives the lower frequency band of 0-8 kHz output from the first splitting filter 600 and the second splitting filter 602 as well as the output of the linear filter 604.
- the comfort noise generator 608 receives the output from the NLP 606 and the output of the noise generator 608 is input to the joining filter 610.
- the 8-16 kHz frequency band of the near-end signal 120 is also input to the joining filter 610 after undergoing further processing by the NLP 606 and the comfort noise generator 608 according to the algorithms described below.
- the joining filter 610 then outputs the full band of, e.g., 0-16 kHz.
- the upper-band noise estimate and the upper-band suppression factor may be used by the noise generator 608 to compute upper-band comfort noise as follows:
- dh is the upper-band near-end signal.
- the suppression is directly applied to d3 ⁇ 4 here because the linear stage is not used.
- the single block delay from d to y is required to synchronize with the lower-band.
- N 3 ⁇ 4 Nfc a U2.V o y'l — s-v a s ⁇
- Fig. 7 is a flow diagram illustrating operations performed by the AEC 100 according to an embodiment of the present invention illustrated in Fig. 6.
- super-wideband audio streams e.g., audio streams with a sampling rate of 32 kHz, 48 kHz, etc.
- the splitting filter 600 splits the received super-wideband audio streams into a first signal stream and a second signal stream, wherein the first signal stream includes a first range of frequencies and the second signal stream includes a second range of frequencies higher than the first range of frequencies.
- the first signal stream may include frequency ranges of, e.g., 0-8 kHz and the second frequency signal stream may include frequency ranges of, e.g., 8-16 kHz.
- these exemplary frequency ranges are not intended to limit the scope of the disclosure in any way.
- step S705 an average of the suppression factors over the first signal stream computed by the NLP 606 is used to derive a single upper-band suppression factor.
- step S707 the single upper-band suppression factor is applied by the NLP 606 to the second signal stream to reduce echo from the near-end super- wideband audio streams.
- Fig. 8 is a flow diagram illustrating operations performed by the AEC 100 according to a further embodiment of the present invention illustrated in Fig. 6.
- audio streams are received at the splitting filter 600.
- the splitting filter 600 splits the received audio streams into a first signal stream and a second signal stream, wherein the first signal stream includes a first range of frequencies and the second signal stream includes a second range of frequencies higher than the first range of frequencies.
- a single upper-band noise estimate is applied by the NLP 606 to generate comfort noise for the second signal stream of one of the input audio streams.
- Fig. 9 is a block diagram illustrating an example computing device 900 that may be utilized to implement the AEC 100 including, but not limited to, the NLP 104, the filter 102, the far-end buffer 106, and the blocking buffer 108 as well as the first splitting filter 600, the second splitting filter 602, the linear filter 604, the NLP 606, the comfort noise generator 608 and the joining filter 610 in accordance with the present disclosure.
- the computing device 900 may also be utilized to implement the processes illustrated in Figs. 3, 5, and 7 in accordance with the present disclosure.
- computing device 900 typically includes one or more processors 910 and system memory 920.
- a memory bus 930 can be used for communicating between the processor 910 and the system memory 920.
- processor 910 can be of any type including but not limited to a microprocessor ( ⁇ ), a microcontroller ( ⁇ ), a digital signal processor (DSP), or any combination thereof.
- Processor 910 can include one more levels of caching, such as a level one cache 911 and a level two cache 912, a processor core 913, and registers 914.
- the processor core 913 can include an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing core (DSP Core), or any combination thereof.
- a memory controller 915 can also be used with the processor 910, or in some implementations the memory controller 915 can be an internal part of the processor 910.
- system memory 920 can be of any type including but not limited to volatile memory (such as RAM), non- volatile memory (such as ROM, flash memory, etc.) or any combination thereof.
- System memory 920 typically includes an operating system 921 , one or more applications 922, and program data 924.
- Application 922 includes an echo cancellation processing algorithm 923 that is arranged to remove echo from super-wide band audio streams.
- Program Data 924 includes echo cancellation routing data 925 that is useful for removing echo from super-wide band audio streams, as will be further described below.
- application 922 can be arranged to operate with program data 924 on an operating system 921 such that echo from super-wide band audio streams is removed. This described basic configuration is illustrated in Fig. 9 by those components within dashed line 901.
- Computing device 900 can have additional features or functionality, and additional interfaces to facilitate communications between the basic configuration 901 and any required devices and interfaces.
- a bus/interface controller 940 can be used to facilitate communications between the basic configuration 901 and one or more data storage devices 950 via a storage interface bus 941.
- the data storage devices 950 can be removable storage devices 951, non-removable storage devices 952, or a combination thereof.
- removable storage and non-removable storage devices include magnetic disk devices such as flexible disk drives and hard-disk drives (HDD), optical disk drives such as compact disk (CD) drives or digital versatile disk (DVD) drives, solid state drives (SSD), and tape drives to name a few.
- Example computer storage media can include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data.
- System memory 920, removable storage 951 and non-removable storage 952 are all examples of computer storage media.
- Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computing device 900. Any such computer storage media can be part of device 900.
- Computing device 900 can also include an interface bus 942 for facilitating communication from various interface devices (e.g., output interfaces, peripheral interfaces, and communication interfaces) to the basic configuration 901 via the bus/interface controller 940.
- Example output devices 960 include a graphics processing unit 961 and an audio processing unit 962, which can be configured to communicate to various external devices such as a display or speakers via one or more A/V ports 963.
- Example peripheral interfaces 970 include a serial interface controller 971 or a parallel interface controller 972, which can be configured to communicate with external devices such as input devices (e.g., keyboard, mouse, pen, voice input device, touch input device, etc.) or other peripheral devices (e.g., printer, scanner, etc.) via one or more I/O ports 973.
- An example communication device 990 includes a network controller 991, which can be arranged to facilitate communications with one or more other computing devices 990 over a network communication via one or more communication ports 992.
- the communication connection is one example of a communication media.
- Communication media may typically be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media.
- a “modulated data signal” can be a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
- communication media can include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared (IR) and other wireless media.
- RF radio frequency
- IR infrared
- computer readable media can include both storage media and communication media.
- Computing device 900 can be implemented as a portion of a small-form factor portable (or mobile) electronic device such as a cell phone, a personal data assistant (PDA), a personal media player device, a wireless web-watch device, a personal headset device, an application specific device, or a hybrid device that include any of the above functions.
- a small-form factor portable (or mobile) electronic device such as a cell phone, a personal data assistant (PDA), a personal media player device, a wireless web-watch device, a personal headset device, an application specific device, or a hybrid device that include any of the above functions.
- PDA personal data assistant
- Computing device 900 can also be implemented as a personal computer including both laptop computer and non-laptop computer configurations.
- the implementer may opt for a mainly hardware and/or firmware vehicle; if flexibility is paramount, the implementer may opt for a mainly software implementation; or, yet again alternatively, the implementer may opt for some combination of hardware, software, and/or firmware.
- ASICs Application Specific Integrated Circuits
- FPGAs Field Programmable Gate Arrays
- DSPs digital signal processors
- Examples of a signal bearing medium include, but are not limited to, the following: a recordable type medium such as a floppy disk, a hard disk drive, a Compact Disc (CD), a Digital Video Disk (DVD), a digital tape, a computer memory, etc.; and a transmission type medium such as a digital and/or an analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communications link, a wireless communication link, etc.).
- a typical data processing system generally includes one or more of a system unit housing, a video display device, a memory such as volatile and non-volatile memory, processors such as microprocessors and digital signal processors, computational entities such as operating systems, drivers, graphical user interfaces, and applications programs, one or more interaction devices, such as a touch pad or screen, and/or control systems including feedback loops and control motors (e.g., feedback for sensing position and/or velocity; control motors for moving and/or adjusting components and/or quantities).
- a typical data processing system may be implemented utilizing any suitable commercially available components, such as those typically found in data computing/communication and/or network computing/communication systems.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
Abstract
Description
Claims
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2011/036863 WO2012158165A1 (en) | 2011-05-17 | 2011-05-17 | Non-linear post-processing for super-wideband acoustic echo cancellation |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP2710789A1 true EP2710789A1 (en) | 2014-03-26 |
Family
ID=44201814
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP11721217.5A Withdrawn EP2710789A1 (en) | 2011-05-17 | 2011-05-17 | Non-linear post-processing for super-wideband acoustic echo cancellation |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP2710789A1 (en) |
| WO (1) | WO2012158165A1 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2020124363A1 (en) * | 2018-12-18 | 2020-06-25 | Intel Corporation | Display-based audio splitting in media environments |
| CN111341336B (en) * | 2020-03-16 | 2023-08-08 | 北京字节跳动网络技术有限公司 | Echo cancellation method, device, terminal equipment and medium |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5305307A (en) * | 1991-01-04 | 1994-04-19 | Picturetel Corporation | Adaptive acoustic echo canceller having means for reducing or eliminating echo in a plurality of signal bandwidths |
| US6865270B1 (en) * | 2000-09-21 | 2005-03-08 | Rane Corporation | Echo cancellation method and apparatus |
| US8036879B2 (en) * | 2007-05-07 | 2011-10-11 | Qnx Software Systems Co. | Fast acoustic cancellation |
-
2011
- 2011-05-17 WO PCT/US2011/036863 patent/WO2012158165A1/en not_active Ceased
- 2011-05-17 EP EP11721217.5A patent/EP2710789A1/en not_active Withdrawn
Non-Patent Citations (2)
| Title |
|---|
| None * |
| See also references of WO2012158165A1 * |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2012158165A1 (en) | 2012-11-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP2710788A1 (en) | Using echo cancellation information to limit gain control adaptation | |
| EP2710787A1 (en) | Non-linear post-processing for acoustic echo cancellation | |
| JP5671147B2 (en) | Echo suppression including modeling of late reverberation components | |
| JP5450567B2 (en) | Method and system for clear signal acquisition | |
| KR100716377B1 (en) | Digital adaptive filter and echo canceller using it | |
| US9461702B2 (en) | Systems and methods of echo and noise cancellation in voice communication | |
| US8023641B2 (en) | Spectral domain, non-linear echo cancellation method in a hands-free device | |
| US8488776B2 (en) | Echo suppressing method and apparatus | |
| US8073132B2 (en) | Echo canceler and echo canceling program | |
| US8199907B2 (en) | Echo canceller and echo cancelling method and program | |
| WO2012158168A1 (en) | Clock drift compensation method and apparatus | |
| US10348887B2 (en) | Double talk detection for echo suppression in power domain | |
| KR102649227B1 (en) | Double-microphone array echo eliminating method, device and electronic equipment | |
| CN1953060A (en) | Echo elimination device for microphone and method thereof | |
| ES2991393T3 (en) | Echo residue suppression | |
| EP3692703A1 (en) | Echo canceller and method therefor | |
| CN111355855B (en) | Echo processing method, device, equipment and storage medium | |
| EP2716023B1 (en) | Control of adaptation step size and suppression gain in acoustic echo control | |
| JP5057109B2 (en) | Echo canceller | |
| WO2012158165A1 (en) | Non-linear post-processing for super-wideband acoustic echo cancellation | |
| KR100431965B1 (en) | Apparatus and method for removing echo-audio signal using time-varying algorithm with time-varying step size |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| 17P | Request for examination filed |
Effective date: 20131116 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| RIN1 | Information on inventor provided before grant (corrected) |
Inventor name: MACDONALD, ANDREW JOHN Inventor name: SKOGLUND, JAN Inventor name: PANICONI, MARCO |
|
| DAX | Request for extension of the european patent (deleted) | ||
| RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: GOOGLE LLC |
|
| 17Q | First examination report despatched |
Effective date: 20180319 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
| 18D | Application deemed to be withdrawn |
Effective date: 20180731 |
|
| P01 | Opt-out of the competence of the unified patent court (upc) registered |
Effective date: 20230519 |