當前位置:編程學習大全網 - 編程語言 - 單通道語音增強之綜述

單通道語音增強之綜述

單通道語音增強是語音信號處理中廣泛研究的課題,主要作為前端去噪模塊應用在提升音質、語音通信、輔助聽覺、語音識別等領域。 單通道語音增強問題定義主要包括兩個方面:

不包括:

單通道語音增強傳統的方法是濾波和統計信號處理,比如WebRTC的噪聲抑制模塊就是用維納濾波。 這些傳統的方法基本都在 《語音增強--理論與實踐》壹書中有詳細講解。

近幾年機器學習方法興起,也逐漸成為語音增強的主要研究方向,各種新型神經網絡的方法都被嘗試用在語音增強領域。這些新方法主要看近幾年的InterSpeech會議、ICASSP會議和IEEE的期刊。

下面先對單通道語音增強號的基本處理步驟做個簡單介紹。

假設麥克風采集到的帶噪語音序列為 ,並且噪聲都是加性噪聲。則帶噪語音序列為無噪語音序列與噪聲序列的和。 原始語音信號與噪聲均可視為隨機信號。

語音信號的處理壹般都在頻域,需要對帶噪信號 進行分幀、加窗、短時傅裏葉變換(STFT)後,得到每壹幀的頻域信號,其中X,Y,D分別是幹凈語音、帶噪信號和噪聲的頻域信號。

語音增強的目標是對實際信號 的幅度和相位進行估計。但是因為相位不易估計、而且研究表明相位對去噪效果影響比較小\cite{wang1982unimportance},所以大部分方法都只對幅度譜進行增強,而相位則沿用帶噪信號的相位。

換句話說,語音增強就是要找出壹個頻域的實函數 , 並且將這個函數與帶噪信號相乘,得到幹凈語音的估計。這個實函數稱作抑制增益(Suppression Gain)。

下面是單通道語音增強系統主要步驟的示意圖,系統目標就是估計抑制增益,而抑制增益依賴於兩個核心步驟:語音檢測VAD和噪聲估計模塊。只有準確估計噪聲譜 ,才有可能準確估計抑制增益。 詳細的VAD和噪聲估計方法不在這篇文章裏面詳述,具體可以看參考文獻。 壹種簡單的想法是先估計出VAD,如過判斷此幀沒有語音,則更新噪聲譜,否則就沿用上壹幀的噪聲譜。

綜上,語音增強的典型流程就是:

1 對帶噪語音y[n]分幀, 每壹幀進行DFT得到 。

2 利用 進行VAD檢測和噪聲估計。

3 計算抑制增益 。

4 抑制增益 與帶噪信號譜相乘,得到純凈語音譜

5 對 進行IDFT,得到純凈語音序列的估計 。

噪聲估計模塊可以估計噪聲功率,也可以估計信噪比,避免信號幅度變化帶來的誤差。

定義後驗信噪比為,帶噪語音與噪聲功率之比:

定義先驗信噪比,為純凈語音與噪聲功率之比:

譜減法是最直觀的去噪聲思想,就是帶噪信號減去噪聲的頻譜,就等於幹凈信號的頻譜。估計信號頻譜的表達式如下,其中 應是噪聲估計模塊得到的噪聲頻譜。

假設語音信號與噪聲不相關,於是得到估計的信號功率譜是測量信號功率譜減去估計的噪聲功率譜。

因此抑制增益函數即為:

維納濾波的思想也很直接,就是將帶噪信號經過線性濾波器變換來逼近原信號,並求均方誤差最小時的線性濾波器參數。維納濾波語音增強的目標就是尋找系數為實數的線性濾波器,使得濾波偶信號與原幹凈語音信號之間的均方誤差最小。這是壹個優化問題,目標是求使得均方誤差最小的參數

Gain用先驗信噪比表示

見博文 《單通道語音增強之統計信號模型》 。

待補充。

話音激活檢測(Voice Activity Detection, VAD) 將語音幀二分為“純噪聲”和“語音噪聲混合”兩類。 說話人靜音、停頓都會出現多幀的純噪聲,對這些幀無需估計語音信號,而可以用來估計噪聲功率。 語音幀經過VAD分類後,進行不同的處理:

:不含語音幀,更新噪聲功率估計和Gain, 進行抑制;

:包含語音幀,沿用上壹幀的噪聲功率和Gain,進行抑制。

語音存在概率SPP(Speech Presence Probability,SPP) 跟VAD作二分類不同,利用統計模型對每壹幀估計出壹個取值在[0,1]的語音存在概率,也就是壹種soft-VAD。 SPP通常跟統計信號模型結合起來估計最終的Gain。

壹種估計SPP的方法是根據測量信號 估計每個頻點的語音存在的後驗概率,也就是

根據貝葉斯公式:

定義語音不存在的先驗概率 為 , 語音存在的先驗概率 為 。假設噪聲與語音信號為零均值復高斯分布。最終可以得到SPP計算公式:

其中為 為條件信噪比,有 及 。

語音不存在的先驗概率 可以采用經驗值,如0.5,或者進行累加平均, 也可以參考《語音增強—理論與實踐》中更復雜的算法。

最小值跟蹤發的思想是,噪聲能量比較平穩, 帶語音的片段能量總是大於純噪聲段。 對於每個頻點,跟蹤壹段時間內最低的功率,那就是純噪聲的功率。

為了使功率估計更穩定,通常要對功率譜進行平滑處理:

然後尋找當前第 幀的最低功率 。簡單的方法是直接比較前 幀的功率,得到最小值,計算速度較慢。

還有壹種方法是對 進行非線性平滑,公式如下。

參數需要調優,可以參考文獻中提供的取值: 、 、 。

這種估計方法的思路是,噪聲的能量變化比語音穩定,因此按頻點統計壹段時間內的能量直方圖,每個頻點出現頻次最高的能量值就是噪聲的能量。 主要包括以下幾個步驟:

1.計算當前幀的功率譜

2.計算當前幀前連續D幀功率譜密度直方圖,選擇每個頻點k的頻次最高的功率值

3.滑動平均,更新噪聲功率譜密度

當前幀的SNR很低,或者語音出現概率很低時,意味著當前信號功率很接近噪聲功率,我們可以用當前幀的功率譜與前壹幀估計的噪聲功率進行加權平均,從而更新噪聲功率譜。這就是遞歸平均法,通用的公式是:

算法的核心變成了計算參數 ,研究者提出了不同的方法,比如可以根據後驗信噪比 計算參數:

用 和 分別代表當前幀包含語音和不包含語音,從概率論的角度,當前幀的噪聲功率期望值為:

其中,當前幀不存在語音時,噪聲功率就是信號功率,所以

。當前幀存在語音時,可以用前壹幀估計的噪聲功率來近似,

。噪聲的遞歸平均算法轉化為求當前幀每個頻點的語音存在/不存在概率問題:

比照遞歸平均的通用公式,也就是

。 使用前壹節介紹的語音存在概率SPP計算方法求

即可。

MCRA是壹種將最小值跟蹤與基於語音概率的遞歸平均結合起來的算法,核心思想是用當前幀功率譜平滑後與局部最小功率譜密度之比來估計語音概率。

以某閾值 對語音概率 進行二元估計

語音概率也可以進行平滑:

另外,如果將語音不存在是的噪聲估計也做滑動平均,也就是

可以得到最終的噪聲概率估計公式:

後驗信噪比的估計比較直接,就是帶噪信號功率與估計噪聲功率之比: 。然後 。

先驗信噪比是純凈信號功率與噪聲功率之比,無法直接得知,需要更進壹步估計。壹種方法是簡單譜減法,從功率角度 。 因此

更精確的方法是判決引導法(Decision-directed approach), 滑動平均

參考文獻

[1] P. C. Loizou, Speech enhancement: theory and practice. CRC press, 2007.

  • 上一篇:慶余年:清朝這麽強大,他最後是怎麽死的?
  • 下一篇:求高手幫忙翻譯壹份英文資料!!!謝謝大家!!急用~ ~ ~
  • copyright 2024編程學習大全網