專利名稱:基于熵的端點(diǎn)檢測方法
技術(shù)領(lǐng)域:
本發(fā)明涉及語音識(shí)別,特別涉及基于熵的端點(diǎn)檢測方法。
Jia-lin Shen[1]提出譜熵的定義。本發(fā)明來源于對(duì)譜熵所具有的性能的深入了解。為了更好地理解本發(fā)明,首先說明譜熵的原理,分析其性能。1) 譜熵的基本原理
參考[1],首先通過快速傅立葉變換來得到每一幀信號(hào)的頻譜,其中每個(gè)頻譜向量的各個(gè)系數(shù)表明了該幀信號(hào)在該頻率點(diǎn)的大小分布。然后,計(jì)算每一幀的每個(gè)頻譜能量分量在每幀的總能量中所占的比例,將其作為代表信號(hào)能量集中在某頻率點(diǎn)的概率大小,即計(jì)算譜熵所需的概率密度函數(shù)通過下式計(jì)算pi=Y(fi)/Σk=0N-1Y(fk),i=0...N-1---(1)]]>此處N表示FFT計(jì)算所取的點(diǎn)數(shù),Y(fi)表示第i個(gè)頻率點(diǎn)的譜能量,pi表示相應(yīng)的概率。
由于語音的大部分能量集中在250Hz到6000Hz之間,所以為了集中計(jì)算熵以增加語音和非語音在概率密度函數(shù)上的區(qū)分性,可以把處于250Hz和6000Hz之外的頻率分量置為0,即Y(fi)=0, 當(dāng)fi<250Hz或fi>6000Hz時(shí) (2)接下來,計(jì)算譜熵H=-Σk=0N-1pklogpk---(3)]]>2) 譜熵的性能分析公式(3)表明譜熵是信源的平均不定性的體現(xiàn)。對(duì)于不同的信源,在頻域上有不同的概率分布,導(dǎo)致有不同的譜熵。
圖1給出了噪聲庫NOISEX-92中部分噪聲和語音信號(hào)的譜熵取負(fù)后的曲線,每20幀平滑一次,我們稱其為負(fù)熵曲線以和(3)式中的譜熵相區(qū)別。參照?qǐng)D1,可以看到,不同噪聲的負(fù)熵的最小值、最大值、均值、方差均不同,而且大部分的噪聲和語音信號(hào)在這些方面有一定的區(qū)別,同時(shí),從圖1可以看到對(duì)應(yīng)于能量較低的爆破音、鼻音,如/f/、/c/、/t/、/s/、/sh/等,也具有相當(dāng)?shù)撵刂?,可見譜熵能夠作為一種比能量更為有效區(qū)分語音與非語音的特征。
從公式(1)可以看到,我們所用到的計(jì)算概率密度的公式類似于歸一化的過程,因此理論上來說,譜熵不受時(shí)域能量的影響。但在實(shí)際發(fā)音時(shí),隨著聲音大小的不同,可能導(dǎo)致頻譜有不同程度的改變,而且信噪比發(fā)生變化也會(huì)導(dǎo)致頻譜的變化,從而使得譜熵會(huì)受一些影響??偟恼f來,譜熵受時(shí)域能量大小的影響較小。通常,在句尾處,信號(hào)的能量會(huì)逐漸減小,以能量為特征的端點(diǎn)檢測算法很難準(zhǔn)確地檢測到語音信號(hào)的中止點(diǎn),而熵的這個(gè)特點(diǎn)使得基于熵的算法能夠更容易更準(zhǔn)確地檢測到句尾。參照?qǐng)D2,上方的時(shí)域波形圖兩次重復(fù)“上?!?,時(shí)域能量差別很大,下方的負(fù)熵圖對(duì)應(yīng)于兩次重復(fù)的語音。下方的圖顯示兩次“上”字所對(duì)應(yīng)的負(fù)熵近似相等,而兩次“?!弊钟捎谠诎l(fā)音上差別較大,使得負(fù)熵有一定的差別。時(shí)域能量的差別明顯大于負(fù)熵的差別。
圖3是同一句話與白噪聲在不同信噪比下混合得到的信號(hào)的負(fù)熵圖。參照?qǐng)D3,在不同大小的白噪聲背景下,隨著信噪比的下降,熵的形狀基本保持不變,但是由于噪聲對(duì)語音頻譜的污染增加,使得整體上幅度(負(fù)坐標(biāo)軸)有所下降。譜熵具有一定的抗噪能力。
盡管譜熵可以作為區(qū)分語音信號(hào)和背景噪聲信號(hào)的有效的特征,并將其應(yīng)用到端點(diǎn)檢測器中,但是,語音的頻譜受到背景噪聲信號(hào)的污染,語音信號(hào)的譜熵的變化增加了端點(diǎn)檢測的難度,尤其是在低信噪比條件下。而且在現(xiàn)實(shí)環(huán)境下,各種各樣的噪聲的譜熵使得端點(diǎn)檢測算法的門限難以確定。
為實(shí)現(xiàn)上述目的,基于熵的端點(diǎn)檢測方法包括步驟1).計(jì)算信號(hào)開始時(shí)N1幀的能量E_noise;2).根據(jù)步驟1)得到的噪聲估計(jì)值E_noise,指定相應(yīng)的K值;3).使用步驟2)選定的K值計(jì)算每幀的負(fù)熵Entropy;4).以當(dāng)前幀前面數(shù)幀的平均負(fù)熵值Mean+V1作為第一個(gè)門限Th1,以Mean+V2作為第一個(gè)門限Th2。不斷推進(jìn)當(dāng)前幀,直到找到滿足判決機(jī)制的幀作為語音的起始點(diǎn);5).找到起始點(diǎn)后,將K取為預(yù)先設(shè)定的K0,計(jì)算其后每幀的負(fù)熵;
6).找到起始點(diǎn)之后,向前推進(jìn)直到某幀負(fù)熵Entropy小于Th3,從此處向后尋找谷底,且將其作為當(dāng)前幀。不斷推進(jìn)當(dāng)前幀,直到找到滿足判決機(jī)制的幀作為語音的終點(diǎn);7).重復(fù)步驟3到步驟6,直到信號(hào)結(jié)束。
8).對(duì)每一起點(diǎn)、終點(diǎn)對(duì),如果其幀數(shù)小于最短句子幀數(shù),則認(rèn)為其間的數(shù)據(jù)不是語音,而是噪聲;如果在兩段語音之間的間隙小于最短停頓幀數(shù),則認(rèn)為兩段語音可合為一段語音。
本發(fā)明的最基本特征是對(duì)基本的頻域信息熵的計(jì)算公式作了改進(jìn),在概率計(jì)算公式的分子、分母中做加K運(yùn)算,從而提高了噪聲信號(hào)和語音信號(hào)的譜熵之間的區(qū)分性,在各種噪聲環(huán)境下更為容易地實(shí)現(xiàn)了較為準(zhǔn)確的端點(diǎn)檢測。
由此可見,加K的運(yùn)算使得較大的概率密度變小,而較小的概率密度變大,每幀的概率分布趨向于均勻。我們知道熵是不確定性的度量,概率分布越均勻,不確定性越大,那么譜熵會(huì)增大(負(fù)熵減小)。對(duì)于不同幀,總能量不同,那么Δpi的變化取決于每幀的總能量、K和pi。盡管噪聲和語音信號(hào)的譜熵都會(huì)增加,但是從(5)可以發(fā)現(xiàn),由于通常帶噪語音的能量大于噪聲的能量,所以在同樣K和pi的情況下,語音信號(hào)的|Δpi|較噪聲信號(hào)的|Δpi|更小,導(dǎo)致噪聲的譜熵增加的可能性更大。同理,假定同一噪聲信號(hào)在不同信噪比下保持一致的概率分布和相同的K值,則不同的噪聲能量導(dǎo)致噪聲的譜熵不同,那么為了實(shí)施本發(fā)明時(shí)的簡易性,可以在不同信噪比下選擇不同的K值,使得不同能量的噪聲的譜熵值接近。由信噪比的公式可以推導(dǎo)出,假設(shè)語音信號(hào)不變,在信噪比為20db情況下噪聲能量為Enoise_20db,則在信噪比為15db情況下噪聲能量為Enoise_15db=1.778Enoise_20db,在信噪比為10db情況下噪聲能量為Enoise_15db=3.162Enoise_20db,在信噪比為5db情況下噪聲能量為Enoise_15db=5.623Enoise_20db。由此可見,要使公式(5)在不同信噪比下,對(duì)噪聲的大小相近,需要在20db下取K=K0,在15db下取K=1.778K0,在10db下取K=3.162K0,在5db下取K=5.623K0。
而且,語音和噪聲信號(hào)的頻譜有一定差別,使得加K可能對(duì)噪聲的影響較對(duì)語音的影響更大。圖4中,我們將頻域有效范圍限定在250Hz和6000Hz之間,圖4.a、圖4.b、圖4.c、圖4.d是某幀頻域概率值依從小到大的順序排列的曲線。圖4.a、圖4.b是噪聲相應(yīng)的曲線。圖4.c、圖4.d是語音相應(yīng)的曲線。圖4.a、圖4.c對(duì)應(yīng)于不加K的算法(使用公式(1)),圖4.b、圖4.d對(duì)應(yīng)于加K的算法(使用公式(4))。參照?qǐng)D4.a、圖4.c,噪聲和語音的概率分布有一定區(qū)別。參看圖4.b、圖4.d,加K的確使得概率均勻化。參照?qǐng)D4.a與圖4.b的對(duì)比、圖4.c與圖4.d的對(duì)比,加K對(duì)噪聲的影響大于對(duì)語音的影響。
上面的討論說明加K運(yùn)算改變了信號(hào)原來的熵,而且通常對(duì)噪聲信號(hào)的熵的改變更大,導(dǎo)致噪聲和語音信號(hào)的熵有了更大的區(qū)分度。
圖5、圖6、圖7、圖8以在四種背景噪聲環(huán)境下,四種信噪比下加k前后的負(fù)熵曲線圖說明了本發(fā)明的有效性。參照?qǐng)D5、圖6、圖7、圖8,加K前的負(fù)熵曲線由通常的公式(1)得到,加K后的負(fù)熵曲線使用本發(fā)明提出的公式(4)得到,加K后的負(fù)熵曲線明顯地區(qū)分背景噪聲和語音信號(hào),使得端點(diǎn)檢測算法的門限更易確定。(兩條虛線之間的部分表示語音信號(hào)。)本發(fā)明的具體實(shí)現(xiàn)步驟是
第一步.計(jì)算信號(hào)開始時(shí)N1幀的能量E_noise,將其作為對(duì)噪聲環(huán)境的估計(jì)。我們?nèi)1=25。
第二步.根據(jù)上一步得到的噪聲估計(jì)值E_noise,指定相應(yīng)的K值。對(duì)于E_noise<1.5E+7的情況,指定K=K0,對(duì)于1.5E+7≤E_noise<4.5E+7的情況,指定K=1.778K0,對(duì)于4.5E+7≤E_noise<1.5E+8的情況,指定K=3.162K0,對(duì)于E_noise≥1.5E+8的情況,指定K=5.623K0。我們?nèi)0=1.07374E+8。
第三步.利用公式(4)、(3)計(jì)算每幀的負(fù)熵Entropy,公式(4)中使用第二步選定的K值。
第四步.以當(dāng)前幀前面的數(shù)幀的平均負(fù)熵值Mean+V1作為第一個(gè)門限Th1,以Mean+V2作為第一個(gè)門限Th2。如果當(dāng)前幀大于門限Th1,且后面N2幀都大于門限Th2,就繼續(xù)向前推進(jìn),尋找最高點(diǎn),將其作為新的當(dāng)前幀。如果該前幀大于-65,且其后幀的負(fù)熵也大于-65,則回退到谷底且該幀的負(fù)熵小于-60處,將此點(diǎn)作為語音的起始點(diǎn),并回退數(shù)幀,否則繼續(xù)搜索起點(diǎn)。V1、V2的取值與E_noise有關(guān)。
第五步.找到起始點(diǎn)后,將K取為K0,利用公式(4)、(3)計(jì)算其后每幀的負(fù)熵。
第六步.找到起始點(diǎn)之后,向前推進(jìn)直到某幀負(fù)熵Entropy小于Th3,從此處向后尋找谷底,且將其作為當(dāng)前幀。如果當(dāng)前幀之后N2幀以內(nèi),負(fù)熵大小En處于Entropy-V3<En<Entropy+V3范圍內(nèi)的數(shù)目超過Th4,且當(dāng)前幀之后N3(N3<N2)幀以內(nèi),負(fù)熵大小En處于Entropy-V4<En<Entropy+V4范圍內(nèi)的數(shù)目超過Th5(Th5<Th4),則認(rèn)為該當(dāng)前幀為語音終點(diǎn),否則繼續(xù)搜索。Th3、Th4、Th5、V3、V4、N2、N3的取值與E_noise有關(guān)。
第七步.重復(fù)第三到第六步,直到信號(hào)結(jié)束。
第八步.后處理對(duì)每一起點(diǎn)、終點(diǎn)對(duì),如果其幀數(shù)小于最短句子幀數(shù),則認(rèn)為其間的數(shù)據(jù)不是語音,而是噪聲;如果在兩段語音之間的間隙小于最短停頓幀數(shù),則認(rèn)為兩段語音可合為一段語音。 表1 表2
表1、表2分別給出應(yīng)用本方法到五種不同背景噪聲、四種信噪比下的語音端點(diǎn)檢測結(jié)果。五種噪聲包括白噪聲、粉色噪聲、F16噪聲、工廠噪聲和辦公室噪聲(含敲擊鍵盤聲、空調(diào)聲)。四種信噪比為20db、15db、10db和5db。每個(gè)測試集包括520到650個(gè)句子,每個(gè)句子長度在4到7秒之間。以比標(biāo)注的起始點(diǎn)提前2000點(diǎn)到延后400點(diǎn)作為正確檢測起始點(diǎn)的范圍,以標(biāo)注的終點(diǎn)提前400點(diǎn)到延后2000點(diǎn)作為正確檢測終點(diǎn)的范圍。表1分別給出語音起始點(diǎn)和終點(diǎn)的檢測結(jié)果,表2給出整體的檢測正確率。
權(quán)利要求
1.一種基于熵的端點(diǎn)檢測方法,包括步驟1).計(jì)算信號(hào)開始時(shí)N1幀的能量E_noise;2).根據(jù)步驟1)得到的噪聲估計(jì)值E_noise,指定相應(yīng)的K值;3).使用步驟2)選定的K值,利用公式(4)、(3)計(jì)算每幀的負(fù)熵Entropy;4).以當(dāng)前幀前面數(shù)幀的平均負(fù)熵值Mean+V1作為第一個(gè)門限Th1,以Mean+V2作為第一個(gè)門限Th2。不斷推進(jìn)當(dāng)前幀,直到找到滿足判決機(jī)制的幀作為語音的起始點(diǎn);5).找到起始點(diǎn)后,將K取為K0,利用公式(4)、(3)計(jì)算其后每幀的負(fù)熵;6).找到起始點(diǎn)之后,向前推進(jìn)直到某幀負(fù)熵Entropy小于Th3,從此處向后尋找谷底,且將其作為當(dāng)前幀。不斷推進(jìn)當(dāng)前幀,直到找到滿足判決機(jī)制的幀作為語音的終點(diǎn);7).重復(fù)步驟3到步驟6,直到信號(hào)結(jié)束。8).對(duì)每一起點(diǎn)、終點(diǎn)對(duì),如果其幀數(shù)小于最短句子幀數(shù),則認(rèn)為其間的數(shù)據(jù)不是語音,而是噪聲;如果在兩段語音之間的間隙小于最短停頓幀數(shù),則認(rèn)為兩段語音可合為一段語音。
2.按權(quán)利要求1所述的方法,其特征在于在概率計(jì)算公式的分子、分母中作加K的計(jì)算,本方法所用的概率計(jì)算公式是pi′=(Y(fi)+K)/Σk=0N-1(Y(fk)+K),i=0...N-1,K>0---(1)]]>則加K后概率密度的變化為Δpi=pi′-pi=A+KB+NK-AB=K(B-NA)B(B+NK)=KB+NK·B-NAB]]>=1BK+N·(1-N·AB)=1Σk=0N-1Y(fk)K+N·(1-N·pi)]]>
3.按權(quán)利要求1所述的方法,其特征在于在步驟(2)中根據(jù)不同信噪比選擇不同的K值;而且從步驟(3)和(5)可見,檢測起點(diǎn)和終點(diǎn)時(shí)使用不同的K值。
4.按權(quán)利要求1所述的方法,其特征在于步驟4)還包括如果當(dāng)前幀大于門限Th1,且后面N2幀都大于門限Th2,就繼續(xù)向前推進(jìn),尋找最高點(diǎn),將其作為新的當(dāng)前幀。如果該當(dāng)前幀大于-65,且其后幀的負(fù)熵也大于-65,則回退到谷底且該幀的負(fù)熵小于-60處,將此點(diǎn)作為語音的起始點(diǎn)。
5.按權(quán)利要求1所述的方法,其特征在于步驟6)還包括設(shè)當(dāng)前幀負(fù)熵為Entropy,如果當(dāng)前幀之后N2幀以內(nèi),負(fù)熵大小En處于Entropy-V3<En<Entropy+V3范圍內(nèi)的幀數(shù)超過Th4,且當(dāng)前幀之后N3(N3<N2)幀以內(nèi),負(fù)熵大小En處于Entropy-V4<En<Entropy+V4范圍內(nèi)的幀數(shù)超過Th5(Th5<Th4),則認(rèn)為該當(dāng)前幀為語音終點(diǎn)。
全文摘要
一種基于熵的端點(diǎn)檢測方法,包括步驟1)計(jì)算信號(hào)開始時(shí)N1幀的能量E_noise;2)根據(jù)步驟1)得到的噪聲估計(jì)值E_noise,指定相應(yīng)的K值;3)使用步驟2)選定的K值,利用公式(4)、(3)計(jì)算每幀的負(fù)熵Entropy;4)以當(dāng)前幀前面數(shù)幀的平均負(fù)熵值Mean+V1作為第一個(gè)門限Th1,以Mean+V2作為第一個(gè)門限Th2。不斷推進(jìn)當(dāng)前幀,直到找到滿足判決機(jī)制的幀作為語音的起始點(diǎn);5)找到起始點(diǎn)后,將K取為K
文檔編號(hào)G10L15/00GK1426048SQ0114415
公開日2003年6月25日 申請(qǐng)日期2001年12月13日 優(yōu)先權(quán)日2001年12月13日
發(fā)明者賈川, 徐波 申請(qǐng)人:中國科學(xué)院自動(dòng)化研究所