張書文 侯 猛 劉澤華 張錦龍
(河南大學物理與電子學院 開封 475001)
隨著新冠疫情在全球范圍內(nèi)的肆虐,許多患有呼吸問題的病人需要不斷監(jiān)測其呼吸狀態(tài)。當病人出現(xiàn)呼吸異常的情況需要及時向醫(yī)生問診。醫(yī)護人員通過分析病人的呼吸情況可以找尋和分析病人出現(xiàn)這種呼吸狀況的原因。呼吸聲的診斷一般使用聽診器來獲取聽診信息,但是傳統(tǒng)聽診器存在著很大的局限性。人耳能夠聽取的聲音頻率范圍為20~20000 Hz,而醫(yī)院所用的聽診器因為在500 Hz左右會產(chǎn)生低頻響應,所以會導致誤差的產(chǎn)生,使醫(yī)護人員不能獲取到500~2000 Hz 以外的有效信息[1]。而且診斷結果的準確性與醫(yī)護人員的專業(yè)經(jīng)驗與相關參數(shù)有關。在初級診斷治療階段,初級醫(yī)生識別聽診聲的正確率一般從20%~80%不等。而導致高誤診率的原因有很多,例如漏診、錯診和延誤等。
病人的呼吸道出現(xiàn)異常呼吸聲的原因很多,例如氣道痙攣或者水腫、異物阻塞、肺部呼吸道感染等。由于每個病人的體質(zhì)和呼吸道受損情況不同,其表現(xiàn)出的呼吸聲也會有所不同。通過呼吸特征可以分辨病人的肺部情況,為病人的病情做出診斷。常見的肺部聽診聲包括:支氣管呼吸聲、濕羅聲、干羅聲、胸膜摩擦聲、哮鳴聲等[2]。
張偉君[3]通過功率譜方法和線性預測方法對呼吸聲進行分類,其分類的準確性會隨呼吸聲混合的不同類型變化。當鼾聲與羅聲混合時,其識別準確度僅有25%。崔星星[4]通過使用支持向量機(Support vector machine,SVM)和后向傳播(Back propagating,BP)神經(jīng)網(wǎng)絡對呼吸聲的分類進行研究,雖然該方法能取得較為準確的識別,但是其計算識別過程較為復雜,且并未實現(xiàn)便攜式檢測系統(tǒng)研制。本文使用聚偏二氟乙烯(Polyvinylidene difluoride,PVDF)薄膜傳感器采集呼吸聲,采集的呼吸聲經(jīng)過處理之后可以提取Mel 頻率倒譜系數(shù)(Mel frequency cepstral coefficients,MFCC)。提取的特征值可以判斷識別病人的呼吸狀態(tài),且采集的呼吸聲可以通過存儲介質(zhì)存儲起來,以便為醫(yī)護人員分析一段時間內(nèi)的呼吸狀態(tài)提供參考。
PVDF 傳感器是一種獨特的柔性動態(tài)應變傳感器,適合應用于人體表面以及人體內(nèi)部聲音信號的采集[5]。其原理是當PVDF傳感器在受到拉伸或者彎曲之后,薄膜上下電極表面會產(chǎn)生一個電信號,該信號與拉伸或者彎曲的形變成比例。圖1 和圖2為MEAS 公司生產(chǎn)的兩種不同制造工藝的PVDF傳感器。
圖1 PVDF 薄膜傳感器類型1Fig.1 PVDF sensors Type1
圖2 PVDF 薄膜傳感器類型2Fig.2 PVDF sensors Type2
常見的聲音采集拾聲器有電容式、駐極體式、動圈式等。但是這些聲頻采集拾聲器對人體呼吸聲信號采集都存在一定的局限性,例如采集的聲頻范圍小、功放后聲頻混亂、安裝不適宜等。此外采聲效果接近PVDF 薄膜傳感器的電容式拾聲器因具有造價昂貴、結構復雜等特點所以不適合長時間反復采集人體微弱的體聲信號。電容式駐極體傳感器和PVDF 薄膜傳感器雖然都具有體積小的優(yōu)點,但電容式駐極體傳感器不具有柔性,且其在低頻信號的采集效果并不理想。綜上,PVDF 薄膜傳感器是最適合采集人體呼吸聲的傳感器,它可以避免以上傳統(tǒng)聲頻采集裝置的缺點,因此可以應用于醫(yī)學呼吸聲監(jiān)護。本文所述的PVDF薄膜傳感器檢測裝置采用的是第一種傳感器。該傳感器采集人體的呼吸聲信號效果最好,分辨率最高,最適宜與人體皮膚組織接觸[6]。該傳感器采集信號的下限頻率很低,信號的頻率范圍為8 Hz~2.2 kHz,其靈敏度為40 V/mm,電子噪聲的典型值為1 mV。
人的說話聲可以通過聲調(diào)以及發(fā)音方式來區(qū)分,但呼吸聲不能使用這些特點進行區(qū)分[7]。在人體呼吸過程中,氣流經(jīng)過呼吸道會與呼吸道的組織以及氣管相互作用產(chǎn)生聲音。病人的呼吸道或者肺部可能有病變(例如分泌物、氣泡等)產(chǎn)生,這導致氣流在流經(jīng)呼吸道時會產(chǎn)生異常聲音[8]。這些異常聲音并沒有聲調(diào)及發(fā)音方式的不同,只是其在產(chǎn)生方式不同。人耳可以區(qū)分出來這些異常呼吸聲,所以可以將呼吸聲經(jīng)過類似人耳聽覺的Mel濾波器分析之后可以提取聲音特征進行區(qū)分。根據(jù)這些特征可以分辨這些異常呼吸聲。
每種聲音的不同可以根據(jù)其聲音的頻譜圖來區(qū)分,頻譜圖中包含聲音的特征[9]。圖3 中列出了正常呼吸聲和幾種異常氣道聲的頻譜圖。紅線為正常呼吸聲的頻譜圖,其表示健康人呼吸道以及肺部沒有任何病變的呼吸聲。綠線為支氣管呼吸聲的頻譜圖,其形成原因主要有肺組織實變、肺內(nèi)大空腔、壓迫性肺不張等原因。藍線為濕羅聲的頻譜圖,其形成原因是氣流通過呼吸道分泌物(如滲出液、痰液、血液等)形成的水泡致其破裂產(chǎn)生聲音或氣體流經(jīng)分泌物粘連而陷閉的肺泡和細支氣管時致其重新充氣張開產(chǎn)生聲音。濕羅聲的細分種類很多,包括粗濕羅聲、中濕羅聲和細濕羅聲等,藍線顯示的是其中一種。黃線為干羅聲的頻譜圖,其形成原因是氣體通過狹窄的支氣管或震動了黏液弦而產(chǎn)生的聲音。其細分種類也有多種,其包含哮笛聲、憨聲等,黃線所示僅為其中的一種類型。
圖3 4 種不同典型聲音的頻譜圖Fig.3 Spectrograms of four different typical sounds
聲音頻譜包絡含有共振峰信息。而提取呼吸聲的特征值重點就在于如何提取頻譜包絡[10]。頻譜圖反映的是整個聲音信號的頻譜分布,但是人耳的聽覺感知不是整個頻譜范圍,而是在某些特定的頻譜范圍。MFCC是最常見的語聲特征。MFCC模擬了人耳的聽覺特性,將原始頻譜經(jīng)過Mel 頻譜變換之后轉(zhuǎn)化為基于Mel 頻譜的非線性頻譜進行分析[11]。這樣做的好處是對呼吸聲信號進行降維,更容易得到呼吸聲信號的特征值[12]。
Mel 濾波器將信號的不同頻率映射到Mel 頻率,以此來模擬人耳的聽覺系統(tǒng)。式(1)是兩者的變換關系:
式(1)中,f對應的是輸入聲音信號的頻率,fMel表示經(jīng)過Mel 變換的聽覺感知頻率。圖4 為Mel 濾波器組在人耳感知范圍內(nèi)的頻響圖。從圖4 中可以看出濾波器組對低頻段更加敏感并且其分布更加密集。這一分布情況與人耳的感覺特性是一致的[13]。
圖4 Mel 濾波器組Fig.4 Filter banks
對信號進行倒譜分析需要經(jīng)過如下的過程:
(1) 人體的呼吸聲在一個呼吸周期內(nèi)是一種非平穩(wěn)時變信號。對呼吸聲音進行預加重、分幀和加窗處理之后可以將信號認為是一種平穩(wěn)時不變信號[14]。這些處理可以提升信號中的高頻部分,突出高頻的共振峰,同時也可以減少信號的頻譜泄露。
(2) 對經(jīng)過預處理之后的信號進行快速傅里葉變換(Fast Fourier transform,FFT)將時域信號轉(zhuǎn)化為頻域信號:
式(2)中,x(m)為經(jīng)過預處理之后的聲頻離散序列,X(k)為經(jīng)過FFT變換的頻域信號。
(3) 對輸入呼吸聲所在的頻域范圍內(nèi)設置一系列的濾波器,這些濾波器組成Mel 濾波器組。其濾波器的設置滿足式(3)中的關系:
式(3)中,k指的輸入信號的頻譜分量,m指第M個濾波器,f(m)指濾波器的中心頻率。這里濾波器組個數(shù)m設置為26。
(4) 根據(jù)式(4)計算每個濾波器輸出的對數(shù)能量。然后根據(jù)式(5)做離散余弦變換(Discrete Cosine transform,DCT),進而得到具有13 個維度的Mel倒譜系數(shù)。
式(5)中,M為濾波器的個數(shù),n為DCT計算之后的特征個數(shù)。
經(jīng)過以上計算得到的Mel 倒譜系數(shù)可以作為該呼吸聲的特征值。該特征值后續(xù)可以作為動態(tài)時間規(guī)整(Dynamic time warping,DTW)處理的數(shù)據(jù)內(nèi)容。
提取呼吸聲的MFCC 特征值會得到一個隨時間變化特征的序列,但由于不同個體在呼吸過程中,其呼吸時間長短并不是固定的。為了計算特征序列的相似性,需要使特征序列保有最大的相似度。因此需要DTW 自動扭曲時間序列,也即對時間片段進行局部縮放,此時計算的兩段序列相似度(序列距離)更為準確。圖5 顯示的是兩個序列波形相似但是時間軸上未對齊的片段在經(jīng)過DTW處理之后尋找到相似對齊點,其中虛線指示的為序列對齊點。
圖5 聲音信號的DTW 處理Fig.5 DTW processing of sound signal
假設匹配A(a1,a2,a3,···,ai,···,an)和B(b1,b2,b3,···,bj,···,bm)兩個序列的相似性,為了對齊兩個序列,需要構造一個矩陣網(wǎng)格C,該網(wǎng)格由矩陣元素C(i,j)構成,C(i,j) 表示序列aj與bj的歐氏距離,該網(wǎng)格中存在一個最短路徑使得距離累加值Dist 最小。該累加值也就是兩個聲音序列的相似值。
經(jīng)過DTW處理之后的時間片段可以減少因呼吸速率及發(fā)音震動緩急產(chǎn)生的特征值誤差。通過將不同語聲以及自身的MFCC特征序列進行DTW處理可以得到DTW 矩陣(歐幾里得相似距離矩陣)和相似值(距離)。由DTW 矩陣得到的相似值可以表明不同語聲信號的相似性,所以該矩陣可以作為K 最臨近(K-nearest-neighbor,KNN)劃分樣本空間的依據(jù)。
采集的呼吸聲音進行Mel 倒譜系數(shù)的計算提取之后,需要使用某種方式對呼吸聲音進行分類。由于異常呼吸聲音的樣本采集較為困難,不能提取大量數(shù)據(jù)。尤其是針對于卷積神經(jīng)網(wǎng)絡這種需要大量數(shù)據(jù)進行迭代回歸等方式。所以選擇KNN 算法進行呼吸聲音的分類。
KNN 算法的核心思想是當一個樣本空間k個最鄰近的樣本中大多數(shù)屬于某個類別,則樣本也屬于這個類別,并具有該類別的特征。KNN 方法主要依據(jù)的是靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對于類域的交叉或者重疊較多的待分樣本集來說,KNN方法較其他方法更為適合。
KNN 算法的原理有兩種,一種是蠻力實現(xiàn)原理,另一種是KD 樹實現(xiàn)原理。蠻力實現(xiàn)原理是計算預測樣本與所有訓練集中的樣本距離d。這種方式對于樣本特征數(shù)過多時時間耗費較大,因此只適合樣本較少的簡單模型中。
第二種KD樹實現(xiàn)原理并不是直接對樣本進行測試與分類,而是先對訓練集建模,建立的模型就是KD 模型,然后在對數(shù)據(jù)進行預測。圖6 為KD 樹的計算流程圖,KD 數(shù)采用的是從樣本的N為特征數(shù)量中取方差最大的第k個特征值作為根節(jié)點,然后根據(jù)此根節(jié)點,將數(shù)據(jù)按大于還是小于劃分為左右子樹,最后通過同樣的辦法遞歸形成KD樹。
圖6 KD 樹計算流程圖Fig.6 KD tree calculation flowchart
傳統(tǒng)聲頻采集裝置對微弱的體聲信號采集達不到要求,其采集效果往往不是很理想。而本文提出的使用PVDF 薄膜傳感器來采集呼吸聲信號的檢測系統(tǒng)采集聲頻信號分辨率高,可以檢測到低頻小信號。
圖7 是該呼吸檢測系統(tǒng)的實物圖。該系統(tǒng)采用36 V 供電電壓、3300 mAh 電池容量的鋰電池為整個系統(tǒng)供電。電源經(jīng)過直流降壓之后給PVDF薄膜傳感器提供10 V 的工作電壓。此設計電路最大可以同時為4 組聲頻采集電路供電,可以為后續(xù)采集多個不同部位的體聲信號進行擴展。
圖7 檢測系統(tǒng)實物圖Fig.7 Picture of detection system
該系統(tǒng)還包括聲頻采集部分和數(shù)據(jù)處理部分。圖8 是該檢測系統(tǒng)采集和處理結構圖。PVDF薄膜傳感器采集的模擬聲頻信號經(jīng)過VS1053b 芯片轉(zhuǎn)化為數(shù)字信號,轉(zhuǎn)化后的數(shù)字信號經(jīng)過以STM32ZET6 作為主控和處理的芯片進行計算和存儲。
圖8 檢測系統(tǒng)采集和處理結構圖Fig.8 Detection system acquisition and processing structure diagram
存儲的聲頻信號由PC 端的程序進行KNN 神經(jīng)網(wǎng)絡的學習訓練,進而得到該分類的網(wǎng)絡模型。
項目組與河南大學第一附屬醫(yī)院展開合作,對近三個月呼吸科內(nèi)出現(xiàn)呼吸聲異常的病人與正常呼吸人群進行數(shù)據(jù)采集。在測量過程中,測量結果的準確性會受到使用者操作方式、外部噪聲環(huán)境和采集部位等因素的干擾。因此在采集過程中,需要將病人隔離到一個安靜的房間內(nèi),然后將檢測裝置的PVDF 薄膜傳感器用醫(yī)用繃帶固定到被采集人喉嚨部位,啟動設備,進行呼吸聲的采集。該過程中盡量保持采集部位一致,減少因采集部位不同給實驗結果造成的影響。最終采集的數(shù)據(jù)會被保存到系統(tǒng)的存儲器中。
使用呼吸聲檢測裝置總共采集了673個聲頻數(shù)據(jù),除去聲頻數(shù)據(jù)中存在異?;蛘吆粑卣鞑幻黠@的37 個呼吸聲,實際參與分類標號的共636 個。樣本聲頻數(shù)據(jù)包含163 個正常呼吸聲,162 個支氣管聲,156個干羅聲,155個濕羅聲。這些數(shù)據(jù)需要經(jīng)過KNN 進行訓練之后建立模型才能對呼吸聲進行預測分類,因此這些數(shù)據(jù)也需要根據(jù)一定的依據(jù)劃分為訓練集和驗證集[15]。除此之外,為了驗證模型的泛化能力,還需要除了訓練集和驗證集以外的聲頻數(shù)據(jù)對模型的分類準確率進行測試。
該檢測系統(tǒng)中選取了4 種呼吸聲(不同病人所產(chǎn)生的)作為該識別的種類。圖9 顯示了這幾種呼吸聲的MFCC 特征分布圖。MFCC 特征分布圖描述的是在一個完整的呼吸過程中特征值隨著時間變化的倒譜系數(shù)圖。圖9(a)為正常呼吸聲的MFCC圖,圖9(b)為支氣管呼吸聲的MFCC 圖,圖9(c)為濕羅聲的MFCC圖,圖9(d)為干羅聲的MFCC圖。
圖9 呼吸聲音的MFCC 特征圖組Fig.9 MFCC feature maps group for breathing sounds
從4 個特征圖中可以發(fā)現(xiàn),不同聲音中其MFCC 特征具有很大的差異,其在頻域上體現(xiàn)在不同頻率的包絡值不同。對于特征值來說,其反應呼吸聲的能量在人耳感知域的分布情況。
由于呼吸聲采集較為困難,呼吸聲樣本數(shù)據(jù)較少,為了使KNN 有較高的分類準確率,同時避免由于在劃分訓練集和測試集產(chǎn)生的片面誤差,需要對數(shù)據(jù)集進行K折交叉驗證,通過嘗試利用不同的訓練集和測試集來提高系統(tǒng)模型的可靠性。
K折交叉驗證的過程是首先將全部樣本(4 種不同類型呼吸聲)按同比例劃分成k個大小相等的樣本子集;然后依次遍歷這k個子集,每次把當前子集作為驗證集,其余所有樣本作為訓練集,進行模型的訓練和評估;最后把k次評估指標的平均值作為最終的評估指標。在后續(xù)的KNN 分類測試中,K折交叉驗證的k值選擇為經(jīng)典值10。為了使采集數(shù)據(jù)更方便的劃分,將采集的聲頻樣本數(shù)據(jù)隨機剔除12 個,剔除后的聲頻樣本數(shù)據(jù)620 個。最終樣本聲頻數(shù)據(jù)包含正常呼吸聲160 個,支氣管聲160 個,干羅聲150個,濕羅聲150個。
KNN 分類測試中選取KNN 的k值為5,選取最近5 個臨近對象,并采用KD 樹作為最近臨近的算法,然后根據(jù)這5 個臨近對象標記的平均值作為預測分類的結果。經(jīng)過K折交叉驗證之后可以得到10組分類模型的準確率(圖10)。該四分類模型的平均準確率為89.84%,且當k值為5時,模型的識別效果最好,其準確率為93.5%。
圖10 四分類10 折交叉驗證準確率圖Fig.10 The 10-fold cross validation accuracy of four categories
為探究KNN 模型識別準確率是否會與分類的類型數(shù)量有關系,另取正常呼吸聲和支氣管聲音進行對比實驗,對以上相同的樣本數(shù)據(jù)進行同樣的處理,其測試結果如圖11所示。
圖11 四分類10 折交叉驗證準確率圖Fig.11 The 10-fold cross validation accuracy of two categories
從圖11 測試結果可以看出二分類模型的平均準確率為96.56%,當K為2 時,模型的識別效果最好,可以達到100%。通過對比測試結果圖10和圖11可以看出,當呼吸分類種類減少時,模型的分類準確率會大幅度上升,從四分類模型平均準確率89.84%上升到二分類模型平均準確率96.56%。
為了驗證由KNN 訓練得到的模型是否具有優(yōu)良的泛化能力,使用呼吸聲檢測裝置采集了50 名包含呼吸聲異常病人(非測試集和驗證集中被采集的人員)的呼吸聲,并由上述所得k為5 的四分類模型進行呼吸聲分類識別,測試結果如表1 所示。從表1 中數(shù)據(jù)可看出,基于K折交叉驗證和KNN 識別模型的準確率對該50 人測試樣本的識別準確率為94%,與四分類K折交叉驗證中模型時最佳準確率(k=5) 93.5%基本保持一致,因此該識別方法表現(xiàn)出了較好的泛化能力,可以作為識別和分類異常呼吸聲的方法。
表1 測試結果Table 1 Test results
將基于KNN 識別方法的準確率與雙譜法[16]、SVM[4]、小波+LDA[17]、功率譜法及線性預測法[3]進行呼吸聲識別的結果進行比較,其結果如表2 所示。通過對比幾種識別方法的正確率可得,在這幾種方法中,KNN 識別正確率次于小波+LDA 方法的識別正確率,但高于其他呼吸聲的識別方法。小波+LDA 方法雖然準確率較高,但其時間復雜度O(k×n)卻會隨著其迭代次數(shù)而大幅增加,因此其迭代收斂速度低于KNN的時間復雜度O(n)。綜上,雖然KNN 識別正確率不如小波+LDA 方法,但是其計算過程及處理速度卻遠遠快于小波+LDA 方法,同時KNN也能保持較高的識別率。
表2 不同方法的識別正確率Table 2 Recognition accuracy of different methods
綜合來看,通過該方法檢測與分類的正確率會隨著種類的細分程度而改變,但其正確率均在85%以上,且比功率譜法及線性預測方法識別分類的準確率高,因此具有較高的可行性和一致性。此外該檢測設備具備操作方法簡單、計算速度快、攜帶方便等優(yōu)點,該方法也可以為其他人體微弱體聲采集和分析提供可以套用的范例。
為了能夠識別和分類人體微弱的呼吸聲信號,本文使用柔性PVDF 薄膜傳感器對微弱信號進行采集,然后對采集的呼吸聲信號進行特征提取和識別分類。在呼吸聲識別和分類過程中使用KNN 算法不但可以達到較高的準確率,又可以保持較快的識別速度。因此該系統(tǒng)可以為實時采集和分析人體微弱的體聲信號提供一種很好的實例方法。
目前本檢測系統(tǒng)還處于實驗室研發(fā)階段,投入實際使用還需大量臨床數(shù)據(jù)和不斷改進檢測裝置。例如,在本系統(tǒng)測試與采集過程中,采集聲音的部位是病人喉嚨部位。在后續(xù)測試和補充階段,該裝置將會放置于病人的胸部,模擬醫(yī)生聽到的聽診聲。此外該系統(tǒng)目前采集的聲頻會受到環(huán)境與使用者的操作等影響,這些影響均會導致實際采集信號與病人呼吸聲存在偏差。為解決以上問題,目前已經(jīng)與河南大學第一附屬醫(yī)院展開合作,針對問題提出相關的解決方案,更好地完善該系統(tǒng),為醫(yī)護人員以及病人提供醫(yī)療便利。