本發(fā)明屬于電子、通訊、與信息工程領(lǐng)域,尤其涉及陣列信號(hào)處理、自適應(yīng)濾波、語(yǔ)音信號(hào)識(shí)別與檢測(cè)鄰域,具體的是一種改進(jìn)的非線性自適應(yīng)語(yǔ)音端點(diǎn)檢測(cè)方法。
背景技術(shù):
語(yǔ)音是人類(lèi)相互交流和通信最便捷和高效的方式,如何有效地實(shí)現(xiàn)語(yǔ)音信號(hào)傳輸、存儲(chǔ)或與機(jī)器進(jìn)行語(yǔ)音人機(jī)交互,是語(yǔ)音信號(hào)處理領(lǐng)域中的重要研究課題。語(yǔ)音信號(hào)端點(diǎn)檢測(cè)是語(yǔ)音分析、語(yǔ)音合成、語(yǔ)音編碼等語(yǔ)音信號(hào)處理方式的重要環(huán)節(jié)。在語(yǔ)音信號(hào)檢測(cè)過(guò)程中總會(huì)伴有背景噪音,如果信噪比較低,常用的語(yǔ)音端點(diǎn)檢測(cè)方式在語(yǔ)音信號(hào)端點(diǎn)檢測(cè)時(shí)識(shí)別率會(huì)降低。麥克風(fēng)陣列自適應(yīng)濾波與語(yǔ)音端點(diǎn)檢測(cè)相結(jié)合的方式能改善檢測(cè)效果,該檢測(cè)方式能夠提高語(yǔ)音端點(diǎn)檢測(cè)端輸入信號(hào)信噪比,從而提高語(yǔ)音端點(diǎn)識(shí)別率。而這種語(yǔ)音端點(diǎn)檢測(cè)方法使用的一般是線性自適應(yīng)濾波,要實(shí)現(xiàn)高信噪比,濾波算法本身需要較高的樣本維度,才能更好地逼近理想值,但是由于實(shí)驗(yàn)本身實(shí)現(xiàn)的成本和難度,很多都是止步在理論階段。為克服上述局限性,本發(fā)明實(shí)現(xiàn)了一種麥克風(fēng)陣列非線性自適應(yīng)濾波語(yǔ)音信號(hào)端點(diǎn)檢測(cè)方法。該發(fā)明方法在達(dá)到同樣的去噪效果的情況下使用的麥克風(fēng)數(shù)量要少得多,檢測(cè)的正確率也得到大幅度提高。
在麥克風(fēng)陣列技術(shù)基礎(chǔ)上引入自適應(yīng)濾波可靈活地控制波束方向,實(shí)時(shí)跟蹤目標(biāo)語(yǔ)音信號(hào)。自適應(yīng)濾波只需要很少的或根本不需要任何關(guān)于信號(hào)和噪聲統(tǒng)計(jì)特性的先驗(yàn)知識(shí),僅根據(jù)觀測(cè)信息就能實(shí)時(shí)估計(jì)信號(hào)和噪聲的統(tǒng)計(jì)特性。在自適應(yīng)濾波算法中,最小均方算法(LMS)收斂速度慢于遞歸最小二乘法(RLS),但該算法簡(jiǎn)單,便于實(shí)時(shí)實(shí)現(xiàn)。本發(fā)明使用歸一化最小均方算法(NLMS),不僅能實(shí)時(shí)實(shí)現(xiàn)而且收斂速度快。濾波后的語(yǔ)音信號(hào)還會(huì)伴有一些背景噪聲或其它難以去除的噪聲,這些噪聲可以利用譜減法來(lái)進(jìn)一步去除。譜減法作為一種常用的語(yǔ)音增強(qiáng)方法,具有簡(jiǎn)單方便,計(jì)算量小等優(yōu)點(diǎn)。通過(guò)譜減之后更好的濾除了背景噪音,這也使得能熵比法在低信噪比環(huán)境下能更高準(zhǔn)確率的定位語(yǔ)音段。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)上述缺點(diǎn)本發(fā)明提供了一種改進(jìn)的非線性自適應(yīng)語(yǔ)音端點(diǎn)檢測(cè)方法,方案如下:
一種改進(jìn)的非線性自適應(yīng)語(yǔ)音端點(diǎn)檢測(cè)方法,所述方法包括首先通過(guò)麥克風(fēng)陣收集收集信號(hào)以及通過(guò)時(shí)延估計(jì)和時(shí)延補(bǔ)償使輸入信號(hào)同步,之后通過(guò)Legendre非線性濾波器把輸入信號(hào)拓展為高維度函數(shù),再通過(guò)回聲消除NLMS算法進(jìn)行降噪處理,在所述回聲消除NLMS算法中對(duì)迭代步長(zhǎng)進(jìn)行分段處理,再通過(guò)譜減法進(jìn)行語(yǔ)音增強(qiáng),最后通過(guò)能熵對(duì)語(yǔ)音端點(diǎn)檢測(cè)。進(jìn)一步所述具體的檢測(cè)方法如下:
步驟一,對(duì)麥克風(fēng)陣列接收到的帶噪語(yǔ)音信號(hào)X(n)=A(q)S(n)+N(n)進(jìn)行時(shí)延估計(jì)和時(shí)延補(bǔ)償,使各個(gè)麥克風(fēng)通道中的信號(hào)在時(shí)間上是一致的,對(duì)齊后的帶噪語(yǔ)音信號(hào)X(n)=[x1(n),x2(n)…xd(n)]T,其中,θ為目標(biāo)信號(hào)的來(lái)波方向,A(θ)為目標(biāo)信號(hào)的陣列流型,S(n)為目標(biāo)語(yǔ)音信號(hào),N(n)為方向性干擾噪聲或是隨機(jī)噪聲;
步驟二,然后把輸入信號(hào)通過(guò)反正切激活函數(shù)tanh(·),使同步后的信號(hào)映射為(0,1)范圍內(nèi)的單值函數(shù),這樣能滿(mǎn)足Legendre非線性濾波器的收斂條件,通過(guò)此函數(shù)之后的信號(hào)為
Z(n)=[z1(n),z2(n)…zd(n)]T=[tanh(x1(n)),tanh(x2(n))…tanh(xd(n))]T;
步驟三,利用Legendre非線性濾波器對(duì)信號(hào)Z(n)進(jìn)行擴(kuò)展,輸入信號(hào)向量Z(n)經(jīng)Legendre非線性濾波器非線性擴(kuò)展為
XM(n)=[L0(z1(n)),L0(z2(n))…L0(zd(n))…Li(z1(n)),Li(z2(n))…LM(z1(n))…LM(zd(n))]T
式中Li(x)為第i階Legendre非線性濾波器;由于L0(x)=1,所有的0階擴(kuò)展可合并為一個(gè)輸入量如下式
XM(n)=[1…Li(z1(n)),Li(z2(n))…LM(z1(n))…LM(zd(n))]T濾波器輸出為
式中權(quán)值矢量定義為B(n)=[b0(n),b11(n)…b1d(n),…bM1(n),…bMd(n)]T
bij(n)對(duì)應(yīng)的是Legendre非線性濾波器Li(zj(n))的權(quán)值,i=1,2,…M,j=1,2,…d;
步驟四,采用回聲消除NLMS算法對(duì)自適應(yīng)濾波器權(quán)值進(jìn)行更新,該算法中對(duì)迭代步長(zhǎng)進(jìn)行分段處理;
式中mc是迭代步長(zhǎng),通過(guò)這種方式來(lái)提高整體算法的收斂速度,在200次迭代之后獲得更加好的收斂精度,由此提高整個(gè)系統(tǒng)的收斂性和穩(wěn)態(tài)失調(diào)噪聲;由回聲消除NLMS算法可導(dǎo)出濾波器權(quán)值系數(shù)遞推公式為
式中誤差估計(jì)e(n)=d(n)-y1(n),其中d(n)為期望信號(hào)即純凈人聲語(yǔ)音信號(hào),XM(n)為麥克風(fēng)陣列瞬時(shí)接收到的語(yǔ)音信號(hào),g是為了避免過(guò)小而設(shè)定的參數(shù),通常情況下的取值范圍是0和1之間;
步驟五,為了進(jìn)一步去除可能存在的殘余噪聲,在輸出信號(hào)y1(n)后續(xù)銜接譜減法進(jìn)行降噪處理;利用以下方法來(lái)估計(jì)噪聲的功率:
其中0<σ<1,K是帶噪語(yǔ)音總幀數(shù),得到的每幀純凈語(yǔ)音功率為:
其中,α>1,β<<1,在噪聲段保留一定的噪聲可以取得較好的降噪及抑制純音噪聲的效果,降低“音樂(lè)”噪聲的產(chǎn)生,改善聽(tīng)覺(jué)效果,經(jīng)過(guò)譜減,平滑濾波之后的信號(hào)為y2(n);
步驟六,語(yǔ)音信號(hào)的時(shí)間序列為y2(n),加窗分幀后處理得到第i幀語(yǔ)音信號(hào)為y2i(n),幀長(zhǎng)為N,語(yǔ)音信號(hào)的每一幀能量可以表示為
所述能量關(guān)系表示為
LEi=log10(1+A MPi/a)
式中A MPi是每一幀的能量,a是一個(gè)常數(shù),由于有a的存在,當(dāng)其取較大數(shù)值時(shí),能幅值得以緩和,所以適當(dāng)選擇a的值能夠更好地區(qū)分噪音和清音,能熵比則可表示為
之后通過(guò)能熵比算出經(jīng)過(guò)譜減后y2(n)的能熵比幅值圖,通過(guò)計(jì)算出的值來(lái)設(shè)置對(duì)應(yīng)的閾值T1和T2,T1為較高閾值,只要能熵比超過(guò)了此閾值就判定這段語(yǔ)音是人聲點(diǎn)dst1,然后以這個(gè)點(diǎn)為中心向兩邊擴(kuò)展搜索T1與此段語(yǔ)音的相交的兩個(gè)點(diǎn),粗判為此段語(yǔ)音的起止點(diǎn),然后再想兩邊擴(kuò)展搜索,知道檢測(cè)到較低閾值T2與此段語(yǔ)音相交的兩個(gè)點(diǎn),由于考慮到發(fā)音時(shí)詞與詞之間的靜音區(qū)會(huì)有一個(gè)最小長(zhǎng)度表示發(fā)音間的停頓于是在滿(mǎn)足T2較小閾值之后加上這個(gè)最小長(zhǎng)度,最終判定為此段語(yǔ)音的起止點(diǎn)。
更進(jìn)一步所述步驟三中的Legendre非線性濾波器中擴(kuò)展的階數(shù)為i=4階。
本發(fā)明提出的自適應(yīng)語(yǔ)音端點(diǎn)檢測(cè)方法,是在傳統(tǒng)語(yǔ)音端點(diǎn)檢測(cè)的基礎(chǔ)上加入非線性自適應(yīng)濾波,以及改進(jìn)的譜減法和能熵比法,相較于傳統(tǒng)的方法,此方法提高了整體系統(tǒng)的自適應(yīng)性,能夠很好地適應(yīng)不同的語(yǔ)音對(duì)話環(huán)境,與此同時(shí)提高語(yǔ)音端點(diǎn)檢測(cè)率和穩(wěn)定性。
附圖說(shuō)明
圖1、本發(fā)明采用的語(yǔ)音端點(diǎn)檢測(cè)系統(tǒng)結(jié)構(gòu)框圖;
圖2、傳統(tǒng)語(yǔ)音端點(diǎn)檢測(cè)系統(tǒng)框圖;
圖3、Legendre系統(tǒng)擴(kuò)展;
圖4、譜減法系統(tǒng)框圖(圖中實(shí)線框部分);
圖5、純凈語(yǔ)音信號(hào)(方向角度為10度);
圖6、方向性干擾信號(hào)(方向角度為30度);
圖7、麥克風(fēng)陣列接收到的語(yǔ)音信號(hào)(帶噪語(yǔ)音信號(hào));
圖8、傳統(tǒng)雙門(mén)限語(yǔ)音端點(diǎn)檢測(cè)處理后得到的語(yǔ)音信號(hào);
圖9、本發(fā)明方法處理后得到的語(yǔ)音信號(hào);
圖10、本發(fā)明方法處理后得到瞬時(shí)方差;
圖11、本發(fā)明方法處理后得到的瞬時(shí)方差。
具體實(shí)施方式
實(shí)施例
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施方式,進(jìn)一步闡明本發(fā)明。本發(fā)明提供的一種改進(jìn)自適應(yīng)語(yǔ)音端點(diǎn)檢測(cè)方法,如圖1所示,具體包括以下操作步驟:
步驟一:對(duì)麥克風(fēng)陣列接收到的帶噪語(yǔ)音信號(hào)X(n)=A(q)S(n)+N(n)進(jìn)行時(shí)延估計(jì)和補(bǔ)償,使各個(gè)麥克風(fēng)通道中的信號(hào)在時(shí)間上是一致的,圖1中的X(n)=[x1(n),x2(n)…xd(n)]T為對(duì)齊后的帶噪語(yǔ)音信號(hào),其中,θ為目標(biāo)信號(hào)的來(lái)波方向,A(θ)為目標(biāo)信號(hào)的陣列流型,S(n)為目標(biāo)語(yǔ)音信號(hào),N(n)為方向性干擾噪聲或是隨機(jī)噪聲;
步驟二:然后將輸入信號(hào)通過(guò)反正切激活函數(shù),反正切激活函數(shù)tanh(·)的作用是將同步后的信號(hào)映射為(0,1)范圍內(nèi)的單值函數(shù),這樣能滿(mǎn)足Legendre非線性濾波器的收斂條件,通過(guò)此函數(shù)之后的信號(hào)為
Z(n)=[z1(n),z2(n)…zd(n)]T=[tanh(x1(n)),tanh(x2(n))…tanh(xd(n))]T;
步驟三:利用Legendre擴(kuò)展式(具體結(jié)構(gòu)如圖3所示)對(duì)信號(hào)Z(n)進(jìn)行擴(kuò)展,輸入信號(hào)向量Z(n)經(jīng)Legendre非線性濾波器非線性擴(kuò)展為
XM(n)=[L0(z1(n)),L0(z2(n))…L0(zd(n))…Li(z1(n)),Li(z2(n))…LM(z1(n))…LM(zd(n))]T
式中Li(x)為第i階Legendre非線性濾波器。實(shí)際使用時(shí),一般只用到4階。由于L0(x)=1,所有的0階擴(kuò)展可合并為一個(gè)輸入量如下式:
XM(n)=[1…Li(z1(n)),Li(z2(n))…LM(z1(n))…LM(zd(n))]T濾波器輸出為
式中權(quán)值矢量定義為B(n)=[b0(n),b11(n)…b1d(n),…bM1(n),…bMd(n)]T,bij(n)對(duì)應(yīng)的是Legendre非線性濾波器Li(zj(n))的權(quán)值,i=1,2,…M,j=1,2,…d。
步驟四:采用一種改進(jìn)的回聲消除NLMS算法對(duì)自適應(yīng)濾波器權(quán)值進(jìn)行更新,該算法中對(duì)迭代步長(zhǎng)進(jìn)行分段處理;
式中mc是指迭代步長(zhǎng),通過(guò)這種方式來(lái)提高整體算法的收斂速度,在200次迭代之后獲得更加好的收斂精度,由此提高整個(gè)系統(tǒng)的收斂性和穩(wěn)態(tài)失調(diào)噪聲。由回聲消除NLMS算法可導(dǎo)出濾波器權(quán)值系數(shù)遞推公式為
式中誤差估計(jì)e(n)=d(n)-y1(n),其中d(n)為期望信號(hào)(純凈人聲語(yǔ)音信號(hào)),XM(n)為麥克風(fēng)陣列瞬時(shí)接收到的語(yǔ)音信號(hào),g是為了避免過(guò)小而設(shè)定的參數(shù),通常情況下的取值范圍是0和1之間。
步驟五:為了進(jìn)一步去除可能存在的殘余噪聲,在輸出信號(hào)y1(n)后續(xù)接譜減法。譜減法是在短時(shí)平穩(wěn)假定的基礎(chǔ)上,對(duì)帶噪語(yǔ)音信號(hào)進(jìn)行傅里葉變換并進(jìn)行重疊分幀處理,用每幀信號(hào)功率減去估計(jì)得到的噪聲功率,并利用人耳對(duì)語(yǔ)音信號(hào)的幅度比較敏感,而對(duì)語(yǔ)音的相位不敏感這一特性,可以用含有噪聲的語(yǔ)音信號(hào)的相位來(lái)代替純凈語(yǔ)音信號(hào)的相位,然后對(duì)其進(jìn)行傅里葉逆變換即可得到增強(qiáng)后的語(yǔ)音信號(hào),在利用譜減法對(duì)帶噪語(yǔ)音信號(hào)進(jìn)行去噪時(shí),重要的是對(duì)每一幀中噪聲功率的估計(jì)。利用以下方法來(lái)估計(jì)噪聲的功率:
式中0<σ<1,K是帶噪語(yǔ)音總幀數(shù)。得到的每幀純凈語(yǔ)音功率為:
式中,α>1,β<<1。在噪聲段保留一定的噪聲可以取得較好的降噪及抑制純音噪聲的效果,降低“音樂(lè)”噪聲的產(chǎn)生,改善聽(tīng)覺(jué)效果,經(jīng)過(guò)譜減,平滑濾波之后的信號(hào)為y2(n)。
步驟六:語(yǔ)音信號(hào)的時(shí)間序列為y2(n),加窗分幀后處理得到第i幀語(yǔ)音信號(hào)為y2i(n),幀長(zhǎng)為N。語(yǔ)音信號(hào)的每一幀能量可以表示為
本發(fā)明引入改進(jìn)的能量關(guān)系
LEi=log10(1+A MPi/a)
式中A MPi是每一幀的能量,a是一個(gè)常數(shù)。由于有a的存在,當(dāng)其取較大數(shù)值時(shí),能幅值得以緩和,所以適當(dāng)選擇a的值能夠更好地區(qū)分噪音和清音。能熵比則可表示為
之后通過(guò)能熵比算出經(jīng)過(guò)譜減后y2(n)的能熵比幅值圖,通過(guò)計(jì)算出的值來(lái)設(shè)置對(duì)應(yīng)的閾值T1和T2,T1為較高閾值,只要能熵比超過(guò)了此閾值就判定這段語(yǔ)音是人聲點(diǎn)dst1,然后以這個(gè)點(diǎn)為中心向兩邊擴(kuò)展搜索T1與此段語(yǔ)音的相交的兩個(gè)點(diǎn),粗判為此段語(yǔ)音的起止點(diǎn),然后再想兩邊擴(kuò)展搜索,知道檢測(cè)到較低閾值T2與此段語(yǔ)音相交的兩個(gè)點(diǎn),由于考慮到發(fā)音時(shí)詞與詞之間之間的靜音區(qū)會(huì)有一個(gè)最小長(zhǎng)度表示發(fā)音間的停頓于是在滿(mǎn)足T2較小閾值之后加上這個(gè)最小長(zhǎng)度,最終判定為此段語(yǔ)音的起止點(diǎn)。
實(shí)驗(yàn)結(jié)果如圖5-11所示,麥克風(fēng)陣列接受到的語(yǔ)音信號(hào)是帶噪語(yǔ)音信號(hào)從圖5和圖7對(duì)比可以得出,圖8為傳統(tǒng)語(yǔ)音端點(diǎn)檢測(cè)(具體結(jié)構(gòu)框圖如圖2所示)處理后得到的語(yǔ)音信號(hào)對(duì)比與圖9(本發(fā)明方法處理結(jié)果圖),可以明顯看到本發(fā)明方法去除噪聲的效果更好,圖10,圖11分別是傳統(tǒng)方法和本發(fā)明方法的瞬時(shí)方差,通過(guò)這兩張圖可以看出整體語(yǔ)音帶噪程度,傳統(tǒng)的都是遠(yuǎn)超過(guò)幅值2的,而改進(jìn)方法則基本在2以下,與此同時(shí),對(duì)比圖8和圖9,途中實(shí)線表示一個(gè)詞的開(kāi)始端,虛線表示一個(gè)詞的結(jié)束端,本段語(yǔ)音是“第一課認(rèn)識(shí)新同學(xué)”,傳統(tǒng)語(yǔ)音端點(diǎn)的檢測(cè)方法,并沒(méi)有檢測(cè)到‘一’‘識(shí)’‘學(xué)’這三個(gè)字,其正確率只有62.5%,而自適應(yīng)Legendre非線性濾波和語(yǔ)音端點(diǎn)檢測(cè)相結(jié)合的方法則測(cè)出了8個(gè)字的對(duì)應(yīng)端點(diǎn)位置,其準(zhǔn)確率為100%,同時(shí)本發(fā)明的語(yǔ)音降噪后的信噪比相較于傳統(tǒng)的算法提高了3.5dB,此算法不僅提高了準(zhǔn)確率和自適應(yīng)性,同時(shí)麥克風(fēng)數(shù)量的減少,也使得實(shí)現(xiàn)本發(fā)明的成本降低,能實(shí)現(xiàn)的可能性也大大增加。
以上所述,僅是本發(fā)明的較佳實(shí)施例,并非對(duì)本發(fā)明作任何形式上的限制,任何熟悉本專(zhuān)業(yè)的技術(shù)人員,在不脫離本發(fā)明技術(shù)方案范圍內(nèi),依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì),對(duì)以上實(shí)施例所作的任何簡(jiǎn)單的修改、等同替換與改進(jìn)等,均仍屬于本發(fā)明技術(shù)方案的保護(hù)范圍之內(nèi)。