IP Library › Granted Patent US 8,774,260
Granted Patent B2
US 8,774,260 · App. 13/467,927 · Granted Jul 8, 2014

Delay estimation

Inventor: Karsten Vandborg Sorensen (Stockholm, SE)
Assignee: Microsoft Corporation
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 8,774,260
App. No.
13/467,927
Granted
Jul 8, 2014
Kind
B2
Abstract

A delay between a first signal and a second signal is estimated. The first signal and second signals are received and for each of a plurality of candidate delays between the signals, a correlation value is determined. Based on the correlation values, one of the candidate delays is selected to be used as an estimate of the delay between the first and second signals.

Claims (54)

1. A method of estimating a delay between a first signal and a second signal, the method comprising:

receiving the first signal;

receiving the second signal;

for each of a plurality of candidate delays between the received first signal and the received second signal, determining a correlation value between the received first signal and the received second signal; and

based on the determined correlation values, selecting one of the plurality of candidate delays to be used as an estimate of the delay between the received first signal and the received second signal, wherein the method further comprises:

determining that a disturbance condition is present on the received second signal for at least one of the plurality of candidate delays;

while the disturbance condition is determined to be present, for each of said at least one of the plurality of candidate delays: generating an artificial second signal, wherein the artificial second signal is generated such that a correlation value for the candidate delay between the received first signal and the artificial second signal is kept constant at a value based on a determined correlation value for the candidate delay between the received first signal and the received second signal prior to determining that the disturbance condition is present; and

while the disturbance condition is determined to be present, using the artificial second signal in combination with the received second signal for said at least one of the plurality of candidate delays in order to select one of the plurality of candidate delays to be used as the estimate of the delay between the received first signal and the received second signal.

2. The method of claim 1 wherein said using the artificial second signal for said at least one of the plurality of candidate delays in order to select one of the plurality of candidate delays comprises:

based on the correlation values for said at least one of the plurality of candidate delays between the received first signal and the artificial second signal, selecting one of the plurality of candidate delays to be used as the estimate of the delay between the received first signal and the received second signal.

3. The method of claim 1 wherein the method is implemented in a device, wherein the first signal is received at the device over a network and is subsequently output from the device, and wherein the second signal is received using a receiver of the device, the second signal including: (i) echo components originating from the outputted first signal, and (ii) disturbance components.

4. The method of claim 3 wherein the disturbance components result from at least one of: (i) speech signals received at the receiver of the device, (ii) clipping of the received second signal due to overloading of components of the device, and (iii) noise received at the receiver of the device.

5. The method of claim 3 wherein the disturbance condition is determined to be present on the received second signal when the ratio of the power of the disturbance components to the power of the echo components exceeds a threshold value.

6. The method of claim 3 wherein the disturbance condition is determined to be present on the received second signal when the disturbance components have speech characteristics which differ from characteristics of the echo components, thereby indicating a double-talk condition.

7. The method of claim 1 wherein the first and second signals are audio signals.

8. The method of claim 1 wherein the method is implemented during a call between two users over a communication system, wherein the first signal is a far-end signal of the call and the second signal is a near-end signal of the call.

9. The method of claim 1 wherein the correlation value between the first signal received at time t 1 and the second signal received at time t 2 is a cross-covariance coefficient, r XY (t 1 ,t 2 ), given by the equation:

r xy ( t 1 ,t 2 )= C XY ( t 1 ,t 2 )/sqrt( C XX ( t 1 ,t 1 )* C yy ( t 2 ,t 2 )),

where C XY (t 1 ,t 2 ) is a cross-covariance function between the first signal at time t 1 and the second signal at time t 2 , C XX (t 1 ,t 1 ) is a cross-covariance function between the first signal at time t 1 and the first signal at time t 1 , and C YY (t 2 ,t 2 ) is a cross-covariance function between the second signal at time t 2 and the second signal at time t 2 .

10. The method of claim 9 wherein, when the mean of the first signal is zero and the mean of the second signal is zero:

(i) the cross-covariance function C XY (t 1 ,t 2 ) is represented by an estimate of the ensemble average over time of the product of first signal at time t 1 , X(t 1 ), and the second signal at time t 2 , Y(t 2 ), said estimate of the ensemble average being determined using a first order recursive filter;

(ii) the cross-covariance function C XX (t 1 ,t 1 ) is represented by an estimate of the ensemble average over time of the product of first signal at time t 1 , X(t 1 ), and the first signal at time t 1 , X(t 1 ); and

(iii) the cross-covariance function C YY (t 2 ,t 2 ) is represented by an estimate of the ensemble average over time of the product of second signal at time t 2 , Y(t 2 ), and the second signal at time t 2 , Y(t 2 ).

11. The method of claim 1 further comprising applying echo cancellation to the received second signals to cancel echo in the received second signal, said echo resulting from an output of the first signal, wherein the echo cancellation uses the estimate of the delay between the received first signal and the received second signal.

