IP Library › Granted Patent US 10,431,238
Granted Patent B1
US 10,431,238 · App. 15/999,120 · Granted Oct 1, 2019

Memory and computation efficient cross-correlation and delay estimation

Inventors: Dubravko Biruski (Palo Alto, CA); Sorin Dusan (San Jose, CA)
Assignee: Apple Inc.
G10L21/0232H04R1/406H04R3/005
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 10,431,238
App. No.
15/999,120
Granted
Oct 1, 2019
Kind
B1
Abstract

A digital processor-based memory-efficient and computation-efficient audio signal processing technique partitions each of two audio signals into shorter segments and combines the shorter segments into combined segments. A processor cross-correlates the first combined segment and the second combined segment into a cross-correlation result, which is written into a cross-correlation array. The result may be used for delay estimation (to estimate the relative delay between the two audio signals.) Other aspects are also described and claimed.

Claims (54)

1. A memory-efficient and computation-efficient cross-correlator for audio signals, comprising:

a first array in memory;

a second array in memory;

a cross-correlation array in memory;

a processor configured to receive a first audio signal, partition a first segment of the first audio signal into a first plurality of shorter segments, combine the first plurality of shorter segments into a first combined segment that is less than a size of the first segment, and write the first combined segment into the first array;

the processor configured to receive a second audio signal, partition a second segment of the second audio signal into a second plurality of shorter segments, and combine the second plurality of shorter segments into a second combined segment that is less than a size of the second segment, and write the second combined segment into the second array; and

the processor configured to cross-correlate the first combined segment, from the first array, and the second combined segment, from the second array, into a cross-correlation result and write the cross-correlation result into the cross-correlation array.

2. The memory-efficient and computation-efficient cross-correlator for audio signals of claim 1 , wherein:

the first combined segment and the second combined segment are a same size; and

the cross-correlation array is twice a size of each of the first array and the second array.

3. The memory-efficient and computation-efficient cross-correlator for audio signals of claim 1 , wherein:

each of the first plurality of shorter segments, and the first combined segment, is one tenth or less of a size of the first segment; and

each of the second plurality of shorter segments, and the second combined segment, is one tenth or less of a size of the second segment.

4. The memory-efficient and computation-efficient cross-correlator for audio signals of claim 1 wherein the processor is configured to determine a delay offset of the second audio signal relative to the first audio signal, based on the cross-correlation result.

5. The memory-efficient and computation-efficient cross-correlator for audio signals of claim 1 , further comprising:

a delay buffer to receive the second audio signal; and

the processor configured to set a delay of the delay buffer in accordance with the cross-correlation result, to match timing of the first audio signal and the second audio signal.

6. The memory-efficient and computation-efficient cross-correlator for audio signals of claim 1 , wherein memory requirements are reduced as a result of using the first combined segment and the second combined segment for the cross-correlation, in comparison to using the first segment of the first audio signal and the second segment of the second audio signal for cross-correlation.

7. The memory-efficient and computation-efficient cross-correlator for audio signals of claim 1 , wherein computation of the cross-correlation is more efficient as a result of using the first combined segment and the second combined segment for the cross-correlation, in comparison to using the first segment of the first audio signal and the second segment of the second audio signal for the cross-correlation.

8. The memory-efficient and computation-efficient cross-correlator for audio signals of claim 1 , further comprising:

the processor to determine to perform a delay estimation or adjustment of timing of the second audio signal relative to the first audio signal, based on a peak of the cross-correlation result.

9. The memory-efficient and computation-efficient cross-correlator for audio signals of claim 1 , further comprising:

the processor to determine whether the first audio signal and the second audio signal have a similar acoustic signature, based on the cross-correlation result.

10. The memory-efficient and computation-efficient cross-correlator for audio signals of claim 1 , wherein:

to combine the first plurality of shorter segments into the first combined segment, the processor is to add together signal amplitudes at corresponding offsets in each of the first plurality of shorter segments; and

to combine the second plurality of shorter segments into the second combined segment, the processor is to add together signal amplitudes at corresponding offsets in each of the second plurality of shorter segments.

11. A memory-efficient and computation-efficient method for cross-correlating audio signals, performed by a processor, comprising:

partitioning a first segment of a first audio signal into a first plurality of shorter segments;

combining the first plurality of shorter segments into a first combined segment that is less than a size of the first segment, in a first array in memory;

partitioning a second segment of a second audio signal into a second plurality of shorter segments;

combining the second plurality of shorter segments into a second combined segment that is less than a size of the second segment, in a second array in memory;

cross-correlating the first combined segment, from the first array, and the second combined segment, from the second array, into a cross-correlation result in a cross-correlation array in memory;

determining a delay offset between the second audio signal and the first audio signal, based on the cross-correlation result; and

producing an audio signal for driving a speaker to produce sound, in accordance with the determined delay offset.

12. The memory-efficient and computation-efficient method of claim 11 , wherein:

the combining of the second plurality of shorter segments comprises combining the second plurality of shorter segments into the second combined segment that is a same size as the first combined segment; and

the cross-correlating comprises cross-correlating the first combined segment and the second combined segment into the cross-correlation array that is essentially twice a size of each of the first array and the second array.

13. The memory-efficient and computation-efficient method of claim 11 , wherein:

the partitioning the first segment comprises partitioning the first segment into the first plurality of short segments each of which is one tenth or less of a size of the first segment, as is the first combined segment; and

the partitioning the second segment comprises partitioning the second segment into the second plurality of short segments each of which is one tenth or less of a size of the second segment, as is the second combined segment.

14. The memory-efficient and computation-efficient method of claim 11 wherein producing the audio signal comprises:

adjusting relative delay between the first and second audio signals in accordance with the determined delay offset; and

performing a noise suppression process upon the first and second audio signals with adjusted relative delay to produce the audio signal that is driving the speaker.

15. The memory-efficient and computation-efficient method of claim 11 , further comprising:

setting a delay of a delay buffer in accordance with the cross-correlation result, to match timing of the first audio signal and the second audio signal.

16. The memory-efficient and computation-efficient method of claim 11 , wherein using the first combined segment and the second combined segment for the cross-correlation reduces memory requirements in comparison to using the first segment of the first audio signal and the second segment of the second audio signal for cross-correlation.

17. The memory-efficient and computation-efficient method of claim 11 , wherein using the first combined segment and the second combined segment for the cross-correlating is more efficient, in comparison to using the first segment of the first audio signal and the second segment of the second audio signal for the cross-correlating.

18. The memory-efficient and computation-efficient method of claim 11 , further comprising:

adjusting timing of the second audio signal relative to the first audio signal, based on a peak of the cross-correlation result.

19. The memory-efficient and computation-efficient method of claim 11 , further comprising:

determining whether the first audio signal and the second audio signal have a similar acoustic signature, based on the cross-correlation.

20. The memory-efficient and computation-efficient method of claim 11 , wherein:

the combining of the first plurality of shorter segments into the first combined segment comprises adding together signal amplitudes at corresponding offsets in each of the first plurality of shorter segments; and

the combining of the second plurality of shorter segments into the second combined segment comprises adding together signal amplitudes at corresponding offsets in each of the second plurality of shorter segments.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2018
From: BIRUSKI, DUBRAVKO; DUSAN, SORIN
To: APPLE INC.
Reel/Frame 047121/0552 →
Cited By (2)
US 12,309,551 US 12,413,921