簡體   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