顧國良,許鵬,沈曉燕
(南通大學(xué) 電子信息學(xué)院,江蘇 南通 226019)
在復(fù)雜多變的世界中,嬰兒顯得十分弱小,他們只有在成年人的精心呵護(hù)下,才能健康地成長??奘菋雰撼錾笊南笳鳎彩撬麄兣c外界交流的工具,通過啼哭表達(dá)自己的訴求,因此,一種可以實(shí)時(shí)準(zhǔn)確監(jiān)測(cè)嬰兒哭聲的系統(tǒng)是非常有必要的。在上世紀(jì)六七十年代,國外己經(jīng)有對(duì)嬰兒哭聲進(jìn)行研究,危地馬拉的兒科醫(yī)生萊斯用計(jì)算機(jī)對(duì)兒童哭聲的疾病信息進(jìn)行研究[1]。2003年,西班牙的一位工程師發(fā)明了一款可以分析嬰兒哭聲的儀器,不過被證實(shí)檢測(cè)效果并不好[2]。國內(nèi)主要是在一部分研究機(jī)構(gòu)和高等院校對(duì)聲音信號(hào)進(jìn)行研究,設(shè)計(jì)了嬰兒哭聲信號(hào)識(shí)別的一些測(cè)試系統(tǒng)[3],目前,很多醫(yī)院對(duì)嬰兒監(jiān)護(hù)仍需人工來完成,市面上也有很多類似育嬰箱的智能監(jiān)護(hù)產(chǎn)品,但具有嬰兒哭聲識(shí)別功能的較少且識(shí)別精度不高[4]。為了解決該問題,本研究采用動(dòng)態(tài)時(shí)間規(guī)整識(shí)別算法與線性預(yù)測(cè)系數(shù)結(jié)合,實(shí)現(xiàn)對(duì)嬰兒哭聲的準(zhǔn)確識(shí)別。本系統(tǒng)以DSP為硬件平臺(tái),其強(qiáng)大的浮點(diǎn)運(yùn)算功能,大大提高了系統(tǒng)的時(shí)效性和準(zhǔn)確性。
嬰兒啼哭聲與成年人的語音比較,既有相似又有不同,實(shí)驗(yàn)所用語音為一段嬰兒啼哭聲,圖1為嬰兒啼哭聲的時(shí)域波形和對(duì)應(yīng)的語譜圖。分析得嬰兒哭聲具有以下不同于語音信號(hào)的特點(diǎn):基頻較高,嬰兒的聲帶短而且薄,因此得到的基音頻率較高;嬰兒啼哭的某些聲音單元,其包絡(luò)部分呈現(xiàn)規(guī)律性。本研究使用動(dòng)態(tài)時(shí)間規(guī)整算法對(duì)嬰兒哭聲進(jìn)行識(shí)別,語音識(shí)別系統(tǒng)原理框圖見圖2。
圖1 語譜圖
圖2 語音識(shí)別系統(tǒng)原理框圖
樣本語音經(jīng)過端點(diǎn)檢測(cè)等預(yù)處理之后,對(duì)得到的語音信號(hào)進(jìn)行特征參數(shù)提取,然后存入模板庫中,待識(shí)別的語音經(jīng)過預(yù)處理和參數(shù)提取后,將采集到的語音的特征參數(shù)與模板庫中的每個(gè)模板進(jìn)行模式匹配,將相似度最高的模板對(duì)應(yīng)的語音判決為識(shí)別結(jié)果輸出[5-6]。
線性預(yù)測(cè)分析的基本思想為:一個(gè)語音樣本當(dāng)前的值可以用樣本中若干過去的值通過某種線性組合來無限逼近。實(shí)際語音和線性預(yù)測(cè)的采樣值通過最小均方誤差(MSE)準(zhǔn)則來確定唯一的一組線性預(yù)測(cè)系數(shù)(LPC)。
根據(jù)模型化表示法,圖3為嬰兒哭聲信號(hào)模型,其中增益為G的信號(hào)t(n)在經(jīng)過H(z)產(chǎn)生輸出信號(hào),即嬰兒哭聲信號(hào)x(n),聲道參數(shù)即是線性預(yù)測(cè)系數(shù)。
圖3 嬰兒啼哭聲信號(hào)的模型化
其中,H(z)為全極點(diǎn)模型的表達(dá)式見式(1):
(1)
在式(1)中,模型參數(shù)分別為:系數(shù)ai、增益常數(shù)G、以及模型階數(shù)p。
(2)
由式(2)得,F(xiàn)(z)由ai決定,采用最小均方誤差準(zhǔn)則,可求得ai。
短時(shí)預(yù)測(cè)均方誤差為En,其表達(dá)式見式(3):
(3)
在實(shí)際研究中,En在每一幀聲音信號(hào)的范圍內(nèi)進(jìn)行,當(dāng)?En/?ak=0時(shí),En可取到最小值,其中,k=1,2,…,p,即:
(4)
因此,可以得到線性方程組:
(5)
其中,k=1,2,…,p。如果定義
其中,k=1,2,…,p;i=0,1,2,…,p,則式(5)可用式(6)表示:
(6)
對(duì)于線性預(yù)測(cè)方程組,自相關(guān)法穩(wěn)定性較好,具有高效遞推算法的優(yōu)勢(shì),因此優(yōu)先考慮自相關(guān)法,自相關(guān)函數(shù)經(jīng)過加窗處理后可以得到式(7):
(7)
自相關(guān)函數(shù)法需要加窗進(jìn)行過濾,但誤差較大,計(jì)算精度較差。
為提高識(shí)別精度,本研究采用優(yōu)化過的布萊克曼窗進(jìn)行濾波,相對(duì)于其它窗函數(shù),其主瓣寬,旁瓣比較低,且波動(dòng)較小,幅值識(shí)別精度高。首先進(jìn)行預(yù)加重處理,在經(jīng)過端點(diǎn)檢測(cè)之后,將語音信號(hào)進(jìn)行分幀,然后對(duì)每一幀信號(hào)使用優(yōu)化的布萊克曼窗處理,使得濾波之后的信號(hào)噪聲明顯減少,求得哭聲信號(hào)的線性預(yù)測(cè)系數(shù)精度大大提高。
動(dòng)態(tài)時(shí)間規(guī)整(dynamic time wraping, DTW)算法,用滿足一定條件的時(shí)間規(guī)整函數(shù)W(n)描述測(cè)試模板和參考模板的時(shí)間對(duì)應(yīng)關(guān)系,該規(guī)整函數(shù)使得兩模板匹配時(shí)累加距離最小[7],原理圖見圖4。
有兩個(gè)時(shí)間序列A和B,分別為參考模板和測(cè)試模板,他們的長度分別是n和m(m,n為任意值)A=a1,a2,…,ai,…,an;B=b1,b2,…,bi,…,bn;
若n=m,直接計(jì)算兩個(gè)序列的距離,若n不等于m,需要將兩個(gè)時(shí)間序列對(duì)齊,采用動(dòng)態(tài)規(guī)劃(dynamic programming, DP)的方法,進(jìn)行線性縮放。構(gòu)造一個(gè)n×m的矩陣網(wǎng)格,矩陣元素(i,j)表示ai和bj兩個(gè)點(diǎn)的歐式距離d(ai,bj),d(ai,bj)=(ai,bj)2。
從(0,0)點(diǎn)開始匹配這兩個(gè)序列A和B,每到一個(gè)點(diǎn),將之前所有的點(diǎn)計(jì)算的距離累加,到達(dá)終點(diǎn)(n,m)后,這個(gè)累加距離就是序列A和B的相似度。
累加距離γ(i,j)可以按下面的方式表示,累積距離γ(i,j)為當(dāng)前格點(diǎn)距離d(i,j),也就是點(diǎn)ai和bj的歐式距離與可以到達(dá)該點(diǎn)的最小的鄰近元素的累加距離之和,即:
r(i,j)=d(ai,bj)+min{γ(i-1,j-1),γ(i-1,j),γ(i,j-1)}
圖4 動(dòng)態(tài)時(shí)間規(guī)整算法原理圖
系統(tǒng)整體結(jié)構(gòu)見圖5,拾音器采集音頻信號(hào)傳輸給音頻解碼芯片,音頻解碼芯片通過多通道音頻串行接口(multichannel audio serial port,McASP)將處理過的音頻信號(hào)傳輸給DSP芯片,使用優(yōu)化的自相關(guān)函數(shù)算法提取后,然后將處理后的音頻與存儲(chǔ)器模塊中的音頻數(shù)據(jù)庫進(jìn)行比對(duì),確定是否為嬰兒哭聲,DSP將得到的結(jié)果通過串口在控制端的PC上顯示。
圖5系統(tǒng)整體框圖
Fig5Theoverallsystemdiagram
采集單元,拾音器是用來采集現(xiàn)場(chǎng)環(huán)境聲音再傳送到后端設(shè)備的一個(gè)器件,它是由麥克風(fēng)和音頻放大電路構(gòu)成。TLV320AIC23B是一款性能極高的音頻編解碼器芯片,內(nèi)置放大濾波電路,其數(shù)模轉(zhuǎn)換和模數(shù)轉(zhuǎn)換功能采用集成過采樣數(shù)字插值濾波器的sigma-delta技術(shù),支持16位、20位、24位、32位采樣,采樣率為8~96 kHz。該芯片還集成了一個(gè)可調(diào)且可編程的麥克風(fēng)放大器。
處理單元,TMS320DM643芯片是定點(diǎn)DSP中性能最優(yōu)的數(shù)字信號(hào)處理平臺(tái),非常適合數(shù)字媒體的應(yīng)用。TMS320DM643主頻高達(dá)5760 (million instructions per second,MIPS),時(shí)鐘周期最高為720 MHz,為高性能DSP編程技術(shù)提供高效的解決方案。TMS320DM643采用兩級(jí)緩存技術(shù)且具有許多功能強(qiáng)大的外設(shè),集成有1個(gè)McASP片上外設(shè)和一個(gè)I2C( Inter-integrated Circuit)總線模塊。McASP是一種多通道音頻同步串行接口,TLV320AIC23B通過McASP實(shí)現(xiàn)與TMS320DM643的數(shù)據(jù)通信。McASP 同樣具有很強(qiáng)的可編程能力,可以配置為多種同步串口標(biāo)準(zhǔn),直接與各種器件高速接口。另外,我們?cè)黾恿艘粋€(gè)4 M×64-位的SDRAM 存儲(chǔ)器,用于存儲(chǔ)程序與數(shù)據(jù)。
控制單元,TL16C752B是具有64字節(jié)(first input first output,F(xiàn)IFO)通用異步收發(fā)器,它可以完成DSP數(shù)據(jù)的傳送以及串行傳輸?shù)牟ㄌ芈实脑O(shè)定。TL16C752B是一塊串行協(xié)議轉(zhuǎn)換芯片,它可以將DSP發(fā)送的數(shù)據(jù)以通用的串行協(xié)議傳輸,實(shí)現(xiàn)DSP與其它硬件的數(shù)據(jù)傳輸。TL16C752B通過MAX3232實(shí)現(xiàn)與計(jì)算機(jī)的通信,MAX3232完成電平轉(zhuǎn)換,TL16C752B完成數(shù)據(jù)傳送的并/串轉(zhuǎn)換以及串行傳輸?shù)牟ㄌ芈试O(shè)定等功能。
軟件設(shè)計(jì)流程圖見圖6。
根據(jù)模塊化的程序設(shè)計(jì)思想,實(shí)現(xiàn)程序的簡潔明了,方便調(diào)用和調(diào)試,將所用到的算法程序封裝到子程序模塊中,對(duì)于被調(diào)用頻率高的子程序,可采用匯編語言實(shí)現(xiàn)[8-9]。
完成硬件模塊的初始化后,設(shè)置McASP以中斷的方式接收TLV320AIC23B傳過來的數(shù)據(jù),使McASP的接收中斷,DSP會(huì)把接收到的數(shù)據(jù)存放在某塊緩沖區(qū)中,此緩沖區(qū)為循環(huán)緩沖區(qū),以便用一個(gè)有限容量的數(shù)據(jù)區(qū)來存儲(chǔ)數(shù)量極大的語音數(shù)據(jù),然后對(duì)數(shù)據(jù)進(jìn)行采樣,將McASP接收到的語音信號(hào)利用短時(shí)能量和過零率相結(jié)合的方法進(jìn)行端點(diǎn)檢測(cè),采用優(yōu)化的自相關(guān)函數(shù)算法進(jìn)行特征提取,使用動(dòng)態(tài)時(shí)間規(guī)整算法識(shí)別,確定結(jié)果,然后通過串口顯示在計(jì)算機(jī)上。
圖6 系統(tǒng)主程序流程圖
為測(cè)試系統(tǒng)對(duì)嬰兒哭聲的識(shí)別率,選取嬰兒哭聲、笑聲、開關(guān)門聲、狗叫聲、非兒童人聲進(jìn)行實(shí)驗(yàn)。本研究中分別錄制60段嬰兒哭聲,嬰兒聲音樣本來自5名1周歲以下的嬰兒各12段;錄制50段嬰兒笑聲,嬰兒聲音樣本來自5名1周歲以下的嬰兒各10段;錄制非兒童人聲,來自于25名男性,25名女性,分別對(duì)阿拉伯?dāng)?shù)字1,2,3,4,5的發(fā)音50段;錄制50段狗叫聲,來自于5種犬類各10段;錄制50段開關(guān)門聲。
本研究AD轉(zhuǎn)換器的采樣率設(shè)置為8 kHz,LPC階數(shù)為12,幀長為240。首先,取10段嬰兒哭聲樣本進(jìn)行訓(xùn)練,樣本來自5名嬰兒,提取特征參數(shù),組成參考模板庫。
實(shí)驗(yàn)一:使用漢明窗提取線性預(yù)測(cè)系數(shù)和動(dòng)態(tài)時(shí)間規(guī)整識(shí)別算法,將所有樣本從系統(tǒng)的輸入端輸入,查看輸出端顯示的結(jié)果,實(shí)驗(yàn)結(jié)果見表1。
表1一般的線性系數(shù)提取算法識(shí)別率
Table1Generallinearcoefficientextractionalgorithmrecognitionrate
樣本數(shù)告警數(shù)告警率(%)識(shí)別率(%)嬰兒哭聲50418282嬰兒笑聲50122476開關(guān)門聲5024狗叫聲50816語音 ”1”5048語音 ”2”501293.4語音 ”3”5036語音 ”4”5024語音 ”5”5036
研究表明,當(dāng)信號(hào)為嬰兒哭聲時(shí),識(shí)別率為82%,當(dāng)信號(hào)為嬰兒笑聲時(shí),識(shí)別率為76%,這兩項(xiàng)關(guān)于嬰兒聲音的識(shí)別率并不理想。而當(dāng)信號(hào)為非嬰兒聲音時(shí),各種聲音的識(shí)別結(jié)果有一些差異,狗叫聲的誤報(bào)次數(shù)最高,經(jīng)計(jì)算得出所有非嬰兒聲音樣本正確識(shí)別率為93.4%。可以明顯看出,該系統(tǒng)嬰兒聲音正確識(shí)別率偏低,非嬰兒聲音比嬰兒聲音的正確識(shí)別率略高。
實(shí)驗(yàn)二:使用布萊克曼窗提取線性預(yù)測(cè)系數(shù)和動(dòng)態(tài)時(shí)間規(guī)整識(shí)別算法,將所有樣本從系統(tǒng)的輸入端輸入,查看輸出端顯示的結(jié)果,實(shí)驗(yàn)結(jié)果見表2。
表2改進(jìn)的線性系數(shù)提取算法識(shí)別率
Table2Improvedlinearcoefficientextractionalgorithmrecognitionrate
樣本數(shù)告警數(shù)告警率(%)識(shí)別率(%)嬰兒哭聲50489696嬰兒笑聲503694開關(guān)門聲5012狗叫聲5024語音 ”1”5012語音 ”2”500097.7語音 ”3”5012語音 ”4”5024語音 ”5”5012
研究表明,當(dāng)信號(hào)為嬰兒哭聲時(shí),識(shí)別率為96%,當(dāng)信號(hào)為嬰兒笑聲時(shí),識(shí)別率為94%,這兩項(xiàng)識(shí)別率達(dá)到理想的效果。而當(dāng)信號(hào)為非嬰兒聲音時(shí),各種聲音的誤報(bào)次數(shù)普遍較低,非嬰兒聲音樣本正確識(shí)別率可達(dá)97.7%??傮w來說,該系統(tǒng)嬰兒聲音和非嬰兒聲音的正確識(shí)別率差距相差不大,都達(dá)到較高的水平。
綜上,將布萊克曼窗提取線性預(yù)測(cè)系數(shù)和動(dòng)態(tài)時(shí)間規(guī)整識(shí)別算法相結(jié)合,嬰兒聲音和非嬰兒聲音的識(shí)別率均得到了提高,其中,嬰兒哭聲和笑聲識(shí)別率得到了明顯的提高,系統(tǒng)性能整體得到提升且運(yùn)行良好,系統(tǒng)識(shí)別時(shí)間為大約500 ms左右,完全滿足育嬰箱的要求。
本研究設(shè)計(jì)了一套針對(duì)嬰兒哭聲的監(jiān)護(hù)系統(tǒng),通過改進(jìn)的自相關(guān)函數(shù)算法提取音頻線性預(yù)測(cè)系數(shù)特征參數(shù),使用動(dòng)態(tài)規(guī)整算法進(jìn)行識(shí)別,提高了對(duì)嬰兒哭聲識(shí)別的精確度;另外,本研究介紹了系統(tǒng)的硬件構(gòu)成和軟件設(shè)計(jì)架構(gòu),驗(yàn)證了平臺(tái)的性能有效性。該系統(tǒng)實(shí)時(shí)性好,分辨率高,操作簡單,想法新穎,在實(shí)際生活中有廣闊的應(yīng)用前景。