李洺宇, 金小峰
( 延邊大學(xué) 工學(xué)院, 吉林 延吉 133002 )
近年來,語音技術(shù)得到了快速的發(fā)展和應(yīng)用.語料庫作為語音技術(shù)研究的底層,對語音識別、語音合成、語音信號處理等具有重要的支撐作用.傳統(tǒng)的語音語料標(biāo)注采用的是人工標(biāo)注方法,需耗費大量人力和時間[1],且已無法滿足語音語料日益增多的需求,因此研究語音自動標(biāo)注算法變得尤為必要.目前,語音語料自動標(biāo)注的方法主要分為基于語音識別的方法和非語音識別的方法.例如:王麗娟等[2]提出了一種基于HMM模型的語音單元邊界自動切分方法;李詩心[3]針對傣語語音合成系統(tǒng)提出了一種自動分詞技術(shù)與音子自動切分技術(shù);韓虎[4]研究了一種漢語連續(xù)語音的音節(jié)自動標(biāo)注算法;Tolegen Gulmira等[5]和Jaruwat Pailai等[6]將音素的邊界用其他標(biāo)簽表示,然后以標(biāo)簽作為檢測目標(biāo),即將邊界檢測任務(wù)視為序列標(biāo)注任務(wù).上述基于語音識別的方法,其音節(jié)切分準(zhǔn)確率較高,但依賴于訓(xùn)練好的語音模型.
除了基于語音識別的方法外,研究人員還從構(gòu)成語音單元(元音和輔音)的特征區(qū)分角度,提出了多特征參數(shù)組合的語音單元邊界檢測方法.例如:文獻[7-8]依據(jù)不同的特征參數(shù)對語音單元進行區(qū)分,取得了較好的分割效果;王艷等[9]提出了一種基于元音檢測的漢語連續(xù)語音聲韻母的分割方法,這種方法具有較好的抗噪性;基于元音的能量遠大于輔音的特點,姚徐等[10]利用雙門限的方法設(shè)計并實現(xiàn)了音段自動切分系統(tǒng),但該方法對元音的識別效果很大程度受閾值選取的影響;陳斌等[11]104提出了一種基于Seneff聽覺譜特征的漢語連續(xù)語音聲韻母邊界檢測方法,該方法對語音單元尤其是音素切分有較好的效果.基于文獻[11]的研究,本文采用Seneff聽覺模型,結(jié)合朝鮮語的發(fā)音特點提出一種朝鮮語語音語料音節(jié)自動切分方法,并通過實驗驗證本文方法的有效性.
朝鮮語文字組字規(guī)則以音節(jié)為單位,一個音節(jié)組成一個朝鮮語文字.朝鮮語的音節(jié)由初聲子音(聲母)、中聲音(韻母)和終聲子音(韻尾) 3個部分組成,分為聲母+韻母+韻尾、聲母+韻母、韻母3種形式[12].在朝鮮語語音語流中,一個語音往往受鄰近語音的影響而發(fā)生音變[13],這些音變往往會給朝鮮語語音音節(jié)的檢測和分割帶來負(fù)面影響.常見的朝鮮語發(fā)音變化主要分為如下幾種:
5)輔音同化.兩個不同的輔音遇到一起時,變?yōu)橄嗨苹蛘呦嗤囊?,這種同化現(xiàn)象分為鼻音化和音化現(xiàn)象兩類.①鼻音化.當(dāng)發(fā)音為//的收音后接以輔音/開頭的音節(jié)時,收音的發(fā)音要相應(yīng)地變?yōu)?/.當(dāng)收音/與以輔音開頭的音節(jié)相遇時,輔音的發(fā)音自動變?yōu)?當(dāng)收音/與以輔音開頭的音節(jié)相遇時,輔音的發(fā)音自動變?yōu)?;前面?相應(yīng)地變成鼻音/.②音化現(xiàn)象.在收音的后面或輔音的前面出現(xiàn)時,的發(fā)音自動變?yōu)槭找艋蚴禽o音.
Seneff聽覺模型模擬了人耳耳蝸結(jié)構(gòu),具備良好的語音頻帶處理性能,被廣泛應(yīng)用于說話人識別、語音識別、語音信號處理等領(lǐng)域[11]105.Seneff聽覺模型框架如圖1所示.
圖1 Seneff聽覺模型框架
Seneff聽覺模型在處理語音信號時,首先利用濾波器預(yù)處理聽覺信號(去除高低頻),然后將預(yù)處理后的輸出信號輸入到個數(shù)為35的臨界頻帶濾波器組.因為臨界頻帶濾波器在高頻段具有良好的時間分辨率,在低頻段具有良好的頻率分辨率,因此可以提高共振峰信息提取的準(zhǔn)確率.臨界頻帶濾波器的主要參數(shù)為臨界頻帶帶寬的頻率尺度,其求解方式為通過非線性映射函數(shù)將頻率尺度轉(zhuǎn)換為Bark尺度.一個Bark的頻率差為一個臨界帶寬,每個相鄰濾波器的頻率上下限采用式(1)計算:
(1)
利用公式(1)可求得臨界頻帶濾波器組的參數(shù)值(中心頻率),具體計算過程如下:以中心頻率f0先求出B0=B(f0), 然后倒轉(zhuǎn)得到頻率尺度中的濾波器上下限f(B0-1/2)和f(B0+1/2),每個上下限相鄰間隔大約為半個臨界帶寬.計算得到的中心頻率見表1.
表1 臨界頻帶濾波器中心頻率取值 Hz
利用式(2)對通過各臨界頻帶濾波器的輸出信號進行具有飽和非線性的半波整流.
(2)
式(2)中CBi(n)為臨界頻帶濾波器的輸出,G=2.35,A=10,B=65.顯然,從公式(2)的分段情況可知:對于小輸入值,可進行線性處理;對于大輸入值,可進行壓縮處理.
信號經(jīng)半波整流后,系統(tǒng)被分成兩個分支:一個分支用以求解平均速率響應(yīng),另一個分支用以求解同步響應(yīng).平均速率響應(yīng)從短期自適應(yīng)和正向掩蔽(STA,short term adaptation)模塊開始,然后依次為自動增益(AGC,automatic gain control)模塊、包絡(luò)檢測器(ED,envelope detector).同步響應(yīng)路徑依次為低通濾波器(LPF,low-pass filter)、AGC和廣義同步檢測器.
STA模塊模擬的是在耳蝸反應(yīng)中發(fā)生的短期適應(yīng)效應(yīng)和正向掩蔽效應(yīng),這兩種效應(yīng)影響神經(jīng)遞質(zhì)濃度的機制可用如下公式表示:
(3)
STAi(n)=max{0,μa[Ri(n)-Ci(n-1)}.
(4)
其中,Ci(n)為區(qū)域內(nèi)神經(jīng)遞質(zhì)的濃度,Ri(n)為輸入(源區(qū)域)的濃度,常數(shù)μa=8.3 s,μb=58.3 s,初始值Ci(0)=0.STA模塊僅用于平均速率響應(yīng)分支中.若將STA模塊加入到同步響應(yīng)分支中,則會消除元音的共振峰結(jié)構(gòu).上述兩種機制對同步響應(yīng)分支僅產(chǎn)生輕微影響.
在產(chǎn)生平均速率響應(yīng)的分支上,信號最后通過的是包絡(luò)檢測器 (低通濾波器).包絡(luò)檢測器的作用是避免高頻信號產(chǎn)生脈沖響應(yīng),并平滑半波整流的輸出.包絡(luò)檢測器的輸出即為平均速率響應(yīng),表示為EDi(n).包絡(luò)檢測器的轉(zhuǎn)移函數(shù)為:
(5)
在產(chǎn)生同步響應(yīng)的分支上,信號首先通過的是低通濾波器.該低通濾波器的作用是模擬由神經(jīng)延遲和響應(yīng)抖動而導(dǎo)致在高頻段發(fā)生的同步抑制現(xiàn)象,其輸出信號用LPFi(n)表示.該低通濾波器的傳遞函數(shù)為:
(6)
本文采用Seneff設(shè)計的GSD(generalize synchrony detector)[15]計算類似于自相關(guān)關(guān)系的輸出來檢測時間響應(yīng)中的周期性,生成每個濾波器輸出的和以及差的期望幅值和差值以及延遲的軟限制比,每個GSD的延遲必須與濾波器的中心頻率對應(yīng).GSD的計算公式為:
(7)
其中,y(n)為AGC的輸出HCi(n),As=4,δ=0.1,β=0.99,ni=fs/fi,fi為第i個濾波器的中心頻率.δ的作用是抑制對小幅度信號的響應(yīng),As的作用是控制輸入的線性范圍.
M.Ahmed等[16]研究表明,GSD包含明顯的偽峰,這些偽峰是由基頻F0、噪聲及其他因素的諧波引起的.為了消除偽峰,M.Ahmed等提出了平均局部同步檢測器(ALSD,average local sync detector),該檢測器的轉(zhuǎn)化過程如圖2所示.
圖2 同步檢測器轉(zhuǎn)化為平均局部同步檢測器的示意圖
圖2中,將各同步檢測器的計算結(jié)果取平均值,即可得到第i個濾波器的ALSDi.ALSDi的計算公式為:
(8)
其中n=n1+n2,n=3. 3的含義為在中心濾波器的每一側(cè)均有一個濾波器.
檢測和分割朝鮮語語音音節(jié),首先需要能夠區(qū)分朝鮮語音節(jié)中的響音和阻塞音.因響音和阻塞音在不同頻段上存在差異,因此本文根據(jù)響音和阻塞音的頻率分布特性,采用Seneff聽覺模型中的臨界頻帶濾波器對其進行劃分.表2給出了部分響音和阻塞音與Seneff聽覺模型中濾波器的對應(yīng)關(guān)系.
表2 部分頻帶范圍與Seneff聽覺模型中濾波器的對應(yīng)關(guān)系
頻帶劃分頻帶范圍/Hz濾波器序號低頻帶200~<8001-12中頻帶800~<120013-16中高頻帶1200~500017-35全頻帶200~50001-35
發(fā)響音時,因聲帶振動的能量較高,且信號周期性和共振峰特性較為明顯,因此檢測時本文選擇對信號周期性及共振峰特性具有明顯效果的ALSD特征參數(shù).具體計算的參數(shù)包括低頻帶ALSD、全頻帶ALSD和ED中低高頻帶比.因響音的這3個參數(shù)值偏大,且ALSD譜的重心偏小,所以在確定邊界點時,為了能夠與其他參數(shù)保持趨勢一致,采用負(fù)值描述ALSD譜重心.各參數(shù)計算公式如下:
(9)
(10)
(11)
(12)
其中LBE(n)表示低頻帶ALSD;ABEALSD(n)表示全頻帶ALSD;LHR(n)表示ED中低高頻帶比;SCGALSD(n)表示ALSD譜重心.
(13)
(14)
(15)
(16)
其中MHEALSD(n)表示中高頻帶ALSD;MHEED(n)表示中高頻帶ED;ABEED(n)表示全頻帶ED;SCGED(n)表示ED譜重心.
利用式(9)—(16)計算得到8個參數(shù)后,需要進一步確認(rèn)準(zhǔn)確的突變點,以此確定響音和阻塞音的邊界(切分點).為了消除野點對突變點的影響,采用Kaiser濾波器(通帶為4 Hz,阻帶為14 Hz)進行時域平滑,采用高斯濾波器(μ=0,σ2=6)進行頻域平滑[17].平滑后通過定位突變點的位置來表征響音和阻塞音的邊界位置.突變點有正負(fù)兩種類型.為消除這兩種類型的突變點,將同時滿足式(17)中3個條件的突變點定義為正突變點,并標(biāo)記為n+:
n+={n|diff(n)>diff(n-1);diff(n)>diff(n+1);diff(n)>θ+}.
(17)
其中:
diff(n)=x(n+1)-x(n);
(18)
θ+(x)=μ(x)+pσ(x),p=0.5;
(19)
(20)
(21)
類似地,負(fù)突變點n-定義為:
n-={n|diff(n) (22) 其中, θ-(x)=μ(x)-pσ(x),p=0.5. (23) 圖3 語音“”的特征參數(shù)曲線 圖3中的曲線為能量和共振峰等特征經(jīng)Seneff聽覺模型轉(zhuǎn)變?yōu)镋D和ALSD后在各頻段的分布情況.通過圖3中的曲線趨勢變化,可求得語音特征曲線的正負(fù)突變點,從而實現(xiàn)音節(jié)邊界點的劃分.由于每個音節(jié)通常是由輔音加元音構(gòu)成,所以若根據(jù)各頻段中表示能量和共振峰的參數(shù)來確定音節(jié)的邊界點,只需在求得的突變點中找到負(fù)突變點的位置即可確定音節(jié)的分割點.結(jié)合朝鮮語發(fā)音特點,本文提出的基于Seneff聽覺模型的朝鮮語語言音節(jié)自動分割算法(算法1)的步驟如下: step 1 由式(17)—(23)初步確定各特征參數(shù)的突變點位置. step 2 查找每個特征參數(shù)曲線中兩個連續(xù)波峰和波谷的時間間隔t, 若t>20 ms,保留該區(qū)間的所有正負(fù)突變點;否則,保留區(qū)間內(nèi)前面的波峰或波谷的突變點,同時刪除區(qū)間內(nèi)后面的突變點.依據(jù)前一次迭代的情況保留波峰或波谷,如前一次迭代保留的是波峰,則本次保留波谷. step 3 對所有保留下來的各參數(shù)的正負(fù)突變點以5 ms為單位進行分段.每個波峰選1個最大的正突變點和2個最大的負(fù)突變點,若兩個負(fù)突變點的時間間隔大于15 ms,保留位置靠后的負(fù)突變點;否則保留斜率絕對值較大的負(fù)突變點. step 4 將所有特征參數(shù)曲線的負(fù)突變點以40 ms為閾值進行聚類整合,獲取音節(jié)分割的邊界. 采用算法1對朝鮮語語音音節(jié)進行分割,結(jié)果如表4所示.由表4可以看出,算法1的召回率較為理想,但是準(zhǔn)確率偏低.準(zhǔn)確率偏低的主要原因是在檢測音節(jié)的過程中,靜音段中的噪聲以及鼻韻尾、摩擦音、塞音等引起的音節(jié)檢測錯誤較多.檢測過程中分割錯誤占比見表3. 表3 分割錯誤占比 為了提高音節(jié)檢測的準(zhǔn)確率,本文提出改進的基于Seneff聽覺模型的音節(jié)自動分割算法(算法2),具體步驟如下: step 1 通過雙門限端點檢測算法檢測連續(xù)語音中的各個靜音段邊界,然后從算法1得到的候選音節(jié)邊界列表中刪除靜音段引起的錯誤邊界. step 2 設(shè)定過零率閾值,并將大于此閾值的候選邊界確定為摩擦音及塞擦音;設(shè)定閾值a, 若經(jīng)step1篩選后的塞擦音和摩擦音的邊界位置k滿足k≤邊界位置≤k+a, 則刪除該邊界. step 3 設(shè)定閾值b, 若經(jīng)step 1和step 2篩選后剩余的候選邊界位置k滿足k≤邊界位置≤k+b, 則刪除該邊界. 在改進的音節(jié)自動切分算法中,靜音段、摩擦音/塞擦音以及塞音等的檢測閾值采用的是經(jīng)驗值,若該值采用不當(dāng),會誤刪真實的邊界而導(dǎo)致召回率降低;因此,經(jīng)驗值的選取非常關(guān)鍵. 選取朝鮮語連續(xù)語音語料(準(zhǔn)書面語)中的100段音頻作為實驗數(shù)據(jù),其中包含響音(元音/邊音/鼻音)、阻塞音(摩擦音/塞擦音)等各類語音.語音的采樣頻率為16 kHz,量化精度為16 bit.音節(jié)的真實邊界通過人工標(biāo)注獲得,并將算法自動檢測出的音節(jié)邊界和人工標(biāo)注出的基準(zhǔn)邊界進行比較.假設(shè)算法得到的邊界為ts, 人工標(biāo)注的基準(zhǔn)邊界為tp, 且定義|ts-tp|≤20 ms時為檢測準(zhǔn)確. 算法評估指標(biāo)采用準(zhǔn)確率P和召回率R.假設(shè)算法檢測出的邊界個數(shù)為Nt, 人工標(biāo)注的邊界個數(shù)為Nh, 邊界檢測錯誤的個數(shù)為Nc, 則準(zhǔn)確率和召回率的計算公式為: 算法2的實驗結(jié)果見表4.由表4可看出,雖然算法2的召回率較算法1略有降低,但是準(zhǔn)確率明顯提高,說明算法2優(yōu)于算法1.另外,若將算法2與人工校正相結(jié)合,則可在后續(xù)的語料標(biāo)注過程中顯著提高標(biāo)注工作的效率. 表4 兩種算法的音節(jié)分割結(jié)果 % 本文基于朝鮮語語音發(fā)音特點,提出了一種基于Seneff聽覺模型的朝鮮語語音語料音節(jié)自動切分算法.測試結(jié)果表明,本文方法不依賴于事先訓(xùn)練好的語音模型,僅僅從語音特征參數(shù)即可實現(xiàn)音節(jié)的自動切分,且切分效果顯著優(yōu)于傳統(tǒng)的基于Seneff聽覺模型的分割算法.為提高音節(jié)分割的準(zhǔn)確率,今后我們將引入機器學(xué)習(xí)的方法對其進行研究.3.2 音節(jié)分割算法的改進設(shè)計
4 實驗結(jié)果及分析
5 結(jié)論