2011-03-11 124 views
3

我有一個兩個音頻文件一個是原始文件,另一個我通過反轉一些位損壞它,如何比較這兩個文件的質量是否有任何算法或軟件,我可以比較兩個文件的質量。比較這兩個音頻文件

+0

什麼是質量?你可以單獨比較「質量」,因爲質量是一個主觀的人類範疇。另外,什麼樣的文件:PCM,MP3,什麼? – 2011-03-11 09:34:02

+0

@ DanielMošmondor.MP3文件 – asir 2011-03-11 09:56:03

回答

1

"any algorithm or an software":你想編程嗎?

  • 如果你想有一個軟件,爲你做這個:計算器幫不了你

  • 如果你願意程序(庫至少通話功能),這是一個不同的故事:

有一些庫可以做到這一點,特別是首先將音頻從壓縮轉換爲WAVEFORM格式(庫選擇取決於您的音頻格式)。或者您的音頻是波形格式?你沒有告訴。如果您有波形格式的音頻(例如*中的原始音頻以22khz簽名的16bit單聲道),您可以自己輕鬆編程:由於您對音頻所做的唯一損害是bitflips,因此您可以對它們進行迭代,然後總結差異:你必須考慮波形的格式:你不能比較比特級別(因爲每個比特有不同的意義);如果您有*簽名的16位音頻,您必須在C中使用int類型,以便A)比較已簽名且B)差異不會溢出。

+0

此外,您可能希望對這個「絕對差異總和」進行加權:如果在所有有符號的16位值之間的差值小於5,則沒有可聽見的差異,另一方面,如果存在每1000個樣本的差異是1000,這是一個非常煩人的CLICK。 – 2011-03-11 09:41:52

1

聲音質量的一種物理測量是SNR:http://en.wikipedia.org/wiki/Signal-to-noise_ratio。我不知道有任何lib爲你做,但它不是很難做你自己:

  • 計算噪聲:noise [n] = manipulated [n] - original [n],n =樣本索引
  • 計算「噪聲」和「原始」的功率:p_noise [n] = noise [n] * noise [n],...
  • 通過將SNR = n] = p_original [n]/p_noise [n]

你可能想要計算一個平均值(!)信噪比......我希望你能弄清楚如何自己做。這應該把你放在正確的軌道上。