IP Library Granted Patent US 11,521,635
Granted Patent B1
US 11,521,635 · App. 17/108,718 · Granted Dec 6, 2022

Systems and methods for noise cancellation

Inventors: Amit Singh Chhetri (Sunnyvale, CA); Navin Chatlani (Palo Alto, CA)
Assignee: Amazon Technologies, Inc.
G10L21/0232G06N3/04G06N3/08G10L15/063G10L15/16G10L15/20G10L15/22G10L25/84G10L25/90G10L2021/02082G10L2021/02163
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,521,635
App. No.
17/108,718
Granted
Dec 6, 2022
Kind
B1
Abstract

A computing device may receive audio data from a microphone representing audio in an environment of the device, which may correspond to an utterance and noise. A model may be trained to process the audio data to cancel noise from the audio data. The model may include an encoder that includes one or more dense layers, one or more recurrent layers, and a decoder that includes one or more dense layers.

Claims (111)

1. A computer-implemented method for reducing noise in received audio using a user device, the method comprising:

outputting, from a loudspeaker of the user device, output audio;

receiving, from a microphone of the user device, first audio data representing:

speech and first noise corresponding to an ambient noise source,

second noise corresponding to a reverberation of the speech, and

third noise corresponding to the output audio;

processing the first audio data, using an acoustic echo cancellation (AEC) component, to determine:

AEC output data corresponding to the first noise, the second noise, and a nonlinear portion of the third noise, and

AEC echo estimate data corresponding to a linear portion of the third noise;

processing a real portion of the AEC output data, an imaginary portion of the AEC output data, a real portion of the AEC echo estimate data, and an imaginary portion of the AEC echo estimate data to determine mask data representing the first noise, the second noise, and the nonlinear portion of the third noise; and

multiplying the first audio data and the mask data to determine second audio data representing the speech.

2. The computer-implemented method of claim 1 , wherein determining the mask data comprises:

processing, using a first convolutional layer of an encoder, the real portion of the AEC output data, the imaginary portion of the AEC output data, the real portion of the AEC echo estimate data, and the imaginary portion of the AEC echo estimate data to determine first encoder output data corresponding to a first representation of an audio pitch of the first noise;

processing, using a recurrent layer, the first encoder output data to determine encoded data representing the audio pitch over a period of time; and

processing, using a second convolutional layer of a decoder, the encoded data to determine the mask data, the mask data representing an amplitude of the audio pitch.

3. A computer-implemented method comprising:

determining first audio data representing an utterance and noise;

receiving second audio data representing an estimate of the noise;

processing, using a first dense neural network (DNN) layer, the first audio data and the second audio data to determine first encoded data corresponding to at least a first feature of the first audio data and the second audio data;

processing, using a recurrent neural network (RNN) layer, the first encoded data to determine second encoded data corresponding to at least a second feature of the first audio data and the second audio data;

processing, using a second DNN layer, the second encoded data to determine mask data corresponding to the noise; and

processing the first audio data and the mask data to determine third audio data representing the utterance.

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

prior to receiving the first audio data, receiving fourth audio data from a microphone;

receiving fifth audio data from an audio data source, the fifth audio data corresponding to audio output by a loudspeaker;

processing the fifth audio data using an adaptive filter corresponding to a transfer function to determine the second audio data; and

subtracting the second audio data from the fourth audio data to determine the first audio data.

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

processing, using a third DNN layer, second data to determine third data;

processing, using a fourth DNN layer, the third data to determine fourth data; and

processing, using the first DNN layer, the third data and the fourth data to determine fifth data,

wherein the first encoded data is based at least in part on the fifth data.

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

determining first real data corresponding to the first audio data; and

determining first imaginary data corresponding to the first audio data,

wherein processing the first audio data comprises processing the first real data and processing the first imaginary data.

7. The computer-implemented method of claim 3 , wherein the RNN layer is determined by:

determining input training data representing a second utterance and a reverberation of the second utterance;

multiplying the input training data with a decay factor to determine target training data;

processing the input training data with a second RNN layer to determine output data; and

comparing the output data with the target training data to determine the RNN layer.

8. The computer-implemented method of claim 3 , wherein the RNN layer is determined by:

determining first input training data representing a second utterance and second noise;

determining second input training data representing third noise;

processing the first input training data with a second RNN layer to determine first output data;

processing the second input training data with the second RNN layer to determine second output data;

comparing, using a first loss function, the first output data with first target training data corresponding to the second utterance; and

comparing, using a second loss function, the second output data with second target training data corresponding to the third noise to determine the RNN layer.

9. The computer-implemented method of claim 3 , wherein the RNN layer is determined by:

