IP Library › Granted Patent US 10,356,249
Granted Patent B2
US 10,356,249 · App. 15/761,694 · Granted Jul 16, 2019

Echo time delay detection method, echo elimination chip, and terminal equipment

Inventor: Jun Bin Liang (Shenzhen, CN)
Assignee: TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED
H04M9/08G10L21/0232H04B17/336H04M9/10G10L2021/02082
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,356,249
App. No.
15/761,694
Granted
Jul 16, 2019
Kind
B2
Abstract

An echo time delay detection method, an echo elimination device, and terminal equipment are provided. The echo time delay detection method includes: obtaining an audio signal transmitted through air and acquired by an audio input device of terminal equipment when detecting a call access request, the audio signal corresponding to an audio output by an audio output device of the terminal equipment; converting the audio signal to obtain a signal to be processed; determining a reference signal corresponding to the audio signal; and determining an echo time delay value according to the reference signal and the signal to be processed.

Claims (172)

1. An echo time delay detection method, comprising:

obtaining an audio signal transmitted through air and acquired by an audio input device of terminal equipment when detecting a call access request, the audio signal corresponding to an audio output by an audio output device of the terminal equipment;

converting the audio signal to obtain a signal to be processed;

determining a reference signal corresponding to the audio signal, wherein the reference signal has a first plurality of frames, and the signal to be processed has a second plurality of frames; and

determining a first echo time delay value according to the reference signal and the signal to be processed,

wherein the determining the first echo time delay value comprises:

determining a binary array of each frame of the reference signal and a binary array of each frame of the signal to be processed, wherein the binary array of each frame of the reference signal comprises binary values of all frequency bins of the frame of the reference signal and the binary array of each frame of the signal to be processed comprises binary values of all frequency bins of the frame of the signal to be processed;

performing XOR accumulation processing on binary arrays of a same frame of the reference signal and the signal to be processed, to obtain an XOR accumulation processing result of each frame; and

determining the first echo time delay value based on XOR accumulation processing results of all frames of the reference signal and the signal to be processed.

2. The echo time delay detection method according to claim 1 , further comprising:

performing echo elimination by using the first echo time delay value at least at an initial stage when detecting a call speech signal.

3. The echo time delay detection method according to claim 2 , further comprising:

after detecting the call speech signal, determining a second echo time delay value according to the audio output by the audio output device and an audio signal obtained according to the output audio and re-acquired by the audio input device; and

performing next echo elimination by using the second echo time delay value.

4. The echo time delay detection method according to claim 1 , wherein the determining the reference signal corresponding to the audio signal comprises at least one of:

obtaining the reference signal from the audio output device; and

retrieving the reference signal that is preset.

5. The echo time delay detection method according to claim 1 , further comprising:

controlling, in response to detecting the call access request, the audio output device to output the audio signal.

6. The echo time delay detection method according to claim 1 ,

wherein the determining the first echo time delay value based on the XOR accumulation processing results of all the frames of the reference signal and the signal to be processed comprises:

selecting a process result that meets a set condition from the XOR accumulation processing results, determining a time delay value corresponding to a frame number corresponding to the selected processing result, and determining the time delay value as a candidate time delay value; and

determining the candidate time delay value as the first echo time delay value in response to the candidate time delay value meeting a set convergence condition.

7. The echo time delay detection method according to claim 6 , wherein the selecting comprises:

determining a weighting factor corresponding to each frame of the signal to be processed;

performing smooth processing on the XOR accumulation processing result of a corresponding frame according to the weighting factor corresponding to each frame of the signal to be processed, to obtain a smooth XOR accumulation processing result of each frame; and

selecting a smooth XOR accumulation processing result that meets the set condition from smooth XOR accumulation processing results of all the frames.

8. The echo time delay detection method according to claim 7 , wherein the determining the weighting factor comprises:

respectively determining a noise level of each frequency bin of each frame of the signal to be processed;

respectively determining a Signal-to-Noise-Ratio average of each frame of the signal to be processed according to noise levels of all the frequency bins of each frame of the signal to be processed; and

respectively determining the weighting factor of each frame of the signal to be processed according to the Signal-to-Noise-Ratio average of each frame of the signal to be processed.

9. The echo time delay detection method according to claim 8 , wherein the respectively determining the Signal-to-Noise-Ratio average of each frame of the signal to be processed comprises:

