2014-09-19 83 views
1

我跟隨python挑戰謎語,現在我需要分析一個wav文件。我知道有一個python模塊可以讀取這些幀,並且這些幀是16bit或8bit。WAV文件中的實際數據是什麼?

我不明白,這是什麼代表?這些值是否直接轉化爲施加於揚聲器的電壓(通過分解)?

回答

3

這些位表示特定時刻電波形的電壓電平。

要的聲波的電錶示(模擬信號)轉換成數字數據,則sample the waveform at regular intervals,像這樣:

enter image description here

每個藍點的表示一個四比特的值表示模擬信號在該時間點的高度(X軸是時間,Y軸是電壓)的數字。在.WAV文件中,這些點由8位數字(具有256個不同的可能值)或16位數字(具有65536個不同的可能值)表示。每個數字中的位數越多,數字採樣的準確性就越高。

+0

我在某處讀到16位版本已簽名,是否意味着樣本的瞬時高度會自動移位? – Yotam 2014-09-19 19:41:56

+1

這意味着零點位於X軸的中心(波的中心),而負數表示軸下方的值。 – 2014-09-19 19:42:33

3

WAV文件實際上可以包含各種各樣的東西,但它最典型的是linear pulse-code modulation (LPCM)。每個框架包含每個通道的樣本。如果您正在處理單聲道文件,那麼每個幀都是單個樣本。採樣率指定每個通道每秒有多少個採樣。 CD音質是每秒44,100次的16位採樣。

這些樣本實際上是測量該時間點的壓力水平。設想一個揚聲器壓縮它前面的空氣來創造聲音,來回振動。對於這個例子,你可以將樣本水平等同於揚聲器錐體的位置。