IP Library › Granted Patent US 11,425,494
Granted Patent B1
US 11,425,494 · App. 16/439,139 · Granted Aug 23, 2022

Autonomously motile device with adaptive beamforming

Inventors: Navin Chatlani (Palo Alto, CA); Amit Singh Chhetri (Sunyvale, CA)
Assignee: Amazon Technologies, Inc.
H04R1/406G05D1/0088G05D1/0255G06F3/16G10L15/22G10L21/02G10L15/20G10L21/0208G10L25/78G10L2021/02165G10L2021/02166
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,425,494
App. No.
16/439,139
Granted
Aug 23, 2022
Kind
B1
Abstract

A device capable of motion includes a beamformer for determining audio data corresponding to one or more directions. The beamformer includes a target beamformer that boosts audio from a target direction and a null beamformer that suppresses audio from that direction. When the device outputs sound while moving, the target and null beamformers capture and compensate for Doppler effects in output audio that reflects from nearby surfaces back to the device.

Claims (103)

1. A computer-implemented method for compensating for Doppler effects in reflected output audio using a voice-controlled device capable of autonomous motion, the method comprising:

causing an autonomously motile device to move in a first direction in an environment;

while the autonomously motile device is moving in the first direction, outputting, using a loudspeaker of the autonomously motile device, output audio;

receiving, from a microphone array of the autonomously motile device, input audio data, the input audio data including a representation of at least a portion of the output audio;

determining, using a first target beamformer and the input audio data, first audio data corresponding to the first direction;

determining, using a first null beamformer and the input audio data, second audio data corresponding to a second direction opposite the first direction;

determining, using a second target beamformer and the input audio data, third audio data corresponding to the second direction;

determining, using a second null beamformer and the input audio data, fourth audio data corresponding to the first direction;

subtracting the second audio data from the first audio data to generate first target audio data;

subtracting the fourth audio data from the third audio data to generate second target audio data; and

sending, based at least in part on the first target audio data, speech data to a speech-processing system.

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

receiving, at an adaptive filter, an output of the first null beamformer;

determining, using the adaptive filter, an estimation of noise audio data in the environment;

determining, based at least in part on the noise audio data, error data corresponding to an increase in magnitude of a first output of the adaptive filter;

determining a filter coefficient of the adaptive filter based at least in part on the error data; and

determining, using the filter coefficient, a second output of the adaptive filter.

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

determining, using a third beamformer and the input audio data, fifth audio data corresponding to a third direction, the third direction different from the first direction and the second direction;

determining that a volume level corresponding to the fifth audio data is greater than a threshold; and

determining the speech data by subtracting the fifth audio data from the first target audio data.

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

prior to sending the speech data, receiving, from an audio data source, reference audio data,

wherein determining the first audio data is further based at least in part on subtracting the reference audio data from the input audio data.

5. A computer-implemented method comprising:

causing an autonomously motile device to move linearly toward a first direction and away from a second direction opposite the first direction;

while the autonomously motile device is moving linearly toward the first direction:

receiving, from a microphone array of the autonomously motile device, input audio data,

determining, using a first beamformer and the input audio data, first audio data corresponding to the first direction, the first audio data including first Doppler data,

determining, using a second beamformer and the input audio data, second audio data corresponding to the second direction, and

subtracting the second audio data from the first audio data to remove the first Doppler data from the first audio data and to generate third audio data; and

generating, based at least in part on the third audio data, output data.

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

determining, using a third beamformer and the input audio data, fourth audio data corresponding to the second direction, the fourth audio data including second Doppler data;

determining, using a fourth beamformer and the input audio data, fifth audio data corresponding to the first direction; and

subtracting the fifth audio data from the fourth audio data to remove the second Doppler data from the fourth audio data and to generate sixth audio data,

wherein determining the output data is further based at least in part on the sixth audio data.

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

determining a first quality metric corresponding to the third audio data;

determining a second quality metric corresponding to the sixth audio data; and

determining that the first quality metric corresponds to a higher quality than does the second quality metric.

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

determining, using a filter and the second audio data, an estimation of noise audio data;

determining, based at least in part on the noise audio data, error data corresponding to an increase in magnitude of the estimation; and

