2011-10-12 252 views
3

我是一個VC++開發人員,目前需要比較兩個音頻文件的幫助。比方說,我有兩個波形文件,其中一個是使用其他一些修改,如降低響度等創建的。比較兩個音頻文件波形

現在,我必須比較這些文件,看看修改後的文件是否幾乎是原始文件的副本意思是,在創建修改的應用程序時,我的應用程序在不知情的情況下不會扭曲文件。

百分比值會更好地表示這些文件有多少不同。 我試着對這兩個文件進行FFT,然後計算dB的差值(如10 * log10(ft1/ft2))並將結果取平均值。我得到了一個結果數字,但我不確定這個數字是什麼意思。

在此先感謝您提供任何幫助。

回答

0

除了譜圖的相似程度外,您獲得的數字並不真正表示任何內容。修改音頻文件的方式有很多種,比較它們的方法有很多,所以不可能給出一個通用的答案。如果你確切知道做了哪些修改,那麼你可以做一個合理的工作。例如,如果你知道唯一的修改是音量已經被一個常數因子改變了,那麼如果你取FFT的平方幅度並對其進行歸一化(即重新調整以使峯值爲1.0),那麼對於原始和修改的信號。你可以計算兩個FFT幅度之差的總和,但這只是一個數字,你不能以任何有意義的方式將其轉換爲百分比(如果我說兩個聲音有30%不同,這意味着什麼?)

所以我會後退一點,並找出你正在嘗試解決的實際上的問題。

+0

:謝謝你的答覆,從平方幅度,我想你的意思是sqrt(sqr(re)+ sq(im))的FFT樣本。無論如何,假設我有一個波形文件,並將其用作一個軟件的輸入,該軟件減少音量,並給出輸出波形文件。現在我想比較這些文件以確認我的軟件沒有移動波形或扭曲太多。我想波形的形狀必須相同,只有幅度會受到影響。 – Garfield