# US 9,521,264 B2 · Echo removal

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

- Number: US 9,521,264 B2
- Document ID: US9521264B2
- Status: Granted
- Kind: B2
- Application number: 14/012,786
- Filed: 2013-08-28
- Published: 2014-12-04
- Granted: 2016-12-13
- Earliest claimed: 2013-08-28
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Per Ahgren
- Web page: https://patentgrep.com/patent/US9521264B2

## CPC

- H04M 9/082: {using echo cancellers (echo cancellers per se H04B3/23)}
- H04M: TELEPHONIC COMMUNICATION (circuits for controlling other apparatus via a telephone cable and not involving telephone switching apparatus G08)

## Abstract

Echo removal techniques are described. As part of the echo removal, an adaptive model estimate of the echo in a received audio signal is determined using an adaptive model based on an outputted audio signal and the received audio signal. The adaptive model executes an algorithm comprising a convergence parameter to determine filter coefficients and uses said filter coefficients to filter the outputted audio signal to determine the adaptive model estimate of the echo. An accuracy value of the adaptive model is determined according to an echo return loss enhancement metric. The convergence parameter is updated based on the accuracy value. The adaptive model estimate of the echo is used to remove the echo in the received audio signal.

## Claims

### Claim 1

A method of removing echo, the method comprising:
outputting an output audio signal;
receiving an input audio signal, wherein the received input audio signal includes echo resulting from said output audio signal;
determining a first adaptive model estimate of the echo in the received input audio signal based on the outputted output audio signal and the received input audio signal;
determining a performance value of the first adaptive model according to a performance metric;
comparing the performance value with a threshold value;
determining a second adaptive model estimate of the echo in the received input audio signal based on the outputted output audio signal, the received input audio signal, and further based on the comparison of the performance value with the threshold value;
determining, based on the comparison of the performance value with the threshold value and further based on a relation between echo in the received input audio signal and the outputted output audio signal, whether an echo path is deemed linear; and
in an event that the echo path is deemed linear:
using the first model estimate of the echo to remove the echo in the received input audio signal and updating a convergence parameter to control an adaptation speed of the first adaptive model; and
in an event that the echo path is not deemed linear:
using the second model estimate of the echo to remove the echo in the received input audio signal and updating the convergence parameter to control the adaptation speed of the first adaptive model.

### Claim 2 (depends on 1)

The method of claim 1, wherein if the performance value is equal to or greater than the threshold value, said updating comprises selecting a convergence parameter value to decrease the adaptation speed of the first adaptive model.

### Claim 3 (depends on 1)

The method of claim 1, wherein if the performance value is equal to or greater than the threshold value for a predetermined period of time, said updating comprises selecting a convergence parameter value to decrease the adaptation speed of the first adaptive model.

### Claim 4 (depends on 1)

The method of claim 1, wherein if the performance value is equal to or greater than the threshold value for a predetermined proportion of a predetermined period of time, said updating comprises selecting a convergence parameter value to decrease the adaptation speed of the first adaptive model.

### Claim 5 (depends on 1)

The method of claim 1, wherein if the performance value is less than the threshold value, said updating comprises selecting a convergence parameter value to increase the adaptation speed of the first adaptive model.

### Claim 6 (depends on 1)

The method of claim 1, wherein if the performance value is less than the predetermined threshold value for a predetermined period of time, said updating comprises selecting a convergence parameter value to increase the adaptation speed of the first adaptive model.

### Claim 7 (depends on 1)

The method of claim 1, wherein if the performance value is less than the predetermined threshold value for a predetermined proportion of a predetermined period of time, said updating comprises selecting a convergence parameter value to increase the adaptation speed of the first adaptive model.

### Claim 8 (depends on 1)

The method of claim 1, wherein said updating comprises:
decreasing the convergence parameter by a predetermined amount or to a predetermined value; or
increasing the convergence parameter by a predetermined amount or to a predetermined value.

### Claim 9 (depends on 1)

The method of claim 1, wherein the convergence parameter is a step size parameter.

### Claim 10 (depends on 1)

