<< Chapter < Page | Chapter >> Page > |
xcorr
function for this.toeplitz
function to form
.To test your function, download the file test.mat , and load it into Matlab. This file contains two vectors: a signal and its order-15 LPC coefficients . Use your function to compute the order-15 LPC coefficients of , and compare the result to the vector .
mylpc
function.Download the file phrase.au for the following section.
One very effective application of LPC is the compression of speech signals.For example, an LPC vocoder (voice-coder) is a system used in many telephone systems to reduce the bit rate for the transmission of speech.This system has two overall components: an analysis section which computes signalparameters (gain, filter coefficients, etc.), and a synthesis section which reconstructs the speech signal after transmission.
Since we have introduced the speech model in "A Speech Model" , and the estimation of LPC coefficients in "Linear Predictive Coding" , we now have all the tools necessary to implement a simple vocoder.First, in the analysis section, the original speech signal will be split into short time frames.For each frame, we will compute the signal energy, the LPC coefficients, and determine whether the segment is voiced or unvoiced.
Download the file phrase.au . This speech signal is sampled at a rate of 8000 Hz.
mylpc
function to compute order-15 LPC coefficients
for each frame. Place each set of coefficients into a column of a
matrix
.To see the reduction in data, add up the total number of bytes Matlab
uses to store the encoded speech in the arrays
A ,
VU , and
energy .
(use the
whos
function).
Compute the
compression ratio by dividing this by the number of bytes
Matlab uses to store the original speech signal.Note that the compression ratio can be further improved by using a technique
called
vector quantization on the LPC coefficients, and also by using
fewer bits to represent the gain and voiced/unvoiced indicator.
Now the computed parameters will be used to re-synthesize the phrase
using the model in
[link] .
Similar to your
exciteV
function from
"Synthesis of Voiced Speech" ,
create a function
x=exciteUV(N)
which returns a length
excitation
for unvoiced speech (generate a Normal(0,1) sequence).Then for each encoded frame do the following:
Listen to the original and synthesized phrase.
Can you recognize the synthesized version as coming from the same speaker?What are some possible ways to improve the quality of the synthesized
speech?
Subplot
the two speech signals in the same figure.
Notification Switch
Would you like to follow the 'Purdue digital signal processing labs (ece 438)' conversation and receive update notifications?