determining input training data representing a second utterance and second noise;

processing the input training data with a second RNN layer to determine output data;

determining a first weight corresponding to a first frequency of the input training data;

determining a second weight corresponding to a second frequency of the input training data, the second weight being greater than the first weight and the second frequency being greater than the first frequency; and

comparing, using a loss function, the first weight, the second weight, and the output data with target training data corresponding to the second utterance to determine the RNN layer.

10. The computer-implemented method of claim 3 , wherein processing the first audio data and the mask data comprises:

multiplying a first complex number of the first audio data by a corresponding second complex number of the mask data.

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

receiving, at the second DNN layer from the first DNN layer, third encoded data;

processing, by the first DNN layer, the third encoded data to determine fourth encoded data;

receiving, at the second DNN layer, the fourth encoded data;

receiving, at the second DNN layer from the RNN layer, fifth encoded data; and

processing, using the second DNN layer, the third encoded data, the fourth encoded data, and the fifth encoded data to determine mask data corresponding to second noise.

12. A device comprising:

at least one processor; and

at least one memory including instructions that, when executed by the at least one processor, cause the device to:

determine first audio data representing an utterance and noise;

receive second audio data representing an estimate of the noise;

process, using a first dense neural network (DNN) layer, the first audio data and the second audio data to determine first encoded data corresponding to at least a first feature of the first audio data and the second audio data;

process, using a recurrent neural network (RNN) layer, the first encoded data to determine second encoded data corresponding to at least a second feature of the first audio data and the second audio data;

process, using a second DNN layer, the second encoded data to determine mask data corresponding to the noise; and

process the first audio data and the mask data to determine third audio data representing the utterance.

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

prior to receiving the first audio data, receive fourth audio data from a microphone;

receive fifth audio data from an audio data source, the fifth audio data corresponding to audio output by a loudspeaker;

process the fifth audio data using an adaptive filter corresponding to a transfer function to determine the second audio data; and

subtract the second audio data from the fourth audio data to determine the first audio data.

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

process, using a third DNN layer, second data to determine third data;

process, using a fourth DNN layer, the third data to determine fourth data; and

process, using the first DNN layer, the third data and the fourth data to determine fifth data,

wherein the first encoded data is based at least in part on the fifth data.

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

determine first real data corresponding to the first audio data; and

determine first imaginary data corresponding to the first audio data,

wherein processing the first audio data comprises processing the first real data and processing the first imaginary data.

16. The device of claim 12 , wherein the at least one memory further comprises instructions for determining the RNN layer that, when executed by the at least one processor, further cause the device to:

determine input training data representing a second utterance and a reverberation of the second utterance;

multiply the input training data with a decay factor to determine target training data;

process the input training data with component second RNN layer to determine output data; and

compare the output data with the target training data to determine the RNN layer.

17. The device of claim 12 , wherein the at least one memory further comprises instructions for determining the RNN layer that, when executed by the at least one processor, further cause the device to:

determine first input training data representing a second utterance and second noise;

determine second input training data representing third noise;

process the first input training data with a second RNN layer to determine first output data;

process the second input training data with the second RNN layer to determine second output data;

compare, using a first loss function, the first output data with first target training data corresponding to the second utterance; and

compare, using a second loss function, the second output data with second target training data corresponding to the third noise to determine the RNN layer.

18. The device of claim 12 , wherein the at least one memory further comprises instructions for determining the RNN layer that, when executed by the at least one processor, further cause the device to:

determine input training data representing a second utterance and second noise;

process the input training data with component second RNN layer to determine output data;

determine a first weight corresponding to a first frequency of the input training data;

determine a second weight corresponding to a second frequency of the input training data, the second weight being greater than the first weight and the second frequency being greater than the first frequency; and

compare, using a loss function, the first weight, the second weight, and the output data with target training data corresponding to the second utterance to determine the RNN layer.

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

multiply a first complex number of the first audio data by a corresponding second complex number of the mask data.

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

receive, at the second DNN layer from the first DNN layer, third encoded data;

process, by the first DNN layer, the third encoded data to determine fourth encoded data;

receive, at the second DNN layer, the fourth encoded data;

receive, at the second DNN layer from the RNN layer, fifth encoded data; and

process, using the second DNN layer, the third encoded data, the fourth encoded data, and the fifth encoded data to determine mask data corresponding to second noise.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2020
From: CHHETRI, AMIT SINGH; CHATLANI, NAVIN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 054508/0088 →
Cited By (6)
US 12,272,369 US 12,380,909 US 12,477,291 US 12,531,046 US 12,567,404 US 12,670,671