2012-06-01 193 views
1

我可以找到一種方法來獲取每個幀的音頻文件的頻率:.mp3或.wav或任何其他聲音格式,使用「fmod」或「cwave 「圖書館甚至其他圖書館? 如何在C/C++中找到這個頻率?音頻文件的每個幀的音頻頻率,如.mp3 .wav

+2

MPEG音頻層III稱爲「幀」的是1152個樣本塊,即不存在「每幀的頻率」這樣的東西。我建議你做一些閱讀(比如,MP3或WAV是如何構建的,以及選擇的庫的API文檔),然後返回,當你可以詢問更具體的問題時。 – DevSolar

+0

問題等於:如何獲得特定視頻幀的顏色? –

+0

謝謝。但我沒有找到一個MP3或WAV建設的好來源。我可以有一個音頻文件mili秒(或類似的)的頻率? –

回答

2

FFTW庫是一組快速實現不同的傅里葉變換。

0

如果您擁有大量數字化音頻樣本,則幾乎總共有許多頻率爲階段,因爲您已獲取樣本。假設你只有兩個音頻樣本。爲了忠實地代表它們,你需要一個頻率和一個相位 - 同樣是兩個值。沒有「單一」頻率來表示多個數字化音頻樣本。

當然,您可以類似於「如何獲得特定視頻幀的顏色?」的問題,詢問平均頻率是多少。或者你可以問什麼是最突出的頻率(振幅最高的頻率)。或者你可以詢問信號中帶有最多能量的頻率是多少(假設信號是物理的,就像電流採樣的時間一樣)。

在所有這些情況下,您可能需要使用內部使用FFT或類似離散變換的預製庫來獲取從時域到頻率或類似域的信號(例如,quefrency domain,這不是一個錯字)。你很難從普通的FFT中得到你想要的結果,你需要一些數學訓練來處理原始FFT結果。我確定有這樣的圖書館,我現在想不出任何。也許處理這種工作的人可以編輯答案。