IP Library Granted Patent US 11,222,647
Granted Patent B2
US 11,222,647 · App. 16/934,668 · Granted Jan 11, 2022

Cascade echo cancellation for asymmetric references

Inventors: Mohamed Mansour (Cupertino, CA); Shobha Devi Kuruba Buchannagari (Fremont, CA)
Assignee: Amazon Technologies, Inc.
G10L21/0232G10L25/21G10L25/51G10L15/08G10L15/22G10L2015/088G10L2015/223G10L2021/02082
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,222,647
App. No.
16/934,668
Granted
Jan 11, 2022
Kind
B2
Abstract

A system configured to perform cascade echo cancellation processing to improve a performance when reference signals are asymmetric (e.g., dominant reference signal(s) overshadow weak reference signal(s)). The system may perform cascade echo cancellation processing to separately adapt filter coefficients between the dominant reference signal(s) and the weak reference signal(s). For example, the system may use a dominant reference signal to process a microphone audio signal and generate a residual audio signal, using the residual audio signal to adapt first filter coefficient values corresponding to the dominant reference signal. Separately, the system may use a weak reference signal to process the residual audio signal and generate an output audio signal, using the output audio signal to adapt second filter coefficient values corresponding to the weak reference signal.

Claims (98)

1. A computer-implemented method, the method comprising:

receiving first reference audio data associated with a first loudspeaker corresponding to a device;

receiving second reference audio data associated with a second loudspeaker corresponding to the device;

receiving first audio data from at least one microphone of the device;

determining that the first reference audio data represents a stronger signal than the second reference audio data;

based at least in part on determining that the first reference audio data represents a stronger signal than the second reference audio data, generating second audio data by performing first echo cancellation using the first audio data and the first reference audio data; and

based at least in part on determining that the first reference audio data represents a stronger signal than the second reference audio data, generating third audio data by performing second echo cancellation using the second audio data and the second reference audio data.

2. The computer-implemented method of claim 1 , further comprising:

determining a first energy value of a portion of the first reference audio data within a first frequency range; and

determining a second energy value of a portion of the second reference audio data within the first frequency range,

wherein determining that the first reference audio data represents a stronger signal than the second reference audio data comprises determining that a first difference between the first energy value and the second energy value satisfies a condition.

3. The computer-implemented method of claim 2 , further comprising:

receiving fourth audio data from the at least one microphone;

determining a third energy value of a second portion of the first reference audio data within a second frequency range;

determining a fourth energy value of a second portion of the second reference audio data within the second frequency range;

determining that a second difference between the third energy value and the fourth energy value does not satisfy the condition; and

generating fifth audio data using the fourth audio data, the second portion of the first reference audio data and the second portion of the second reference audio data.

4. The computer-implemented method of claim 1 , wherein:

the first echo cancellation is performed using a first plurality of filter coefficient values associated with a first echo canceller; and

the second echo cancellation is performed using a second plurality of filter coefficient values associated with a second echo canceller.

5. The computer-implemented method of claim 4 , further comprising:

generating a third plurality of filter coefficient values using the second audio data and the first plurality of filter coefficient values.

6. The computer-implemented method of claim 4 , further comprising:

generating a third plurality of filter coefficient values using the third audio data and the second plurality of filter coefficient values.

7. The computer-implemented method of claim 1 , further comprising:

receiving third reference audio data associated with the first loudspeaker;

receiving fourth reference audio data associated with the second loudspeaker;

receiving fourth audio data from the at least one microphone;

determining that a difference between the third reference audio data and the fourth reference audio data fails to satisfy a condition; and

generating fifth audio data by performing third echo cancellation using the fourth audio data, the third reference audio data, and the fourth reference audio data.

8. The computer-implemented method of claim 1 , further comprising:

receiving third reference audio data associated with a third loudspeaker of the device; and

determining that a difference between the first reference audio data and the third reference audio data fails to satisfy a condition,

wherein performing the first echo cancellation comprises:

generating first estimated echo audio data using the first reference audio data and a first portion of a first plurality of filter coefficient values,

generating second estimated echo audio data using the third reference audio data and a second portion of the first plurality of filter coefficient values, and

generating the second audio data using the first audio data, the first estimated echo audio data, and the second estimated echo audio data.

9. The computer-implemented method of claim 8 , wherein generating the second audio data comprises:

generating the second audio data by subtracting the first estimated echo audio data and the second estimated echo audio data from the first audio data.

10. The computer-implemented method of claim 1 , further comprising:

receiving third reference audio data associated with the first loudspeaker;

receiving fourth reference audio data associated with the second loudspeaker;

