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?
> >
>