0% found this document useful (0 votes)
69 views16 pages

Speech Processing Project

This document describes a speech processing project that implements a linear predictive coding (LPC) vocoder using voice excitation. The project was completed in MATLAB for an ECE 5525 class in fall 2005. The document provides background on LPC theory and models, including how speech is analyzed on a frame-by-frame basis to extract parameters like pitch period, voicing decision, LPC coefficients, and gain. It also describes how the parameters are encoded and used to synthesize speech by driving an LPC synthesis filter with an excitation signal.

Uploaded by

japaoli
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
69 views16 pages

Speech Processing Project

This document describes a speech processing project that implements a linear predictive coding (LPC) vocoder using voice excitation. The project was completed in MATLAB for an ECE 5525 class in fall 2005. The document provides background on LPC theory and models, including how speech is analyzed on a frame-by-frame basis to extract parameters like pitch period, voicing decision, LPC coefficients, and gain. It also describes how the parameters are encoded and used to synthesize speech by driving an LPC synthesis filter with an excitation signal.

Uploaded by

japaoli
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 16

Speech Processing Project

Linear Predictive coding using Voice excited


Vocoder

ECE 5525
Osama Saraireh
Fall 2005
Dr. Veton Kepuska
Models Implemented In MATLAB
LPC Background
 The speech signal is filtered to no more than one half the system
sampling frequency and then
 A/D conversion is performed.
 The speech is processed on a frame by frame basis where the
analysis frame length can be variable.
 For each frame a pitch period estimation is made along with a
voicing decision.
 A linear predictive coefficient analysis is performed to obtain an
inverse model of the speech spectrum A (z).
 In addition a gain parameter G, representing some function of the
speech energy is computed.
 An encoding procedure is then applied for transforming the
analyzed parameters into an efficient set of transmission
parameters with the goal of minimizing the degradation in the
synthesized speech for a specified number of bits. Knowing the
transmission frame rate and the number of bits used for each
transmission parameters, one can compute a noise-free channel
transmission bit rate.
LPC Theory
 At the receiver, the transmitted parameters are decoded into
quantized versions of the coefficients analysis and pitch estimation
parameters.
 An excitation signal for synthesis is then constructed from the
transmitted pitch and voicing parameters.
 The excitation signal then drives a synthesis filter 1/A (z)
corresponding to the analysis model A (z).
 The digital samples s^(n) are then passed through an D/A
converter and low pass filtered to generate the synthetic speech
s(t).
 Either before or after synthesis, the gain is used to match the
synthetic speech energy to the actual speech energy.
 The digital samples are the converted to an analog signal and
passed through a filter similar to the one at the input of the
system.
Speech production

 Where p is the number of poles.


 G is the filter Gain.

and a[k] are the parameters that determine the poles.
Voiced and Unvoiced sounds

 There are two mutually exclusive ways excitation functions to


model voiced and unvoiced speech sounds.
 For a short time-basis analysis:
 voiced speech is considered periodic with a fundamental
frequency of Fo, and a pitch period of 1/Fo, which depends
on the speaker. Hence, Voiced speech is generated by
exciting the all pole filter model by a periodic impulse train.
 On the other hand, unvoiced sounds are generated by exciting
the all-pole filter by the output of a random noise generator
Voiced/Unvoiced
 The fundamental difference between these two types of speech
sounds comes from the following:
 the way they are produced.
 The vibrations of the vocal cords produce voiced sounds.
 The rate at which the vocal cords vibrate dictates the pitch of
the sound.
 On the other hand, unvoiced sounds do not rely on the
vibration of the vocal cords.
 The unvoiced sounds are created by the constriction of the
vocal tract.
 The vocal cords remain open and the constrictions of the vocal
tract force air out to produce the unvoiced sounds
 Given a short segment of a speech signal, lets say about 20 ms or
160 samples at a sampling rate 8 KHz, the speech encoder at the
transmitter must determine the proper excitation function, the
pitch period for voiced speech, the gain, and the coefficients
Mathematical Representation of the Model

 The parameters of the all-pole filter model are determined from


the speech samples by means of linear prediction. To be specific
the output of the Linear Prediction filter is:
^ p
s ( n)   a p ( k ) s ( n  k )
k 1

 the corresponding error between the observed sample S(n) and


