# US 12,002,444 B1 · Coordinated multi-device noise cancellation

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,002,444 B1
- Document ID: US12002444B1
- Status: Granted
- Kind: B1
- Application number: 17/853,006
- Filed: 2022-06-29
- Granted: 2024-06-04
- Earliest claimed: 2022-06-29
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Basak Oyman; Kofi Anim-Appiah
- Web page: https://patentgrep.com/patent/US12002444B1

## CPC

- G10K 11/17815: {between the reference signals and the error signals, i.e. primary path}
- G10K 11/1785: {Methods, e.g. algorithms; Devices (G10K11/1781, G10K11/1783 take precedence)}
- G10K 11/17857: {Geometric disposition, e.g. placement of microphones}
- G10K 11/17873: {using a reference signal without an error signal, e.g. pure feedforward}
- G10L 25/78: Detection of presence or absence of voice signals (switching of direction of transmission by voice frequency in two-way loud-speaking telephone systems H04M9/10)
- G10K 2210/12: Rooms, e.g. ANC inside a room, office, concert hall or automobile cabin
- G10K 2210/3047: Prediction, e.g. of future values of noise
- G10K: SOUND-PRODUCING DEVICES; METHODS OR DEVICES FOR PROTECTING AGAINST, OR FOR DAMPING, NOISE OR OTHER ACOUSTIC WAVES IN GENERAL; ACOUSTICS NOT OTHERWISE PROVIDED FOR
- G10L: SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING

## Abstract

A system that coordinates audio output among multiple devices to perform noise cancellation in one room of noise resulting from audio output of another. The system uses information from the source of the audio output along with calibration information to coordinate the noise cancellation, which may involve delaying of audio output by the aggressor device.

## Claims

### Claim 1

A computer-implemented method comprising:
receiving, by a remote server, from a first device associated with a first user profile and located in a first room of a home, a command to enable noise cancellation;
determining, by the remote server, using the first user profile, a second device located in a second room of the home;
determining that the second device is outputting first content;
determining source data corresponding to the first content;
retrieving stored acoustic response data associated with the first room, the stored acoustic response data corresponding to detection, by the first device, of calibration audio output by the second device;
estimating a time for performing noise cancellation with respect to the first device;
determining, based at least in part on the stored acoustic response data and the source data, output audio data configured to at least partially cancel a representation of the first content, the representation corresponding to the first room;
causing the second device to output the first content with a delay corresponding to the time; and
causing the first device to output audio corresponding to the output audio data.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising, prior to receiving the command:
causing the second device to output, the calibration audio;
receiving, from the first device, first input audio data corresponding to detection of the calibration audio by the first device;
receiving, from a third device, second input audio data corresponding to detection of the calibration audio by the third device; and
processing the first input audio data and the second input audio data to determine the stored acoustic response data.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising:
aligning output of delayed first content by the second device and the output audio data by the first device.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, further comprising:
determining second content to be output by the first device; and
determining second data representing the second content,
wherein determining the output audio data further comprises using the second data, wherein the output audio data includes a representation of the second content and cancels the representation of the first content.

### Claim 5

A computer-implemented method comprising:
receiving a command to perform noise cancellation with respect to an environment of a first device;
determining that a second device, associated with the first device, is outputting first audio;
determining acoustic response data corresponding to detection, by the first device, of audio presented by the second device;
determining timing data corresponding to performance of the noise cancellation;
causing the second device to output second audio based at least in part on the timing data;
determining, based at least in part on the acoustic response data and first data representing the second audio, output audio data configured to at least partially cancel a representation of the second audio, the representation corresponding to the environment; and
causing the first device to output third audio based on the output audio data.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, further comprising:
determining a component corresponding to a source of the first data representing the second audio;
receiving, from the component, the first data representing the second audio; and
determining a time delay sufficient to allow for determination of the output audio data based at least in part on the acoustic response data and the first data,
wherein causing the second device to output the second audio based at least in part on the timing data comprises:
buffering the first data, and
causing the second device to output the second audio according to the time delay.

### Claim 7 (depends on 5)

