語音增強

語音增強（Speech Enhancement）旨在透過各類音訊訊號處理演演算法，提升語音訊號在各種聲學環境中的可懂度（intelligibility）與主觀音質（perceptual quality）。常見的干擾包括背景噪音、混響、回音（echo）與通道失真等。語音增強技術已廣泛應用於行動通訊、VoIP、視訊會議系統、語音辨識、助聽器及人機互動等領域。

在實際應用中，語音增強演演算法的設計面臨多重挑戰，例如環境噪音的不可預測性、多個說話者的干擾、處理延遲對即時通訊的影響，以及在行動裝置上對運算能力與功耗的限制。

## 噪音的類型與挑戰

語音增強技術的選擇與設計，很大程度上取決於需要處理的噪音類型。噪音在聲學特性上可大致分為兩類：

- 定常噪音（Stationary Noise）：指統計特性不隨時間變化的噪音。這類噪音的頻譜相對穩定，較容易透過演演算法進行估計和抑制。
- 例子：風扇運轉聲、空調噪音、白噪音、粉紅噪音。
- 非定常噪音（Non-stationary Noise）：指統計特性隨時間快速變化的噪音。這類噪音的不可預測性高，是語音增強領域中的主要挑戰。
- 例子：周圍他人的說話聲、背景音樂、鍵盤敲擊聲、突然的關門聲等脈衝噪音（Impulsive noise）。

## 核心演演算法分類

語音增強的演演算法可依其處理方式，概分為三大類：濾波技術、頻譜恢復技術，以及基於語音模型的技術。

### 濾波技術

濾波技術是語音增強中最經典的一類方法，其核心思想是設計一個或多個數位濾波器，用以抑制噪音頻段並通過語音頻段。

#### 頻譜差減法

頻譜差減法（Spectral Subtraction）為一基礎降噪技術，其核心思想假設噪音為加性且平穩的（additive and stationary）。基於此假設，演演算法從帶有噪訊的語音信號頻譜中，直接減去估計出的噪訊頻譜，以獲得純淨的語音頻譜。

基本原理

- 分段與轉換：將帶有噪訊的語音信號 $y(t)$ 切割成短時間音框（frame），並對各音框進行傅立葉轉換（FFT），得到其頻譜 $Y(f)$。
- 噪訊估計：利用語音訊號中無人聲的靜音區段（silence periods）來估計噪訊的平均功率譜 $|\hat{N}(f)|^2$。此步驟為效果關鍵，準確的噪訊估計直接影響降噪品質。
- 頻譜相減：將帶噪語音的功率譜 $|Y(f)|^2$ 減去估計的噪訊功率譜 $|\hat{N}(f)|^2$，從而得到估計的純淨語音功率譜 $|\hat{S}(f)|^2$。
- $$|\hat{S}(f)|^2 = |Y(f)|^2 - \alpha |\hat{N}(f)|^2$$
- 其中 $\alpha$ 為超參數（over-subtraction factor），用於控制減去的噪訊量。通常設定 $\alpha > 1$ 以避免噪訊殘留。
- 信號重建：將計算出的純淨語音功率譜 $|\hat{S}(f)|^2$ 與原始的帶噪語音相位 $\angle Y(f)$ 結合，再透過反傅立葉轉換（IFFT）重建成時域上的降噪語音信號 $\hat{s}(t)$。

優缺點

- 優點：演演算法直觀，計算複雜度低，對於如風扇聲、白噪音等穩定背景噪音有良好效果。
- 缺點：會產生音樂性噪音（Musical Noise），即處理後殘留的隨機頻譜尖峰所造成的惱人音調。同時，此方法對突發或非平穩的噪音（如鍵盤聲）效果不佳，且可能造成語音失真。

#### 維納濾波

維納濾波（Wiener Filter）是一種基於統計的最佳化濾波器，目標是使濾波後信號與原始純淨信號之間的均方差（Mean Square Error, MSE）最小化。它同時考慮了信號與噪訊的統計特性（即功率譜）。

基本原理

維納濾波器在頻域上的增益函數 $H(f)$ 被定義為：

$$H(f) = \frac{P_S(f)}{P_S(f) + P_N(f)} = \frac{\mathrm{SNR}(f)}{1 + \mathrm{SNR}(f)}$$

其中 $P_S(f)$ 與 $P_N(f)$ 分別為純淨語音和噪音的功率譜密度，而 $\mathrm{SNR}(f)$ 是與頻率相關的信噪比（Signal-to-Noise Ratio）。此濾波器會根據每個頻帶的信噪比進行動態調整，在信噪比高的頻帶保留較多信號，在信噪比低的頻帶進行較多抑制。

優缺點

- 優點：在均方差最小化的準則下為理論上的最佳線性濾波器。相較於頻譜差減法，能更好地平衡降噪與語音失真，並有效抑制音樂性噪音。
- 缺點：需要準確估計語音與噪音的功率譜，這在現實中難以達成。作為線性濾波器，其性能受限於此，且對非平穩噪音的處理能力依然有限。

