劉 超,莊圣賢
(西南交通大學 信息科學與技術(shù)學院,四川 成都610031)
語音端點檢測就是從帶有背景噪聲的一段輸入語音中識別出真實語音段的端點,有效地識別語音端點不僅可以減少語音信號后續(xù)處理的計算量,而且還可以提高語音識別的正確率。有研究發(fā)現(xiàn)[1],人們說話過程中,有效語音片段持續(xù)時間大約只占整個說話時間的40%。在無音片段中主要以噪聲為主,說話人的主要語音信息在有音片段,所以屏蔽各種噪聲的干擾,檢測出真實的語音段在現(xiàn)代語音信號處理中顯得尤為重要。
現(xiàn)代語音端點檢測技術(shù),主要包括[2]短時平均過零率、短時平均能量值、短時能頻值、雙門限法[3]及最近大熱的小波變換及小波熵端點檢測[4],這些檢測方法能在一定的噪聲環(huán)境中較為準確地檢測出有效的語音段,但在面對短時高能量的噪聲的干擾時,會出現(xiàn)錯誤的檢測。文中介紹一種改進式的雙門限,即通過雙門限加上時間門限對高能量的噪聲進行檢測并對其屏蔽。
根據(jù)漢語發(fā)音的特點,漢語每個字都是單音節(jié),每個音節(jié)又都是由聲母和韻母拼音而成。漢語音節(jié)末尾都是濁音,用短時能量就可以較好地判斷一個詞語的末尾。漢語音節(jié)聲母多是以清輔音開始,受到噪聲干擾時,容易被噪聲干擾。
語音端點檢測方法可以分為時域分析和頻域分析,前邊提到的短時平均過零率、短時平均能量值、短時能頻值、雙門限法都屬于時域分析?;舅枷胧窃跁r間軸上設(shè)置一個門限值,讓語音信號與此門限值進行比較,看其是否超出。而小波變換及小波熵端點檢測出屬于頻域分析,通過在頻域上提取語音的特征值進行判斷。語音信號處理主要受噪聲影響有普通的背景噪聲,而高脈沖噪聲又屬于背景噪聲的一種。根據(jù)以上介紹的端點檢測方法能有效解決背景噪聲問題。本文通過改進式雙門限法,針對高脈沖噪聲設(shè)置了一個最短時間門限,正確地識別了有效語音段的起始。
由于其他[5]方法可以有效的解決部分普通噪聲對語音端點檢測的影響,所以本文針只對高脈沖噪聲提出解決方案。
由于語音能量隨時間變化,清音和濁音之間的能量差別較明顯。通常識別漢語音節(jié)的末尾發(fā)音。定義n時刻某語音信號的短時平均能量En為
式中,N為窗長,每個窗長代表一幀,可見短時能量為一幀樣點值的加權(quán)平方和。
圖1所示為100~200之間的高脈沖噪聲,短時能量檢測法無法有效屏蔽。
圖1 短時能量端點檢測
過零分析屬于語音時域分析,是端點檢測中較簡單的一種,是指每幀內(nèi)信號過零值的次數(shù)。采用短時平均過零分析可以在一定程度上反映其頻譜特性,由此可獲得譜特性的一種粗略估計。短時平均過零率定義為
圖2所示說明,面對采樣點100~200之間的高脈沖噪聲,短時過零率還是不能有效地被判斷和屏蔽。
將語音信號經(jīng)過分幀、加窗,按幀間50%的重疊求FFT變換,得到其某頻率分量fi的能量譜為Ym(fi),則每個頻率分量歸一化譜概率密度(pdf)函數(shù)定義為
其中,pi為某一頻率的分量i對應(yīng)的概率密度;N為FFT變換長度;m為分析某一幀語音。語音的能量頻率主要集中在250~45 000 Hz,為增強pdf區(qū)分語音和非語音段的能力,對式(4)引入約束條件Y(fi)=0,fi<250 Hz或fi>4 500 Hz??紤]上述約束條件后,每個分析語音幀的短時譜熵定義為
利用短時能量、短時平均過零率及最短時間門限相互配合,可以實現(xiàn)較可靠的各種噪聲種類中語音端點檢測。短時能量和短時平均過零率設(shè)置的雙門限,一個是比較低的門限,其數(shù)值較小,對信號變化較敏感,容易被超過。另一個是較高的門限,數(shù)值較大,信號必須達到一定的強度,該門限才可能被超過。根據(jù)這個特性,低門限被超過不一定是語音的開始,有可能是背景噪聲引起的。高門限被超過也不一定是語音的開始,有可能是短時高能量的噪聲。這時再設(shè)置一個最短時間門限,其數(shù)值幾乎小于所有說話人發(fā)出語音的時長,如果超過這個門限則可以確定是由于語音信號引起的。
基于Matlab程序?qū)崿F(xiàn)改進式雙門限法語音端點檢測算法步驟如下:
(1)對錄入語音信號進行預(yù)加重、分幀處理,每一幀記為n=1,2,3,…,N,n為離散語音信號時間序列,N為幀長。(2)用式(1)計算每一幀語音的短時能量得到語音的每幀能量。(3)用式(3)計算每一幀語音的過零率,得到短時過零率。(4)首先對短時能量值設(shè)置一個較高的門限M1以確定是有效語音段,再利用背景噪聲設(shè)置一個較低的門限M2以確定有效語音段的濁音段S1開始,完成第一級的起點判斷。再次,在門限M2對應(yīng)語音點處S1對過零率設(shè)置一個門限M3,如果S1處過零率超過了門限M3這說明有效語音的清音段在S1前面,就需要向前查找,當找到未超過門限M3的點S2時,S2后面的一幀就是有效的語音端點起始點。(5)用同樣的方法找到語音的終點S3。(6)最后在時域上設(shè)置一個最短時間門限T,如果S3-S2<T則說明所檢測出的這個語音段為高脈沖噪聲,對其進行屏蔽,繼續(xù)下一個語音段的檢測。
門限值選擇對語音端點檢測的影響較大,本實驗的門限值都是通過查閱資料[6]和大量實驗得到的經(jīng)驗值。
圖3是用改進式雙門限確定語音起始端點的示意圖。
圖3 檢測過程示意圖
圖中M2為正確的語音起點。
分別采用短時能量值、短時過零率、能頻值、雙門限、語音譜熵和改進雙門限的端點檢測技術(shù)對語音信號在各種環(huán)境下進行實驗,并給出了實驗結(jié)果。
在改進雙門限端點檢測下,由于用時間門限對高脈沖噪聲進行了檢測、屏蔽,所以當端點信號大于所設(shè)置的閾值時,說明檢測到了準確的語音信號的端點。
利用Windows自帶的錄音機錄制語音文件,聲卡完成了語音波形的A/D轉(zhuǎn)換,獲得WAVE文件。實驗設(shè)置錄制的語音信號采樣頻率為11.025 kHz,16位的單聲道語音信號。短時高脈沖噪聲是用鼓掌得到。
通過實驗可以得出,用雙門限檢測可以較為準確地檢測出在高脈沖噪聲環(huán)境中語音段的起始點。圖4的最后一列給出了帶有短時高能量的噪聲的“西南交通大學”這段語音的各種端點檢測方法的比較。圖4(a)是原始語音;圖4(b)是短時平均能量;圖4(c)是短時平均過零率;圖4(d)是短時能頻值;圖4(e)是改進式雙門限;圖4(f)是語音譜熵。
通過對圖4的觀測,其他4種本文用到的語音檢測方法對高脈沖噪聲都不能有效地識別和屏蔽。最后設(shè)置了最短時間門限的雙門限法可以準確地檢測出語音起點。通過對實驗室人員采取語音信號進行試驗,正確率達到93%。
圖4 多種端點檢測方法比較
語音端點檢測是語音信號處理的一個基本步驟,準確地檢測語音端點才能更有效、更快速地進行語音后續(xù)處理。本文針對短時高能量的干擾噪聲,將雙門限法進行改進,有效地消除了短時高能量噪聲的干擾。通過仿真實驗驗證得到了較滿意的結(jié)果。
[1] 劉曉明,覃勝,劉宗行,等.語音端點檢測的仿真研究[J].系統(tǒng)仿真學報,2005,17(8):1974-1976.
[2]HE Qiang,ZHANG Youwei.On prefiltering and endpoint detection of speech signal[C].1998 Fourth International Conference on Signal Processing Proceedings,ICSP'98,1998,1:749-752.
[3] 路青起,白燕燕.基于雙門限兩級判決的語音端點檢測方法[J].電子科技,2012,25(1):13-15.
[4] 邱文武,蔣建中,郭軍利.基于小波能量熵的語音端點檢測算法[J].計算機應(yīng)用與軟件,2011,28(2):227-228.
[5] 韓韜.基于強背景噪聲下的語音端點檢測算法及實現(xiàn)[D].長沙:湖南大學,2007.
[6] 劉永紅.說話人識別系統(tǒng)的研究[D].成都:西南交通大學,2003.