侯麗敏,劉煥成,施曉宇,張新鵬
(上海大學(xué) 通信與信息工程學(xué)院,上海 200444)
鼾聲相關(guān)信號(hào)的分類是利用鼾聲輔助診斷睡眠呼吸暫停低通氣綜合征(Sleep Apnea Hypopnea Syndrome, SAHS)過程中重要的前端工作[1-3].Lei等[4]對(duì)錄音的呼吸聲和非呼吸聲分類中提取了基于頻譜相關(guān)的特征,結(jié)合Mel倒譜系數(shù)(Mel-Frequency Cepstral Coefficients, MFCC)特征作為特征集,用支持向量機(jī)(Support Vector Machine, SVM)和徑向基函數(shù)(Radial Basis Function, RBF)神經(jīng)網(wǎng)絡(luò)等分類器融合來實(shí)現(xiàn)分類.Mlynczak等[5]在手機(jī)端運(yùn)用多層感知機(jī)模塊對(duì)鼾聲和呼吸聲做分類.Swarnkar等[6]提取包括聲音的基頻、MFCC和能量等特征用多層感知機(jī)對(duì)鼾聲與非鼾聲進(jìn)行分類.對(duì)低信噪比的錄音,Emoto等[7]用人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network, ANN)的方法來區(qū)分低信噪比下的鼾聲事件和非鼾聲事件.Karunajeewa等[8]用最小誤差概率決策準(zhǔn)則,對(duì)包括鼾聲、呼吸聲和靜音的聲音片段做分類.Rosenwein等[9]提出了鼾聲、呼吸聲和噪聲的分類系統(tǒng),構(gòu)造的聲學(xué)特征集共351維,用隨機(jī)森林分類器對(duì)鼾聲、呼吸聲和噪聲分類的平均正確率達(dá)到91%.
本文提出了基于ANN對(duì)鼾聲、呼吸聲和其他噪聲分類的方法.該方法提取每個(gè)聲音片段的頻譜相關(guān)特征集作為ANN的輸入特征,用小批量訓(xùn)練和Adam學(xué)習(xí)率自適應(yīng)等深度學(xué)習(xí)策略來優(yōu)化ANN結(jié)構(gòu)的參數(shù),該方法區(qū)分鼾聲、呼吸聲和其他噪聲的平均召回率、平均精準(zhǔn)率和平均F1值都在95%以上.
本文的實(shí)驗(yàn)數(shù)據(jù)均來自上海市第六人民醫(yī)院耳鼻喉科睡眠監(jiān)測(cè)病房里打鼾者的整夜錄音.患者鼾聲信號(hào)的錄音與患者做多導(dǎo)睡眠(Polysomnography, PSG)監(jiān)測(cè)診斷同步進(jìn)行.睡眠記錄儀采用偉康A(chǔ)lice 4,錄音設(shè)備為Dell Inspiration 570,聲卡型號(hào)為Creative Audigy 4 Value,麥克風(fēng)為Sony ECM-C10,采樣率為16kHz.研究對(duì)象為上海市第六人民醫(yī)院耳鼻喉科提供的接受PSG診斷的受試者.PSG報(bào)告給出了受試者的睡眠呼吸暫停低通氣指數(shù)(Apnea Hypopnea Index, AHI)等相關(guān)診斷結(jié)果.AHI值(λAHI)表示平均每小時(shí)測(cè)試者睡眠呼吸暫停低通氣事件的次數(shù),單位為次·h-1.λAHI對(duì)應(yīng)著睡眠呼吸暫停低通氣綜合征的嚴(yán)重程度,可分為4種不同的級(jí)別:λAHI<5為單純打鼾者(Non-SAHS, N),5≤λAHI≤15為輕度SAHS患者(Mild-SAHS,L),15<λAHI≤30為中度SAHS患者(Moderate-SAHS, M),λAHI>30為重度SAHS患者(Severe-SAHS, S).
實(shí)驗(yàn)數(shù)據(jù)包括了不同SAHS級(jí)別患者的整夜錄音.受測(cè)的打鼾者中有單純型11人,輕度SAHS型11人,中度SAHS型10人,重度SAHS型10人,共計(jì)42人.表1是這些受試者的年齡、性別和PSG診斷的AHI值的統(tǒng)計(jì)分布,還包括我們從錄音中人工切割鼾聲和非鼾聲片段(包括呼吸聲和其他噪聲)的數(shù)量.鼾聲有46517個(gè)片段,呼吸聲有25357個(gè)片段,其他噪聲有12966個(gè)片段,所有切割的片段數(shù)量共計(jì)84840個(gè).
表1 實(shí)驗(yàn)數(shù)據(jù)統(tǒng)計(jì)
注: 3類聲音的總片段數(shù)為84840個(gè).
表2 聲學(xué)特征集
表1中鼾聲的切割方法是用整夜錄音的鼾聲信號(hào)同步PSG標(biāo)記的鼾聲,對(duì)準(zhǔn)切割出錄音的鼾聲片段.呼吸聲和其他噪聲的數(shù)據(jù)是通過3個(gè)工作者主觀試聽之后切割的.其他噪聲包括生物噪聲(語音、咳嗽聲、悶哼聲等)和非生物噪聲(音樂聲、被子摩擦聲、關(guān)門聲等).
鼾聲、呼吸聲和其他噪聲在頻譜分布上有明顯的差異性.為了恰當(dāng)描述這些差異性,我們對(duì)每個(gè)聲音片段提取了43維的特征集,主要包括4個(gè)方面: 頻譜能量類相關(guān)特征集(Spectral Energy related feature, SE),22維特征[10];基頻類相關(guān)特征集(Pitch Related feature, PR),3維特征[11];Mel倒譜系數(shù)相關(guān)特征集(MFCC related feature, MF),2維特征;頻譜余弦相似度特征集(Spectral Cosine Similarity feature, SCS),16維特征.表2給出了這些聲學(xué)特征參數(shù).
修正的頻譜質(zhì)心是指對(duì)頻譜質(zhì)心計(jì)算中的頻譜幅度修正為頻譜能量,提取所有幀的修正后的頻譜質(zhì)心的均值和差分作為特征.子帶能量特征是在頻域8000Hz內(nèi)均勻劃分出16個(gè)子帶,提取16個(gè)子帶的歸一化能量的均值和提取相鄰時(shí)間段的16個(gè)子帶能量的差分作為特征.在頻譜幅度值包絡(luò)下歸一化面積特征.頻譜熵特征是分別從時(shí)間方向和頻率方向?qū)β曌V圖計(jì)算熵,得到兩個(gè)熵值.
基頻是由聲源的周期性振動(dòng)造成的,是聲音信號(hào)的最小周期的倒數(shù).現(xiàn)在有倒譜法、線性預(yù)測(cè)法、自相關(guān)法等多種方法計(jì)算基頻,本文使用自相關(guān)法來提取聲音的基頻,提取聲音片段的基頻均值、基頻方差和基頻密度,其中基頻密度表示一個(gè)聲音片段在持續(xù)時(shí)間內(nèi)具有基頻的比例.
對(duì)于Mel倒譜類特征,取MFCC維數(shù)為16,計(jì)算MFCC0~MFCC16.在此基礎(chǔ)上提取動(dòng)態(tài)MFCC距離來描述信號(hào)Mel頻域的穩(wěn)定性,MFCC特征子集中只保留第0維系數(shù)MFCC0.
頻譜余弦相似度(SCS)相關(guān)特征集共包括4種余弦相似度的相關(guān)特征: 寬度為31.25Hz子帶的頻率方向頻譜余弦相似度(Frequency Detail SCS, FD);寬度為500Hz子帶的頻率方向頻譜余弦相似度(Frequency Overall SCS, FO);寬度為31.25Hz子帶的時(shí)間方向頻譜余弦相似度(Time Detail SCS, TD);寬度為500Hz子帶的時(shí)間方向頻譜余弦相似度(Time Overall SCS, TO).提取每種余弦距離的均值(1階原點(diǎn)矩)、方差(2階中心距)、偏度(3階中心距)和余弦距離的熵作為頻譜余弦相似度相關(guān)特征集.
ANN的每層神經(jīng)元與下一層神經(jīng)元全互連,神經(jīng)元之間不存在同層連接,這種結(jié)構(gòu)通常被稱為多層前饋神經(jīng)網(wǎng)絡(luò)模型.訓(xùn)練過程可分為前向傳播過程和誤差反饋傳播過程.我們對(duì)鼾聲及相關(guān)信號(hào)的分類使用ANN[12],分類流程如圖1所示.
圖1 ANN分類訓(xùn)練的流程圖Fig.1 The flow chart of ANN classification training
在訓(xùn)練階段,用表1中數(shù)據(jù)選取合適的訓(xùn)練數(shù)據(jù)集,提取特征后對(duì)特征進(jìn)行預(yù)處理,利用小批量訓(xùn)練的方式將特征放到ANN中進(jìn)行訓(xùn)練,在訓(xùn)練過程中運(yùn)用丟棄法和自適應(yīng)學(xué)習(xí)率的策略;在測(cè)試階段,從數(shù)據(jù)集中選取與訓(xùn)練數(shù)據(jù)不重疊的測(cè)試數(shù)據(jù),在提取特征和預(yù)處理后放入訓(xùn)練完成的ANN模型中得出測(cè)試集的分類結(jié)果.選取表1中80%患者的聲音片段作為訓(xùn)練數(shù)據(jù).
用整個(gè)訓(xùn)練集數(shù)據(jù)進(jìn)行訓(xùn)練的方法的梯度估計(jì)比任何子集所得到的方差要小,且收斂性好.但這種訓(xùn)練耗資耗時(shí),還可能導(dǎo)致高度依靠參數(shù)初始模型,收斂到局部最優(yōu),但并非全局最優(yōu)的情況.對(duì)于訓(xùn)練數(shù)據(jù),每次選取一定數(shù)量的樣本放入神經(jīng)網(wǎng)絡(luò)中,選取每一次輸入樣本的代價(jià)函數(shù)的均值作為代價(jià)函數(shù)對(duì)模型進(jìn)行收斂.這種方法有助于加快模型訓(xùn)練的速度,并訓(xùn)練出一個(gè)更好的模型,稱為小批量(minbatch)方法[13].本文使用小批量訓(xùn)練的方法,并結(jié)合隨機(jī)梯度下降(Stochastic Gradient Descent, SGD)法[14].小批量訓(xùn)練會(huì)從訓(xùn)練數(shù)據(jù)中抽出小批量的數(shù)據(jù)并基于此估計(jì)梯度.
我們用取樣隨機(jī)化(sample randomization)的策略保證樣本的獨(dú)立同分布性.每一輪訓(xùn)練時(shí),隨機(jī)打亂訓(xùn)練集后對(duì)索引重新排序,根據(jù)排序后的索引數(shù)組抽取樣本數(shù)據(jù).這種做法保證了每一輪次的完整訓(xùn)練中每個(gè)樣本只用來訓(xùn)練一次,并不會(huì)影響數(shù)據(jù)分布,從而保證學(xué)習(xí)輸出模型的一致性.
目前自適應(yīng)學(xué)習(xí)率的算法很多,主要是通過一些策略使得學(xué)習(xí)率隨著訓(xùn)練次數(shù)的增加逐步遞減,比較流行的有RMSProp(Root Mean Square Prop)和Adam算法[15].這些算法針對(duì)不同的網(wǎng)絡(luò)模型表現(xiàn)出的性能相當(dāng).本文采用Adam算法.
為保證生成模型的泛化效果,將對(duì)全部的訓(xùn)練集重復(fù)訓(xùn)練的次數(shù)記為迭代輪數(shù),記測(cè)試集snore,breath和other的分類錯(cuò)誤率的均值為測(cè)試集錯(cuò)誤率(r錯(cuò)誤),將隨著迭代輪數(shù)測(cè)試集錯(cuò)誤率的變化結(jié)果作為評(píng)價(jià)模型的標(biāo)準(zhǔn).調(diào)整的方法是: 首先確定一個(gè)初始參數(shù)模型,在初始模型上,控制其他參數(shù)不變,依次調(diào)節(jié)隱含層層數(shù),隱含層節(jié)點(diǎn)個(gè)數(shù)、學(xué)習(xí)率、每次迭代選取的樣本個(gè)數(shù)(minbatch)和每層隨機(jī)丟棄的比例(dropout)[16],最后得到最優(yōu)化結(jié)果.
隱含層的層數(shù)多有助于提升模型的表示能力,隨著隱含層層數(shù)的增加,訓(xùn)練集的擬合效果越來越好.但是一旦模型表示能力過強(qiáng),則會(huì)造成過擬合的后果,與此同時(shí),隱含層層數(shù)的增加會(huì)增加訓(xùn)練時(shí)更多的內(nèi)存代價(jià),因此需將隱含層的層數(shù)調(diào)整至合適的層數(shù).圖2(a)是不同隱含層訓(xùn)練時(shí)的測(cè)試集錯(cuò)誤率.結(jié)果顯示,當(dāng)隱含層為2和3層時(shí),模型收斂最快.隱含層節(jié)點(diǎn)個(gè)數(shù)的調(diào)整與隱含層層數(shù)一樣.圖2(b)是不同節(jié)點(diǎn)數(shù)訓(xùn)練時(shí)的測(cè)試集錯(cuò)誤率.當(dāng)每層隱含層節(jié)點(diǎn)數(shù)為80個(gè)時(shí),模型收斂速度最快,測(cè)試集錯(cuò)誤率最低.
圖2 參數(shù)調(diào)整的迭代圖Fig.2 The iteration diagram of parameter adjustment
丟棄法的目的是防止過擬合.由于神經(jīng)網(wǎng)絡(luò)模型的復(fù)雜性,網(wǎng)絡(luò)模型往往會(huì)對(duì)訓(xùn)練集過擬合,故在每一次訓(xùn)練過程中對(duì)網(wǎng)絡(luò)的每一層隨機(jī)丟棄一定比例的節(jié)點(diǎn)不進(jìn)行激活,而在測(cè)試時(shí)利用完整的節(jié)點(diǎn)進(jìn)行測(cè)試,可以提升模型的泛化效果.圖2(c)給出了丟棄比例參數(shù)的調(diào)整.當(dāng)丟棄比例為0.3時(shí),測(cè)試集錯(cuò)誤率最低.圖2(d)是不同minbatch個(gè)數(shù)的測(cè)試集錯(cuò)誤率.從圖中可以發(fā)現(xiàn),當(dāng)minbatch數(shù)量為2048時(shí),測(cè)試集錯(cuò)誤率最低.學(xué)習(xí)率和迭代次數(shù)等參數(shù)優(yōu)化調(diào)節(jié)過程與以上參數(shù)調(diào)試類似,不再一一陳述.
我們切割的各類聲音片段的總數(shù)如表1所示,分別為46517,25357,12966,按八二比例將它們分為訓(xùn)練集和測(cè)試集.劃分有3種方案,如表3(@@@534頁)所示.第1種保持八二比例的原始數(shù)據(jù),顯然鼾聲、呼吸聲和其他噪聲片段的數(shù)量相差較大,鼾聲片段的數(shù)量遠(yuǎn)遠(yuǎn)大于呼吸聲和其他噪聲片段的數(shù)量.針對(duì)這種類別數(shù)據(jù)不平衡的問題,第2種方案是直接對(duì)訓(xùn)練集里的多數(shù)類別的樣本進(jìn)行下采樣(downsampling),即去除多數(shù)類別中多余的樣本量,使得各類樣本的數(shù)量接近.第3種方案是對(duì)訓(xùn)練集中的少數(shù)類別的樣本進(jìn)行上采樣(upsampling),即增加一些少數(shù)樣本的數(shù)量,使得各類樣本的數(shù)量接近.第3種方案對(duì)于訓(xùn)練集中樣本數(shù)量較少的呼吸聲和其他噪聲片段,通過加入白噪聲的方式,合成新的信噪比為20dB的“呼吸聲”和“其他噪聲”加入訓(xùn)練集的對(duì)應(yīng)類別中,使得訓(xùn)練集的呼吸聲與其他噪聲片段同鼾聲片段的數(shù)量一樣.3個(gè)方案中測(cè)試集相同.本文分別對(duì)訓(xùn)練集進(jìn)行下采樣和上采樣處理以解決類別不平衡問題.詳細(xì)數(shù)據(jù)見表3.
表3 訓(xùn)練集和測(cè)試集的設(shè)置方案
對(duì)第1種方案,通過類似代價(jià)敏感學(xué)習(xí)的方式,訓(xùn)練時(shí),提升少數(shù)類別損失在整體代價(jià)函數(shù)中的權(quán)重,使得分類效果相對(duì)平衡.利用圖1設(shè)計(jì)的模型,對(duì)3種方案分別做了測(cè)試.我們用召回率(recall rate)R,精準(zhǔn)率(precision)P和F1值等指標(biāo)作為測(cè)試的結(jié)果,如圖3所示.對(duì)鼾聲和呼吸聲測(cè)試的R,P和F1值均達(dá)到了98%以上,而對(duì)其他噪聲測(cè)試的結(jié)果略弱一些,R,P和F1值在89%~95%之間.原因可能在分類的對(duì)象上: 鼾聲和呼吸聲自身的泛化效果較好,聲音差別不大,共性多,較容易訓(xùn)練;而其他噪聲本身內(nèi)部的聲學(xué)特征有較大差異,而且數(shù)據(jù)量相對(duì)較少.
使用下采樣或上采樣數(shù)據(jù)量均衡方式對(duì)部分指標(biāo)的正確率有所幫助.下采樣中R最高,達(dá)到99.7%,但P卻最低,為89%.上采樣方式的效果最為穩(wěn)定,無論是R,P還是F1值都有較高的正確率,對(duì)其他噪聲進(jìn)行判斷得到的R,P和F1值均達(dá)到最大,分別為93.09%,93.04%和93.07%.從模型的穩(wěn)定性來看,使用上采樣方式的結(jié)果總體上要優(yōu)于使用下采樣的結(jié)果.
使用原始數(shù)據(jù)、下采樣和上采樣3種方案的平均R分別為96.61%,97.04%和96.80%;平均P分別為96.35%,95.45%和96.72%;平均F1值均在96%.從模型的均衡性的角度來看,訓(xùn)練數(shù)據(jù)越多越好.下采樣由于削弱了訓(xùn)練數(shù)據(jù)量,使得R與P之間難以保持一致.而上采樣用合成新的聲音的方式對(duì)訓(xùn)練集中樣本量少的類別加大數(shù)量來提升其豐富性的方法有一定的作用,所以,上采樣的方案對(duì)提升整體分類效果較為明顯.
由于鼾聲和呼吸聲的數(shù)據(jù)量相對(duì)其他噪聲的要多,這種數(shù)據(jù)數(shù)量的不平衡易導(dǎo)致哪類的數(shù)據(jù)量越大,哪類的區(qū)分效果就越好.因此,不平衡的數(shù)據(jù)以及小數(shù)據(jù)量如何更好地用在人工神經(jīng)網(wǎng)絡(luò)上,這是未來我們要深入研究的問題.
圖3 3種測(cè)試方案的召回率、精準(zhǔn)率和F1值的結(jié)果Fig.3 Results of recall rate, precision and F1 value for three test schemes
本文提出了利用ANN對(duì)鼾聲、呼吸聲和其他噪聲進(jìn)行分類的方法.設(shè)計(jì)了小批量訓(xùn)練與梯度下降結(jié)合的方案,采用隨機(jī)丟棄法和自適應(yīng)學(xué)習(xí)率的策略,分別通過下采樣、上采樣和直接使用原始訓(xùn)練集等方式對(duì)分類器進(jìn)行了訓(xùn)練,均獲得較好的分類效果,其中上采樣方式訓(xùn)練得到的模型最優(yōu).本文方法對(duì)鼾聲、呼吸聲與其他噪聲能實(shí)現(xiàn)有效的分類.
致謝:感謝上海第六人民醫(yī)院耳鼻喉科的醫(yī)生和護(hù)士們對(duì)鼾聲數(shù)據(jù)采集的大力支持和幫助.
復(fù)旦學(xué)報(bào)(自然科學(xué)版)2019年4期