和麗華,江 濤,潘文林,楊建香,解雪琴,王 璐,余彩裙
(云南民族大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,云南 昆明 650500)
佤語是跨邊境少數(shù)民族語言,沒有通用的文字,目前國(guó)內(nèi)的佤族主要分布在中國(guó)云南省西南部的滄源縣、西盟縣、孟連縣、耿馬縣、瀾滄縣等地區(qū),國(guó)外的佤族主要分布在緬甸的東北部山區(qū),例如佤邦、撣邦等地區(qū).佤族是一個(gè)跨國(guó)界居住的少數(shù)民族[1],且佤語是佤族主要的交流工具,所以佤語的研究對(duì)國(guó)家安全和文化傳承有重要的意義.
在這個(gè)網(wǎng)絡(luò)信息化飛速發(fā)展的時(shí)代,語音是人們信息交流最直接、最快捷的方式,因此語音信號(hào)處理扮演著越來越重要的角色.20世紀(jì)50年代最早開始了對(duì)語音信號(hào)處理的研究,當(dāng)時(shí)主要是為了解決檢測(cè)語音段和非語音段問題,所提出的算法名稱為VAD(voice activity detection)[2].在語音信號(hào)處理的過程中,端點(diǎn)檢測(cè)是一項(xiàng)特別重要的語音處理技術(shù).常見的端點(diǎn)檢測(cè)方法主要基于以下特征:短時(shí)能量[3]和短時(shí)過零率[4]、熵[5]、倒譜[4]等,這些方法通常只注重特征參數(shù)的提取,卻忽略了語音增強(qiáng)方面的工作,這對(duì)于語音端點(diǎn)檢測(cè)的準(zhǔn)確率產(chǎn)生一定的影響,并且這些方法在高信噪比的環(huán)境下進(jìn)行端點(diǎn)檢測(cè)可以取得較好的效果,但在自然帶噪的語音環(huán)境中,因信噪比較低,此時(shí)的檢測(cè)效果就大不如前.
基于上述考慮,結(jié)合之前的研究工作[6-7],本文使用了一種基于多窗譜估計(jì)譜減法和能熵比的語音端點(diǎn)檢測(cè)復(fù)合算法對(duì)佤語語音進(jìn)行端點(diǎn)檢測(cè).多窗譜估計(jì)譜減法可以在一定程度上對(duì)含噪語音進(jìn)行減噪,從而獲得較高的信噪比,其次對(duì)去噪后的語音使用能熵比算法進(jìn)行語音端點(diǎn)檢測(cè).通過仿真實(shí)驗(yàn)證明:同常規(guī)能熵比算法相比較,本文使用基于多窗譜估計(jì)譜減法和能熵比的語音端點(diǎn)檢測(cè)復(fù)合算法可以提高對(duì)佤語語音端點(diǎn)檢測(cè)的正確率.
佤語屬南亞語系孟高棉語族佤德語支,沒有聲調(diào),以下分別從元音,輔音,音節(jié)結(jié)構(gòu)3個(gè)方面來分析其特征[8]:
1) 佤語的元音分為單元音與復(fù)合元音,單元音共有18個(gè),復(fù)合元音又有二合元音和三合元音之分,二合元音有28個(gè),三合元音有4個(gè).
2) 佤語的輔音分為單輔音與復(fù)輔音,單輔音共有38個(gè),復(fù)輔音則是由雙唇和舌根塞音p、ph、b、bh、k、kh、g、gh等與邊音l、擦顫音r組成的,共有16個(gè).
3) 佤語的音節(jié)結(jié)構(gòu)數(shù)目較多,但是結(jié)合形式較為整齊規(guī)律,主要可以歸納為12種基本形式(C代表輔音、V代表元音,其音節(jié)結(jié)構(gòu)為V、VV等不計(jì)算在內(nèi)).
表1 佤語的音節(jié)結(jié)構(gòu)
Thomson在1982年提出了多窗譜估計(jì)[9],它是一種非參數(shù)直接譜估計(jì)法,首先該方法對(duì)同一數(shù)據(jù)序列加上多個(gè)正交的數(shù)據(jù)窗,其次分別求直接譜,最后求平均得出譜估計(jì).相較于傳統(tǒng)的周期圖法[10]只用一個(gè)數(shù)據(jù)窗而言,多窗譜可以的得到較小的估計(jì)方差,是一個(gè)更加準(zhǔn)確的譜估計(jì)法.
多窗譜定義:
(1)
式(1)中,L為數(shù)據(jù)窗個(gè)數(shù);Smt為第k個(gè)數(shù)據(jù)窗的譜:
(2)
式(2)中,x(n)為數(shù)據(jù)序列;N為序列長(zhǎng)度;ak(n)為第k個(gè)數(shù)據(jù)窗,它滿足多個(gè)數(shù)據(jù)窗之間的相互正交:
(3)
數(shù)據(jù)窗是一組相互正交的離散橢球序列 DPSS (discrete prolate spheroidal sequences).
多窗譜估計(jì)譜減法[11]具體步驟如下:
Step 1 對(duì)帶噪語音信號(hào)為x(n)進(jìn)行加窗和分幀處理之后記為xi(m);
Step 2 對(duì)xi(m)做FFT后計(jì)算其幅度譜|Xi(k)|和相位譜θi(k);
Step 3 使用多窗譜估計(jì)并計(jì)算xi(m)平滑功率譜密度Py(k,i),并由已知的NIS幀的噪聲段計(jì)算出噪聲的平均功率譜密度值Pn(k);
因?yàn)楸粰z測(cè)語音段一般都含有噪聲干擾,傳統(tǒng)的語音端點(diǎn)檢測(cè)算法不能有效地檢測(cè)出語音的起始點(diǎn),所以使用多窗譜估計(jì)譜減法去除背景噪音,以提高被檢測(cè)語音的信噪比.
2.2.1 對(duì)數(shù)能量[12]關(guān)系
設(shè)帶噪語音信號(hào)為x(n),進(jìn)行加窗、分幀后得到的第i幀語音信號(hào)為xi(m),幀長(zhǎng)為N.則每一幀的能量為
(4)
引入一種新的對(duì)數(shù)能量
LEi=lg(AMPi+a)+lga.
(5)
式(5)中AMPi是計(jì)算出的每幀短時(shí)線性能量,a是一個(gè)常數(shù).
2.2.2 譜熵[13]
設(shè)帶噪語音信號(hào)為x(n),進(jìn)行加窗、分幀后得到的第i幀語音信號(hào)為xi(m),通過FFT變換后,設(shè)第k條譜線頻率分量fk的能量譜為Yi(k),則每個(gè)頻率分量的歸一化譜概率密度函數(shù)為
(6)
式(6)中,Pi(k)為第i幀第k個(gè)頻率分量fk對(duì)應(yīng)的概率密度;N為FFT長(zhǎng)度.
每個(gè)語音幀的短時(shí)譜熵定義為
(7)
2.2.3 能熵比
能熵比指的是對(duì)數(shù)能量與譜熵的比值,其定義為
(8)
對(duì)于能量來說,有話段語音的能量數(shù)值較大,噪聲段語音的能量數(shù)值較??;而對(duì)于譜熵而言,有話段內(nèi)的譜熵?cái)?shù)值要小于噪聲段的譜熵?cái)?shù)值,所以用能量比上譜熵可以突出有話段的數(shù)值,減小噪聲段的數(shù)值,有效地拉開了有話段語音與噪聲段之間的差距,更容易檢測(cè)出語音的端點(diǎn).
具體實(shí)現(xiàn)過程如下:
1) 帶噪語音信號(hào)為x(n),在進(jìn)行加窗和分幀處理之后的第幀i語音信號(hào)為xi(m),相鄰幀之間有重疊.
(9)
式(9)中以i幀為中心前后各取M幀,共有2M+1幀進(jìn)行平均.
3) 對(duì)加窗分幀處理后語音信號(hào)xi(m)進(jìn)行多窗譜估計(jì),計(jì)算出多窗譜功率譜密度P(k,i)(其中i表示第i幀,k表示第k條譜線):
P(k,i)=PMTM[xi(m)].
(10)
式(10)中PMTM表示進(jìn)行多窗譜功率譜密度估計(jì).
并且對(duì)P(k,i)也做相鄰幀的平滑處理和計(jì)算其平滑功率譜密度Py(k,i):
(11)
式(11)中以i幀為中心前后各取M幀,共有 2M+1 幀進(jìn)行平均.
4) 由已知的NIS幀的噪聲段,能夠計(jì)算出噪聲的平均功率譜密度值Pn(k):
(12)
5) 通過譜減關(guān)系來計(jì)算出增益因子
(13)
式(13)中α為過減因子(α>1,α的值越大,同時(shí)剩余的噪聲衰減越大,語音的失真也會(huì)越大),β為補(bǔ)償增益因子(0<β<1,β的值越大,同時(shí)剩余的噪聲越小,語音的背景噪聲也會(huì)變得越大).
(14)
(15)
8) 由式(5)和式(7)計(jì)算減噪后的語音信號(hào)的對(duì)數(shù)能量LEi和譜熵Hi,再通過式(8)得出能熵比EEFi并且進(jìn)行平滑處理.
9) 設(shè)置高閾值T2,若當(dāng)前幀的能熵比高于T2時(shí)確定為語音段的起始點(diǎn),若當(dāng)前幀的能熵比不高于T2時(shí),則取下一幀的能熵比與T2比較,重復(fù)步驟9),直到檢測(cè)到語音起始點(diǎn).
10) 檢測(cè)到語音的起始點(diǎn)后,設(shè)置低閾值T1,若當(dāng)前幀的能熵比低于T1時(shí)確定是為語音段的終止點(diǎn),若當(dāng)前幀的能熵比不低于T1時(shí),則取下一幀的能熵比與T1比較,重復(fù)步驟10),直到檢測(cè)到語音終止點(diǎn).
11) 重復(fù)步驟9)、10)直至語音段結(jié)束.
實(shí)驗(yàn)環(huán)境:Windows10操作系統(tǒng),CPU為Inteli3,內(nèi)存為8GB,運(yùn)行軟件為Matalab2018.
實(shí)驗(yàn)選用50個(gè)佤語孤立詞音頻文件進(jìn)行測(cè)試,均在錄音棚內(nèi)錄制.一共是由2位不同發(fā)音人(1男1女)共同錄制,每人25個(gè)詞.
為了驗(yàn)證本文算法對(duì)于佤語語音端點(diǎn)檢測(cè)的準(zhǔn)確率,使用Matalab工具對(duì)50個(gè)佤語孤立詞音頻文件進(jìn)行仿真實(shí)驗(yàn).實(shí)驗(yàn)分別采用常規(guī)能熵比法和基于多窗譜估計(jì)譜減法及能熵比法的復(fù)合算法對(duì)50個(gè)佤語孤立詞的音頻文件進(jìn)行端點(diǎn)檢測(cè),通過比較其準(zhǔn)確率可以看出兩個(gè)算法在低信噪比環(huán)境下端點(diǎn)檢測(cè)的性能.
下面以佤語“今天”的錄音文本為例.(橫坐標(biāo)表示幅值,縱坐標(biāo)表示時(shí)間,實(shí)線表示語音段的起始點(diǎn),虛線表示語音段的終止點(diǎn))
圖2為佤語語音“今天”的原始語音波形圖,從圖2中可以清楚看到佤語語音“今天”的起始點(diǎn)(實(shí)線標(biāo)注)和終止點(diǎn)(虛線標(biāo)注),不難看出起始點(diǎn)和終止點(diǎn)前后都有一段噪音的波形,同時(shí)這段噪音音波形也覆蓋在待檢測(cè)的語音波形上,這會(huì)使端點(diǎn)檢測(cè)算法將噪聲檢測(cè)為有效語音段,導(dǎo)致算法對(duì)語音起始點(diǎn)與終止點(diǎn)的誤判.
圖3為佤語“今天”的短時(shí)能熵比的端點(diǎn)檢測(cè)圖,圖中橫著的實(shí)線表示高閾值T2,橫著的虛線表示低閾值T1.從圖3中可以明顯看出佤語“今天”的前半段語音完全被漏檢,造成漏檢的主要原因是實(shí)驗(yàn)所使用的語音是含有一定噪聲的且佤語“今天”前半段語音的對(duì)數(shù)能量值較小,導(dǎo)致其短時(shí)能熵比(能量與譜熵的比值)的值沒有高于高閾值T2,所以端點(diǎn)檢測(cè)算法沒有將其檢測(cè)為有效語音段.這樣得到的佤語語音端點(diǎn)檢測(cè)結(jié)果會(huì)導(dǎo)致語音切分的不完整,對(duì)后續(xù)佤語語音識(shí)別工作存在較大的影響.
圖4、圖5分別為佤語語音“今天”多窗譜減后語音波形圖和短時(shí)能熵比的端點(diǎn)檢測(cè)圖,圖中橫著的實(shí)線表示高閾值T2,橫著的虛線表示低閾值T1.對(duì)比圖2原始語音波形圖與圖4中的譜減后語音波形圖,可以明顯看出使用多窗譜估計(jì)譜減法對(duì)原始語音減噪后,能有效避免端點(diǎn)檢測(cè)算法將噪聲段檢測(cè)為有效語音段。再使用能熵比算法進(jìn)行端點(diǎn)檢測(cè)時(shí),對(duì)于佤語“今天”前半段語音的漏檢的問題得到了明顯的改善,檢測(cè)結(jié)果的準(zhǔn)確率明顯提高。
從圖3和圖5中可以看出,在低信噪比環(huán)境下,常規(guī)能熵比端點(diǎn)檢測(cè)算法并沒有完整地檢測(cè)到語音中所有的有效語音段,但是由于語音的完整性對(duì)于后續(xù)的語音識(shí)別工作尤為重要,所以本文采用多窗譜估計(jì)譜減法對(duì)語音進(jìn)行減噪以提升信噪比,再結(jié)合能熵比法進(jìn)行端點(diǎn)檢測(cè),能將每一個(gè)音都完整地檢測(cè)到.
通過對(duì)50個(gè)佤語音頻文件進(jìn)行多次仿真實(shí)驗(yàn),可以得到采用能熵比法和本文算法對(duì)佤語語音端點(diǎn)檢測(cè)的準(zhǔn)確率如表2所示
表2 采用不同算法的準(zhǔn)確率
通過表2看出,常規(guī)能熵比算法對(duì)50個(gè)佤語音頻文件檢測(cè)正確的個(gè)數(shù)有24個(gè),準(zhǔn)確率僅為48%,而本文算法檢測(cè)正確的個(gè)數(shù)有41個(gè),準(zhǔn)確率為82%.本文算法與常規(guī)能熵比算法相比,準(zhǔn)確率提高了34%.由此可見,采用多窗譜估計(jì)譜減法對(duì)語音進(jìn)行減噪后,再結(jié)合能熵比法進(jìn)行佤語語音的端點(diǎn)檢測(cè),能有效避免噪音對(duì)佤語語音檢測(cè)的干擾,較大程度上提高算法的準(zhǔn)確率,為后續(xù)語音識(shí)別工作奠定了基礎(chǔ).
目前的語音端點(diǎn)檢測(cè)算法在無噪環(huán)境下的準(zhǔn)確率已經(jīng)達(dá)到令人滿意的效果,但在實(shí)際應(yīng)用中由于噪聲和環(huán)境的影響會(huì)使其性能顯著下降.為了提高在低信噪比環(huán)境下佤語語音端點(diǎn)檢測(cè)的準(zhǔn)確率,本文算法將多窗譜估計(jì)譜減法降噪以提升信噪比和能熵比端點(diǎn)檢測(cè)相結(jié)合,綜合了多窗譜估計(jì)譜減法保留了降噪后的清音、摩擦音和能熵比法突出語音段與噪聲段區(qū)別的優(yōu)點(diǎn),改善了常規(guī)能熵比算法在低信噪比環(huán)境下準(zhǔn)確率低的情況.通過理論分析和借助Matlab工具對(duì)佤語語音進(jìn)行仿真實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明:同常規(guī)的能熵比法相比,準(zhǔn)確率提高了34%,驗(yàn)證了其可行性和有效性,有利于后續(xù)語音識(shí)別工作的準(zhǔn)確性.后續(xù)的工作是對(duì)于語音中兩個(gè)基元粘連的情況進(jìn)行有效的端點(diǎn)檢測(cè)并進(jìn)行切分,為以后的語音識(shí)別工作做前期準(zhǔn)備.