python声音分类_Python音频信号分类MFCC特征神经网络
我試圖把聲音信號從語音到情感進行分類。為此,我提取音頻信號的MFCC特征,并將其輸入到一個簡單的神經網絡(由PyBrain的BackpropTrainer訓練的前饋網絡)。不幸的是結果非常糟糕。從這5個班級來看,網絡似乎總是會產生同樣的結果。在
我有5個情感類和大約7000個有標簽的音頻文件,我把它們分開,這樣每個類的80%用于訓練網絡,20%用于測試網絡。在
其思想是使用小窗口并從中提取MFCC特征來生成大量的訓練示例。在評估中,來自一個文件的所有窗口都會被評估,并且大多數投票決定預測標簽。在Training examples per class:
{0: 81310, 1: 60809, 2: 58262, 3: 105907, 4: 73182}
Example of scaled MFCC features:
[ -6.03465056e-01 8.28665733e-01 -7.25728303e-01 2.88611116e-05
1.18677218e-02 -1.65316583e-01 5.67322809e-01 -4.92335095e-01
3.29816126e-01 -2.52946780e-01 -2.26147779e-01 5.27210979e-01
-7.36851560e-01]
Layers________________________: 13 20 5 (also tried 13 50 5 and 13 100 5)
Learning Rate_________________: 0.01 (also tried 0.1 and 0.3)
Training epochs_______________: 10 (error rate does not improve at all during training)
Truth table on test set:
[[ 0. 4. 0. 239. 99.]
[ 0. 41. 0. 157. 23.]
[ 0. 18. 0. 173. 18.]
[ 0. 12. 0. 299. 59.]
[ 0. 0. 0. 85. 132.]]
Success rate overall [%]: 34.7314201619
Success rate Class 0 [%]: 0.0
Success rate Class 1 [%]: 18.5520361991
Success rate Class 2 [%]: 0.0
Success rate Class 3 [%]: 80.8108108108
Success rate Class 4 [%]: 60.8294930876
好的,現在,你可以看到結果在類上的分布是非常糟糕的。類0和2永遠不會被預測。我想,這暗示了我的網絡或者更可能是我的數據有問題。在
我可以在這里發布很多代碼,但我認為在下面的圖片中顯示我為獲得MFCC特性而采取的所有步驟更有意義。請注意,我使用的整個信號沒有窗口只是為了說明。這個看起來可以嗎?MFCC值非常大,不是應該小很多嗎?(我把它們縮小,然后用minmaxscaler將所有數據輸入到網絡中[-2,2],也嘗試了[0,1])
這是我用于Melfilter庫的代碼,我在離散余弦變換之前直接應用它來提取MFCC特征(我從這里得到它:stackoverflow):
^{pr2}$
怎樣才能得到更好的預測結果?在
總結
以上是生活随笔為你收集整理的python声音分类_Python音频信号分类MFCC特征神经网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 直接插入排序比较次数_插入排序(C++)
- 下一篇: python电子章_Python语言程序