歐陽城添,袁 瑾
(江西理工大學 信息工程學院,江西 贛州 341000)
空調壓縮機是空調的重要部件,一旦壓縮機發生故障,空調將失去制冷功能。因此,在出廠之前對壓縮機進行嚴格的質量檢測是避免故障壓縮機流向市場的重要手段。針對壓縮機的故障診斷,國外有Smith等[1]利用參數選擇和數據壓縮技術減少了壓縮振動信號分析的計算量,并提高了故障分類效果;Alekseev等的文章[2]介紹了常用的壓縮機振動信號分析算法并設計了一套振動信號的接收、處理和存儲的軟件。在國內,張明等[3]依靠多種類型的傳感器采集壓縮機振動信息,提出了一種基于多源信息融合的故障診斷方法對壓縮機的3種工況進行融合診斷。在信號分析方面,PCA分析[4,5]、傅里葉變換[6,7]、小波分析[8,9]等也在壓縮機故障診斷中得到應用。雖然上述方法在壓縮機故障診斷中取得了不錯的效果,但是傳統技術多采用振動傳感器采集壓縮機工況信號,這種“接觸式”采集方式部署困難,不利于生產廠商進行高效的大規模檢測。針對這一缺點,本文提出一種基于學習矢量量化(learning vector quantization,LVQ)神經網絡的故障壓縮機聲紋識別(voiceprint recognition)模型用于空調壓縮機故障診斷。本文采用“非接觸”的形式采集壓縮機工作噪音進行診斷,克服了傳統方法信號采集效率低下缺點。同時,用于建模的LVQ神經網絡具有構造簡單、不依賴大數據集、分類簡單等優點。
聲紋識別,又被稱之為說話人識別(speaker recognition),該技術通過對人的聲音信號的特征向量進行分析,以達到區分說話人的目的[10-13]。本文基于以下兩點原因,試圖使用聲紋識別技術進行故障壓縮機的識別。首先,工作中的壓縮機會產生工作噪音,其中蘊含著壓縮機工作狀態的信息,因此將聲紋識別技術應用于壓縮機故障診斷具有一定的可行性;其次,與以往使用傳感器采集振動數據不同,聲音信號使用的是“非接觸式”采集方式,采集信號的麥克風不需要接觸壓縮機,因此聲紋識別技術具有更簡單的操作性。目前,已有學者利用聲紋識別技術對變壓器進行了故障診斷,取得了非常理想的效果[14]。
LVQ神經網絡又稱為LVQ分類器(LVQ classification[15]),是一種前饋神經網絡,屬于有監督學習,LVQ神經網絡的學習算法被稱為LVQ算法(LVQ algorithms)。LVQ神經網絡具有設計簡單,分類效果好,收斂速度快等特點,被廣泛應用于模式識別領域[16,17]。
聲紋識別技術的應用可以分為模型建立和模型應用兩個階段,如圖1所示。

圖1 聲紋識別技術流程
關鍵的模型建立階段可以分解為3個步驟:
(1)收集聲音數據;
(2)提取聲音信號特征;
(3)建立分類模型。
其中,提取聲音信號特征是關鍵步驟。根據新西蘭學者Tirumala等[18]的綜述統計,在現有的聲音信號特征提取方法中,梅爾倒譜系數(Mel frequency cestrum coefficient,MFCC)應用最為廣泛。本文也將使用MFCC作為壓縮機聲紋識別模型的特征提取方法。
在聲紋識別技術中,由于人類發聲器官特性和聲音信號采集設備等原因,會造成信號混疊、諧波失真等干擾,加之人類聲音具有短時穩定性,因此在特征提取之前必須對聲音信號進行預處理[19]。采集后的壓縮機的噪聲信號同樣具有以上缺陷,因此也需要進行相應的預處理。但由于機械聲音與人類聲音存在一定差異,因此本文采用的預處理方法與通常采用的人類聲音預處理方法有所不同,具體會在下文中提到。
聲音信號預處理主要包括預加重、分幀、加窗等操作。對聲音信號采集后,首先進行預加重處理,其目的是對聲音信號的高頻部分進行加重,彌補高頻分量的損失。預加重的濾波器常設為
H(z)=1-az-1
(1)
隨后,將一段長的聲音數據劃分為若干個小片段,稱為分幀。聲音信號分為較短的幀,可以將每幀的聲音信號看成一個穩態信號,為了保證相鄰幀之間的參數能夠平穩過渡,兩幀之間應有部分重疊,可表示為
F=n-wo/[w(1-o)]
(2)
式中:其中F為分幀數,w為幀長,o為重疊率,即幀移占幀長百分比。在聲紋識別技術中,由于人聲的短時平穩性,一般取20 ms到30 ms為一幀,以使得特征參數平穩變化。壓縮機噪聲相較于人聲而言,具有更大的平穩性,因此本文根據文獻[14]在變壓器中的分幀方法,取幀長為500 ms,重疊率為40%。
預處理后的聲音信號在提取特征時需要進行傅里葉變換,為了減少信號在頻域中的泄露,將對每幀聲音信號施加漢明窗(Hamming)。漢明窗公式為
(3)
式中:L為漢明窗長。
MFCC系數是基于人耳聽覺實驗得到的一種聲音特征向量,是應用最廣的聲音特征,已有不少學者對MFCC進行了優化[20,21]。MFCC是一種基于Mel頻域的系數,Mel頻域表示的是基于人耳的非線性特征頻率。Mel頻率與聲音信號頻率的關系可以表示為公式
(4)
式中:Mel(f)為梅爾頻率,f為聲音普通頻率,單位為赫茲(Hz)。作為聲紋識別模型的關鍵步驟,本文有必要詳細介紹MFCC特征向量的提取方法:
(1)離散傅里葉變換
對于每幀聲音信號進行離散傅里葉變換的頻域數據,公式為
(5)
式中:N為每幀的樣本數量。
(2)計算能量頻譜
譜線能量是頻域數據的平方,公式為
Pm=|X(k)|2
(6)
(3)Mel三角濾波
Mel濾波由若干個三角帶通濾波器Hm(k)組成,在Mel頻域內,這些濾波器是等帶寬的,這些濾波器可以表示為
------------------
(7)
------------------

(4)計算對數頻譜
為了得到的結果對噪音干擾具有更強的魯棒性,通過對能量頻譜計算對數頻譜
(8)
式中:Hm(k)是濾波器,S(m)是對數頻譜,Pm是能量頻譜。
(5)離散余弦變換
通過對上述計算得到的數據進行離散余弦變化即可得到MFCC特征向量,公式為
(9)
式中:C(n)為每幀聲音信號的MFCC特征向量。
LVQ神經網絡是一種前饋神經網絡,與常見的機器學習算法K-Means類似,也是通過尋找一組原型向量來構建聚類結構,但與K-Means不同的是,LVQ神經網絡需要樣本帶有類別標記,學習過程采用了有監督的學習方法。
LVQ神經網絡由輸入層、競爭層和線性輸出層組成。輸入層與競爭層之間為全連接,競爭層與線性輸出層之間為部分鏈接。LVQ神經網路具體結構如圖2所示,LVQ神經網絡模型如圖3所示。

圖2 LVQ神經網絡結構