The computer-implemented method of claim 5, further comprising:
causing the second device to output calibration audio;
receiving, from the first device, first input audio data corresponding to detection of the calibration audio by the first device;
receiving, from a third device, second input audio data corresponding to detection of the calibration audio by the third device; and
processing the first input audio data and the second input audio data to determine the acoustic response data, wherein the acoustic response data corresponds to detection, by the first device and the second device, of the calibration audio as output by the second device.

### Claim 8 (depends on 7)

The computer-implemented method of claim 7, wherein output of the calibration audio occurs after receipt of the command to perform noise cancellation.

### Claim 9 (depends on 5)

The computer-implemented method of claim 5, further comprising:
determining position data corresponding to an estimated position of a user in the environment; and
based at least in part on the position data, selecting the acoustic response data from a plurality of acoustic response data.

### Claim 10 (depends on 9)

The computer-implemented method of claim 9, wherein determining the position data further comprising:
receiving, from the first device, input audio data representing an utterance; and
determining, using the utterance, the position data.

### Claim 11 (depends on 5)

The computer-implemented method of claim 5, further comprising:
determining a user profile associated with the first device; and
identifying the second device based at least in part on the user profile.

### Claim 12 (depends on 5)

The computer-implemented method of claim 5, further comprising:
determining, using at least one microphone of the first device, input audio data representing noise in the environment,
wherein determining the output audio data is further based at least in part on the input audio data, and
wherein the output audio data is configured to at least partially cancel a representation of the noise.

### Claim 13

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:
receive a command to perform noise cancellation with respect to an environment of a first device;
determine that a second device, associated with the first device, is outputting first audio;
determine acoustic response data corresponding to detection, by the first device, of audio presented by the second device;
determine timing data corresponding to performance of the noise cancellation;
cause the second device to output second audio based at least in part on the timing data;
determine, based at least in part on the acoustic response data and first data representing the second audio, output audio data configured to at least partially cancel a representation of the second audio, the representation corresponding to the environment; and
cause the first device to output third audio based on the output audio data.

### Claim 14 (depends on 13)

The system of claim 13, 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 component corresponding to a source of the first data representing the second audio;
receive, from the component, the first data representing the further audio; and
determine a time delay sufficient to allow for determination of the output audio data based at least in part on the acoustic response data and the first data,
wherein the instructions that cause the system to cause the second device to output the second audio based at least in part on the timing data comprise instructions that, when executed by the at least one processor, cause the system to:
buffer the first data, and
cause the second device to output the second audio according to the time delay.

### Claim 15 (depends on 13)

The system of claim 13, wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the system to:
cause the second device to output calibration audio;
receive, from the first device, first input audio data corresponding to detection of the calibration audio by the first device;
receive, from a third device, second input audio data corresponding to detection of the calibration audio by the third device; and
process the first input audio data and the second input audio data to determine the acoustic response data, wherein the acoustic response data corresponds to detection, by the first device and the second device, of the calibration audio as output by the second device.

### Claim 16 (depends on 15)

The system of claim 15, wherein the output of the calibration audio occurs after receipt of the command to perform noise cancellation.

### Claim 17 (depends on 13)

The system of claim 13, wherein the at least one memory further comprises instructions that, when executed by the at least one processor, further cause the system to:
determine position data corresponding to an estimated position of a user in the environment; and
based at least in part on the position data, select the acoustic response data from a plurality of acoustic response data.

### Claim 18 (depends on 17)

The system of claim 17, wherein the instructions that cause the system to determine the position data comprise instructions that, when executed by the at least one processor, cause the system to:
receive, from the first device, input audio data representing an utterance; and
determining, using the utterance, the position data.

### Claim 19 (depends on 13)

The system of claim 13, 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 user profile associated with the first device; and
identify the second device based at least in part on the user profile.

### Claim 20 (depends on 13)

The system of claim 13, 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 at least one microphone of the first device, input audio data representing noise in the environment,
wherein determination of the output audio data is further based at least in part on the input audio data, and
wherein the output audio data is configured to at least partially cancel a representation of the noise.
