Acoustic echo cancellation method and system using the same
09763005 · 2017-09-12
Assignee
Inventors
- Yu Tsao (Taipei, TW)
- Shih Hau Fang (Taipei, TW)
- Yao Shiao (Taipei, TW)
- Yu-Cheng Su (Tainan, TW)
- Ying-Ren Chien (New Taipei, TW)
Cpc classification
International classification
G10K11/16
PHYSICS
H04R3/02
ELECTRICITY
Abstract
The present disclosure illustrates an acoustic echo cancellation method and system using the same. The acoustic echo cancellation method comprises the following steps. Firstly, a prior-knowledge matrix comprising a plurality of space vectors is built. Then, an initial filter vector is generated by the prior-knowledge matrix and an initial weighting vector. The weighting vector is updated based on the difference of the echo signal and the estimated signal in an iteration algorithm, and the coefficient of the filter vector is updated according to the updated weighting vector. An estimated signal is generated according to the updated filter vector and the original signal. Finally, the next echo signal is cancelled by the near-end estimated signal.
Claims
1. An acoustic echo cancellation method, adapted for an adaptive filter, comprising: collecting numerous training data to build prior-knowledge formed by a set of space vectors, wherein the vectors represent different sizes or forms of rooms as follows [h.sub.0.sup.1 h.sub.2.sup.1 . . . h.sub.L−1.sup.1].sup.T, [h.sub.0.sup.2 h.sub.2.sup.2 . . . h.sub.L−1.sup.2].sup.T, . . . , [h.sub.0.sup.K h.sub.2.sup.K . . . h.sub.L−1.sup.K].sup.T; building a prior-knowledge matrix H including a plurality of space vectors as follows
2. The acoustic echo cancellation method according to claim 1, wherein the iteration algorithm is a multi-dimensional input algorithm.
3. The acoustic echo cancellation method according to claim 2, wherein the iteration algorithm is an Affine Projection Algorithm (APA), a Proportionate Affine Projection Algorithm (PAPA), or an Improvement Proportionate Affine Projection Algorithm (IPAPA).
4. An acoustic echo cancellation system, comprising: an adaptive filter configured for collecting numerous training data to build prior-knowledge formed by a set of space vectors, wherein the vectors represent different sizes or forms of rooms as follows [h.sub.0.sup.1 h.sub.2.sup.1 . . . h.sub.L−1.sup.1].sup.T, [h.sub.0.sup.2 h.sub.2.sup.2 . . . h.sub.L−1.sup.2].sup.T, . . . , [h.sub.0.sup.K h.sub.2.sup.K . . . h.sub.L−1.sup.K].sup.T, generating an initial filter vector by a prior-knowledge matrix H and an initial weighting vector, and updating a weighting vector based on the difference of an echo signal and an estimated signal in an iteration algorithm to estimate an impulse response signal of a near-end room; wherein the adaptive filter generates a near-end estimated signal corresponding to the prior knowledge, the updated weighting vector, and an original signal, and cancels a next echo signal by a near-end estimated signal; wherein the adaptive filter is adapted with a plurality of reference spaces to generate the space vectors corresponding to the reference spaces; wherein the weighting vector is formed by a weighting coefficient and a bias vector; wherein the prior-knowledge matrix H includes a plurality of space vectors as follows
5. The acoustic echo cancellation system according to claim 4, wherein the iteration algorithm is a multi-dimensional input algorithm.
6. The acoustic echo cancellation system according to claim 5, wherein the iteration algorithm is an Affine Projection Algorithm, a Proportionate Affine Projection Algorithm, or an Improvement Proportionate Affine Projection Algorithm.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The accompanying drawings are included to provide a further understanding of the present disclosure, and are incorporated in and constitute a part of this specification. The drawings illustrate exemplary embodiments of the present disclosure and, together with the description, serve to explain the principles of the present disclosure.
(2)
(3)
(4)
DESCRIPTION OF THE EXEMPLARY EMBODIMENTS
(5) Reference will now be made in detail to the exemplary embodiments of the present disclosure, examples of which are illustrated in the accompanying drawings.
(6) Please refer to
(7) Please refer to
(8) Original signal x(n) is transmitted from the far-end room (e.g., the voice signal of the user 120 is transmitted by the microphone 121 in
(9) The prior-knowledge generator 22 is configured for building a prior-knowledge matrix H. Specifically, the prior-knowledge means utilizing the data collected previously to calculate the impulse response accurately. In the embodiment of the present disclosure, the prior-knowledge matrix H is formed by a plurality of space vectors, and each vector represents a particular channel characteristic. In other words, the vectors represent different sizes or forms of the rooms, such as 1 m*m, 2 m*m, or 3 m*m, the present disclosure is not limited thereto.
(10) The proposed algorithm consists of two stages. The first stage is building a set of prior-knowledge. In other words, numerous training data such as man-made data or natural and simulation data are collected to prepare the prior-knowledge. The second stage is on-line operating or calculating based on the prepared prior-knowledge. Thus, if the first stage is prepared more carefully, the second stage can provide better performance.
(11) The adaptive filter 23 generates an initial filter vector ĥ(n) by the prior-knowledge matrix H and an initial weighting vector, and accordingly generates the initial estimated signal ŷ(n). The difference of the estimated signal ŷ(n) and the echo signal y(n) is used to update the weighting vector in an iteration manner. The weighting vector then updates the filter vector ĥ(n) and accordingly the estimated signal ŷ(n) to minimize the difference of ŷ(n) and y(n). Then, the adaptive filter 23 generates a filter vector ĥ(n) based on the updated weighting vector. The computed ĥ(n) is used to compute ŷ(n) and cancel the next echo signal y(n). The error signal e(n) may be close to the zero after the estimated signal ŷ(n) is calculated thru many iterations.
(12) It is worth noting, in the embodiment of the present disclosure, the weighting vector is formed by a weighting coefficient and a bias vector. The iteration algorithm can be a single dimensional input algorithm, such as Least Mean Square (LMS) and Normalized LMS (NLMS), or a multi-dimensional input algorithm, such as Affine Projection Algorithm (APA), Proportionate Affine Projection Algorithm (PAPA), Improvement Proportionate Affine Projection Algorithm (IPAPA), and LevenbergMarquardt Regularized APA (LMR-APA), etc. However, the present disclosure is not limited thereto. The above algorithms are further illustrated as follows.
(13) First Stage (Off-Line)
(14) Builds a set of the prior-knowledge, which is the prior-knowledge matrix H as equation (1). Wherein the prior-knowledge matrix H comprises K vectors [h.sub.0.sup.1 h.sub.2.sup.1 . . . h.sub.L−1.sup.1].sup.T, [h.sub.0.sup.2 h.sub.2.sup.2 . . . h.sub.L−1.sup.2].sup.T, . . . , [h.sub.0.sup.K h.sub.2.sup.K . . . h.sub.L−1.sup.K].sup.T generated by the adaptive filter 23 adapted with reference spaces. Those K vectors are collected to generate a vector matrix H=[h.sup.1 . . . h.sup.K]. The coefficients are the vector spaces.
(15)
(16) Second Stage (On-line)
(17) A new matrix S=[H|I.sub.L×L] is generated by combining an identity matrix I.sub.L×L with the prior-knowledge matrix H as equation (2) as follows.
(18)
(19) The filter vector ĥ(n) is calculated by the weighting vector ŵ(n) with the matrix S. More specifically, the weighting vector ŵ(n)=[a(n).sup.Tb(n).sup.T].sup.T is an (L+K)-dimensional vector, wherein the a(n)=[a.sub.1(n) . . . a.sub.K(n)].sup.T is a K-dimensional weighting vector and b(n)=[b.sub.1(n) . . . b.sub.K(n)].sup.T is an L-dimensional initial vector. Thus, the filter vector ĥ(n) can be shown as equation (3) as follows.
(20)
(21) The affine projection algorithm and the proportionate affine projection algorithm are illustrated as follows.
(22) Vector-space A (fine Projection Algorithm (VAPA)
(23)
(24) For calculating the ŵ(n), the equation (4) and (5) are solved by Lagrange to formulate the equation (6).
L({circumflex over (w)}(n),λ)=∥Sŵ(n)−Sŵ(n−1)∥.sup.2+[y(n)−X.sup.T(n)Sŵ(n)].sup.TΛ (6)
(25) Wherein Λ=[Λ.sub.0 Λ.sub.1 . . . Λ.sub.P−1] is a vector of Lagrange, and the equation (7) is derived from the equation (6).
2S.sup.T(Sŵ(n−1)−Sŵ(n))+S.sup.TX(n)Λ=0 (7)
(26) Then, assuming J=S.sup.TSS.sup.T and simplifying the equation (7), merges the equation (5) to obtain the equation (8).
(27)
(28) AssumingU=SJ.sup.−1, we can obtain the equation (9).
Λ=(X.sup.T(n)UX(n)).sup.−12e(n) (9)
(29) Therefore, by taking the equation (9) back into the equation (7), ŵ(n) can be updated. In other words, ŵ(n) is updated by equation (10) as follows.
{circumflex over (w)}(n)={circumflex over (w)}(n−1)+μ′J.sup.−1X(n)(X.sup.T(n)UX(n)+δ′I.sub.p×p).sup.−1e(n) (10)
(30) Where μ′ is a step, and δ′ is a small normalized constant, which is configured for avoiding the inverse matrix to be zero.
(31) Vector-space Proportionate Arne Projection Algorithm (VPAPA)
(32) The derivation of the proportionate affine projection algorithm is similar to the derivation of the affine projection algorithm. The equation (6) is changed as follows.
L({circumflex over (w)}(n),λ)=∥Sŵ(n)−Sŵ(n−1)∥.sup.2+[y(n)−X.sup.T(n)G(n)Sŵ(n)].sup.TΛ′ (11)
(33) Wherein Λ′ is a new Lagrange, G(n) is an L*L diagonal matrix. g.sub.l(n),l=0, . . . , L−1 is shown as the elements in the diagonal matrix. The equation (12) is derived from the equation (11) as follows.
2S.sup.T(Sŵ(n−1)−Sŵ(n))+S.sup.TG(n)X(n)Λ′=0 (12)
(34) Then, assuming J=S.sup.TSS.sup.T and simplifying the equation (12), merges the equation (5) to obtain the equation (13).
(35)
(36) AssumingU=SJ.sup.−1, we can obtain the equation (14).
Λ=(X.sup.T(n)UG(n)X(n)).sup.−1 2e(n) (14)
(37) After solving the new Lagrange, the ŵ(n) can be updated by taking the equation (14) back into the equation (12). In other words, the ŵ(n) is the iteration of the vector-space proportionate affine projection algorithm in equation (15) as follows.
{circumflex over (w)}(n)={circumflex over (w)}(n−1)+μ′J.sup.−1G(n)X(n)(X.sup.T(n)UX(n)+δ′I.sub.p×p).sup.−1e(n) (15)
(38) Wherein the μ′ is a step, and δ′ is a small normalized constant, which is configured for avoiding the inverse matrix to be zero.
(39)
(40) Please refer to
(41) Next, in the step S103, the adaptive filter 23 generates an initial filter vector h(n) by the prior-knowledge matrix H and the initial weighting vector. More specifically, the room impulse response h(n) of the near-end room 21 can be simulated by the weighting vector and the prior-knowledge matrix H. In the embodiment of the present disclosure, the adaptive filter 23 combines the vectors in H using weighting coefficients and bias coefficients in the weighting vector.
(42) In the step S105, the adaptive filter 23 calculates estimated signal ŷ(n) to match the echo signal y(n) in an iteration algorithm by the adder 24, where y(n) is generated from an original signal x(n) via a room impulse response h(n) of a near-end room 21. The adaptive filter 23 adjusts the weighting vector and thus filter vector ĥ(n) according to the difference of y(n) and ŷ(n). It is worth noting, the update method of the estimated signal ŷ(n) is not limited by vectors, also can be single values such as that used in LMS and NLMS. The embodiment of the present disclosure is implemented to optimize the active region and non-active region of the convergence rate by the multi-dimensional input, but is not limited thereto.
(43) In the step S107, the adaptive filter 23 generates a near-end estimated signal ŷ(n) based on the prior-knowledge matrix H, the updated weighting vector, and the original signal. The weighting vector is first updated, the coefficient of the filter vector ĥ(n) is then updated according to the updated weighting vector, and finally a new near-end estimated signal ŷ(n) is generated. The next echo signal y(n) is cancelled by the new near-end estimated signal ŷ(n), and a new near-end estimated signal ŷ(n) is then generated (that is the iteration algorithm). More specifically, after the coefficients of the weighting vector is updated in step S105, the adaptive filter calculates a new near-end estimated signal ŷ(n) and computes an error signal, e(n), which is used to update the coefficient of the weighting vector. After the coefficient of the weighting vector is updated, the estimated signal ŷ(n) becomes closer to the echo signal y(n). Thus, the error signal e(n) is close to zero. In other words, the estimated signal ŷ(n) is generated to cancel the echo signal y(n) generated from the original signal x(n) via the room impulse response h(n) of the near-end room 21.
(44) To sum up, the acoustic echo cancellation method and system utilize a set of space vectors to update the coefficient of the adaptive filter to increase the robustness and the efficiency in the estimation processing. In other words, the convergence rate of the algorithm is raised by estimating the previous room impulse response. Thus, the present disclosure shows better convergence rate of the algorithm and lower error rate compared to the traditional acoustic echo cancellation method, and raises the quality of the communication. On the other hand, the environment using a microphone and speaker (e.g., SKYPE, hands-free system in car . . . , etc.) has better voice quality for a listener because of the convergence rate in high speed to avoid the acoustic echo.
(45) The above-mentioned descriptions represent merely the exemplary embodiment of the present disclosure, without any intention to limit the scope of the present disclosure thereto. Various equivalent changes, alterations or modifications based on the claims of present disclosure are all consequently viewed as being embraced by the scope of the present disclosure.