简体   繁体   中英

Speech Recognition using LPC and ANN in Matlab

I have audio records of 4 phonemes (a, e, o, u) from 11 people. I trained an ANN using the data from 10 people, and used the other set for testing. I used 14 LPC coefficients of the first period (20ms) of records as features.

The training matrix I has 14 rows and 10 columns for each phoneme. So it is 14*40. Since it is a supervised classification problem, I constructed a target matrix T which is 4*40. It contains ones and zeros where a 1 indicates that the corresponding column in I is from that class.

The test data matrix contains four columns and 14 rows as it contains 4 phonemes from only one person. Let us call it S .

Here is the code:

net = newff(I, T, 15);
net = init(net);
net.trainParam.epochs = 10000;
net.trainParam.goal = 0.01;
net = train(net, I, T);
y1 = sim(net, I);
y2 = sim(net, S)

The results are not good even I give the training data as test data (y1).

What is wrong here?

I used 14 LPC coefficients of the first period (20ms) of records as features.

So did you ignore almost all the sound data except first 20ms? It doesn't sound right. You must have calculate an average over all frames at least.

What is wrong here?

You started coding without understanding a theory. Probably you want to read some introduction first. At least this and ideally this

To understand why ANN doesn't work calculate how many parameters are required to map 10 features to 4 classes, then calculate how many training vectors do you have for every parameter. Take into account that for every parameter you need at least 10 samples for initial estimation. That means your training data is not enough.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM