邦錦陽 張 玥 張雄偉 孫 蒙 劉 偉 欒合禹
(1 陸軍工程大學 南京 210007)
(2 中國人民解放軍66389 部隊 鄭州 450009)
骨導(Bone-conducted,BC)語聲是由骨傳導傳聲器采集得到的語聲信號,與氣導(Air-conducted,AC)語聲相比,骨導語聲的抗噪能力更強。骨導傳聲器通過拾取聲帶振動采集語聲信號,其特點是從聲源處屏蔽了噪聲,抗背景噪聲能力強。然而,由于人體發聲原理以及固體傳聲的性質,骨導語聲的低頻成分厚重,頻譜成分不豐富[1];高頻成分缺失嚴重,語聲聽感沉悶、不自然,直接使用骨導語聲通信質量不佳。在大型車輛、船舶、飛機、坦克強大的背景噪聲環境中,骨導傳聲器可以有效地避免強背景噪聲的干擾[2]。重構骨導語聲的高頻成分,提升其聽感,可以極大地促進骨導語聲在實際中的應用價值。目前針對骨導語聲增強的研究主要分為兩大類。一類是融合性的增強方法,將其與氣導語聲相結合,既利用氣導語聲高頻成分豐富的優點,也借助于骨導語聲優秀的抗噪性能,實現融合性的增強[3-5]。Zhou 等[6]從骨導信號中獲得準確的語聲激活檢測(Voice activity detection,VAD),并將其納入自適應噪聲消除器和自適應塊矩陣中,在多噪聲類型和多噪聲強度上提供了顯著的效果改善。Yu 等[7]提出了一種新的多模態語聲增強結構,利用骨傳導和空氣傳導信號,提出前期融合和后期融合兩種集成學習的策略,利用全卷積網絡(Fully convolutional network,FCN)進行增強。另一類是僅依據骨導語聲進行盲增強,試圖重構高頻成分[8-9],得到與氣導語聲盡可能相似的增強語聲,提高其語聲質量、可懂度和主觀聽感。Liu 等[10]為了提升骨導語聲在自動語聲識別(Automatic speech recognition,ASR)系統中的表現,提出了一種新的深度去噪自編碼方法構建氣導與骨導之間的映射關系,并將增強后的骨導語聲輸入ASR系統,實驗證明該方法有效提升了語聲質量和可懂度。與融合性增強方法相比,骨導語聲盲增強的應用場景更貼近實際,硬件部署難度更小,因此本文針對骨導語聲盲增強方法進行研究。
近年來,已經有大量基于深度學習的方法應用在語聲增強上,與傳統的骨導語聲增強方法相比,深度學習模型對于語聲特征的高維表征能力得到了極大的提升,能夠較好地擬合氣導語聲到骨導語聲的非線性復雜映射。目前主流方法是將語聲信號經過快速傅里葉變換后得到的語聲幅度譜作為輸入數據,建立源幅度譜與目標幅度譜之間的映射關系。Shifas 等[11]在卷積神經網絡(Convolutional neural network,CNN)模塊中加入遞歸層,提出了一種魯棒的上下文感知的語聲增強特征提取策略,該方法利用CNN 實現了遞歸的特征提取,有效提升了語聲增強方法對于噪聲的魯棒性。Ashutosh等[12]利用一種FCN 進行時域語聲增強,在訓練中增加了一個將時域轉換為頻域的操作,從而實現了時域上波形的增強,避免了相位信息不匹配的問題。Zhao 等[13]將注意力機制加入卷積模塊,通過構造更多的信息特征來提高卷積層的特征表示能力,在此基礎上提出一種混合損失函數,在時域和頻域上對模型進行聯合優化。以上工作說明CNN 和注意力機制等基于深度學習的方法在語聲增強任務中具有優秀的特征提取能力和準確的高維映射表征能力,且通過互補網絡結構的設計克服不同方法的局限性,兼顧特征提取與上下文信息關聯,能有效提升語聲增強的質量,對骨導語聲增強具有借鑒意義。
編碼-解碼(Encoder-Decoder)結構是一種序列問題的模型框架,被廣泛應用于自然語言處理、語聲識別等任務。其顯著特征是它是一個端到端的模型,在序列問題處理上應用廣泛,且其結構非常靈活,編碼層和解碼層可以根據實際問題選擇不同的網絡,使用一些低復雜度的網絡也可得到較好的效果。基于Encoder-Decoder框架,大量文獻利用卷積網絡、循環網絡等對其進行編碼得到語義編碼向量后,在解碼層對其進行增強,在時頻域上實現語聲增強[14-18]。Tan等[19-21]結合CNN與循環神經網絡構建Encoder-Decoder 框架用來實現時頻域的語聲增強,取得了顯著的效果。
最早用于醫學圖像分割問題的一種新型編解碼網絡U-Net[22]近些年來廣泛應用在語聲分離[23-24]、語聲增強[25-26]中。U-Net的U型結構共進行了4 次下采樣和4 次上采樣,同時在對應編解碼層之間引入了跳躍連接,而不是直接在編碼得到的高維特征上進行反向傳播和監督學習,這樣有利于解碼重構時恢復更多低維的特征,實現多尺度特征融合。因為U-Net 對于結構復雜度不是很高的圖像和小樣本數據也能產生較好的效果,這些特點與骨導語聲語譜圖恰好吻合,因此本文研究基于改進U-Net 用于骨導語聲增強。由于U-Net 模型在編碼階段將所有輸入數據壓縮為一個固定長度的語義編碼向量。這是一個有損壓縮,過程中會產生信息丟失的問題,隨著序列長度的增加,深層的特征會不斷覆蓋淺層的特征,信息丟失會更加嚴重,解碼階段的質量自然會受到影響。且語聲信號作為一種時序信號,上下文內容間存在關聯性,U-Net采用多層卷積與反卷積結構,無法關注到語聲序列中時頻結構的關聯信息。因此需要一種能夠關注全局關聯信息的結構來提升U-Net 模型對于骨導語聲增強的性能。據此,本文在U-Net 的跳躍連接中引入了Attention 機制。Attention 機制模仿人類的視覺注意力[27],能夠快速將關注點聚焦于重要區域。引入Attention的優勢在于在解碼階段中,解碼器不再依據同一個語義編碼向量,而是根據目標語聲與源語聲不同的重要性關聯程度,分配注意力系數,把與當前解碼序列關聯性較大的時頻結構信息通過跳躍連接送入解碼器,從而提升骨導語聲增強的效果。
本文的工作基于U-Net 網絡[22],U-Net 網絡在醫學圖像分割中展示出了強大的性能,該方法獲得了ISBI 2015 細胞追蹤挑戰賽和齲齒檢測挑戰賽的冠軍。U-Net是一種典型的編解碼結構,編碼層和解碼層相互對稱,結構類似于“U”型而得名。在恢復丟失的高頻成分與預測結果時,與高頻成分相關程度大的輸入數據,應分配更大的權重。為了使模型能定位重要信息,區分相關與不相關信息,在U-Net的跳躍連接中引入了Attention 機制,將輸入數據有選擇性地傳入解碼層,以達到更好地恢復丟失高頻成分的目的。
融合注意力機制的編解碼網絡總體框架如圖1所示。本方法是基于氣導語聲與骨導語聲的語譜圖來實現骨導語聲增強。在數據預處理階段,所有歸一化后的語聲信號經過分幀加窗、短時傅里葉變換(Short time Fourier transform,STFT)后取對數得到語聲對數幅度譜和相位譜。近年來,研究表明相位信息對于語聲增強效果具有重要的作用[28]。然而由于相位信息不易估計,語聲幅度譜的增強已能夠滿足目前骨導語聲增強的大部分需求,因此只對語聲對數幅度譜進行增強。
在訓練階段,通過構建的結合注意力機制的U-Net網絡建立骨導語聲與氣導語聲的幅度譜映射關系,損失函數采用均方誤差(Mean squared error,MSE),其計算公式為
其中,y為氣導語聲的幅度譜,y′為預測語聲的幅度譜,n為語聲條數。網絡優化目標為最小化MSE,選擇梯度下降法對網絡參數進行訓練優化。
在增強階段,僅將待增強的語聲對數幅度譜輸入網絡得到增強幅度譜后,與原待增強語聲的相位譜通過傅里葉逆變換(Inverse short time Fourier transform,ISTFT)合成得到增強后語聲波形。
U-Net在結構復雜度不高的圖像和小樣本數據集上具有優勢,因為對于復雜度不高的圖像,高維特征與低維特征都會對結果產生重要影響,U-Net 的跳躍連接部分恰好解決了這個問題。語聲語譜圖中的頻譜結構具有一定的規律性,且本文使用的骨導語聲數據集是小樣本數據集,因此U-Net 適用于本場景下的語聲增強。U-Net 的編碼器由4 層卷積模塊和4 個最大池化層構成,每個卷積模塊中有兩個卷積層和兩個ReLU 激活層,實現對輸入數據的隱層特征提取,最大池化層實現對數據的降維。解碼器由4 層上采樣層和4 層卷積模塊構成,數據經過上采樣和注意力模塊的升維和權重計算后進入卷積模塊,由卷積模塊重構數據。另外,U-Net 網絡中采用了跳躍連接,將對應層的編碼器和解碼器用跳躍連接的方式連接起來,將編碼器中的低維特征與解碼器的高維特征拼接起來后進行數據重構,使解碼器能夠結合編碼前的低維特征和編碼后的高維特征,實現多尺度的特征融合。
融合Attention 機制的U-Net 算法在圖像分割中已有應用[29-30]。上述兩項工作都是在已知信息中分割出目標信息,對于解碼時的準確性要求較高。而骨導語聲增強需要恢復未知的高頻成分,所以編碼后的語義特征以及編碼時得到的淺層特征對恢復高頻信息同樣重要,因此在標準U-Net 的跳躍連接部分引入了Attention 機制。標準的U-Net網絡在跳躍連接部分直接將編碼層的隱層狀態直接與對應解碼層的輸入拼接成為一個更高維的特征向量,也就是說,所有解碼層在重構數據時都是無選擇性地利用了所有的輸入數據,而且也沒有利用輸入數據的上下文關聯信息。為了在重構數據時模型可以關注到上下文信息間的關聯信息,同時抑制不重要信息對重構數據的影響。在U-Net 的跳躍連接部分加入了Attention 模塊,具體操作是在執行跳躍連接時不再將編碼層狀態直接拼接到解碼層中,而是通過編碼層狀態與上采樣后的解碼層狀態共同計算出注意力權重系數,編碼層狀態與權重系數相乘后再與解碼層狀態拼接后進行解碼重構。Att-U-Net的網絡結構如圖2所示。