determining a filter coefficient of the filter based at least in part on the error data.

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

determining, using a third beamformer and the input audio data, fourth audio data corresponding to a third direction, the third direction different from the first direction and the second direction; and

determining that the fourth audio data corresponds to a source of noise,

wherein determining the output data further comprises subtracting the fourth audio data from the first audio data.

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

prior to determining the output data, receiving, from an audio data source, reference audio data,

wherein determining the first audio data is further based at least in part on subtracting the reference audio data from the input audio data.

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

determining, using the first beamformer, a target beam primary lobe and a target beam secondary lobe; and

determining, using the second beamformer, a null beam lobe,

wherein the target beam primary lobe corresponds to the first direction and wherein the null beam lobe fully overlaps the target beam secondary lobe.

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

determining, using a third beamformer corresponding to a first frequency, a second target beam primary lobe and a second target beam secondary lobe; and

determining, using a fourth beamformer corresponding to the first frequency, a second null beam lobe,

wherein the first beamformer and the second beamformer correspond to a second frequency different from the first frequency, and

wherein a first shape of the null beam lobe differs from a second shape of the second null beam lobe.

13. The computer-implemented method of claim 5 , wherein:

the first audio data corresponding to the first direction includes frequency-shifted audio data; and

subtracting the second audio data from the first audio data causes the frequency-shifted audio data to be removed from the first audio data to generate the third audio data.

14. A system comprising:

at least one processor; and

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

cause an autonomously motile device to move linearly toward a first direction and away from a second direction opposite the first direction;

while the autonomously motile device is moving linearly toward the first direction:

receive, from a microphone array of the autonomously motile device, input audio data,

determine, using a first beamformer and the input audio data, first audio data corresponding to the first direction, the first audio data including first Doppler data,

determine, using a second beamformer and the input audio data, second audio data corresponding to the second direction, and

subtract the second audio data from the first audio data to remove the first Doppler data from the first audio data and to generate third audio data; and

generate, based at least in part on the third audio data, output data.

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

determine, using a third beamformer and the input audio data, fourth audio data corresponding to the second direction, the fourth audio data including second Doppler data;

determine, using a fourth beamformer and the input audio data, fifth audio data corresponding to the first direction; and

subtract the fifth audio data from the fourth audio data to remove the second Doppler data from the fourth audio data and to generate sixth audio data,

wherein determining the output data is further based at least in part on the sixth audio data.

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

determine a first quality metric corresponding to the third audio data;

determine a second quality metric corresponding to the sixth audio data; and

determine that the first quality metric corresponds to a higher quality than does the second quality metric.

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

determine, using a filter and the second audio data, an estimation of noise audio data;

determine, based at least in part on the noise audio data, error data corresponding to an increase in magnitude of the estimation; and

determine a filter coefficient of the filter based at least in part on the error data.

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

determine, using a third beamformer and the input audio data, fourth audio data corresponding to a third direction, the third direction different from the first direction and the second direction; and

determine that the fourth audio data corresponds to a source of noise,

wherein determining the output data further comprises subtracting the fourth audio data from the first audio data.

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

prior to determining the output data, receive, from an audio data source, reference audio data,

wherein determining the first audio data is further based at least in part on subtracting the reference audio data from the input audio data.

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

determine, using the first beamformer, a target beam primary lobe and a target beam secondary lobe; and

determine, using the second beamformer, a null beam lobe,

wherein the target beam primary lobe corresponds to the first direction and wherein the null beam lobe fully overlaps the target beam secondary lobe.

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

determine, using a third beamformer corresponding to a first frequency, a second target beam primary lobe and a second target beam secondary lobe; and

determine, using a fourth beamformer corresponding to the first frequency, a second null beam lobe,

wherein the first beamformer and the second beamformer correspond to a second frequency different from the first frequency, and

wherein a first shape of the null beam lobe differs from a second shape of the second null beam lobe.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2019
From: CHATLANI, NAVIN; CHHETRI, AMIT SINGH
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 049448/0943 →
Cited By (5)
US 1,114,011 US 1,115,928 US 12,485,528 US 12,576,537 US 12,632,833