The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

理解 WAV 格式:從 PCM 編碼格式到檔案大小計算方法

最近正在設計一個「即時口譯」的應用,可以幫助我們客戶在舉辦現場活動或即時線上活動時,可以提供多語言的口譯服務。我們需要將語音輸入訊號轉換為文字,然後再轉換為其他語言的語音。在這個過程中,首先要先深入瞭解常見的 WAV 格式,瞭解之後才能做一些更深層的細部操作。這篇文章將深入探討 WAV 格式,從 PCM 編碼格式到檔案大小計算方法,讓我們更好地處理音頻資料。

An abstract digital artwork representing WAV audio format and PCM encoding. The image features a blend of sound waveforms, binary code, and mathematic

什麼是 WAV 格式?

WAV (Waveform Audio File Format,波形音頻檔案格式) 是一種常見的音頻檔案格式,通常用於儲存未壓縮的音頻數據,它廣泛應用於音樂製作、音效編輯和廣播等需要高品質音頻的場景。它是由微軟和 IBM 於 1991 年開發的音頻檔案格式,基於資源交換檔案格式 (RIFF) 的子集。

RIFF (Resource Interchange File Format,資源交換檔案格式) 是一種用於多媒體資料的檔案格式,主要用於儲存音頻、影像和其他多媒體數據。RIFF 檔案由一系列稱為「區塊」 (chunks) 的資料結構組成,每個區塊包含一個識別符號資料。RIFF 檔案的結構類似於 IFF (Interchange File Format),但專為 Microsoft Windows 系統設計。

WAV 檔案的優點與缺點如下:

  • 優點

    • 未壓縮,保持原始音質,適合專業錄音和編輯。
    • 廣泛兼容,幾乎所有音頻軟體和硬體都有支援。
    • 無數據損失,適合長期檔案保存。
  • 缺點

    • 檔案大小大,儲存和傳輸成本高。
    • 不適合串流媒體或網上分享,特別是長時間錄音。

WAV 檔案的常見用途:

  • 音樂製作和音效編輯,確保高品質音頻。
  • 音頻檔案保存,如圖書館和研究機構 (如 Macaulay Library)。
  • 遊戲音效和廣播,需高保真度。
  • 與音頻軟件兼容,如 DAW (數位音頻工作站)。

關於 PCM 編碼格式

WAV 檔案通常使用 PCM (Pulse Code Modulation) 編碼,這是一種將音頻訊號轉換為數位資料的方法。PCMWAV 檔案中最常見的編碼方式,它保留了音頻的原始品質,適合高品質音頻的應用。

PCM (Pulse Code Modulation,脈衝編碼調變) 是一種數位訊號編碼技術,用於將類比訊號轉換為數位訊號。以下是 PCM 的基本工作原理:

  1. 取樣 (Sampling)

    將連續的類比訊號在固定的時間間隔內進行取樣,得到一系列離散的數據點。

  2. 量化 (Quantization)

    將取樣得到的數據點轉換為有限數量的離散值,通常是將訊號幅度分成若干級別。

  3. 編碼 (Encoding)

    將量化後的離散值轉換為二進制數據,形成數位訊號。

PCM 廣泛應用於音頻數據的數位化,例如電話系統、CD 音頻和其他數位音頻應用中。PCM 的優點是能夠提供高品質的音頻訊號,但缺點是數據量較大,因為它是無壓縮的音頻格式。

WAV 與 PCM 的關係

WAV 是檔案格式,而 PCM 是音頻數據的編碼方式。

兩者關係可比喻為:

  • PCM純粹的音頻原料 (一連串數位訊號)。
  • WAV裝在盒子裡的原料,盒子上標有說明書 (Metadata),告訴播放器如何處理數據。

WAV 檔案通常包含 PCM 數據,但也可能使用其他編碼,如 ADPCM (適應性差分脈衝編碼調製) 或 MP3,雖然這較少見。

例如,16 位元、1 聲道、16kHz 的 WAV 檔案,其資料分塊 (chunk) 就是 PCM 編碼的,適合語音錄音。

深入理解 WAV 格式

WAV 檔案的特點主要包括以下幾個方面:

  • 位元深度 (bit depth)

    這是指每個音頻樣本使用的位數,以常見的 16-bit 位元深度為例,16-bit 提供了約 65,536 個可能的幅度值 (amplitude value),影響動態範圍和音質。動態範圍約為 96 dB (分貝),適合 CD 品質的音頻,平衡了細節和檔案大小。

    96 dB 是指聲音的音量強度,單位是分貝 (dB)。分貝是一種對數單位(Logarithmic Unit),用於表示聲音的強度功率水平

    對數單位 (Logarithmic Unit) 是一種使用對數尺度來表示數值的單位。這種單位的特點是數值的變化是以對數的形式表示的,而不是線性的。對數單位常用於表示範圍很大的數值,例如聲音強度、地震強度和信號功率等。除了分貝,常見的對數單位還有貝爾 (Bel) 或 里氏震級 (Richter Scale),其中 Richter Scale 用於表示地震強度的單位。里氏震級是以 10 為底的對數單位,每增加 1 級表示地震能量增加約 31.6 倍。

    96 dB 是一個相對較高的音量,通常相當於非常響亮的聲音,例如:

    • 一個繁忙的城市街道的噪音大約是 85 dB

    • 一個汽車喇叭的聲音大約是 100 dB

      在數位音頻中,96 dB 也可以用來描述動態範圍,即從最安靜到最響亮的聲音之間的差異。這通常與音頻的取樣位數有關,例如 16-bit 的 PCM 音頻的理論動態範圍約為 96 dB。

  • 聲道數 (channels)

    在單一檔案中儲存的音頻數量,1單聲道 (mono),2立體聲 (stereo)。

    我們常聽到的立體聲 (stereo) 音頻是由左聲道右聲道組成的,那就代表有 2 個聲道,這樣可以營造出空間感和立體效果。

    在某些情況下,音頻可能只有單聲道 (mono),那就代表只有一個聲道,例如你在用一支麥克風收音的時候,理論上就只會有一個聲道。但是我們用錄音軟體錄製的時候,通常會幫你複製成兩個聲道。這是因為大部分人的喇叭都有立體聲 (兩個喇叭),如果你在播放單聲道的音檔時,就有可能只有一個喇叭有聲音,一般人可能會覺得怪怪的,感覺喇叭好像壞了。

    我們買音響的時候,有人會刻意買 5.1 聲道的音響,那就代表你在看影片時可以同時播放 5 個聲道,其中 1 個是低音炮,另外 5 個是喇叭,這樣可以營造出更加立體的效果。不過,如果你觀看的影片來源並沒有這麼多的聲道,那麼播放時也不會真的發揮身歷其境的效果。相對的,聲道數越多,檔案大小也會越大,因為需要更大的頻寬來傳輸更多的聲道數據。

    我們在做聲音處理的時候,尤其是做「即時轉錄」音訊的場景,大部分時候只需要單聲道就足夠了,因為這樣可以節省一半的空間,也可以減少一半的計算量。

    當然,如果你的活動有多位講者,每位講者各有一個麥克風,每個麥克風要分別做不同的轉錄,那就可能會需要兩個或更多聲道,這些資訊都可以同時儲存在一個 WAV 檔案中。

  • 取樣率 (Sampling Rate)

    取樣率是指每秒鐘連續訊號進行取樣的次數,單位是赫茲 (Hz)。取樣率越高,數位化後的訊號越能精確地重現原始的類比信號,也意味著音訊的品質越好。

    赫茲 (Hertz) 是頻率的國際單位,表示每秒發生的週期性事件的次數。它是以德國物理學家海因里希·赫茲 (Heinrich Hertz) 的名字命名的。赫茲的應用範圍非常廣泛,包括音頻、電磁波、計算機時鐘速度等。

    取樣率為每秒 16,000 次,我們會用 16kHz 表示,根據奈奎斯特定理(Nyquist Theorem),該數位音頻最多只能捕捉最高 8kHz 的頻率,適合語音應用 (如電話錄音),但對於音樂可能缺乏高頻細節。由於人耳可聽範圍約為 20kHz,因此若要滿足人類音樂的需求,取樣率可能需要 48kHz 以上,才能滿足大部分的人類。

    奈奎斯特定理 (Nyquist Theorem),也稱為奈奎斯特-香農取樣定理 (Nyquist-Shannon Sampling Theorem),是數位訊號處理中的一個基本定理。它描述了如何從數位取樣中準確重建原始的類比信號。

    以我們這次的專案來說,16kHz 的取樣率已經足夠應付大部分的語音應用,因為人類語音的頻率範圍通常在 0Hz 到 4kHz 之間。

對於 WAV 檔案大小估算

要計算 WAV 檔案的大小,只要理解上述原理,就不難透過公式計算出可能的大小。

檔案大小的計算公式為:檔案大小 (位元組) = (取樣率 × 位元深度 × 聲道數 × 持續時間) / 8。

  • 範例一:16-bit1 channel16kHz 的 WAV 檔案大小

    16-bit 表示每個樣本使用 16-bit 數據,1 channel 表示單聲道音頻,16kHz 表示每秒 16,000 次取樣。

    檔案大小可通過以下公式計算:

    檔案大小 (位元組) = 取樣率 * 位深度 * 聲道數 * 持續時間 (秒)

    例如,10 秒的音頻檔案大小為:

    16,000 x 16 x 1 x 10 = 320,000 bytes = 320 KB

    如果要播放這 10 秒的音頻,每秒的傳輸速度就必須為 320 KB / 10 = 32 KB/s

    轉換為 bit 單位的話,就是 32K x 8 = 256 Kbps

  • 範例二:32-bit2 channel48kHz 的 WAV 檔案大小

    檔案大小可通過以下公式計算:

    檔案大小 (位元組) = 取樣率 * 位深度 * 聲道數 * 持續時間 (秒)

    例如,10 秒的音頻檔案大小為:

    48,000 x 32 x 2 x 10 = 30,720,000 bytes = 30,720 KB = 30.72 MB

    如果要播放這 10 秒的音頻,每秒的傳輸速度就必須為 30,720 KB / 10 = 3,072 KB/s

    轉換為 bit 單位的話,就是 3,072 K x 8 = 24,576 Kbps

學會計算 WAV 檔案大小,有助於評估頻寬儲存需求,特別是與壓縮格式 (如 MP3) 相比,WAV 檔案通常較大。

結論

WAV 檔案是高品質音頻的理想選擇,特別適合專業應用和長期保存。理解其結構、與 PCM 的關係,以及如何計算檔案大小,有助於更好地管理音頻資源。對於需要壓縮或網上分享的場景,可考慮 MP3FLAC 等格式。

相關連結

留言評論