圖2 Att-U-Net 網絡結構圖Fig.2 Att-U-Net network structure diagram
Att-U-Net 共有4 層編碼和4 層解碼,對應4 組跳躍連接和注意力模塊。在上采樣和下采樣的過程中,由于語聲信號長度不統一,輸入數據的大小無法固定使其恰好適合上下采樣操作,可能會導致特征維度不統一。訓練中在解碼層中為了確保上采樣后的特征與對應編碼層特征維度保持一致,需要進行填充對齊操作。同時,最后一層解碼器采用了一個1?1 卷積進行降維,最終保證重構得到與輸入數據尺寸相同的輸出。
Attention 機制類似于人類的視覺,能夠將有限的注意力集中在重點信息上。從數學角度來看,Attention是一組注意力分配系數,提高重要信息的權重同時降低那些不重要信息的權重。如圖3所示,Attention函數的本質是一個從查詢Q(Query)到一系列鍵-值對(Key-Value,K-V)的映射,得到注意力系數α,通過α來控制輸入信息的權重。

圖3 Attention 機制Fig.3 Attention mechanism
Attention的計算過程如下:
其中,X表示輸入數據。
由Q和X計算得到注意力系數α,其中αi表示第i個輸入數據Xi的重要性度量,即權重系數;s表示注意力度量機制,即計算重要性程度的函數,常用的度量機制有加性模型、點積模型等。
最后,由注意力系數α和輸入數據X相乘得到加權后數據編碼。
圖3 中介紹的是經典的序列問題中的Attention 機制,而文中所用數據是二維的語譜圖特征。針對二維特征,Attention機制的計算步驟和原理不變,只需將序列中的先后位置理解為二維平面中的坐標位置,而最后得到的注意力系數α類似于一張二維的熱力圖,圖中被激活的區域就是權重系數大,重要程度高的數據區域。
本文針對二維語譜圖特征數據設計的注意力模塊,如圖4 所示。以一層編解碼層為例,說明Attention機制與U-Net網絡結合的方法。圖4 上半部分為U-Net 對應的一層編解碼層,下半部分為Attention模塊設計。u為上一解碼層輸出通過上采樣得到的結果,x為對應編碼層的輸出,此處u可以理解為上述Attention 機制中的查詢Q,x為鍵-值對K-V,通過跳躍連接中設計的注意力模塊,依據計算得到的注意力系數α將編碼層特征x有選擇性地輸入解碼層。因為卷積操作會產生不同通道數的特征,不同的編解碼層得到的特征維度不統一,因此在注意力模塊中,多次利用1?1 卷積進行數據升維和降維,以保證數據u、x和α的尺寸大小一致,便于計算。1?1的卷積核可以實現跨通道的信息交互和數據整合,而且可以改變數據的維度,同時1?1的卷積非常節省計算量。在數學上,1?1 卷積本質就是向量的線性組合,因此,一般在1?1 的卷積后會加入一個非線性激活函數,增加更多的非線性因素,在特征向量大小不變的前提下學習到更多的高維特征。此處采用sigmoid 激活函數,sigmoid 激活函數將數據映射到[0,1] 之間,表示該處數據對重構輸出數據的權重。

