hello all

i am working on speaker identification.I want to calculate the pitch of a speech
signal.Can you help me is there any function available for pitch detection or
dection of voiced & unvoiced part in a signal using MATLAB?

# pitch determination

Started by ●January 9, 2008

Reply by ●February 17, 20082008-02-17

Do you mean you want the fundamental frequency of the speech?

There are many ways to go about this. A useful way is to take the short time FFT of your speech signal. Then you can find the linear prediction coefficients for this short time speech segment. By plotting the short time FFT with the linear prediction spectrum...you can have a nice "threshold" which will help you write a basic algorithm to find the local maxima...and the first one should be the pitch of your speech segment.

type "help lpc" at the matlab command prompt for more info.

hello all

>i am working on speaker identification.I want to calculate the pitch of a speech signal.Can you help me is there any function available for pitch detection or dection of voiced & unvoiced part in a signal using MATLAB?

There are many ways to go about this. A useful way is to take the short time FFT of your speech signal. Then you can find the linear prediction coefficients for this short time speech segment. By plotting the short time FFT with the linear prediction spectrum...you can have a nice "threshold" which will help you write a basic algorithm to find the local maxima...and the first one should be the pitch of your speech segment.

type "help lpc" at the matlab command prompt for more info.

hello all

>i am working on speaker identification.I want to calculate the pitch of a speech signal.Can you help me is there any function available for pitch detection or dection of voiced & unvoiced part in a signal using MATLAB?

Reply by ●February 17, 20082008-02-17

Hi,

If the speech is clean, the following is a

reliable way of estimating pitch period.

Compute LP coefficients for a speech segment

of 20-30 ms and inverse filter the signal to

obtain LP residual (error signal).

Compute Hilbert envelope of LP residual.

h = abs(hilbert(r)); in MATLAB,

where r is LP residual.

Compute autocorrelation of 20-30 ms of

Hilbert envelope (h).

ac = xcorr(h);

Use one-sided autocorrelation sequence

and pick the strongest peak (excluding the

centre peak, of course).

The location of the strongest peak gives

you pitch period.

This works even if speech is a little noisy.

Bye

Guru

--- r...@gmail.com wrote:

> Do you mean you want the fundamental frequency of

> the speech?

>

> There are many ways to go about this. A useful way

> is to take the short time FFT of your speech signal.

> Then you can find the linear prediction

> coefficients for this short time speech segment. By

> plotting the short time FFT with the linear

> prediction spectrum...you can have a nice

> "threshold" which will help you write a basic

> algorithm to find the local maxima...and the first

> one should be the pitch of your speech segment.

>

> type "help lpc" at the matlab command prompt for

> more info.

>

> hello all

> >i am working on speaker identification.I want to

> calculate the pitch of a speech signal.Can you help

> me is there any function available for pitch

> detection or dection of voiced & unvoiced part in a

> signal using MATLAB?

> >

>

If the speech is clean, the following is a

reliable way of estimating pitch period.

Compute LP coefficients for a speech segment

of 20-30 ms and inverse filter the signal to

obtain LP residual (error signal).

Compute Hilbert envelope of LP residual.

h = abs(hilbert(r)); in MATLAB,

where r is LP residual.

Compute autocorrelation of 20-30 ms of

Hilbert envelope (h).

ac = xcorr(h);

Use one-sided autocorrelation sequence

and pick the strongest peak (excluding the

centre peak, of course).

The location of the strongest peak gives

you pitch period.

This works even if speech is a little noisy.

Bye

Guru

--- r...@gmail.com wrote:

> Do you mean you want the fundamental frequency of

> the speech?

>

> There are many ways to go about this. A useful way

> is to take the short time FFT of your speech signal.

> Then you can find the linear prediction

> coefficients for this short time speech segment. By

> plotting the short time FFT with the linear

> prediction spectrum...you can have a nice

> "threshold" which will help you write a basic

> algorithm to find the local maxima...and the first

> one should be the pitch of your speech segment.

>

> type "help lpc" at the matlab command prompt for

> more info.

>

> hello all

> >i am working on speaker identification.I want to

> calculate the pitch of a speech signal.Can you help

> me is there any function available for pitch

> detection or dection of voiced & unvoiced part in a

> signal using MATLAB?

> >

>