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

什麼是 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) 編碼,這是一種將音頻訊號轉換為數位資料的方法。PCM
是 WAV
檔案中最常見的編碼方式,它保留了音頻的原始品質,適合高品質音頻的應用。
PCM
(Pulse Code Modulation,脈衝編碼調變) 是一種數位訊號編碼技術,用於將類比訊號轉換為數位訊號。以下是 PCM 的基本工作原理:
-
取樣 (Sampling)
將連續的類比訊號在固定的時間間隔內進行取樣,得到一系列離散的數據點。
-
量化 (Quantization)
將取樣得到的數據點轉換為有限數量的離散值,通常是將訊號幅度分成若干級別。
-
編碼 (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 是一個相對較高的音量,通常相當於非常響亮的聲音,例如:
-
聲道數 (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-bit
、1 channel
、16kHz
的 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-bit
、2 channel
、48kHz
的 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 的關係,以及如何計算檔案大小,有助於更好地管理音頻資源。對於需要壓縮或網上分享的場景,可考慮 MP3
或 FLAC
等格式。
相關連結