在Matlab中使用LPC和ANN进行语音识别

时间:2013-06-05 20:35:49

标签: matlab neural-network speech-recognition

我有来自11个人的4个音素(a,e,o,u)的录音。我使用来自10个人的数据训练了ANN,并使用另一组进行测试。我使用了第一段(20ms)记录的14个LPC系数作为特征。

每个音素的训练矩阵I有14行10列。所以它是14 * 40。由于它是一个监督分类问题,我构建了一个4 * 40的目标矩阵T。它包含1和0,其中1表示I中的相应列来自该类。

测试数据矩阵包含四列和14行,因为它只包含来自一个人的4个音素。我们称之为S

以下是代码:

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)

即使我将训练数据作为测试数据(y1)给出,结果也不好。

这里有什么问题?

1 个答案:

答案 0 :(得分:1)

  

我使用了第一段(20ms)记录的14个LPC系数作为特征。

除了前20分钟,你几乎忽略了所有的声音数据吗?这听起来不对。您必须至少计算所有帧的平均值。

  

这里有什么问题?

你在不理解理论的情况下开始编码。可能你想先阅读一些介绍。至少this,理想情况下this

要理解为什么ANN不起作用,计算将10个特征映射到4个类所需的参数数,然后计算每个参数的训练向量数。考虑到对于每个参数,您需要至少10个样本进行初始估算。这意味着你的训练数据还不够。

相关问题