I am working on a project on audio compression using code excited

linear prediction (CELP) techniques. My aim is to design a basic

working CELP codec in matlab. Since audio processing is new to me I am

confused with some of the details of algorithms:-

Firstly, the input to Short Term predictor(STP) is the original or the

preprocessed speech and the input to Long term predictor(LTP) is the

prediction error of STP. But the frame-subframe structure is quite

confusing. I am using a 240 sample 8KHz(30 mS) audio as frame. Will

the LTP perfomed on suframe(60 sample) of prediction error frame(240

samples). Is it so? Also the pitch period is searched between 20 and

147, how can that be possible with a 60 sample(7.5 mS) subframe.

Secondly, the simplest codebook is the gaussian codebook. But how to

design it in matlab.

Can someone help me by refering some relavent documents explaing the

topic(s) in detail. If possible can somebody provide me basic code in

matlab or a link to it.

I will be highly obliged.

Thanks

Amit

# Design of basic CELP codec

Started by ●December 18, 2006

Reply by ●December 31, 20062006-12-31

Dear Amit,

There is a Demo in DSP blockset of MATLAB version 7.1 and higher in which

the CELP codec is implemented using Simulink blocks. I think it highly helps

you. It will simply be launched by typing "dspcelpcoder" in the workspace of

MATLAB.

When you split a frame to multiple sub-frames, you should repeat the

operation for the sub-frames. It means that you should repeat the LTP for

each 60 samples i.e. totally 4 times on the 240-sample result of STP.

The pitch search can be done by buffering the needed length of signal from

previous sub-frames. I highly recommend you to review the CELP Demo of

MATLAB.

Good luck and take care,

Neda Kazemian

On 12/18/06, Amit Solanki wrote:

>

> I am working on a project on audio compression using code excited

> linear prediction (CELP) techniques. My aim is to design a basic

> working CELP codec in matlab. Since audio processing is new to me I am

> confused with some of the details of algorithms:-

>

> Firstly, the input to Short Term predictor(STP) is the original or the

> preprocessed speech and the input to Long term predictor(LTP) is the

> prediction error of STP. But the frame-subframe structure is quite

> confusing. I am using a 240 sample 8KHz(30 mS) audio as frame. Will

> the LTP perfomed on suframe(60 sample) of prediction error frame(240

> samples). Is it so? Also the pitch period is searched between 20 and

> 147, how can that be possible with a 60 sample(7.5 mS) subframe.

>

> Secondly, the simplest codebook is the gaussian codebook. But how to

> design it in matlab.

>

> Can someone help me by refering some relavent documents explaing the

> topic(s) in detail. If possible can somebody provide me basic code in

> matlab or a link to it.

>

> I will be highly obliged.

>

> Thanks

>

> Amit

>

There is a Demo in DSP blockset of MATLAB version 7.1 and higher in which

the CELP codec is implemented using Simulink blocks. I think it highly helps

you. It will simply be launched by typing "dspcelpcoder" in the workspace of

MATLAB.

When you split a frame to multiple sub-frames, you should repeat the

operation for the sub-frames. It means that you should repeat the LTP for

each 60 samples i.e. totally 4 times on the 240-sample result of STP.

The pitch search can be done by buffering the needed length of signal from

previous sub-frames. I highly recommend you to review the CELP Demo of

MATLAB.

Good luck and take care,

Neda Kazemian

On 12/18/06, Amit Solanki wrote:

>

> I am working on a project on audio compression using code excited

> linear prediction (CELP) techniques. My aim is to design a basic

> working CELP codec in matlab. Since audio processing is new to me I am

> confused with some of the details of algorithms:-

>

> Firstly, the input to Short Term predictor(STP) is the original or the

> preprocessed speech and the input to Long term predictor(LTP) is the

> prediction error of STP. But the frame-subframe structure is quite

> confusing. I am using a 240 sample 8KHz(30 mS) audio as frame. Will

> the LTP perfomed on suframe(60 sample) of prediction error frame(240

> samples). Is it so? Also the pitch period is searched between 20 and

> 147, how can that be possible with a 60 sample(7.5 mS) subframe.

>

> Secondly, the simplest codebook is the gaussian codebook. But how to

> design it in matlab.

>

> Can someone help me by refering some relavent documents explaing the

> topic(s) in detail. If possible can somebody provide me basic code in

> matlab or a link to it.

>

> I will be highly obliged.

>

> Thanks

>

> Amit

>

Reply by ●January 4, 20072007-01-04

Dear AMIT

input to STP is preprocessed speech signal.

Input to the LTP filter is prediction error obtained from STP.

Sub frame analysis is used not miss the pitch. Pitch is the variable factor and due to this speech signal is not stationary. Due to this factor one will go for sub frame analysis as during that sub frame duration speech signal is assumed to be stationary. If you want to know more about all these you can refer to

"Digital Speech" by A.M. Kondoz, John willey publications.

Further if you have any doubts, do mail me.

Regards

Sridhar. A

Hellosoft,

Hyderabad.

----- Original Message ----

From: Amit Solanki

To: s...

Sent: Monday, 18 December, 2006 10:41:20 AM

Subject: [speechcoding] Design of basic CELP codec

I am working on a project on audio compression using code excited

linear prediction (CELP) techniques. My aim is to design a basic

working CELP codec in matlab. Since audio processing is new to me I am

confused with some of the details of algorithms:-

Firstly, the input to Short Term predictor(STP) is the original or the

preprocessed speech and the input to Long term predictor(LTP) is the

prediction error of STP. But the frame-subframe structure is quite

confusing. I am using a 240 sample 8KHz(30 mS) audio as frame. Will

the LTP perfomed on suframe(60 sample) of prediction error frame(240

samples). Is it so? Also the pitch period is searched between 20 and

147, how can that be possible with a 60 sample(7.5 mS) subframe.

Secondly, the simplest codebook is the gaussian codebook. But how to

design it in matlab.

Can someone help me by refering some relavent documents explaing the

topic(s) in detail. If possible can somebody provide me basic code in

matlab or a link to it.

I will be highly obliged.

Thanks

Amit

input to STP is preprocessed speech signal.

Input to the LTP filter is prediction error obtained from STP.

Sub frame analysis is used not miss the pitch. Pitch is the variable factor and due to this speech signal is not stationary. Due to this factor one will go for sub frame analysis as during that sub frame duration speech signal is assumed to be stationary. If you want to know more about all these you can refer to

"Digital Speech" by A.M. Kondoz, John willey publications.

Further if you have any doubts, do mail me.

Regards

Sridhar. A

Hellosoft,

Hyderabad.

----- Original Message ----

From: Amit Solanki

To: s...

Sent: Monday, 18 December, 2006 10:41:20 AM

Subject: [speechcoding] Design of basic CELP codec

I am working on a project on audio compression using code excited

linear prediction (CELP) techniques. My aim is to design a basic

working CELP codec in matlab. Since audio processing is new to me I am

confused with some of the details of algorithms:-

Firstly, the input to Short Term predictor(STP) is the original or the

preprocessed speech and the input to Long term predictor(LTP) is the

prediction error of STP. But the frame-subframe structure is quite

confusing. I am using a 240 sample 8KHz(30 mS) audio as frame. Will

the LTP perfomed on suframe(60 sample) of prediction error frame(240

samples). Is it so? Also the pitch period is searched between 20 and

147, how can that be possible with a 60 sample(7.5 mS) subframe.

Secondly, the simplest codebook is the gaussian codebook. But how to

design it in matlab.

Can someone help me by refering some relavent documents explaing the

topic(s) in detail. If possible can somebody provide me basic code in

matlab or a link to it.

I will be highly obliged.

Thanks

Amit