making a noise level of a j th frequency bin of each frame of the signal to be processed N(j), wherein j is an integer in a range of m1 to m2, m1 is obtained by rounding down a calculation result of (M*a)/(fs*c), m2 is obtained by rounding down a calculation result of (M*b)/(fs*c), a is a first set value, b is a second set value, c is a third set value, and fs is an acquisition frequency of the audio signal; and

for each frame of the signal to be processed, calculating the Signal-to-Noise-Ratio average of each frequency bin according to a formula

SNR

=

∑

j

=

m

⁢

⁢

1

m

⁢

⁢

2

⁢

⁢

[

Cap

⁡

(

j

)

/

N

⁡

(

j

)

/

(

m

⁢

⁢

2

-

m

⁢

⁢

1

)

]

,

wherein SNR is the Signal-to-Noise-Ratio average of one frame of the signal to be processed, and Cap(j) represents a power spectrum of the j th frequency bin of one frame of the signal to be processed.

10. The echo time delay detection method according to claim 9 , wherein the respectively determining the weighting factor comprises:

for each frame of the signal to be processed, determining the weighting factor of each frame of the signal to be processed according to a formula s=log 2 (SNR/d), wherein s is the weighting factor corresponding to one frame of the signal to be processed, and d is a fourth set value.

11. The echo time delay detection method according to claim 7 , wherein the selecting the smooth XOR accumulation processing result comprises:

selecting a smooth XOR accumulation processing result having a minimum value from the smooth XOR accumulation processing results of all the frames, and

the set convergence condition to be met by the candidate time delay value comprises:

a difference between a maximum value and the minimum value of the smooth XOR accumulation processing results of all the frames is greater than a set difference threshold;

the minimum value of the smooth XOR accumulation processing results of all the frames is less than a set threshold; and

the candidate time delay value is kept unchanged for K frames, the K frames comprise a plurality of successive n frames, and one candidate time delay value is calculated correspondingly for each n frames, wherein n is a total number of frames of the reference signal.

12. The echo time delay detection method according to claim 6 , wherein the determining the binary array of each frame of the reference signal comprises:

respectively performing fast fourier transform (fft) of 2M frequency bins on each frame of the reference signal, to obtain a fft processing result of all the frequency bins of each frame of the reference signal, wherein M is a set value;

making j a frequency bin number, respectively calculating a power spectrum of a j th frequency bin of each frame of the reference signal according to the fft processing result of all the frequency bins of each frame of the reference signal, wherein j is an integer in a range of m1 to m2, m1 is obtained by rounding down a calculation result of (M*a)/(fs*c), m2 is obtained by rounding down a calculation result of (M*b)/(fs*c), a is a first set value, b is a second set value, c is a third set value, and fs is an acquisition frequency of the audio signal;

respectively calculating a smooth value of the power spectrum of the j th frequency bin of each frame of the reference signal; and

for each frame of the reference signal, setting a first value for the j th frequency bin in response to the power spectrum of the j th frequency bin being greater than the smooth value of the power spectrum of the j th frequency bin, or setting a second value for the j th frequency bin in response to the power spectrum of the j th frequency bin being less than or equal to the smooth value of the power spectrum of the j th frequency bin, to obtain binary values corresponding to all the frequency bins, to construct a binary array corresponding to each frame of the reference signal.

13. The echo time delay detection method according to claim 7 , wherein the performing the XOR accumulation processing comprises:

making i the frame number, wherein i is an integer in a range of 0 to n−1, and n is a total number of frames of the reference signal, and performing the XOR accumulation processing on the binary arrays of an i th frame of the reference signal and an i th frame of the signal to be processed according to a formula

CoxrR

⁡

(

i

)

=

∑

j

=

m

⁢

⁢

1

m

⁢

⁢

2

⁢

⁢

[

Capb

⁡

(

j

)

⁢

⁢

Xor

⁢

⁢

Refbbur

⁡

(

i

)

⁢

(

j

)

]

,

wherein

Capb(j) represents a binary value of a j th frequency bin of the i th frame of the signal to be processed, Refbbur(i)(j) represents a binary value of the j th frequency bin of the i th frame of the reference signal, CoxrR(i) represents an XOR accumulation processing result corresponding to the i th frame, Xor represents XOR processing, j is an integer in a range of m1 to m2, m1 is obtained by rounding down a calculation result of (M*a)/(fs*c), m2 is obtained by rounding down a calculation result of (M*b)/(fs*c), a is a first set value, b is a second set value, c is a third set value, and fs is an acquisition frequency of the audio signal.