圖3 LVQ神經網絡模型
圖3中,R為輸入層神經元個數;S1與W1分別為競爭層神經元個數和權重矩陣;S2和W2分別為線性輸出層神經元個數和權重矩陣。
最初的LVQ1算法(LVQ1 algorithm)存在著許多弊端,例如收斂性能不佳,靠近決策邊界的樣本分類效果不好,對重疊數據敏感等[22]。針對上述問題,提出了改進的LVQ算法(LVQ2,LVQ3),具體演變過程將在下文詳細介紹。
(1)LVQ1算法
LVQ1算法的基本思想是:隨機初始化權重矩陣,每一輪迭代中,隨機選取一個訓練樣本,計算與樣本距離最近的競爭層神經元,該神經元成為“獲勝神經元”,根據比較與“獲勝神經元”連接的線性輸出層的神經元的標簽與樣本標簽是否一致來更新競爭層神經元權重。如果標簽一致,則更新對應的競爭層神經元的權重,使其向輸入樣本方向移動。否則,更新對應的競爭層神經元權重,使其向輸入樣本的反方向移動。LVQ1算法的詳細過程如算法1所示。
算法1:LVQ1算法
輸入:樣本集D={(x1,y1),(x2,y2),…,(xm,ym)};競爭層神經元個數q;學習率α
輸出:更新權重W
(1)對權重矩陣W進行隨機初始化,為學習率α初始化賦值。
(2)將輸入特征向量X=(x1,x2,…,xm)輸入到輸入層,抽取第i個訓練樣本xi,計算第j個神經元與樣本xi之間的歐幾里得距離
(10)
(3)找出一個競爭層神經元j,其到樣本xi距離最小,記其輸出的類型標記為cj。
(4)如果cj=yi,那么將對應輸入層與競爭層之間權重做如下更新
wij=wij+α(xi-wij)
(11)
否則,權重做如下更新
wij=wij-α(xi-wij)
(12)
(5)一種重復(2)至(4)直到滿足設定的迭代次數T或者設定的誤差精度e位為止。
原始的LVQ1算法有以下缺點,首先,算法單次迭代只更新單個獲勝神經元的權重,如果某些神經元在競爭中一直失敗,就形成了“死神經元”,永遠不會更新;其次,該算法使得競爭層神經元遠離了決策邊界,因此,靠近決策邊界的樣本分類正確率不高。最后,該算法對于重疊的數據集異常敏感。
(2)LVQ2算法
針對LVQ1算法的缺點,出現了改進的LVQ2算法,該算法每次迭代更新兩個競爭層神經元,目的是對理論貝葉斯決策邊界進行差分估計。LVQ2引入了“次獲勝”神經元,在每次迭代中“獲勝神經元”與“次獲勝神經元”的權重都將得到更新。LVQ2算法引入了一個“窗口”參數,窗口的參數為σ,在每一輪迭代中,LVQ2算法會試圖更新兩個權重向量,其中一個是輸出層與樣本標簽一致的競爭層神經元權重,一個是標簽不一致的競爭層神經元權重。窗口的表示如下
(13)

算法2:LVQ2算法
輸入:樣本集D={(x1,y1),(x2,y2),…,(xm,ym)};競爭層神經元個數q;學習率α
輸出:更新權重W
(1)對權重矩陣W進行隨機初始化,為學習率α初始化賦值。
(2)將輸入特征向量X=(x1,x2,…,xm)輸入到輸入層,抽取第i個訓練樣本xi,計算第j個神經元與樣本xi之間的歐幾里得距離
(14)
(3)找出兩個競爭層神經元j、k,到樣本xi距離最小,記其輸出的類型標記為cj,記其輸出的類型標記為cj,ck。

