頻譜圖 是什麼?

Spectrogram:頻譜圖 的完整解釋

時頻表示,將音訊訊號分解為時間與頻率的二維矩陣,視覺化與分析訊號特徵的基本工具。

頻譜圖(Spectrogram)是音訊訊號分析與可視化的基礎工具,打開任何現代音訊編輯軟體都能看到它的身影。從物理上,它揭示了聲音在時間與頻率維度上的能量分布;從機器學習角度,它是現代語音與音訊分類模型的主要輸入特徵。

短時傅立葉變換(STFT)基礎

傅立葉變換將時域訊號轉換為頻域,但喪失時間資訊:無法知道某個頻率何時出現。短時傅立葉變換(Short-Time Fourier Transform,STFT)克服此問題:

STFT(t, f) = ∫ x(τ) × w(τ - t) × e^(-j2πfτ) dτ

簡化言,STFT 是:

  1. 將訊號分幀(幀長 N,幀移 M)。
  2. 對每一幀應用窗函數,減少邊界失真。
  3. 對每一幀進行 FFT。
  4. 提取每幀的頻譜幅度(magnitude)與相位(phase)。

頻譜圖的構造

輸出:時頻矩陣 S,維度 (F, T),其中 F 是頻率 bin 數,T 是時間幀數。

S[f, t] = | STFT(t, f) |

視覺化:

  • 橫軸:時間(秒)
  • 縱軸:頻率(Hz)或梅爾刻度(Mel)
  • 色深或灰度:能量大小(dB 或線性刻度)

參數與設計選擇

  1. 窗函數(Window Function)

    • 漢寧窗(Hanning):最常用,50% 重疊時無光譜洩漏。
    • 哈姆明窗(Hamming):旁瓣更低,但主瓣稍寬。
    • 高斯窗:時頻局限性最好(Heisenberg 原則的下限)。
    • 權衡:寬窗口 → 頻率解析度好但時間解析度差;窄窗口 → 反之。
  2. 幀長(Window Size)與幀移(Hop Length)

    • 語音:通常 20-25 ms 幀長,10 ms 幀移(50% 重疊)。
    • 音樂:4096-8192 點(~ 93-186 ms @ 44.1 kHz),2048 點幀移。
    • 時間-頻率取捨:長幀 → 頻率解析度高但時間解析度低;短幀 → 反之。
  3. FFT 大小(N_fft)

    • 通常 512(10 ms @ 51.2 kHz)到 2048(~ 46 ms)。
    • 零填充(zero-padding)到 2 的冪,加速 FFT 計算。
  4. 頻率軸線性 vs. 梅爾

    • 線性頻譜圖:頻率均勻分布,適合頻譜分析細節。
    • 梅爾頻譜圖:頻率按梅爾刻度分布,符合人耳感知,適合音樂與語音任務。

頻譜圖的物理與直觀解釋

在頻譜圖上可直觀看到:

  1. 基頻與諧波

    • 基頻:最低的水平暗紋。
    • 諧波:整數倍基頻位置的明亮線條,對語音辨識中的說話者識別很重要。
  2. 甲音與共振峰

    • 共振峰(Formants):語音特徵,表現為集中的能量帶。
    • 不同元音有不同的共振峰特徵(例如 /a/ 的 F1 ~ 700 Hz, F2 ~ 1200 Hz)。
  3. 瞬發聲學事件

    • 爆破音、摩擦音等的突發能量。
    • 音樂中鼓聲、鋼琴敲擊的瞬間。
  4. 白噪聲 vs. 有色噪聲

    • 白噪聲:全頻均勻亮度。
    • 背景噪聲:通常能量集中在低頻。

頻譜圖與神經網路

現代語音與音訊識別模型(CNN、Transformer)將頻譜圖視為圖像:

  • 梅爾頻譜圖 (1, F, T) → 單通道 2D "圖像"。
  • 特定層的特徵圖表達了時頻模式(如過渡特徵、音樂節拍、重音)。
  • 卷積濾波器自動學習有意義的時頻模式,而無需人工設計。

頻譜圖的數據增強

在訓練中常應用以下增強以提升模型魯健性:

  1. SpecAugment

    • 時間軸遮罩(Time Masking):遮蓋連續的時間幀。
    • 頻率軸遮罩(Frequency Masking):遮蓋連續的頻率 bin。
    • 簡單但有效,在 ImageNet 等視覺任務啟發下設計。
  2. 時間拉伸/變速

    • 改變時間軸尺度(保持內容),模擬不同說話速率。
  3. 頻率位移

    • 平移頻率軸,模擬不同的採樣率或聲音特性。
  4. 加性雜訊

    • 在頻域或時域加入背景噪聲。

相位重建與聲碼器的角色

STFT 提取幅度譜但通常丟棄相位。要恢復波形需要:

  1. Griffin-Lim 演算法(傳統)

    • 迭代相位重建,但質量有限(重建語音聽起來機械化)。
  2. 神經聲碼器(現代)

    • WaveNet、WaveGlow、HiFi-GAN 等,直接從梅爾頻譜生成波形。
    • 避免相位重建的複雜性,輸出自然音質。

頻譜圖的評估與詮釋

視覺上檢視頻譜圖:

  • 檢查背景雜訊水平(頻譜圖底部的「噪聲地板")。
  • 識別主要頻率成分與異常(如爆炸聲、金屬聲)。
  • 評估訊噪比(SNR)。
  • 對比正常與異常樣本,找出判別特徵。

開源工具

  • Librosa:Python 函式庫,繪製與分析頻譜圖標準選擇。
  • matplotlib:基礎繪圖。
  • Audacity:可視化音訊編輯工具。

常見問題