龍 翔,夏秀渝
(四川大學電子信息學院,成都 610065)
不同人說出的語音具有不同的聲紋特點。根據這些特點,可以判斷某段語音是若干人中的哪一個所說,即說話人識別。說話人識別主要分為說話人鑒別、說話人確認、說話人聚類等,具體應用在刑偵破案、智能客服、智能家居、金融服務等方面。
隨著深度學習的蓬勃發展,和傳統的說話人識別模型相比,基于神經網絡的說話人識別模型識別精度更高。說話人識別主要由三個步驟組成:語音數據集的建立,說話人特征提取,說話人識別。目前已經有比較完善的語音庫,如TIMIT 庫、Thchs30 中文庫;在特征提取方面,常用的語音特征參數有基音周期、共振峰、線性預測倒譜系數(Liner Prediction Cepstral Co?efficients,LPCC)、梅 爾 倒 譜 系 數(Mel Fre?quency Cepstral Coefficients,MFCC)等。通過研究,常見的MFCC、LPCC、GFCC 等參數能夠進行識別,但是單一的特征參數不能囊括不同說話人的全部特點。文獻[2]采取MFCC 與GFCC 混合特征參數進行訓練,純凈語音識別準確率92%左右,較單獨使用MFCC 或GFCC 識別準確率提高了10%。可以發現,根據不同語音特征參數的特點進行特征融合對提高識別精度具有重要的研究意義。由于不同說話人的感知特性主要反映在頻域中,時域特征可以輔助頻域特征參數進行清濁音、有聲和無聲段的區分。所以本文采取融合頻域特征參數MFCC、MFCC一階差分(ΔMFCC)、GFCC、GFCC 一階差分(Δ GFCC)和時域特征參數短時能量作為神經網絡訓練參數。在說話人識別方面,動態時間規整法(Dynamic Time Warping,DTW)、矢量量化法(Vector Quantization,VQ)、隱馬爾科夫模型(Hidden Markov Model,HMM)、人工神經網絡法(Artificial Neural Network,ANN)等方法先后被廣泛應用。典型的深度學習方法有全連接前饋神經網絡(Deep Neural Networks,DNN)、卷積神經網絡(Convolutional Neural Net?works,CNN)和循環神經網絡(Recurrent Neural Network,RNN)。其中RNN 由于在處理時序數據方面的優勢而被廣泛應用于自然語言的識別和處理。1997 年,Hochreiter 和Schmidhuber首次提出了長短時記憶(Long Short Term Memory,LSTM)神經網絡,作為RNN 網絡的變形結構,LSTM 增加的門控單元能夠有效地避免RNN 存在的梯度消失和梯度爆炸的問題,且能高效地抓取到語音信號的時序特性。但是LSTM只考慮了單向的時序數據,忽視了后文信息對前文信息的重要性。針對以上問題,本文識別模型采取雙向長短時記憶(Bidirectional Long Short-Term Memory,BiLSTM)神經網絡,其在LSTM 基礎上添加了反向運算,考慮到了上下文信息間的關聯性。
綜上,本文采取一種基于融合頻域和時域特征的說話人識別模型,旨在提高模型的識別準確率。實驗表明,本文模型相較于其他模型具有更高的識別精度。
語音特征參數主要分為時域特征參數和頻域特征參數。人類能夠準確地分辨不同人說話的音色和音調,是因為人類的聽覺系統對語音信號的音高、音強、聲波的動態頻譜具有較強的分析處理能力。所以頻域分析在語音信號分析處理中尤為重要,時域分析次之。
頻域特征參數MFCC 和GFCC 是利用人耳聽覺模型建立的倒譜系數,但是只反映了語音參數的靜態特性,ΔMFCC 和ΔGFCC 彌補了動態特征的缺失,時域特征參數短時能量用來表示語音信號能量的大小和超音段信息。
本 文 將13 維MFCC、13 維GFCC、13 維ΔMFCC、13維ΔGFCC 和1維短時能量進行拼接,組合成53維特征參數。
低頻聲音在內耳蝸基底膜上行波傳遞的距離大于高頻聲音,低音容易掩蔽高音,所以相較于高頻信息,低頻部分更易被人類感知,MFCC 就是根據這種特點設計的。
將線性頻譜映射到基于聽覺感知的Mel非線性頻譜,然后再轉換到倒譜上,最終形成MFCC 特征參數。線性頻率與Mel 頻率之間的轉換公式如下:

MFCC參數的提取過程流程如圖1所示。

圖1 MFCC的提取過程
流程包括了信號預處理(預加重、分幀、加窗),對預處理后的語音信號進行快速傅里葉變換,將信息轉換到頻域上,接著對每一幀頻域數據計算其譜線的能量,然后計算通過Mel濾波器的能量并取對數,最后對數濾波器組能量求離散余弦變換(DCT)。相應的計算公式如下:

式中,(,)是Mel濾波能量;為梅爾濾波器的個數;為第幀;是DCT后的譜線。
人耳耳蝸中大部分的基底膜負責處理聲音信號的低頻部分?;啄た梢园巡煌l率的聲音信號組成的混合音頻,經過大腦分析濾除不被聽者所重視的語音信息后,使聽者接收到所需信號。GFCC 就是根據這種特點所設計的,Gammatone 濾波器的排列也是根據人類基底膜的排列,其表達式為:

式中,為濾波器增益,為濾波器階數,b為衰減因子系數,f為濾波器中心頻率,()為階躍函數,φ為偏移相位。
GFCC參數的提取過程流程如圖2所示。

圖2 GFCC的提取過程
GFCC 特征參數的提取流程和MFCC 提取流程類似,只是將求得的每幀譜線能量通過Gam?matone濾波器來替代Mel濾波器。
MFCC 和GFCC 為語音信號的靜態特征,不符合語音動態變化的特性,對MFCC 和GFCC 分別進行差分運算就得到了ΔMFCC 和ΔGFCC,Δ MFCC和ΔGFCC的運算公式分別為:

式中Δ()表示第個一階差分,(+)表示第+個倒譜系數的階數,表示差分幀的區間。

式中Δ()表示第個一階差分,(+)表示第+個倒譜系數的階數,表示差分幀的區間。
語音信號的能量變化比較明顯,清音部分的能量要低于濁音,對短時能量分析可以描述語音的特征變化情況。語音信號的短時能量公式為:

式中()代表第幀語音信號的短時能量,y()代表第幀語音信號,代表幀數。
上文提取的53維混合特征參數的維度過大,不僅會增大模型的時間復雜度和空間復雜度,還會產生多重共線性的問題,從而對模型訓練的精度造成影響。所以本文通過主成分分析法(Principal Component Analysis,PCA)對上文混合特征參數進行降維。PCA 的任務是找到能夠主要表示原始維度信息的成分,從而達到降維的目的。
假設一個樣本空間位Y,對其進行降維的主要步驟有:
(1)首先求出樣本均值

(2)計算樣本空間的協方差矩陣

(3)計算協方差矩陣的特征值和特征向量,特征值按照從大到小的順序排列


當特征值>1 時,說明該主成分所含有的信息較為充分,通常降維后只保留特征值>1 的主成分。因此,本文進行PCA 降維后保留前30維主成分組成本文目標特征參數。
(4)計算在每一維的投影

人工神經網絡是基于生物學的基本理論,模擬人類大腦的神經系統對復雜信息的處理機制的一種數學模型。其本質是由很多小的非線性函數組成的非線性函數網,網絡反映的是輸入特征參數與輸出標簽之間的對應關系。
目前神經網絡的基本架構有深度學習網絡、卷積神經網絡、循環神經網絡等。
DNN 由于都是全連接形式的結構,隨著網絡層數的增加,參數增長可能會出現爆炸的情況;CNN 盡管可以解決過度擬合和局部最優解的問題,但是在神經網絡訓練時,每一層的神經元進行的操作都只與前后毗鄰的一層神經元直接相關,無法對有時序關系的信號進行建模;RNN 網絡中神經元的輸出依賴當前的輸入和記憶,很好地模擬了人類擁有記憶的能力,但正是由于RNN 網絡結構在自然語言處理方面的優越性,其網絡結構較DNN 和CNN 復雜很多,在反向傳播規模過大時會帶來梯度爆炸和梯度消失的問題;而LSTM 神經網絡只考慮了單向數據的信息,忽視了后文信息對前文的影響。
BiLSTM 神經網絡,其在LSTM 基礎上添加了反向運算,考慮到了上下文信息的互相影響。BiLSTM 神經網絡的結構由正反向2 個LSTM 神經網絡組成,LSTM的單元基本結構如圖3所示。