14. The echo time delay detection method according to claim 8 , further comprising:

recording an output time point of each frame of the reference signal and an acquisition time point of each frame of the signal to be processed, and

wherein the determining the time delay value corresponding to the frame number corresponding to the selected processing result comprises:

determining the frame number corresponding to the selected processing result; and

determining a difference between the acquisition time point of the signal to be processed corresponding to the frame number and the output time point of the reference signal corresponding to the frame number as the time delay value corresponding to the frame number.

15. The echo time delay detection method according to claim 6 , further comprising:

performing echo elimination by using a historical echo time delay value in response to the first echo time delay value that meets the set convergence condition being not determined when a call speech signal is detected, wherein

the historical echo time delay value is an echo time delay value determined at a previous time when the call access request is detected or an echo time delay value determined in a previous call.

16. An echo elimination device, comprising:

at least one memory operable to store program code; and

at least one processor operable to read the program code, and operate as instructed by the program code to:

obtain an audio signal transmitted through air and acquired by an audio input device of terminal equipment when detecting a call access request, the audio signal corresponding to an audio output by an audio output device of the terminal equipment;

convert the audio signal to obtain a signal to be processed;

determine a reference signal corresponding to the audio signal, wherein the reference signal has a first plurality of frames, and the signal to be processed has a second plurality of frames; and

determine a first echo time delay value according to the reference signal and the signal to be processed,

wherein the at least one processor further operates as instructed by the program code to determine the first echo time delay value by performing:

determining a binary array of each frame of the reference signal and a binary array of each frame of the signal to be processed, wherein the binary array of each frame of the reference signal comprises binary values of all frequency bins of the frame of the reference signal and the binary array of each frame of the signal to be processed comprises binary values of all frequency bins of the frame of the signal to be processed;

performing XOR accumulation processing on binary arrays of a same frame of the reference signal and the signal to be processed, to obtain an XOR accumulation processing result of each frame; and

determining the first echo time delay value based on XOR accumulation processing results of all frames of the reference signal and the signal to be processed.

17. The echo elimination device according to claim 16 , wherein the at least one processor further operates as instructed by the program code to perform at least one of:

obtaining the reference signal from the audio output device; and

retrieving the reference signal that is preset.

18. The echo elimination device according to claim 16 , wherein the at least one processor further operates as instructed by the program code to:

select a processing result meeting a set condition from the XOR accumulation processing results of all frames of the reference signal and the signal to be processed;

determine a time delay value corresponding to a frame number corresponding to the selected processing result as a candidate time delay value; and

determine, in response to the candidate time delay value meeting a set convergence condition, the candidate time delay value as the first echo time delay value.

19. Terminal equipment, comprising the audio output device, the audio input device, and the echo elimination device according to claim 16 ,

the audio output device being configured to output the audio; and

the audio input device being configured to acquire an audio signal output by the audio output device and transmitted through the air.

20. A non-transitory computer-readable storage medium having stored therein a computer readable code, which, when executed by a computer, causes the computer to perform:

obtaining an audio signal transmitted through air and acquired by an audio input device of terminal equipment when detecting a call access request, the audio signal corresponding to an audio output by an audio output device of the terminal equipment;

converting the audio signal to obtain a signal to be processed;

determining a reference signal corresponding to the audio signal, wherein the reference signal has a first plurality of frames, and the signal to be processed has a second plurality of frames; and

determining a first echo time delay value according to the reference signal and the signal to be processed,

wherein the determining the first echo time delay value comprises:

determining a binary array of each frame of the reference signal and a binary array of each frame of the signal to be processed, wherein the binary array of each frame of the reference signal comprises binary values of all frequency bins of the frame of the reference signal and the binary array of each frame of the signal to be processed comprises binary values of all frequency bins of the frame of the signal to be processed;

performing XOR accumulation processing on binary arrays of a same frame of the reference signal and the signal to be processed, to obtain an XOR accumulation processing result of each frame; and

determining the first echo time delay value based on XOR accumulation processing results of all frames of the reference signal and the signal to be processed.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2018
From: LIANG, JUN BIN
To: TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED
Reel/Frame 045291/0913 →
Priority Claims (1)
CN 2016 1 0162686 · Mar 21, 2016 · national
Continuity (1)
Related Publication 20180352095A1 · Dec 6, 2018