12. The method of claim 1 wherein the step of determining that a disturbance condition is present on the received second signal for at least one of the plurality of candidate delays comprises separately determining for each of the plurality of candidate delays whether the disturbance condition is present on the received second signal.

13. The method of claim 1 wherein the step of determining that a disturbance condition is present on the received second signal for at least one of the plurality of candidate delays comprises making a determination that the disturbance condition is present for all of the plurality of candidate delays.

14. A device for estimating a delay between a first signal and a second signal, the device comprising:

a first receiver configured to receive the first signal;

a second receiver configured to receive the second signal;

a correlation determining block configured to determine, for each of a plurality of candidate delays between the received first signal and the received second signal, a correlation value between the received first signal and the received second signal;

a selector block configured to select one of the plurality of candidate delays, based on the determined correlation values, to be used as an estimate of the delay between the received first signal and the received second signal;

a disturbance determining block configured to determine that a disturbance condition is present on the received second signal for at least one of the plurality of candidate delays; and

one or more signal determining blocks configured to generate an artificial second signal for each of said at least one of the plurality of candidate delays while the disturbance condition is determined to be present, wherein the signal determining blocks are configured to generate the artificial second signal for each of said at least one of the plurality of candidate delays such that a correlation value for the candidate delay between the received first signal and the artificial second signal is kept constant at a value based on a determined correlation value for the candidate delay between the received first signal and the received second signal prior to determining that the disturbance condition is present,

wherein the device is configured such that while the disturbance condition is determined to be present, the device is configured to use the artificial second signal in combination with the received second signal for said at least one of the plurality of candidate delays in order to select one of the plurality of candidate delays to be used as the estimate of the delay between the received first signal and the received second signal.

15. The device of claim 14 wherein the first and second signals are audio signals and wherein the first receiver comprises a network interface and the second receiver comprises a microphone.

16. The device of claim 14 further comprising an echo cancelling block configured to apply echo cancellation to the received second signals to cancel echo in the received second signal, said echo resulting from an output of the first signal at the device, wherein the echo cancelling block is configured to use the estimate of the delay between the received first signal and the received second signal in said echo cancellation.

17. A hardware computer-readable medium storing a computer program product for estimating a delay between a first signal and a second signal, the computer program product being configured so as when executed on a processor of a device to perform a method comprising:

receiving the first signal;

receiving the second signal;

for each of a plurality of candidate delays between the received first signal and the received second signal, determining a correlation value between the received first signal and the received second signal; and

based on the determined correlation values, selecting one of the plurality of candidate delays to be used as an estimate of the delay between the received first signal and the received second signal, wherein the computer program product is further configured so as when executed on a processor of a device to perform the further operations of:

determining that a disturbance condition is present on the received second signal for at least one of the plurality of candidate delays;

while the disturbance condition is determined to be present, for each of said at least one of the plurality of candidate delays: generating an artificial second signal, wherein the artificial second signal is generated such that a correlation value for the candidate delay between the received first signal and the artificial second signal is kept constant at a value based on a determined correlation value for the candidate delay between the received first signal and the received second signal prior to determining that the disturbance condition is present; and

while the disturbance condition is determined to be present, using the artificial second signal in combination with the received second signal for said at least one of the plurality of candidate delays in order to select one of the plurality of candidate delays to be used as the estimate of the delay between the received first signal and the received second signal.

18. The method of claim 1 , wherein said generating an artificial second signal comprises:

identifying two or more artificial signal candidates that are usable for said at least one of the plurality of candidate delays;

selecting an artificial signal candidate that is closest to the received second signal as the artificial second signal to be used in combination with the received second signal.

19. The device of claim 14 , wherein the one or more signal determining blocks are configured to generate an artificial second signal by:

identifying two or more artificial signal candidates that are usable for said at least one of the plurality of candidate delays;

selecting an artificial signal candidate that is closest to the received second signal as the artificial second signal to be used in combination with the received second signal.

20. The hardware computer-readable medium of claim 17 , wherein said generating an artificial second signal comprises:

identifying two or more artificial signal candidates that are usable for said at least one of the plurality of candidate delays;

selecting an artificial signal candidate that is closest to the received second signal as the artificial second signal to be used in combination with the received second signal.

21. The hardware computer-readable medium of claim 17 , wherein said generating an artificial signal is performed when the disturbance condition is determined to be present, and is not performed when the disturbance condition is not determined to be present.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2012
From: SORENSEN, KARSTEN VANDBORG
To: MICROSOFT CORPORATION
Reel/Frame 028184/0428 →
Priority Claims (1)
GB 1203816.2 · Mar 5, 2012 · national
Continuity (1)
Related Publication 20130230086A1 · Sep 5, 2013