#### 信號子空間方法

信號子空間方法（Subspace Approach 或 SSA）是一種基於矩陣分解的技術，它將帶噪信號所在的向量空間分解為兩個正交的子空間：一個由純淨語音信號構成的信號子空間（signal subspace），以及一個由噪訊構成的噪訊子空間（noise subspace）。

基本原理

此方法首先建立帶噪信號的協方差矩陣，接著透過特徵分解（Eigendecomposition）找出其特徵值與特徵向量。較大的特徵值對應的特徵向量構成了信號子空間，其餘則構成噪訊子空間。降噪的過程是將原始信號投影到信號子空間上，從而濾除位於噪訊子空間中的雜訊成分。

優缺點

- 優點：模型嚴謹，對白噪音與有色噪音均有效，在低信噪比環境下通常優於前兩者。
- 缺點：計算複雜度高，尤其是特徵分解步驟，使其較不適用於即時系統。如何準確劃分信號與噪訊子空間的維度（dimension）是其關鍵挑戰。

#### 適應性濾波

適應性濾波（Adaptive Filter）是一種能夠根據輸入信號的統計特性自動調整其濾波器參數（係數）的技術。在語音增強中，它常被用於回音消除（Acoustic Echo Cancellation, AEC）和噪音抑制。

其基本架構包含一個可調參數的數位濾波器（通常是FIR濾波器），以及一個根據誤差信號來更新濾波器參數的自適應演演算法。最經典的演演算法是LMS（Least Mean Squares）及其變種。在回音消除的場景中，系統會將遠端的語音作為參考信號，預測本地麥克風會收到的回音，並從麥克風信號中將其減去。

### 頻譜恢復技術

這類方法旨在從帶噪信號的頻譜中，直接估計出純淨語音的頻譜。

- MMSE-STSA（Minimum Mean Square Error Short-Time Spectral Amplitude Estimator）：最小均方誤差短時譜幅度估計器，是此類方法中最具代表性的演演算法之一。它透過統計模型估計語音頻譜的幅度，而非像維納濾波一樣設計一個濾波器。

### 基於語音模型的技術

此類方法利用預先訓練好的語音模型來輔助降噪，能夠更好地保留語音的自然度與結構。

- 統計模型方法：早期研究利用隱藏馬可夫模型（HMM）或高斯混合模型（GMM）對語音和噪音的統計分佈進行建模，再透過貝氏推論等方法分離噪音。
- 深度學習方法：近代，以深度神經網路（DNN）為基礎的方法成為主流，也被稱為神經元語音增強（Neural Speech Enhancement）。這類方法透過大量數據學習從帶噪語音到純淨語音的複雜映射關係。常見的模型架構包括：
- 循環神經網路（RNN），特別是LSTM與GRU
- 卷積神經網路（CNN），如 U-Net 架構
- Transformer
- 生成對抗網路（GAN）

這些模型在處理非平穩、複雜的真實世界噪音時，其性能通常遠超越傳統演演算法。

## 性能評估

為了衡量語音增強演演算法的效果，研究人員使用主觀與客觀兩種評估指標。

### 主觀評估

主觀評估透過人類聽眾直接對處理後的語音品質進行評分。雖然耗時且成本高，但其結果最能反映真實的聽感。

- 平均意見分數（Mean Opinion Score, MOS）：是最常用的主觀評估指標。聽眾會對語音的音質或可懂度給出1分（差）到5分（優）的評分，最終取所有聽眾的平均分數。

### 客觀評估

客觀評估使用數學模型來預測語音的品質或可懂度，優點是快速、可重複且成本低。這些指標通常透過計算原始純淨語音與增強後語音之間的差異或關聯性來評分。

- 信噪比（SNR）：衡量信號與噪音的功率比例，是最基礎的指標，但其分數有時與人類主觀感受關聯性不佳。
- PESQ（Perceptual Evaluation of Speech Quality）：為ITU-T P.862標準。它透過心理聲學模型來模擬人類的聽覺系統，是評估語音音質（Quality）的常用指標。
- STOI（Short-Time Objective Intelligibility）：專門用於評估語音的可懂度（Intelligibility）。它透過比較原始語音和處理後語音在短時間內的頻譜關聯性來計算分數，其結果與人類的語音辨識率高度相關。

## 外部連結

- Speech Enhancement – OGI School of Science and Engineering
- Speech Enhancement for Android – Educational demo
- Speech Enhancement Audio Demonstrations by Prof. Philipos C. Loizou – 提供多種演演算法處理前後的音訊範例，效果一目了然。
- ITU-T Recommendations – 國際電信聯盟(ITU-T)標準文件，可查詢P.862 (PESQ)等相關標準。
- SpeechBrain: A PyTorch Speech Toolkit – 一個涵蓋語音增強等多種任務的現代開源工具庫。