receiving fourth audio data from the at least one microphone;

determining a first signal quality metric value of the third reference audio data;

determining a second signal quality metric value of the fourth reference audio data;

determining that the first signal quality metric value satisfies a condition;

determining that the second signal quality metric value fails to satisfy the condition; and

generating fifth audio data by performing third echo cancellation using the fourth audio data and the fourth reference audio data.

11. A system comprising:

at least one processor; and

memory including instructions operable to be executed by the at least one processor to cause the system to:

receive first reference audio data associated with a first loudspeaker corresponding to a device;

receive second reference audio data associated with a second loudspeaker corresponding to the device;

receive first audio data from at least one microphone of the device;

determine that the first reference audio data represents a stronger signal than the second reference audio data;

based at least in part on determining that the first reference audio data represents a stronger signal than the second reference audio data, generate second audio data by performing first echo cancellation using the first audio data and the first reference audio data; and

based at least in part on determining that the first reference audio data represents a stronger signal than the second reference audio data, generate third audio data by performing second echo cancellation using the second audio data and the second reference audio data.

12. The system of claim 11 , wherein the memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

determine a first energy value of a portion of the first reference audio data within a first frequency range; and

determine a second energy value of a portion of the second reference audio data within the first frequency range,

wherein the instructions that cause the system to determine that the first reference audio data represents a stronger signal than the second reference audio data comprise instructions that, when executed by the at least one processor, further cause the system to determine that a first difference between the first energy value and the second energy value satisfies a condition.

13. The system of claim 12 , wherein the memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

receive fourth audio data from the at least one microphone;

determine a third energy value of a second portion of the first reference audio data within a second frequency range;

determine a fourth energy value of a second portion of the second reference audio data within the second frequency range;

determine that a second difference between the third energy value and the fourth energy value does not satisfy the condition; and

generate fifth audio data using the fourth audio data, the second portion of the first reference audio data and the second portion of the second reference audio data.

14. The system of claim 11 , wherein:

the first echo cancellation is performed using a first plurality of filter coefficient values associated with a first echo canceller; and

the second echo cancellation is performed using a second plurality of filter coefficient values associated with a second echo canceller.

15. The system of claim 14 , wherein the memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

generate a third plurality of filter coefficient values using the second audio data and the first plurality of filter coefficient values.

16. The system of claim 14 , wherein the memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

generate a third plurality of filter coefficient values using the third audio data and the second plurality of filter coefficient values.

17. The system of claim 11 , wherein the memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

receive third reference audio data associated with the first loudspeaker;

receive fourth reference audio data associated with the second loudspeaker;

receive fourth audio data from the at least one microphone;

determine that a difference between the third reference audio data and the fourth reference audio data fails to satisfy a condition; and

generate fifth audio data by performing third echo cancellation using the fourth audio data, the third reference audio data, and the fourth reference audio data.

18. The system of claim 11 , wherein the memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

receive third reference audio data associated with a third loudspeaker of the device; and

determine that a difference between the first reference audio data and the third reference audio data fails to satisfy a condition,

wherein the instructions that cause the system to perform the first echo cancellation comprise instructions that, when executed by the at least one processor, further cause the system to:

generate first estimated echo audio data using the first reference audio data and a first portion of a first plurality of filter coefficient values,

generate second estimated echo audio data using the third reference audio data and a second portion of the first plurality of filter coefficient values, and

generate the second audio data using the first audio data, the first estimated echo audio data, and the second estimated echo audio data.

19. The system of claim 18 , wherein the instructions that cause the system to generate the second audio data comprise instructions that, when executed by the at least one processor, further cause the system to:

generate the second audio data by subtracting the first estimated echo audio data and the second estimated echo audio data from the first audio data.

20. The system of claim 11 , wherein the memory further comprises instructions that, when executed by the at least one processor, further cause the system to:

receive third reference audio data associated with the first loudspeaker;

receive fourth reference audio data associated with the second loudspeaker;

receive fourth audio data from the at least one microphone;

determine a first signal quality metric value of the third reference audio data;

determine a second signal quality metric value of the fourth reference audio data;

determine that the first signal quality metric value satisfies a condition;

determine that the second signal quality metric value fails to satisfy the condition; and

generate fifth audio data by performing third echo cancellation using the fourth audio data and the fourth reference audio data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2020
From: MANSOUR, MOHAMED; KURUBA BUCHANNAGARI, SHOBHA DEVI
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 053272/0766 →
Continuity (2)
Continuation 16669980 · Oct 31, 2019
Related Publication 20210134313A1 · May 6, 2021