(5)如果cj=yi,則權重更新如下
(15)
否則,如果ck=yi,則權重更新如下
(16)
(6)如果dj≤dk,則執行(7),否則執行(8)。
(7)如果cj=yi,則權重更新如下
wij=wij+α(xi-wij)
(17)
否則
wij=wij-α(xi-wij)
(18)
(8)如果ck=yi,則權重更新如下
wik=wik+α(xi-wik)
(19)
否則
wik=wik-α(xi-wik)
(20)
(9)一種重復(2)至(8)直到滿足設定的迭代次數T或者設定的誤差精度e位為止。
LVQ2算法雖然對LVQ1算法進行了改進,但是LVQ2存在著收斂性能不佳的缺點。
(3)LVQ3算法
LVQ3算法通過引入穩定性因子的方法,在訓練過程中改變競爭層神經元的更新,使LVQ2能夠正確收斂。該算法的改變之處是,如果“獲勝神經元”和“次獲勝神經元”的線性輸出標簽與樣本一致時,對學習率參數α添加一個穩定性因子m,使得學習率變為β=mα,(0.1 算法3:LVQ3算法 輸入:樣本集D={(x1,y1),(x2,y2),…,(xm,ym);競爭層神經元個數q;學習率α;穩定因子m 輸出:更新權重W (1)對權重矩陣W進行隨機初始化,為學習率α初始化賦值,初始化穩定性因子m。 (2)將輸入特征向量X=(x1,x2,…,xm)輸入到輸入層,抽取第i個訓練樣本xi,計算第j個神經元與樣本xi之間的歐幾里得距離 (21) (3)找出與樣本xi距離最小的競爭層神經元j,k,記其輸出的類型標記為cj,ck。 (5)如果cj=yi,則權重更新如下 (22) 否則,如果ck=yi,則權重更新如下 (23) (6)如果dj≤dk,則執行(7),否則執行(8)。 (7)如果cj=yi,則權重更新如下 wij=wij+β(xi-wij) (24) 否則 wij=wij-β(xi-wij) (25) (8)如果cj=yi,則權重更新如下 wik=wik+β(xi-wik) (26) 否則 wik=wik-β(xi-wik) (27) (9)一種重復(2)至(8)直到滿足設定的迭代次數T或者設定的誤差精度e位為止。 LVQ學習算法具有構造簡單、收斂快速等優點。LVQ神經網絡只需要簡單計算輸入樣本和競爭層神經元的距離就可以完成樣本類別的劃分,十分適用于流水線式的分類場景,因此被廣泛應用于工業模式識別當中。 本部分實驗分為“壓縮機噪聲信號分析與特征提取”和“壓縮機聲紋模型訓練與識別”兩組。實驗一對壓縮機噪聲數據進行了時頻分析與提取MFCC特征向量,實驗二分別采用了3種LVQ學習算法訓練LVQ神經網絡,并對比分析了其結果。實驗采集了100臺壓縮機的聲音數據,其中50臺為故障壓縮機,類標記為1,另外50臺為正常工況壓縮機,類標記為0,采樣時間為10 s,采樣率為50 kHz。數據被分為訓練集和測試集,訓練集含有80個樣本數量,其中40個為故障壓縮機的聲音數據,另外40個為正常壓縮機的聲音數據。測試集樣本數為20,其中有10個故障壓縮機的數據,10個為正常壓縮機的數據。實驗的硬件配置為Intel core i7四核CPU,主頻2.8 GHz,內存16 GB,Nvidia GTX1060顯卡,顯存6 GB。軟件配置為Windows 10操作系統,MathWork Matlab 2018b,Scikiti-learn 0.22。 參考文獻中對聲音信號的分析方法,對壓縮機噪聲信號進行時頻分析。限于篇幅原因,本文選取了一臺工況正常壓縮機和一臺故障壓縮機的結果進行詳細解釋。圖4為正常壓縮機的聲波圖和頻譜圖,圖5為故障壓縮機的聲波圖和頻譜圖。 圖4 1號正常壓縮機時頻圖 圖5 1號故障壓縮機時頻圖 從上述兩臺壓縮機的時頻分析圖中可以看出,故障壓縮機聲音信號的頻率在20 000 Hz以下有明顯增大,特別是在13 000 Hz到18 000 Hz以及3000 Hz到5000 Hz之間的頻率增大尤其明顯。由此可見,不同工況的壓縮機聲音信號存在著明顯差異,進一步驗證了通過壓縮機聲音信號進行故障診斷的可能性。 應用上文中介紹的MFCC特征向量提取方法,分別對壓縮機聲音信號樣本進行特征提取。實驗中設分幀幀長為500 ms、重疊率40%,提取24維MFCC特征向量。圖6是一臺正常壓縮機提取的MFCC特征向量,圖7是一臺故障壓縮機中提取的MFCC特征向量。 圖6 1號正常壓縮機的MFCC 圖7 1號故障壓縮機的MFCC 本實驗部分是分別運用LVQ神經網絡的3種學習算法對訓練集壓縮機聲音信號的MFCC特征向量進行訓練,得到3個對應的聲紋識別模型。 利用3個不同的聲紋識別模型對測試集壓縮機聲音數據進行識別,并對識別結果分別繪制接收者操作曲線(receiver operating characteristic,ROC)和混淆矩陣(confusion matrix),以分析3個模型識別結果的差異。表1為3種學習算法對應的模型描述。 表1 算法及描述 圖8為1號模型混淆矩陣和ROC曲線,該模型在10臺故障壓縮機中正確識別出了6臺,同時將2臺正常壓縮判斷為了故障壓縮機,故障壓縮機識別的召回率(recall rate)為60%,ROC曲線下面積(area under the curve of ROC,AUC)為0.70。可以看出,該模型有一定識別準確度,但不能達到預期要求。 圖8 模型1的混淆矩陣和ROC曲線 圖9為2號模型混淆矩陣和ROC曲線,該模型在10臺故障壓縮機中正確識別7臺,將1臺正常壓縮機進行了錯誤分類,故障壓縮機識別的召回率為70%,AUC為0.8。由此可見,改進的LVQ學習算法確實能提高模型的分類正確率。 圖9 模型2混淆矩陣和ROC曲線 圖10為3號模型混淆矩陣和ROC曲線,該模型在10臺故障壓縮機中正確識別出了9臺,同時只有1臺正常壓縮機被錯誤分類,故障壓縮機識別的召回率為90%,AUC為0.80。可見,通過LVQ3算法訓練的模型具有更好的識別成功率。 圖10 模型3混淆矩陣和ROC曲線 表2給出了通過3種不同學習算法所得到的模型的性能總結。 表2 算法模型總結 通過上述實驗可以驗證,本文提出的基于LVQ神經網絡的壓縮機聲紋識別模型的有效性。 本文提出的壓縮機故障診斷技術相比于傳統的壓縮機故障診斷技術有以下優點: (1)本文將生物識別技術應用到了壓縮機故障診斷,使用了“非接觸式”的聲紋識別方法是本文的核心創新點。此方法克服了傳統壓縮機診斷中接觸式傳感器部署困難、批量采集效率低下等缺點。 (2)在特征提取方面,MFCC系數是一種應用最廣的聲音特征,具有很好的表征能力,方法步驟簡單清晰,提取速度快。 (3)在模型構建方面,LVQ神經網絡具有搭建簡單、分類效果好、不依賴大數據集、學習速度快等優點。 在壓縮機噪聲信號分析實驗中可以發現,故障壓縮機聲音信號的頻率在20 000 Hz以下有明顯增大,特別是在13 000 Hz到18 000 Hz以及3000 Hz到5000 Hz之間的頻率增大尤其明顯,由此可以判斷,壓縮機的聲音信號在正常工況與故障工況時有明顯差別,為聲紋識別提供了可能性。在模型建立與識別階段,本文對比了3種LVQ神經網絡的學習算法,從結果可以看出使用改進的LVQ學習算法LVQ3所訓練出來的模型具有最好的分類效果,召回率達到90%,充分驗證了本文提出的故障壓縮機診斷方法的有效性。 對于壓縮機故障種類的劃分與識別,需要投入更多的人力分析故障原因,獲取更多故障種類的聲音數據。這將是作者下一階段的科研任務。
2 實驗與分析
2.1 實驗一:壓縮機噪聲信號分析與特征提取




2.2 實驗二:壓縮機聲紋模型訓練與識別





3 結束語