2013-03-29 70 views
0

可有人請給我關於在MATLAB這個問題的想法,音頻模式在MATLAB匹配

我有包含鳥鳴聲4個.wav文件。每個.wav文件代表一隻不同的鳥。給定一個輸入.wav文件,我需要決定它是哪個鳥。我知道我必須進行頻譜比較才能找到解決方案。但不知道我應該如何使用光譜圖來幫助我到達那裏。

P.S.我知道頻譜圖是怎麼做的,並且已經繪製了很多.wav文件,雖然

+0

這樣的問題有很多方法,所以這是一個非常廣泛的問題,可能有點偏離主題。也許這應該遷移到dsp.stackexchange.com? – wakjah

回答

0

這可能證明是一個複雜的問題。作爲一個起點,我建議你將每條記錄分成一些固定長度的幀,如20ms重疊10ms,然後提取這些幀的fft並獲得一些最大能量頻率。每幀的值。作爲最後一步比較幀頻率並通過選擇最大相關性來確定結果

1

有幾種方法可用於模式識別問題,例如您正在說話的模式識別問題。

您可以使用像FFT頻率分析與MATLAB函數
S = SPECTROGRAM(X,WINDOW,NOVERLAP)

SPECTROGRAM您需要定義信號的時間窗口在變量WINDOW進行分析。您可以使用矩形窗口(示例WINDOW = [1 1 1 1 1 1 1 ... 1]),其數值數量等於所需的長度。有很多窗口可以使用:hanning,hamming,blackman。你應該使用一個更適合你的問題。 NOVERLAP是您的窗口一步移動的點數。

除了這種方法,小波變換也是一個很好的技術來解決你的問題。 Matlab也有一個很好的工具箱來應用離散和連續的小波。

1

你可以嘗試用深層信念網絡

這裏要解決的問題有一些文章可能會有所幫助:

總結的想法,而不是手動調整功能,聘請RBMsAutoencoder來提取表示觀察音頻樣本的特徵(基),然後運行學習算法。

爲了訓練DBN,你需要4個以上的音頻樣本,但值得嘗試,因爲這種方法在過去已經顯示出有希望的結果。

This tuturial可能也有幫助。