圖4 U-Net 中的Attention 機制Fig.4 Attention mechanism in U-Net
以圖4 為例,注意力模塊的計算過程如下所述,在當前解碼層Decoder_i,前一解碼層的輸出yi-1上采樣得到ui,ui與對應編碼層的隱層狀態xi作為注意力模塊的輸入,兩者分別進行1?1 卷積操作φ(·)得到φ(ui)和φ(xi)后相加并進行ReLU 激活,最后再次通過一個1?1 卷積φ(·)和sigmoid 激活σ(·),得到注意力當前解碼層的注意力權重矩陣αi,對應編碼層的隱層狀態xi與注意力權重矩陣αi相乘后,通過跳躍連接與ui拼接得到多尺度特征mi,解碼器對其進行解碼重構。該過程公式表述如下:
其中,Upsample 為上采樣操作,[α|β]為矩陣拼接操作,表示將α與β按第一維進行拼接。
通過以上的建模,引入注意力機制能使編解碼器在預測不同位置輸出時對輸入的不同位置賦予不同的權重,提高對重要信息的捕捉能力,對于長序列輸入數據效果尤為明顯。
算法流程有3個主要步驟:
(1) 在數據預處理階段,首先將骨導語聲x(n)和氣導語聲y(n)的波形歸一化到[-1,1],而后分別進行分幀加窗、短時傅里葉變換,對語聲幅度譜取對數得到對數幅度譜并計算其均值方差,進行均值方差歸一化完成數據預處理。
(2) 在模型訓練階段,首先初始化模型參數θn,將骨導語聲訓練數據輸入模型得到估計值,以網絡訓練目標氣導語聲數據為參照,計算訓練誤差,并優化模型參數θn,直到訓練輪次結束或連續5 輪誤差不再下降。
(3) 在增強階段,待增強語聲經過數據預處理后輸入訓練好的模型,得到估計對數幅度譜,最后與對應原始骨導語聲相位譜進行快速傅里葉逆變換和重疊加操作得到增強后的語聲波形。
本文基于課題組自建的骨導語聲數據集,選取了幾種目前主流的方法進行對比實驗,實驗設置與實驗結果在本節中詳細闡述。
本文選取了文獻[31]中的骨導語聲語料庫作為訓練數據。數據庫中有利用喉震式傳聲器采集的骨導語聲與對應的氣導語聲,每條語聲的時長為3~5 s 不等,語聲采樣率為32 kHz,16 bit 量化。選取了男1、男2,女1、女2 各200 條語聲作為數據集,對每個人分別進行實驗,實驗數據分為訓練集、驗證集和測試集。隨機選取單人140 條語聲作為訓練集,30條語聲作為驗證集,30條語聲作為測試集。在不同模型上測試增強性能。
感知語聲質量評估(Perceptual evaluation of speech quality,PESQ)[32]、短時客觀可懂度(Shorttime objective intelligibility,STOI)[33]、對數譜距離(Log spectral distance,LSD)[34]是評價語聲質量最常用且具有代表性的客觀評價指標。PESQ能預測待測語聲的平均主觀意見分(Mean opinion score,MOS),PESQ將待測語聲和原始語聲濾波變換后,綜合待測語聲與原始語聲的時頻特性,給出一個在[-0.5,4.5]區間的PESQ 得分,語聲質量與PESQ 得分成正比。STOI 是衡量語聲的重要指標之一,對于語聲來說,只有聽懂和聽不懂兩種情況,可以理解為在短時內可懂度是二值的,其范圍在[0,1]之間,越接近1質量越好。STOI是將待測語聲和原始語聲經過移除靜音區、STFT變換、歸一化后計算短時譜向量的相關系數得到的。LSD衡量待測語聲對數譜與原始語聲對數譜之間的距離,LSD 的值越小,說明待測語聲越接近于原始語聲,增強質量就越高。
為了驗證Att-U-Net 方法的性能,選取兩種典型的編解碼網絡和一種時序上的循環網絡--長短時記憶網絡(Long-short term memory,LSTM)作為對比模型,分別是(a) U-Net[22];(b) 卷積遞歸神經網絡(Convolutional recurrent neural networks,CRNN)[35];(c) LSTM(兩層隱藏層,每層節點數256)。這兩種方法均是目前主流的編解碼網絡,在語聲增強中都取得了不俗的成績,3 種模型都采用均方誤差作為損失函數,使用Adam 優化器選擇梯度下降法對網絡參數進行優化。
原始語聲采樣率為32 kHz,但由于骨導語聲的高頻成分缺失嚴重,在2.5 kHz 以上已經幾乎沒有頻譜分量,圖5 給出了相對應的氣導語聲與骨導語聲語譜圖。若不進行降采樣,則需要通過少量的低頻成分恢復大量的高頻成分,不僅難度較大,且耗費的計算資源和參數將大大增加。根據人耳的聽覺特性,對語聲信號清晰度影響最大的頻率成分集中在8 kHz 以下,因此首先將語聲降采樣到8 kHz,分幀后采用漢明窗加窗,而后進行256 維的短時傅里葉變換,其幀長為32 ms,幀移為2.5 ms,得到頻率維度為129維的語聲幅度譜并對其進行增強。