The method of claim 1, wherein using the first adaptive model estimate of the echo to remove the echo in the received input audio signal comprises using the first adaptive model estimate of the echo to apply echo suppression to the received input audio signal, thereby suppressing the echo in received input audio signal.

### Claim 11 (depends on 1)

The method of claim 1 wherein using an adaptive model estimate of the echo to remove the echo in the received input audio signal comprises using the first or second adaptive model estimate of the echo to apply echo cancellation to the received input audio signal, wherein the first or second adaptive model estimate of the echo is subtracted from the received input audio signal.

### Claim 12 (depends on 1)

The method of claim 1, wherein the method is performed at a user device for use in a communication event, and wherein the received input audio signal comprises speech of a user for transmission from the user device in the communication event.

### Claim 13 (depends on 12)

The method of claim 12, wherein the communication event is a voice-over-internet-protocol (VoIP) call.

### Claim 14 (depends on 13)

The method of claim 13, wherein the outputted output audio signal comprises far-end speech signals of the VoIP call which are included in the echo in the received input audio signal.

### Claim 15 (depends on 1)

The method of claim 1, wherein the performance metric comprises an echo return loss enhancement metric.

### Claim 16

A device comprising:
audio output apparatus configured to output an output audio signal;
audio input apparatus configured to receive an input audio signal, wherein the received input audio signal includes an echo resulting from said outputted output audio signal;
a modelling module configured to determine a first adaptive model estimate of the echo in the received input audio signal based on the outputted output audio signal and the received input audio signal, the modelling module further configured to:
determine a performance value of the first adaptive model according to a performance metric;
compare the performance value to a threshold;
determine a second adaptive model estimate of the echo in the received input audio signal based on the outputted output audio signal, the received input audio signal, and further based on the comparison of the performance value with the threshold value;
determine, based on the comparison of the performance value with the threshold value and further based on a relation between echo in the received input audio signal and the outputted output audio signal, whether an echo path is deemed linear; and
in an event that the echo path is deemed linear:
using the first model estimate of the echo to remove the echo in the received input audio signal and updating a convergence parameter to control an adaptation speed of the first adaptive model; and
in an event that the echo path is not deemed linear:
using the second model estimate of the echo to remove the echo in the received input audio signal and updating the convergence parameter to control the adaptation speed of the first adaptive model.

### Claim 17 (depends on 16)

The device of claim 16, wherein the audio output apparatus comprises a speaker configured to output the outputted output audio signal, and wherein the audio input apparatus comprises a microphone configured to receive the received input audio signal.

### Claim 18

A computer program product configured to remove echo in a received audio signal, said echo resulting from an outputted audio signal, the computer program product being embodied on a computer-readable storage medium and configured so as when executed on a processor to:
determine a first adaptive model estimate of the echo in the received audio signal based on the outputted audio signal and the received audio signal;
determine a performance value of the first adaptive model according to a performance metric;
compare the performance value with a threshold value;
determine a second adaptive model estimate of the echo in the received input audio signal based on the outputted output audio signal, the received input audio signal, and further based on the comparison of the performance value with the threshold value;
determine, based on the comparison of the performance value with the threshold value and further based on a relation between echo in the received input audio signal relates to the outputted output audio signal, whether an echo path is deemed linear; and
in an event that the echo path is deemed linear:
using the first model estimate of the echo to remove the echo in the received input audio signal and updating a convergence parameter to control an adaptation speed of the first adaptive model; and
in an event that the echo path is not deemed linear:
using the second model estimate of the echo to remove the echo in the received input audio signal and updating the convergence parameter to control the adaptation speed of the first adaptive model.

### Claim 19 (depends on 18)

The computer program product of claim 18, wherein if the performance value is equal to or greater than the threshold value for a predetermined proportion of a predetermined period of time, said updating comprises selecting a convergence parameter value to decrease the adaptation speed of the first adaptive model.

### Claim 20 (depends on 18)

The computer program product of claim 18, wherein if the performance value is less than the threshold value, said updating comprises selecting a convergence parameter value to increase the adaptation speed of the first adaptive model.
