IP Library Granted Patent US 7,653,537
Granted Patent B2
US 7,653,537 · App. 10/951,545 · Granted Jan 26, 2010

Method and system for detecting voice activity based on cross-correlation

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 7,653,537
App. No.
10/951,545
Granted
Jan 26, 2010
Kind
B2
Abstract

A system and method is provided for determining whether a data frame of a coded speech signal corresponds to voice or to noise. In one embodiment, a voice activity detector determines a cross-correlation of data. If the cross-correlation is lower than a predetermined cross-correlation value, then the data frame corresponds to noise. If not, then the voice activity detector determines a periodicity of the cross-correlation and a variance of the periodicity. If the variance is less than a predetermined variance value, then the data frame corresponds to voice. In another embodiment, a method determines energy of the data frame and an average energy of the coded speech signal. If the data frame is one of a predetermined number of initial data frames, then a comparison between the average energy to the energy of the data frame is used to determine whether the data frame is noise or voice.

Claims (269)

1. A method, comprising:

receiving coded speech signals;

partitioning the coded speech signals into data frames; and

for each of at least some of the data frames, determining whether the data frame corresponds to voice or to noise, by:

determining a cross-correlation Y(τ) of data of said data frame;

determining a periodicity of the cross-correlation;

determining a variance σ 2 of the periodicity;

determining said data frame corresponds to said noise when the cross-correlation is lower than a threshold cross-correlation value; and

determining said data frame corresponds to said voice if the variance is less than a threshold variance value.

2. The method claimed in claim 1 , wherein the cross-correlation, Y(τ), is calculated in accordance with the following:

Y

(

τ

)

=

n

=

0

N

/

2

-

1

x

1

(

n

)

x

2

(

n

+

τ

)

where,

τ is a lag between sequences x 1 (n) and x 2 (n);

x 1 (n) is a first half of said data frame;

x 2 (n) is a second half of said data frame; and

N is the size of the frame.

3. The method claimed in claim 2 , wherein the periodicity is determined by measuring at least one of:

a distance Diff pp between positive peaks;

a distance Diff nn between negative peaks;

a distance Diff pn between consecutive positive and negative peaks; and

a distance Diff np between consecutive negative and positive peaks,

where the peaks are identified by using:

Y (τ−1)< Y (τ)> Y (τ+1) for maxima and

Y (τ−1)> Y (τ)< Y (τ+1) for minima.

4. The method claimed in claim 3 , wherein the variance, σ 2 , is calculated as follows:

σ

2

=

(

x

-

μ

)

2

L

where

x is a sequence comprised of the periodicity whose variance is being measured;

μ is the mean of the sequence x; and

L is the number of samples in the sequence.

5. The method claimed in claim 4 , wherein the variance is normalized by μ 2 substantially as follows:

ɛ

=

σ

2

μ

2

=

(

x

-

μ

)

2

L

·

μ

2

=

1

L

{

(

x

μ

)

-

1

}

2

.

6. The method claimed in claim 5 , wherein the threshold variance value is 0.2.

7. The method claimed in claim 1 , wherein the threshold cross-correlation value corresponds to that of white or pink noise.

8. The method claimed in claim 1 , wherein the threshold cross-correlation value is 0.4.

9. A method, comprising:

receiving coded speech signals;

partitioning the coded speech signals into data frames; and

for each of at least some of the data frames, determining whether the data frame corresponds to voice or to noise, by:

determining an energy of said data frame;

determining an average speech energy of the coded speech signal;

if the data frame is one of a threshold number of initial data frames of the coded speech signal, determining whether the data frame corresponds to said voice or to said noise by,

determining a cross-correlation of data of said data frame,

determining a periodicity of the cross-correlation,

determining a variance of the periodicity;

determining said data frame corresponds to said noise when the cross-correlation is lower than a threshold cross-correlation value; and

determining said data frame corresponds to said voice if the variance is less than a threshold variance value; and

else, comparing the energy of the data frame with the average speech energy, and determining said data frame corresponds to said voice if the average speech energy is less than or equal to the energy of the data frame.

10. The method claimed in claim 9 , wherein determining the energy of the data frame comprises determining:

E

l

=

n

=

(

l

-

1

)

,

N

+

1

l

·

N

x

(

n

)

2

where the energy in an l th analysis frame of size N is E l .

11. The method claimed in claim 10 , wherein the average speech energy determined over k data frames is as follows:

E

s

a

=

1

k

l

=

1

k

E

l

.

12. A voice activity detector, comprising:

means for determining whether a data frame of a coded speech signal corresponds to voice or to noise, including:

means for determining a cross-correlation Y(τ) of data of said data frame;

means for determining a periodicity of the cross-correlation;

means for determining a variance σ 2 of the periodicity;

means for determining said data frame corresponds to said noise when the cross-correlation is lower than a threshold cross-correlation value; and

means for determining said data frame corresponds to voice if the variance is less than a threshold variance value.

13. The voice activity detector claimed in claim 12 , wherein the cross-correlation, Y(τ), is calculated in accordance with the following:

Y

(

τ

)

=

n

=

0

N

/

2

-

1

x

1

(

n

)

x

2

(

n

+

τ

)

where,

τ is a lag between sequences x 1 (n) and x 2 (n);

x 1 (n) is a first half of said data frame;

x 2 (n) is a second half of said data frame; and

N is the size of the frame.

14. The voice activity detector claimed in claim 13 , wherein the periodicity is determined by measuring at least one of:

a distance Diff pp between positive peaks;

a distance Diff nn between negative peaks;

a distance Diff pn between consecutive positive and negative peaks; and

a distance Diff np between consecutive negative and positive peaks,

wherein the peaks are identified by using:

Y (τ−1)< Y (τ)> Y (τ+1) for maxima and

Y (τ−1)> Y (τ)< Y (τ+1) for minima

15. The voice activity detector claimed in claim 14 , wherein the variance, σ 2 , is calculated as follows:

σ

2

=

(

x

-

μ

)

2

L

where

x is a sequence comprised of the periodicity whose variance is being measured;

μ is the mean of the sequence x; and

L is the number of samples in the sequence.

16. The voice activity detector claimed in claim 15 , wherein the variance is normalized by μ 2 substantially as follows:

ɛ

=

σ

2

μ

2

=

(

x

-

μ

)

2

L

·

μ

2

=

1

L

{

(

x

μ

)

-

1

}

2

.

17. The voice activity detector claimed in claim 16 , wherein the threshold variance value is 0.2.

18. The voice activity detector claimed in claim 12 , wherein the threshold cross-correlation value corresponds to that of white or pink noise.

19. The voice activity detector claimed in claim 12 , wherein the threshold cross-correlation value is 0.4.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2024
From: STMICROELECTRONICS ASIA PACIFIC PTE LTD
To: STMICROELECTRONICS INTERNATIONAL N.V.
Reel/Frame 068434/0215 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2009
From: PADHI, KABI PRAKASH
To: STMICROELECTRONICS ASIA PACIFIC PTE LTD
Reel/Frame 023637/0387 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2005
From: KABI, PRAKASH PADHI; GEORGE, SAPNA
To: STMICROELECTRONICS ASIA PACIFIC PTE LTD
Reel/Frame 015924/0234 →