圖5 氣導、骨導語聲語譜圖Fig.5 AC and BC speech spectrogram
Att-U-Net 網絡的參數如表1 所示。其中卷積層參數分別代表通道數(channels)、卷積核大小(kernel size)、步長(stride)、填充數(padding),池化層參數分別代表核大小(kernel size)、步長(stride)。在解碼層中的Upconv 層中,同時進行了對齊操作和拼接操作。模型的初始學習率為0.002,當驗證集誤差不再減少時學習率降低為原來的一半,直到驗證集誤差連續5輪不下降訓練停止。

表1 網絡結構參數Table 1 Network structure parameters
本節對2.2 節中改進的網絡結構以及3 種對比方法進行了實驗,分別是U-Net(4 層編碼和4 層解碼)、CRNN、LSTM與所提出的Att-U-Net結構。測得4 種模型在不同實驗對象下的PESQ、STOI 與LSD值如表2~表4所示。

表2 4 種模型在不同實驗對象下的PESQ 值Table 2 PESQ scores of four models for different speakers

表3 4 種模型在不同實驗對象下的STOI 值Table 3 STOI scores of four models for different speakers

表4 4 種模型在不同實驗對象下的LSD 值Table 4 LSD scores of four models for different speakers
從上述表中可以看出,引入Attention 機制后,Att-U-Net 的效果比U-Net 有所提升,PESQ、STOI和LSD指標分別提升了4.1%,1.8%和3.4%,語聲增強質量進一步提升。其中說話人女1 的語聲增強效果不佳,通過對原始數據的比對發現,該說話人采集到的原始骨導語聲質量欠佳,部分語句咬字不清晰,從而影響了語聲增強的質量。Att-U-Net與3 個對比模型相比,在3 個客觀指標上均取得了最好的效果,證明了所提方法的有效性。
通過對比不同性別的實驗對象3 種指標的得分,發現男聲的平均值要高于女聲,推測是因為女聲的高頻成分較為豐富,而男聲發音較低沉,男聲低頻成分比重較大,利于恢復出高頻成分,相比之下女聲的高頻成分更難恢復。
此外,實驗結果表明,加入Attention 機制后,Att-U-Net 的模型參數量僅比U-Net 模型增加了1.9%,在保證模型輕量、計算復雜度低的前提下,完成了增強質量的提升。
圖6給出了一段女聲經過不同模型增強的增強語聲語譜圖。從圖中可以看出,4 種方法都能有效地解決骨導語聲低頻成分厚重的問題,在低頻部分,4 種方法都恢復出了較為清晰的頻譜結構,而在高頻部分,4 種方法雖然都能恢復一定的音素成分,改善了語聲質量和聽感,但從細節來看,缺乏清晰的頻譜結構。圖6(c)和圖6(d)的矩形框中,LSTM和CRNN 增強的語聲在高頻部分具有一定的頻譜結構,其他部分的高頻成分恢復不足,尤其是對于高頻部分的摩擦聲和清聲,幾乎很難恢復出音素。從圖6(e)和圖6(f)的矩形框中可以看出,經過Att-U-Net方法增強的語聲能更好地恢復高頻的頻譜結構,在清聲和摩擦聲部分也恢復出了一定的音素成分,整體上更接近目標語聲。

