0

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

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

测试数据矩阵包含 4 列和 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),结果也不好。

这里有什么问题?

4

1 回答 1

1

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

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

这里有什么问题?

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

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

于 2013-06-07T05:06:45.840 回答