頻譜圖(Spectrogram)是什麼?

時頻表示,將音訊訊號分解為時間與頻率的二維矩陣,視覺化與分析訊號特徵的基本工具。|本頁含完整原理、應用場景、iPAS 考試重點與 3 個常見問答。

英文
Spectrogram
主題標籤
時頻分析、訊號處理、音訊特徵
考點定位
非 iPAS 核心術語
最後更新
2026/06/23
頻譜圖(Spectrogram)是什麼? 時頻分析訊號處理
術語快查

搜尋意圖: 如果你在找「頻譜圖 是什麼」或「頻譜圖 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。

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

實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。

下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。

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

頻譜圖(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:可視化音訊編輯工具。

常見問題

頻譜圖上的時間-頻率解析度取捨是什麼?

這源於 Heisenberg 時間-頻率不確定性原則:無法同時達到任意好的時間解析度與頻率解析度。幀長越長(如 2048 點),FFT 輸出的頻率 bin 越多,頻率解析度越高,但每幀代表的時間較長,時間解析度差(無法精確定位快速變化事件,如爆破音)。幀長越短,時間解析度好但頻率解析度差(低頻的相鄰頻率分不開)。實踐中:語音用 20-25 ms 幀長達到良好平衡;音樂用 46+ ms 以捕捉和弦與低頻結構。

梅爾頻譜圖相比線性頻譜圖有什麼好處?

梅爾刻度將頻率軸轉換為符合人耳感知的非線性尺度,低頻區間密集、高頻稀疏。對於機器學習模型,梅爾頻譜圖有幾個優勢:一、信息密度均勻(低頻的小變化與高頻的大變化都被等權對待),神經網路更易學習;二、減少高頻噪聲的影響,特別是在有背景雜訊的環境;三、梅爾頻譜常用於音樂與語音處理,已有大量預訓練模型基於它。缺點是喪失了原始頻率信息,若需要精細頻率分析(如樂器識別中的諧波檢測),線性頻譜更合適。

為什麼神經網路需要 SpecAugment,而傳統方法不用?

深度神經網路有強大的擬合能力,容易過擬合特定訓練集的視覺模式。SpecAugment 是一種正則化技巧,透過隨機遮罩時間和頻率區間,強迫模型學習更魯健、不依賴特定時頻位置的特徵。這相當於告訴模型:「聲音內容可能偏移時間、被雜訊遮蓋」,因此必須學習對這些變化不敏感的表示。傳統方法(如 GMM-SVM)的模型容量有限,不容易過擬合,因此不需要額外的資料增強。但現代深度模型(CNN、Transformer)若不用 SpecAugment,訓練集上表現好但測試集表現大幅下滑。