圖6 經過不同方法增強的語譜圖Fig.6 Spectrogram enhanced by different methods
為了探索引入Attention 機制對U-Net 在編解碼過程中如何發揮作用,顯示編碼層中對解碼層的預測影響權重大的數據區域,本節對Att-U-Net中3層跳躍連接的注意力模塊進行了可視化分析,結果如圖7 所示。從左至右分別為第一層至第三層跳躍連接,自上而下分別表示編碼層輸出、經注意力模塊計算出的注意力系數、跳躍連接部分的輸出,即前兩者的乘積。其中,注意力系數顏色越亮的部分,注意力機制分配的權重系數越大。由于隨著網絡層數的加深,卷積通道數逐漸遞增,為便于可視化分析,將所有通道的特征求平均值得到一張二維特征圖進行分析。

圖7 Attention 模塊可視化Fig.7 Attention module visualization
從圖7 可以看出,引入Attention 后,在語聲中間部分的無聲段和語譜圖頂端,3 個注意力模塊濾除了原特征中的一些噪點,有效保留了有聲段的時頻結構特征,語譜圖中頻譜結構更為清晰。沿時間軸方向,3 個注意力模塊的權重矩陣都有效地區分了有聲段和無聲段,抑制了無聲段中的不相關信息,將大量與輸出結果相關的編碼特征通過跳躍連接傳遞到解碼層中,提高了用于訓練網絡的數據質量。沿頻率軸方向,從3 張注意力系數圖中可以看出,低頻和高頻部分始終保持高亮,說明Attention 機制對于低頻和高頻信息始終保持較高的關注度,且隨著網絡層數深入,高頻特征的權重逐漸增加,高頻信息逐步得到恢復。同時,圖中可以發現注意力機制消除了部分中頻共振,這說明中頻部分的信息對于骨導語聲高頻信息恢復的影響權重不大,由于骨導語聲的低頻成分相比氣導語聲更厚重,且多了一部分中頻諧波成分,通過注意力機制,濾除了這部分信息,將原特征有選擇性地傳遞給解碼層,恢復出更逼真,聽感質量更好的語聲信號。
本文提出了一種結合注意力機制和編解碼網絡的骨導語聲增強模型,通過在跳躍連接中引入注意力機制,使模型可以重點關注輸入信息的重要部分,同時抑制不相關的信息,通過引入注意力機制,解決了編解碼網絡對于長序列數據信息丟失的問題。實驗結果和可視化結果分析證明該方法在骨導語聲數據集上是有效的。該方法的潛力有待于進一步發掘,例如減少模型的冗余和如何更充分地利用語聲信號的上下文關聯信息來改進Att-U-Net。同時,由于骨傳聲特性決定骨導語聲增強不同于語聲去噪,該任務與說話人特征緊密相關,且骨導語聲數據集的質量和數量仍顯不足,對于說話人自適應的骨導語聲增強是一個非常具有挑戰性的問題。