圖3 LSTM基本單元結構
圖3 中x代表當前時刻的輸入,h代表上一時刻的輸出,C代表上一時刻的單元狀態,h代表當前時刻的輸出,C代表當前時刻的單元狀態,代表Sigmoid 激活函數,tanh 代表tanh激活函數,f代表遺忘門,i代表輸入門,C'代表單元狀態更新值,O代表輸出門。
遺忘門f決定了上一時刻的單元狀態有多少需要保留到當前時刻,其計算公式如下:

式中,W代表遺忘門的權值,b代表遺忘門的偏置。
輸入門決定了當前時刻網絡的輸入數據需要保存多少到單元狀態,其計算公式如下:

式中,W代表輸入門輸出i的權值,b代表輸入門輸出i的偏置。

單元狀態更新值C'計算公式如下:式中,W代表輸入門單元狀態的輸出C'的權值,b代表輸入門單元狀態的輸出C'的偏置。
輸出門O決定了當前時刻的單元狀態有多少需要輸出到當前的輸出值,其計算公式如下:

最終,整個單元的輸出計算公式如下:

基于眾多研究實驗表明,BiLSTM 神經網絡不僅能夠很好地考慮到語音信號的時序關系,并且通過各種“門”的結構能夠有效地解決長序列訓練過程中的梯度爆炸、梯度消失和長距離依賴的問題,同時可以充分利用語音數據上下文的相互影響以提高模型識別準確率。所以本文選擇BiLSTM 神經網絡作為說話人識別的網絡模型。
本文仿真實驗在Pycharm 平臺上實現,神經網絡的框架采用tensorflow2.0,神經網絡模型第一層為輸入層,輸入本文提取的目標特征參數;第二、三層為BiLSTM 層,每層256 個神經元;第四層為全連接層,神經元的數量等于說話人標簽數;第五層為SoftMax 層,實現標簽的分類。Batch_size 設置為128,迭代次數設置為100。
本文基于TIMIT 英文語音庫進行實驗,語音庫中包含美國8 個地區630 個人的純凈語音數據。實驗采用不同地區50 個人的語音數據,每人10條語音,每條語音6 s左右。隨機選取每個說話人的8 條語音作為訓練數據,2 條語音作為測試數據,即訓練數據400 條語音,測試數據100條語音,訓練集:測試集比例為8 ∶2。
分 別采用13 維MFCC、13 維GFCC、13 維MFCC+13 維GFCC、13 維MFCC+1 維短時能量、13 維GFCC+1 維短時能量、13 維MFCC+13 維GFCC+1維短時能量、13維MFCC+13維ΔMFCC+13維GFCC+13維ΔGFCC+1維短時能量(53維混合特征參數)以及本文目標特征參數進行對比實驗。
圖4和圖5分別給出了各種特征參數在訓練集和測試集上的準確率(accuracy)和誤差(loss)曲線。
從圖4 和圖5 可以看出,所有參數在BiL?STM 模型上的準確率都隨著迭代次數的增加而平穩上升,最終達到收斂。本文所提取的目標參數在訓練集上的準確率在50 輪迭代后達到收斂,穩定在99.6%左右,在測試集上的最佳識別準確率達到99.61%。從實驗結果可以看出,本文模型較文獻[14]、文獻[2]中模型的識別精度分別提高了7.50%和3.00%。表1 列出了個不同參數在訓練集和測試集上的最佳識別率。

圖4 測試集上不同特征參數的準確率和損失值的對比曲線

圖5 訓練集上不同特征參數的準確率和損失值的對比曲線

表1 訓練集和測試集上不同特征參數的最佳識別率對比
從表1 可以看出,將時域特征參數(短時能量)和頻域特征參數融合后,都比只采取頻域特征進行訓練的模型效果好。同時,對維度多的特征參數進行降維,既降低了模型訓練的時間和空間復雜度,也降低了語音的無聲段和背景噪聲對識別精度的影響,提高了模型的識別準確率。
結合語音特征參數的特點和深度學習在說話人識別領域的研究成果,本文提出基于融合特征參數-BiLSTM 的說話人識別研究方法,將不同特征參數和本文目標特征參數送入雙向長短時記憶(BiLSTM)神經網絡進行訓練,最終得到一種識別精度高的說話人識別模型。實驗結果表明,在TIMIT 數據庫上,本文模型取得了99.61%的識別準確率。相對于其他特征參數和模型匹配的識別模型,本文提出的方法具有更高的識別精度。下一步研究可針對說話人識別的同時進行語音文本識別,以達到模型的廣泛實用性。