2013-10-23 96 views
1

我是新來的信號處理,並嘗試使用FFT比較兩個音頻文件。 將文件讀入字節,然後轉換爲複數,然後將其發送到fft。 然後計算複數的幅度(從fft輸出)。試圖比較幅度,但它們不匹配。使用FFT比較兩個音頻文件的唯一方法?

請讓我知道我是否缺少任何東西。

是否有任何其他方式比較兩個音頻文件?

+0

請不要使用問題標題中的ALLCAPS。 – jmoerdyk

+1

這兩個音頻文件是一樣的嗎?他們有多「不同」?什麼構成你的申請「平等」? –

+0

他們可以是mp3或wav。兩個文件比較將具有相同的格式。 – user2913531

回答

1

通常,整個文件的FFT不會相等 - 考慮40秒。包含四個10秒的文件。正弦波段分別爲20Hz,40Hz,60Hz和80Hz。

整個文件的相應頻譜將顯示在這四個頻率處的峯值,但是任何10秒。摘錄最多有兩個。因此,它們不匹配。

現在,你想要做的事聽起來有點像Shazam,幸運的是,他們已經發布了a research paper它如何工作。也許這會解決你的問題。

對於另一種方法(儘管可能無法處理音調和速度變化),請考慮以上我的示例的含義:您不應嘗試匹配40秒內創建的光譜圖。到僅代表10秒的一個。所以你必須找到第二個文件從哪個10秒的原始文件中取出。爲了達到這個目的,你可以使用一個簡單的滑動窗口(從第1到第10步,然後是第2到第11步等等的數據開始),或者你可以將第二個文件切成更小的塊,然後組合用string searching的技術進行初始滑動窗口。