the predicted value is

^
e( n )  s ( n )  s ( n )
Cont’d
 by minimizing the sum of the squared error we can determine the
pole parameters of the model. The result of differentiating the
sum above with respect to each of the parameters and equation
the result to zero, is a sep of p linear equations:
p

a
k 1
p (k )rss (m  k )  rss ( m )

where ss (m ) represent the autocorrelation of the sequence s (n)



r
defined as
N
rss ( m )   s (n) s (n  m)
n 0

Rss a   rss (m )
Auto-correlation
 where Rss a is a pxp autocorrelation matrix, rss is a px1
autocorrelation vector, and a is a px1 vector of model parameters.

 [row col] = size(data);


 if col==1 data=data'; end
 nframe = 0;
 msfr = round(sr/1000*fr); % Convert ms to samples
 msfs = round(sr/1000*fs); % Convert ms to samples
 duration = length(data);
 speech = filter([1 -preemp], 1, data)'; % Preemphasize speech
 msoverlap = msfs - msfr;
 ramp = [0:1/(msoverlap-1):1]'; % Compute part of window
 for frameIndex=1:msfr:duration-msfs+1 % frame rate=20ms
 frameData = speech(frameIndex:(frameIndex+msfs-1)); % frame size=30ms
 nframe = nframe+1;
 autoCor = xcorr(frameData); % Compute the cross correlation
 autoCorVec = autoCor(msfs+[0:L]);
Gain representation in the system

 The gain parameter of the filter can be obtained by the input-


output relationship as
p
follow
s (n)   a p (k ) s (n  k )  Gx(n)
k 1

 where X(n) represent the input sequence.


 We can further manipulate this equation and in terms of the error
sequence we have
p
Gx(n)  s(n)   a p (k ) s(n  k )  e(n)
k 1
N 1 N 1
G 2
 x
n0
( n2
)   ( n)
e 2

n 0
 if the input excitation is normalized to unit energy by design, then
N 1 N 1 p
G 2
 x ( n)   e ( n)  r
n0
2

n0
2
ss (0)   a p (k )rss (k )
k 1

 where G^2 is set equal to the residual energy resulting from the
least square optimization
 once the LPC coefficients are computed, we can determine
weather the input speech frame is voiced, and if it is indeed
voiced sound, then what is the pitch. We can determine the pitch
by computing the
p following sequence in matlab:
p
re (n)   ra (k )rss (n  k ) ra (n)   aa (k )a p (i  k )
k 1 k 1

 which is defined as the autocorrelation sequence of the prediction


coefficients.
Pitch Detection
re (n)
 The pitch is detected by finding the peak of the normalized re (0)
sequence

 In the time interval corresponds to 3 to 15 ms in the 20ms


sampling frame. If the value of this peak is at least 0.25, the
frame of speech is considered voiced with a pitch period equal to
the value of n  N p where Is a re ( N p ) maximum value
re (0)

 If the peak value is less than 0.25, the frame speech is considered
unvoiced and the pitch would equal to zero
 The value of the LPC coefficients, the pitch period, and the type of
excitation are then transmitted to the receiver.
 The decoder synthesizes the speech signal by passing the proper
excitation through the all pole filter model of the vocal tract.
 Typically the pitch period requires 6 bits, the gain parameters are
represented in 5 bits after the dynamic range is compressed and
the prediction coefficients require 8-10 bits normally for accuracy
reasons.
 This is very important in LPC because any small changes in the
prediction coefficients result in large change in the pole positions
of the filter model, which cause instability in the model.
 This is overcome by using the PARACOR method .
Model LPC Vocoder (pitch detector)

output speech spectrum using LPC vocoder


10
Original speech signal
0.4

8
0.3

0.2 6

0.1
4

0
2
-0.1

0
-0.2

-0.3 -2
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
4 4
x 10 x 10
Voice excited LPC Vocoder

Original speech signal reconstructed signal using voice Excited LPC vocoder
0.4 0.4

0.3 0.3

0.2
0.2

0.1
0.1

0
0

-0.1
-0.1

-0.2
-0.2
-0.3
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
4 -0.3
x 10 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
4
x 10

You might also like