張 華,李忠海,王文龍,趙 義
(1.沈陽師范大學 教師專業(yè)發(fā)展學院,沈陽 110034;2.沈陽航空航天大學 自動化學院,沈陽 110136;3.遼寧省語言文字應用中心,沈陽 110136)
普通話水平測試的第四項測試內容為命題說話,在命題說話評分中有一重要評分項是缺時,這里的缺時是指應試人說話時間不足3分鐘。對測試中應試人說話不足3分鐘的,國家普通話水平測試大綱有明確、嚴格的規(guī)定:“說話不足3分鐘,酌情扣分。缺時1分鐘以內(含1分鐘),扣1分、2分、3分;缺時1分鐘以上,扣4分、5分、6分;說話不滿30秒(含30秒),本項測試成績?yōu)?分?!痹谄胀ㄔ捤綔y試中應試人說話出現的語音空白間隔5秒以上就被認定是缺時,測試中應試人說話出現的語音空白間隔在5秒鐘以內(含5秒),歸自然流暢程度扣分。缺時是對這一部分評分的重要依據。目前雖然計算機評測系統(tǒng)有自動統(tǒng)計缺時時長的功能,但由于一些應試人在普通話水平測試中充分利用無效語料“嗯”“啊”等一些技術手段來混淆視聽,從而使計算機在自動統(tǒng)計缺時時長時出現了誤差,影響了測試信度。另一種情況是,采用測試員用秒表評判應試人的缺時數據以避免計算機評測誤差,但有些測試員對缺時評判不認真,而出現錯判和誤判現象。因此對應試人語音信號進行端點檢測來判定缺時信息的研究很有必要。
為了能準確快速的判定應試者的缺時信息,直接方法是在時域或頻域上進行語音信號的端點檢測。李金寶等[1]人提出了一種自適應子帶譜熵(adaptive subband power spectral entropy,ASPSE)它能成功地在不同的背景噪聲下檢測語音端點。韓志艷等[2]人提出了一種利用短時能零積法和鑒別信息的互補優(yōu)勢,一邊降噪一邊端點檢測,利用子帶能量鑒別信息方法對噪聲幀來進行二次復檢,根據鑒別信息來更新噪聲能量門限的端點檢測方法。劉紅星等[3]人提出了一種在窄帶語譜圖上通過sobel算子計算窄帶語譜圖的方向場,通過Gabor濾波增強諧波區(qū)域,求取諧波分布區(qū)域內的能量,以此作為門限判決的特征。李晉等[4]人提出用一種改進的基于譜減法和自適應子帶譜熵的語音端點檢測方法來提高低信噪比下語音端點檢測的性能。王秀坤等[5]人提出一種引入自適應門限的基于基音頻率的檢測算法。顧亞強等[6]人提出了一種新的利用對短時能零和過零率進行差分的方法來求取語音的起始點,達到了語音端點檢測的目的。談雪丹等[7]人提出了一種基于Hilbert-Huang變換瞬時能頻值的耳語音端點檢測的算法。龔英姬等[8]人提出用HHT(Hilbert-Huang)變換提取的瞬時能量(A)和瞬時頻率(f)的標準差參數描述病態(tài)噪音,實驗結果表明此方法能有效區(qū)分病態(tài)噪音和正常噪音。
本文從另外一個角度來考慮語音信號缺時的檢測,將語音信號劃分成若干小段,對每一段進行Hilbert-Huang變換,求出每個IMF分量的瞬時幅值和瞬時頻率,利用瞬時幅值和瞬時頻率求取該IMF分量的能頻值,利用該段的所有IMF分量的能頻值構造其能頻值特征向量。將待測信號與靜音樣本的能頻值特征向量相比較求取歐氏距離,根據歐氏距離與閾值的大小來判定該段是否為靜音段。根據相鄰靜音段的拼接最大時間長度是否大于5s來判定是否缺時,通過語音段的前后段的屬性來判定該段是否為噪聲段,消除噪聲段,最后得到完整的缺時信息。
目前理論研究和實驗都支持語音信號是一個復雜非線性過程的觀點,因此,引入非線性方法適宜對具有非線性特征的語音信號進行分析。Hilbert-Huang變換因其具有良好的時頻聚集性和極高的時頻分辨率而非常適于處理非線性、非平穩(wěn)信號,該方法首先采用EMD(empirical mode decomposition,經驗模式分解)方法將信號分解為若干IMF(intrinsic mode function,固有模態(tài)函數)分量之和,然后對每個IMF分量進行Hilbert變換得到瞬時頻率和瞬時幅值。
1)對于語音信號x(t)進行EMD分解
對于信號x(t)EMD分解按如下步驟進行:
使用三次樣條線將原始信號x(t)的所有局部極大值點連接起來形成上包絡線,再以相同方法求出信號的下包絡線,上、下包絡線應該包絡所有的數據點。將上、下包絡線的平均值記為m1,求出h1。
判斷h1是否滿足IMF條件,如果滿足則將h1作為EMD分解的第1個IMF分量,否則將h1作為原始信號按式(1)重復計算,直至得到滿足條件的IMF分量。并將此第1個IMF分量記為c1。將c1從x(t)中分離,得到
將r1作為原始數據重復式(1)、(2)得出信號的第2個IMF分量c2。循環(huán)EMD分解步驟,有
當殘余函數rn成為單調函數無法繼續(xù)提取滿足條件的IMF分量時,循環(huán)結束,得到
2)求IMF分量的瞬時幅值和瞬時頻率
為求IMF分量的瞬時頻率,對式(3)中的每個內稟模態(tài)函數ci(t)作Hilbert變換得到
構造解析信號
其中ai(t)為瞬時幅值,由式(4)能得到相位函數
進一步求得IMF分量的瞬時頻率
3)求取能頻值及能頻值特征向量
由于語音在不同頻段上所占能量不同,將語音分解得到的IMF分量大致可以分為兩個頻段,一個是含有語音大部分信息的中高頻段,一個以低頻噪聲能量為主的低頻段。因此可以利用這一特性構造語音的特征向量,有聲音的語音信號的特征向量和靜音信號的特征向量會有很大的區(qū)別。定義某一IMF分量的Hilbert變換后的所有瞬時幅值的平方和相應頻率之積稱為該IMF分量的能頻值。定義第i個IMF分量的能頻值為
其中N為采樣頻率,將某一段語音信號經Hilbert-Huang變換得到的所有m個IMF的能頻值組成的向量T=(EF1,EF2,…,EFm)稱為該語音段的能頻特征向量。
基于上面構造的語音信號的能頻值及能頻值特征向量,設計基于Hilbert-Huang變換的普通話缺時檢測步驟如下。
1)提取靜音特征
截取一段靜音數據,利用Hilbert-Huang變換將靜音信號分解得到IMF分量,然后計算每個IMF分量的平均能頻值,并將這些平均能頻值組成特征向量,作為普通話水平測試語音信號缺時檢測的對比樣本特征向量。
2)計算每個窗的能頻值
將待檢測的語音信號分割成以1秒為長度的小段語音信號幀,即對語音信號加窗。然后對每段語音信號幀進行EMD分解,得到IMF分量,并利用Hilbert-Huang變換得到每個IMF分量的平均能頻值,并將這段語音的所有IMF分量的平均能頻值組成該段的平均能頻值特征向量。
3)對比特征向量
根據步驟2)求得的每段的能頻值特征向量,并將該特征向量與步驟1)中的樣本特征向量相比較,求二者之間的歐氏距離,并將歐氏距離與設定的閾值相比較,若所得的歐氏距離大于閾值,則認為該段語音為非靜音幀,將該幀的真值記為1,否則將該幀的真值記為0,將每幀的真值按時間順序組成能頻真值序列。
4)查找缺時序列
在真值序列上,查找真值連續(xù)為0的個數大于等于5(由于每段長1秒,因此大于等于5就可以判定為缺時)的序列段,稱這樣的序列段為缺時段,并記錄缺時序列段在真值序列上的起止位置。
5)消除噪聲窗
在真值序列上,查找真值單獨為1的段,即該段前后段的真值均為0,稱這樣的段稱為疑似噪聲段,并記錄該段在能頻真值序列上的位置。
判定疑似噪聲段的前后是否是為缺時序列段,若噪聲段前后均為缺時段或其中之一為缺時段時,則疑似噪聲段為真實噪聲段,并消除該段,連接前后的靜音段組成新的缺時段。
為了驗證本文算法,首先對一個樣本靜音信號進行EMD分解得到得到13個IMF分量,然后對每個IMF分量進行Hilbert變換,最后利用本文構造特征向量的方法構造靜音樣本特征向量。如圖1所示為靜音樣本的原始信號和其每個IMF分量的能頻值。為了和靜音樣本信號對比,本文選取了一段語音信號,按照和靜音信號同樣的處理方法得到如圖2所示的結果。從圖1和圖2所示的結果可知,靜音信號的所有IMF分量的能頻值都比較小,而語音信號的低級IMF分量的能頻值較大,因此二者的能頻值特征向量之間的歐氏距離會比較大。
圖1 靜音信號的能頻值
圖2 語音信號的能頻值
本文采用長度為3分鐘的實際的普通話測試錄音,在Matlab環(huán)境下以采樣頻率16 000對其采樣讀取,以1秒為長度分割該信號,然后利用Hilbert-Huang變換對每一段進行EMD分解得到IMF分量,然后對每個IMF分量進行Hilbert變換求取瞬時幅值和頻率,再利用本文構造特征向量的方法構造每個1秒語音信號的特征向量,并將這些特征向量分別與靜音樣本特征向量相比較。確定每1秒長的信號是靜音信號還是語音信號,最后利用算法的4、5步確定缺時序列。最后的檢測結果如圖3所示,這個檢測結果不但與實時相符,而且很好的消除了部分強噪音的影響,如在檢測結果的第三段缺時中就把強噪音濾去了。
圖3 缺時檢測結果
為了體現本文算法在普通話測試缺時檢測中的優(yōu)點,本文選擇100個普通話測試者的錄音作為樣本,樣本經人工檢測出的缺時數目為348個。分別用本文的算法和端點檢測算法對這100個樣本進行缺時檢測,得出如表1的統(tǒng)計結果。其中的檢出率為檢測出的缺時個數與真實的缺時個數之比,正確率為該算法正確檢測出的缺時個數與檢測出的缺時個數之比。由表1中的數據可知,本文算法在正確檢出缺時數據上有一定的優(yōu)勢。
表1 樣本統(tǒng)計結果
本文以普通話測試中說話部分的缺時檢測為背景,以Hilbert-Huang變換為基本方法,構造語音段的能頻特征作為靜音識別手段,將普通話測試錄音分成有很多靜音段和語音段的組成,然后通過對缺時段和噪聲段的識別,消除噪聲段,最后留下完整的缺時段。該方法新穎獨特,能夠有效識別普通話測試中的缺時信息,并且能消除一些短時噪音的干擾。但由于Hilbert-Huang變換計算的復雜性,因此該方法比較消耗時間。
[1]李金寶,屈百達,徐寶國,等.基于自適應子帶功率譜熵的語音端點檢測算法[J].計算機工程與應用,2007,43(12):57-58.
[2]韓志艷,王旭,王健.基于短時能零積和鑒別信息的語音端點檢測[J].東北大學學報:自然科學版,2009,30(12):1690-1693.
[3]劉紅星,戴蓓,陸偉.基于共振峰諧波能量的語音端點檢測[J].清華大學學報:自然科學版,2008,48(增刊1):754-759.
[4]李晉,劉甫,王玲,等.改進的語音端點檢測技術[J].計算機工程與應用,2009,45(24):133-135.
[5]王秀坤,李寧,魏燚濰,等.一種基于基音頻率的實時性端點檢測方法[J].微計算機信息,2009,25(2-1):250-251.
[6]顧亞強,趙暉,吳波.一種語音信號端點檢測的改進方法[J].計算機仿真,2010,27(5):340-343.
[7]談雪丹,顧濟華,趙鶴鳴,等.基于HHT瞬時能頻值的耳語音端點檢測[J].計算機工程與應用,2010,46(29):147-150.
[8]龔英姬,胡維平.基于 HHT變換的病態(tài)嗓音特征提取及識別研究[J].計算機工程與應,2007,43(34):217-219.
[9]鐘佑明,秦樹人,湯寶平.一種振動信號新變換法的研究[J].振動工程學報,2002(6):233-238.
[10]羅進文,胡正偉,蔣占軍,等.窄帶音頻信號時差估計算法[J].計算機應用,2011,31(3):23-30.
[11]顏彪,楊娟.關于希爾伯特變換的分析和研究[J].電氣電子教學學報,2004(5):10-15.
[12]胡正偉,王喆.射頻窄帶信號時差估計算法研究[J].數據通信,2010(4):21-24.
[13]宋牟平,趙斌.希爾伯特變換處理的布里淵散射DOFS的研究[J].光子學報,2005,34(9):1328-1331.
[14]王珂,肖鵬峰.基于二維希爾伯特變換的相位一致模型圖像特征檢測方法[J].測繪學報,2010,39(6):605-609.
[15]王鳳鵬,鄒萬芳,尹真,等.希爾伯特變換實時全息干涉條紋相位提?。跩].光電工程,2009(4):92-96.