簡體   English   中英

哪個頻譜圖最能代表基於CNN的模型的音頻文件的功能?

[英]Which Spectrogram best represents features of an audio file for CNN based model?

我希望了解用於音頻分析的各種頻譜圖。 我想將音頻文件轉換為10秒的塊,為每個塊生成頻譜圖,然后使用CNN模型在這些圖像之上進行訓練,以查看它們的好壞。

我看了線性,對數,梅爾等,並在某處閱讀了基於梅爾的頻譜圖最好用於此情況。 但是沒有適當的可驗證信息。 我使用了以下簡單的代碼來生成梅爾頻譜圖。

y,sr= librosa.core.load(r'C:\Users\Tej\Desktop\NoiseWork\NoiseOnly\song.wav')
S = librosa.feature.melspectrogram(y=y, sr=sr)
librosa.display.specshow(librosa.power_to_db(S, ref=np.max))

我的問題是,哪個頻譜圖最能代表使用CNN訓練的音頻文件的功能? 我使用了線性,但某些音頻文件的線性頻譜圖似乎相同

對數比例的梅爾頻譜圖是當前與卷積神經網絡一起使用的“標准”。 它是2015-2018年間音頻事件檢測和音頻場景分類文獻中最常用的。

為了使振幅變化更加不變,通常應用歸一化。 要么是整個剪輯,要么是對窗口進行分類。 一般而言,均值/標准差歸一化工作正常。

但是從CNN的角度來看,不同光譜儀之間的差異相對較小。 因此,如果兩個或兩個以上的頻譜圖基本相同,這不太可能解決您的問題。

為了補充說明,我建議您閱讀Keunwoo Choi,GyörgyFazekas,Kyunghyun Cho和Mark Sandler所著《 關於音樂標簽深度神經網絡的音頻信號預處理方法的比較》

對於他們的數據,他們在簡單的STFT和質譜圖之間實現了幾乎相同的分類精度。 因此,如果您不介意進行預處理,則質譜圖顯然是縮小尺寸的明顯贏家。 作者還發現,正如jonner所提到的,對數縮放(本質上將幅度轉換為db縮放)提高了准確性。 您可以使用Librosa輕松地執行此操作(使用您的代碼),如下所示:

y,sr= librosa.core.load(r'C:\Users\Tej\Desktop\NoiseWork\NoiseOnly\song.wav')
S = librosa.feature.melspectrogram(y=y, sr=sr)
S_db = librosa.core.power_to_db(S)

至於db縮放后的規范化,這似乎取決於您的數據。 從上面的論文中,作者發現使用各種標准化技術對其數據幾乎沒有區別。

最后要提到的是一種稱為“每通道能量歸一化”的新方法。 我建議閱讀Vincent Lostanlen,Justin Salamon,Mark Cartwright,Brian McFee,Andrew Farnsworth,Steve Kelling和Juan Pablo Bello撰寫的《 每通道能量歸一化:為什么和如何》 不幸的是,有些參數需要根據數據進行調整,但在許多情況下似乎要好於對數聲譜圖。 您可以像下面這樣在Librosa中實現它:

y,sr= librosa.core.load(r'C:\Users\Tej\Desktop\NoiseWork\NoiseOnly\song.wav')
S = librosa.feature.melspectrogram(y=y, sr=sr)
S_pcen = librosa.pcen(S)

盡管,正如我提到的那樣,在pcen中有一些參數需要調整! 如果您有興趣,這里是Librosa的PCEN文檔,可以幫助您入門。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM