?

基于音節時間長度高斯擬合的漢語音節切分方法

2016-05-14 10:37張揚趙曉群王締罡
計算機應用 2016年5期
關鍵詞:漢語

張揚 趙曉群 王締罡

摘要:研究漢語自然語音音節切分方法具有明顯現實意義,比較準確的自然語音切分方法可以代替人工對一些擁有參照文本的語音進行標注。然而至今為止并沒有完全準確的漢語語音音節切分方法。依據相同發音環境下漢語語音音節時間長度服從某種高斯分布和相鄰語音音節之間存在短時能量波谷兩個假設,提出了基于音節時間長度高斯擬合的漢語音節切分方法。對算法進行分析,根據初步切分短時能量波谷分散到各分語音段的特性,提出了簡化算法,有效降低了該音節切分方法的時間復雜度。實驗結果表明,音節切分準確度(與人工標注切分時間距離平方的均值)達到小數點后3位,在臺式機Matlab環境下運算時間均不超過1s,可以達到應用要求。

關鍵詞:漢語;自然語音;音節切分;時間長度;波谷;高斯分布

中圖分類號:TP391.4 文獻標志碼:A

Abstract:So far away, there is no accurate method for Chinese natural speech segmentation of syllables,which is meaningful in labeling speech with reference text instead of people. According to two hypotheses that time spans of Chinese syllables under the same pronunciation obey Gauss distribution and shorttime energy valley exists between two adjacent syllables, Chinese speech segmentation method based on Gauss distribution of time spans of syllables was proposed. A simplified method based on distribution of energy valleys was given, which effectively reduced the time complexity of this speech segmentation method. The experimental results show that segmentation accuracy (mean square value of time spans between artificial labels and labels created by this method) achieve 10-3 and computing times are less than 1s in Matlab of PC.

Key words:Chinese; natural speech; speech segmentation; time span; valley; Gauss distribution

0 引言

在信息科學領域,語音切分指辨識出語音段中所需單位語音(如音素、音節)的時間位置。目前為止,語音切分用到的方法基本分為基于隱馬爾可夫模型(Hidden Markov Model,HMM)的方法[1-2]、基于邊界模型的方法[3]以及HMM與邊界模型混合的方法[4]。在國內,從事相關研究的主要有中國科學院研究生院、北京郵電大學及哈爾濱工業大學等,研究方向有語音音素切分[5]、音節切分[6]及語句切分[7]等。其中音節切分研究結果并不理想,表現在對音節開始、音節結束和音節交界處的分類很差[6]。在國外,從事相關研究的有韓國建國大學、劍橋大學及哥倫比亞大學等。由于英語等印歐語系語言的特點,對音節切分的研究較少,主要研究集中在音素切分[8-9]。

研究自然語音切分技術具有明顯現實意義,較準確的自然語音切分方法可以代替人工對一些擁有參照文本的語音進行標注,大大減少類似語料庫建設或廣播語料后期處理中的標注時間,同時降低人工標注成本。本文將語音音節時間長度的分布規律應用到擁有參考文本的自然語音切分當中,提出了相同發音環境下漢語語音音節時間長度符合高斯分布及相鄰語音音節之間存在短時能量波谷的假設并予以驗證。以改進的雙門限法對語音進行第一次切分,在此基礎上計算各種波谷組合情況下語音切分構成可能音節的存在概率的和(可能音節存在概率來源于相同環境下少量已切分語段擬合的分布),得到存在概率和最大的切分。同時提出了簡化算法,大大縮減了語音切分花費的時間。實驗結果表明,本文方法切分音節準確度(與人工標注切分時間距離平方的均值)達到小數點后3位,同時在臺式機Maltab環境下運算時間均不超過1s,可以達到應用要求。

1 基于高斯擬合的語音切分方法

在相同的發音環境下,又已知漢語語音段中包含的音節數(以字為單位)時,可以抽取小部分語音統計發音音節時間長度,擬合音節時間長度的分布,利用傳統方法對其進行初步切分,再利用波谷及擬合的音節時間長度分布,對語音段進行再切分,最終達到切分出語音段各音節時間位置的目的,流程如圖1。

基于高斯擬合的語音切分方法,可以用來對擁有對應文本的漢語語音段進行切分并標注。其在傳統雙門限方法的基礎上,引入音節時間長度分布,以波谷為依據,實現了以音節(以字為單位)為切分目的的語音切分。

1.1 兩個合理假設的提出

本文算法依托于兩個假設:1)在相同發音環境下,漢語語音音節(以字為單位)時間長度(后面簡稱長度)服從某種高斯(正態)分布;2)漢語語音相鄰音節(以字為單位)之間一定存在短時能量的波谷。對兩個假設進行驗證:選取2段語音(一段為男聲朗讀語音,共451個字節,一段為女聲新聞語音,共581個字節)并進行人工標注,根據人工檢驗,標注點均落在短時能量波谷附近,假設2得以驗證;根據標注分別計算兩端語音的音節長度,進行正態化檢驗測試,測試結果理想,假設1得以驗證。正態化檢驗方法參照文獻[10]。圖2為根據正態化檢驗測試結果繪制的圖形。

測試音節長度由其標注的起始時間減去終止時間所得,所以圖中音節長度均為負值。測試語音長度及所屬分位數所對應坐標以“+”標出。若測試音節長度符合高斯(正態)分布,則其對應坐標應該接近圖中實線。根據圖2(a)、(c)中標出的數據坐標可以看出,兩段測試語音音節長度均符合高斯(正態)分布。根據數據計算擬合得到男聲語音段音節長度均值為-0.1899s,方差為0.0571s,正態分布圖如圖2(b)所示,女生語音段音節長度均值為-0.1654s,方差為0.0516s,正態分布圖如圖2(d)所示。

1.2 改進雙門限端點檢測算法

原雙門限端點檢測算法(本文討論的雙門限算法是以短時能量和短時過零率為檢測門限的端點檢測算法)在沒有背景噪聲的情況下,已經可以較準確地將語音段及靜音段區分。具體算法實現見文獻[11]。本文算法首先利用雙門限法對語音段及靜音段作初步分割,因為整體算法需要,對原雙門限法作以下改進:

1)對初始無話幀判斷的改進。在對語音數據進行分幀,求取平均能量及平均過零率以后,需要通過語音起始靜音段的短時能量及短時過零率來設定兩個門限。原方法起始靜音段由人工給出,對其進行相應改進,使其盡量能夠自動給出。自動給出要求背景噪聲不明顯。自動給出的方法會有少數情況不準確,并影響后續判斷,但由于這種不準確十分突出,可以被判斷出,在改變能量判別門限時區分對待即可。假設輸入語音段分幀后第i幀短時過零率為zcr(i),則尋找幀數j,使得:

則判斷從第0幀到第j幀為靜音段,其中Z為過零率突變門限。本文不考慮含背景噪聲情況,如果語音段含較強背景噪聲,則上述改進失效。

2)動態改變能量判別門限,使語音段初步切分數目達到音節數目的一半及以上。依據自動劃分的初始靜音段的短時能量大小,可以分為兩種情況: 一種是劃分初始靜音段短時能量遠小于語音段平均能量(文中方法以語音段平均能量的0.125倍為判別是否遠小于的門限),即準確劃分靜音段情況;另一種是劃分初始靜音段短時能量接近甚至遠大于語音段平均能量,即沒能準確劃分靜音段情況。能量判別門限ampth變化規則如下:

其中: ampth1表示初始靜音段短時能量最大值,avamp表示語音段平均能量。

隨著能量判別門限的增加,被判斷為靜音的幀數增加,從而增加了切分出的語音段數目。這樣做的原因是,如果初始語音段切分數目太少,將完全依靠波谷及存在概率對語音段切分,準確性將大大降低,同時計算時間將大大增加(時間增加原因詳見2.1節)。

3)將最小靜音長度改為幀數平均值的0.3倍。最小靜音長度主要作用是,在靜音長度不滿足最小靜音長度時,將這部分靜音長度判斷為有話幀,以防止偶爾的低能量幀影響判斷準確性。幀數平均值指根據假設1擬合出相同發音人及相似發音環境下單音節包含幀數的平均值。

4)初步切分出的分語音段的起始幀向前移動兩幀。動態改變能量判別門限使語音段切分數目達到音節數目的一半及以上后,由于聲母能量少,有可能出現丟掉部分聲母幀的情況,起始幀向前移動兩幀可以將丟掉的聲母幀包含一部分。

1.3 動態調整參與競選波谷數量

短時能量波谷是對已經初步切分的分語音段進行精確切分的參照標準。將其作為主要參照標準的依據是假設2,即漢語語音相鄰音節之間一定存在短時能量的波谷。首先,需要對語音短時能量進行中值濾波,消除跳躍點,即消除突發性噪聲的影響。然后,進行j階的波形平滑,設第i幀的短時能量為amp(i),平滑后的短時能量為A(i),則j階波形平滑表示為:

2 時間復雜度分析及簡化算法

2.1 時間復雜度分析

上述方法中,影響時間復雜度的主要是1.4節中計算不同語音切分存在概率和的部分。在對一段含有12個音節的語音(3.1節中出現的“test_11.wav”)進行切分過程中,運行1.4節(波谷組合及語音段再切分)之前的程序在普通臺式機Matlab環境下耗費時間為0.399s,將語音段初步切分為8段;計算一次概率和花費的時間為0.0554s左右(對不同切分判決花費時間差距很小,此處做大概計算),但計算次數為8568次,即總體時間471.240s。而在一些初始切分段落數量相對音節數較少的語音段,后續判決將花費更多時間。如3.1節中出現的“test_6.wav”,包含音節數為16,運行1.4節(波谷組合及語段再切分)之前的程序在相同環境下耗費時間為0.257s,將語音段初步切分為8段;計算一次概率和花費的時間為0.047s,但計算次數為203490,即總體時間9564s。這樣的計算時間難以滿足實際應用需求。

設需要切分的語音段采樣點儲存在數組x中,語音段初步切分(即1.4節之前)程序耗費時間為f(x),對第i次波谷組合再切分進行可能音節存在概率和計算耗費的時間為gi(x),初始切分后剩余波谷數目為n,需要挑選參與再切分的波谷數目為m,則耗費總時間t(x)為:

2.2 簡化算法

雖然減少初步切分后語音段內波谷數目n及減少需要得到的波谷數目m都是不可行的,對語音段進行初步切分后,語音段被切分為許多分語音段,與此同時,波谷n也被分別切分到不同的分語音段中。利用這個規律,可以得到如下簡化算法。為了配合簡化算法的說明,選取以原方法計算花費時間最長的“test_6.wav”語音跟隨簡化算法步驟。在此給出以第1章中描述的方法對語音段“test_6.wav”進行切分的最終結果(單位為幀):3469;7196;96121;121145;145163;169197;197232;232258;265287;293324;324345;345366;366390;390411;420430;439461。符號“”之前數字表示起始幀,之后數字表示結束幀。

簡化算法步驟如下:

1)對語音段進行初步切分、確定參與競選波谷(即1.1節~1.3節涉及算法)。對語音段“test_6.wav”進行初步切分,其中參數取值:采樣率為16kHz,幀長為200個采樣點,幀移為100個采樣點,擬合均值為-25.8623幀,擬合方差為11.0625。其初步切分結果為(單位為幀):3469;71163;169197;197258;265287;293411;420430;439461,共計8個分段。確定參與競選的波谷幀數值為:55;82;86;96;110;121;126;145;202;207;214;232;311;324;345;355;366;376;390;393;405共計21個波谷。

2)將參與競爭的波谷,按照所屬關系分配給初步切分的分語音段。語音段“test_6.wav”的波谷分配給初步切分的分語音段:345569;71828696160121126145163;169197;197202207214232258;265287;293311324345355366376390393405411;420430;439461。其中每一行第一個數字和最后一個數字是初步切分語音段的起始幀數值和結束幀數值,中間數字為按照要求分配的波谷幀數值。

3)引入最大平均概率值概念,即概率和最大值與切分后分段數目的商。分別計算每一個分段選取i(i取值從0開始,到本分段波谷值)個波谷組合作為切分點的最大平均概率,并記錄最大平均概率對應的波谷組合,以分段數及選取波谷數為表頭對最大平均概率值列表。如語音段“test_6.wav”第二個分段選取2個波谷進行組合作為切分點,計算得到最大平均概率為0.0180,對應的波谷組合為96幀、126幀。語音段“test_6.wav” 以分段數及選取波谷數為表頭對最大概率值列表結果如表1。

3 仿真結果與分析

實驗在Matlab環境下進行,語音選取新聞聯播某分段,共計21段語音(命名為“test_1~21.wav”),每段語音包含4到16個音節不等。不在實驗中采用標準語音語料庫,因為漢語標準語音語料庫中,除了訊飛公司發布的語料庫外,其他語料庫如863語音語料庫、CASS漢語口語語料庫等,存在標注不準確問題,而訊飛公司發布的語料庫為非共享資源[12]。另外,上述語料庫多為語音識別服務,語音采集重視多人數、短語句,而本文方法適用于同環境下的語音切分,同一發音人長時間發音可以看作一種苛刻的同環境,故選取新聞聯播某分段進行實驗。語音采樣率fs為16kHz,幀長wlen為200個采樣點,幀移inc為100個采樣點。對21段語音進行人工標注,選取前四段擬合其音節長度的高斯分布,得到高斯分布均值mu為-0.1554s,方差sigma為0.0629s。對語音段音節切分,切分音節位置包含音節起點及音節終點,因為對起點及終點的分析方法相同,相鄰音節常常出現前音節終點為后音節起點的情況,在以下實驗中,選擇音節起點進行分析。

傳統端點檢測方法可以較準確檢出靜音段,但在切分音節方面效果不好。以基于能量和過零率的雙門限法為例,以不同門限對語音段“test_6.wav”進行切分。設靜音段短時能量均值為ampth,短時過零率均值為zcrth,則設置高閾值能量門限amp1、低閾值能量門限amp2及過零率門限zcr如下:

從圖3中可以看出,利用雙門限法,最優的切分情況同人工標注差距仍舊比較大。其最好切分情況下,幀距離平方和大于2×104,即起始幀平均相差35.3553幀,換算成時間則相差0.2147s。造成這種差距的原因是語音“test_6.wav”中有許多連續發音的音節。

文獻[7]提出了基于歸并的語音音節切分方法。其原理為:把語音特征參數相似的相鄰幀進行歸并,形成類似段;將特征發生突然變化的位置記作1類轉折,將特征發生緩慢變化的位置記作2類轉折;將不同聲韻母及靜音按照其特性劃分到1或2類轉折中;利用文本信息及轉折位置進行劃分。

利用本文方法對語音段“test_6.wav”進行切分,并與文獻[7]提出的歸并切分方法、雙門限切分的最優情況中的一種(p1=1、p2=3、p3=20、maxsilence=8)及人工切分進行比較,切分結果如圖4所示。

利用本文方法對實驗語音進行自動行切,其切分準確度S達到小數點后3位。其中S最大值(S大表示切分不準確)為0.0031,即與人工標注起始點相差0.0557s,差距在可接受范圍內。利用簡化算法后,本文方法計算效率明顯提升,在對實驗語音進行自動切分過程中,在臺式機Matlab環境下,平均運算時間為0.3035s,最長運算時間為0.81s,達到應用水平。

4 結語

準確自動切分語音段中的音節,為語料庫及廣播語音的標注等工作提供許多便利。本文在傳統雙門限法的基礎上,對其進行4方面改進;進而利用相同發音環境下音節發音時間長度的分布規律,以波谷為依據,計算波谷組合下可能音節存在概率的和,進而得到最有可能的語音音節位置。利用本文算法兩次切分的特點,對其進行簡化。實驗仿真結果表明,本文方法切分音節準確度(與標注切分時間距離平方的均值)達到小數點后3位,同時在臺式機Maltab環境下運算時間均不超過1s,可以達到應用要求。然而本文方法主要針對較短語音段,適用于更長語音段的音節切分方法還有待進一步深入研究。

參考文獻:

[1]TOLEDANO D T, GOMEZ L A H, GRANDE L V . Automatic phonetic segmentation[J]. IEEE Transactions on Speech and Audio Processing, 2003,11(6):617-625.

[2]WU Y J, KAWAI H, NI J, et al. Discriminative training and explicit duration modeling for HMMbased automatic segmentation[J]. Speech Communication, 2005,47(3): 397-410.

[3]van HEMERT J P. Automatic segmentation of speech[J]. IEEE Transactions on Signal Processing,1991,39(4):1008-1012.

[4]CHOU F C, TSENG C Y, LEE L S. A set of corpusbased texttospeech synthesis technologies for Mandarin Chinese[J]. IEEE Transactions on Speech and Audio Processing,2002,10(7):481-494.

[5]杜守栓. 方言口音普通話語音自動切分算法研究[D].北京: 中國科學院,2006:15-26.(DU S S. Research on robust automatic segmentation of dialectal speech[D]. Beijing: University of Chinese Academy of Sciences, 2006:15-26.)

[6]何可嘉. 廣播語言的自動標注系統[D].北京: 北京郵電大學,2010:22-47.(HE K J. An automatic labeling system for broadcast news[D]. Beijing: Beijing University of Posts and Telecommunications, 2010:22-47.)

[7]韓虎. 漢語連續語音的音節自動標注算法研究及實現[D].哈爾濱: 哈爾濱工業大學,2008:21-44.(HAN H. Research and realization of the automatic syllable marking algorithm for Chinese continuous speech[D]. Harbin: Harbin Institute of Technology, 2008: 21-44.)

[8]LEE K S. MLPbased phone boundary refining for a TTS database[J]. IEEE Transactions on Audio, Speech and Language Processing, 2006,14(3):981-989.

[9]BROGNAUX S, DRUGMAN T. HMMbased speech segmentation: improvements of fully automatic approaches[J]. IEEE Transactions on Audio, Speech and Language Processing,2016,24(1):5-15

[10]廖文輝,劉炎.數據分析與SAS實驗[M].北京:經濟科學出版社,2010:13-32.(LIAO W H,LIU Y. Data Analysis and SAS Experiment[M]. Beijing: Economic Science Press,2010:13-32.)

[11]宋知用.Matlab在語音信號分析與合成中的應用[M].北京:北京航空航天大學出版社,2013:117-129.(SONG Z Y. Application of Matlab in Speech Signal Analysis and Synthesis[M].Beijing: Beihang University Press, 2013:117-129.)

[12]章森,劉磊,刁麓弘.大規模語音語料庫及其在TTS中應用的幾個問題[J].計算機學報,2010,33(4):667-696.(ZHANG S,LIU L,DIAO L H. Problems on largescale speech corpus and the applications in TTS[J]. Chinese Journal of Computers, 2010,33(4):667-696.)

猜你喜歡
漢語
漢語教學被多國納入教育體系
學漢語
學漢字
韓國語 "V+ " 與漢語"V+死了"對比研究
關于日語中漢語聲調最新變化的考察
關于日語中漢語聲調最新變化的考察
追劇宅女教漢語
母語
漢語與拼音
教育部出臺《民族中小學漢語課程標準(義務教育)》
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合