繁体   English   中英

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

[英]Speech Recognition using LPC and ANN in Matlab

我有11个人的4个音素(a,e,o,u)的音频记录。 我使用来自10个人的数据训练了ANN,然后将另一组用于测试。 我使用记录的第一时间段(20毫秒)的14个LPC系数作为特征。

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

测试数据矩阵包含四列14行,因为它仅包含一个人的四个音素。 让我们称之为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),结果也不是很好。

怎么了

我使用记录的第一时间段(20毫秒)的14个LPC系数作为特征。

那么,除了前20ms之外,您是否忽略了几乎所有声音数据? 听起来不对。 您必须至少计算所有帧的平均值。

怎么了

您是在不了解理论的情况下开始编码的。 可能您想先阅读一些介绍。 至少这个理想情况下

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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