專利名稱:移動語音合成方法
技術領域:
移動語音合成方法屬于通信中文字與語音之間信息轉換和處理技術領域。本發(fā)明涉及一種在移動終端設備特別是智能手機上進行文語轉換的技術。
背景技術:
文語轉換(Test-To-Speech,TTS),是將文字轉換成聲音的技術,也經(jīng)常被稱為語音合成。目前主流的文語轉換系統(tǒng)多采用基于大規(guī)模語音語料庫的波形拼接式合成方式。為了獲得高質量的合成語音,這類合成系統(tǒng)往往需要一個大規(guī)模的語音數(shù)據(jù)庫,一個音庫動輒幾百MB,達到GB級的音庫也已經(jīng)十分常見;與此同時,隨著信息技術的發(fā)展,各種各樣的移動終端設備如手機、個人數(shù)字助理(PDA)、車載設備等逐漸得到普及;移動終端上的各種文字信息也呈現(xiàn)出爆炸性增長的趨勢,一個典型的例子就是手機短信;但是由于包括手機在內的各種移動終端的屏幕都比較小,所以對文字信息的閱讀造成了一定的障礙。如果能夠將文字信息轉換為語音信息,必將有效提高移動終端的人機交互性能。
基于語料庫的拼接式合成技術可以查閱1.中國發(fā)明專利ZL94103372,發(fā)明人清華大學蔡蓮紅等,發(fā)明名稱“基于波形編輯的漢語文字——語音轉換方法及系統(tǒng)”;2.中國重大科技成果數(shù)據(jù)庫編號941008,清華大學蔡蓮紅等,“漢語文語轉換系統(tǒng)TH-Speech”;3.中國發(fā)明專利ZL01123418,發(fā)明人北京捷通華聲語音技術有限公司呂士楠等,發(fā)明名稱“一種動態(tài)漢語語音合成方法”。
由于移動終端存儲空間和計算能力有限,而通用的基于大規(guī)模語音語料庫的語音合成方法需要一個大規(guī)模的音庫,基元搜索算法也比較復雜,不能完全滿足移動終端的需要。為此我們設計了一種適用于移動終端設備的文語轉換技術,稱之為移動語音合成技術。
本發(fā)明的目的在于針對移動終端設備存儲空間和計算能力有限的特點,及其與拼接式合成系統(tǒng)所需要的大規(guī)模語音語料庫及復雜的基元選取算法之間的矛盾,提出一套語音合成方法和系統(tǒng);該方法能夠大幅度降低合成系統(tǒng)所需的存儲空間,并且充分利用拼接式合成方法的優(yōu)點,合成出具有較高的可懂度和自然度的語音。
發(fā)明內容
為了實現(xiàn)上述目的,本發(fā)明提出一套技術方案,主要包括三部分。首先,提出一種基于CART樹的語音庫構建方法,可以從大規(guī)模語音語料庫中進行裁減和優(yōu)化,得到一個精簡的小型語音庫;其次,本發(fā)明還提出了一個基于大規(guī)模語音語料庫的韻律模型訓練方法,該韻律模型用來在合成過程中指導基元選取和韻律修改;最后,基于以上步驟所得到的語音庫和韻律模型,本發(fā)明設計了一套相應的語音合成方法,可以在移動終端設備上實時合成高質量的語音。
1.基于CART樹的音庫構建方法移動語音合成系統(tǒng)的語音庫構建是從原始語音語料庫的大量基元樣本中選取少量的最具有代表性的樣本,從而達到縮小音庫規(guī)模的目的。為此,對每個音節(jié)構建一棵決策樹,決策樹的問題集為若干影響音節(jié)的韻律特征的上下文特征值,節(jié)點分裂標準基于基元樣本之間距離的聲學度量。每個音節(jié)的樣本根據(jù)決策樹的問題集生成若干葉子節(jié)點,每個葉子節(jié)點代表韻律上下文一致、聽感比較接近的若干樣本,最后選出每個葉子節(jié)點的聚類中心樣本代表該葉子節(jié)點中的所有樣本。
2.數(shù)據(jù)驅動的韻律模型訓練方法本發(fā)明的韻律模型包括了基頻、時長兩個模型。在各個韻律特征中,基頻曲線有較強的表現(xiàn)力,對于語音的自然度有很大的影響。本發(fā)明設計了一個基于CART樹的基頻曲線預測模型,利用一個大規(guī)模語音語料庫對其進行訓練,得到一個基頻曲線的韻律模板庫。在實時合成的時候,能夠根據(jù)目標單元的韻律符號描述對韻律模板庫進行檢索,得到與目標韻律最接近的基頻曲線。對時長的預測與基頻曲線的預測一樣,也是基于CART決策樹的預測模型。
3.語音合成方法包括了基元選取和韻律修改兩個模塊??紤]到移動語音合成系統(tǒng)在構建音庫時裁減掉了大量的基元樣本,同時考慮移動終端設備對算法復雜度的要求,設計了一種高效的基元選取方法,能夠快速地從音庫中選出與目標單元的韻律特征最為接近的基元樣本。設計一種高效的韻律修改算法,能夠將從文本分析得到韻律上下文環(huán)境映射為時長、基頻曲線等韻律特征參數(shù),并根據(jù)這些參數(shù)使用TD-PSOLA算法對目標單元進行修改。最后將修改后的目標單元序列進行拼接即得到最終的合成語音。
本發(fā)明的特征在于該方法是一種在移動通信終端設備特別是在智能手機上進行文字與語音之間相互轉換的方法,所述方法是在內存有本方法軟件的存儲卡、中央處理器和語音輸出設備依次串接的系統(tǒng)中實現(xiàn)的,所述方法分為以下兩個階段,即開發(fā)階段和語音合成階段開發(fā)階段包括離線建立的語音基元精簡數(shù)據(jù)庫,簡稱語音庫,和訓練韻律模板庫的開發(fā)階段,該階段依次含有以下步驟步驟A從大規(guī)模語音語料庫內挑選合適的基元樣本組成該語音庫,該基元樣本是指在該語音語料庫中的漢字句子的實例,基元是指公知的拼接式語音合成系統(tǒng)中最基本的合成單元,本發(fā)明使用有調音節(jié)作為基元,基元樣本是基于公知的CART決策樹模型來挑選的,CART是Cassification and Re gression
Tree的縮略語,中文名是分類與回歸樹,CART決策樹即利用該語音語料為每個基元訓練出來的,通過對該樹相應基元的所有樣本進行聚集,把韻律和頻譜特征相似的樣本聚到一起,再選取聚類中心而建成該語音庫,步驟A依次包含以下子步驟步驟A1選擇能反映一個有調音節(jié)的韻律變化、前后音聯(lián)的九個特征組成該CART方法所需的問題集,用Q表示在該具有二叉樹結構的CART樹中,每一個非葉子節(jié)點包括一個問題,根據(jù)對所給問題的回答為“是”與“否”分別指向左、右兩個子節(jié)點,葉子節(jié)點則包括可屬于同一基元的所有樣本數(shù)據(jù);所述九個特征描述如下1.PosIn Word當前音節(jié)在所在韻律詞中的位置,共有詞首、詞中、詞尾三種位置;所述“韻律詞”,從韻律學的角度定義為“最小的能夠自由運用的語言單位”,其聲學表現(xiàn)是發(fā)音連續(xù)且緊密,一般包括2-3個音節(jié),音節(jié)間沒有感知到的停頓;2.PosIn Phrase當前音節(jié)在所在韻律短語中的位置,共有短語首、短語中、短語尾三種位置,所述韻律短語由一組韻律詞組成,邊界處有停頓感或音高的變化;3.PosInSentence當前音節(jié)在所在句子中的位置,共有句首、句中、句尾三種位置;4.PreTone前面音節(jié)的音調類型,共有高、低、輕、無四種類型,前面音節(jié)的聲調為1聲或2聲時,音調類型取高;前面音節(jié)的聲調為3聲或4聲時,音調類型取低;前面音節(jié)的聲調為輕聲時,音調類型取輕;前面沒有音節(jié)時,音調類型取無;5.PostTone后面音節(jié)的聲調類型,共有高、低、輕、無四種類型,后面音節(jié)的聲調為1聲或4聲時,音調類型取高;后面音節(jié)的聲調為2聲或3聲時,音調類型取低;后面音節(jié)的聲調為輕聲時,音調類型取輕后面沒有音節(jié)時,音調類型取無;6.LeftFinal左鄰音節(jié)的韻母,所述韻母包含所有韻母;7.RightInitial右鄰音節(jié)的聲母,包含所有的聲母和零聲母,所述零聲母用“0”表示;8.RightInitialClass右鄰音節(jié)聲母類別,共分為10類,取值為1,2,3,4,5,6,7,8,9,10,依次表示爆破音、爆破音不送氣、爆破音送氣、塞擦音、塞擦音不送氣、塞擦音送氣、擦音清音、擦音濁音、鼻音、邊音;9.LeftFinalClass左鄰音節(jié)韻母類別,共分為5類,取值為1,2,3,4,5,依次表示韻尾開口呼類、韻尾齊齒呼類、韻尾合口呼類、韻尾撮口呼類、韻尾鼻音;上述9個特征是從所述語音語料庫中文本部分的韻律標注中得出的;步驟A2從所述語音語料庫的標注文件中提取基元的聲學特征參數(shù),用以在后面計算基元樣本之間的距離,來度量樣本間的相似度,所述特征參數(shù)包括時長用D表示,音節(jié)的時長以采樣點個數(shù)計;能量用U表示,音節(jié)的均方根能量;U=1DΣi=1D|s(i)|2,]]>s(i)為該樣本第i個采樣點的幅值;基頻向量用P表示,基頻向量P包括三個分量p1,p2,p3,它們分別是該音節(jié)長度的0.15、0.5、0.85處的基頻值,該基頻值是根據(jù)該語音語料中對基音周期所作的標注得到的;步驟A3選擇節(jié)點分裂標準,使得一個葉子節(jié)點分裂為兩個子節(jié)點后,該兩個子節(jié)點中的樣本盡可能地集中,即相互之間距離盡可能地靠近;本申請采用最大化方差減小量ΔEq(t)為分裂標準,分裂標準的值越大,則分裂效果越好;ΔE(t)定義為ΔEq(t)=E(t)z(t)-[E(l)z(l)+E(r)z(r)]其中,t為被分裂節(jié)點,l、r分別為分裂后的左、右子節(jié)點;z(t)、z(l)、z(r)分別為節(jié)點t、l、r中的樣本數(shù)占所有樣本數(shù)的比例;E(t),E(l),E(r)分別表示節(jié)點t,l,r的能量U、時長D、基頻向量P的方差的加權和,以E(t)為例描述之,E(t)用下式表示E(t)=wdEd(t)+wuEu(t)+wpEp(t)其中,wd、wu、wp分別為時長、能量、基頻向量的權值,是設定的;Ed(t),Eu(t),Ep(t)分別為一個節(jié)點中所有樣本的時長、能量、基頻向量的方差。
步驟A4構建語音基元精簡數(shù)據(jù)庫對所述語音語料庫中的每一個基元訓練一棵CART樹,該樹的每一個葉子節(jié)點包含了具有相同韻律上下文和音聯(lián)環(huán)境的,聽感比較接近的若干基元樣本,該步驟A4依次含有以下步驟步驟A41把一個有調音節(jié)的所有基元樣本作為一個初始類;步驟A42采用A1所述的特征,提取步驟A41所述所有基元樣本的時長、能量和基頻向量;步驟A43構建有一個根節(jié)點的決策樹,該根節(jié)點把步驟A41所述所有基元樣本x1,x2,...xi...xN作為它的樣本,樣本xi的特征向量Xi包括三個分量Di、Ui、Pi,它們分別為基元樣本xi的時長、能量和基頻向量;步驟A44按下式計算步驟A43所述每一個節(jié)點的樣本集中任意兩個樣本xj、xi之間的Mahalanobis距離,生成一個N×N的Mahalanobis距離矩陣Dist(i,j)=(Xi-Xj)tS-1(Xi-Xj)]]>Dist(i,j)即Mahalanobis距離,S為樣本空間協(xié)方差矩陣。
設置停止分裂的閥值η;步驟A45根據(jù)節(jié)點分裂標準,從所述根節(jié)點開始進行節(jié)點分裂;對于任何一個允許分裂的葉子節(jié)點T,用問題集Q中的每一個問題q試分裂該葉子節(jié)點T,并計算所得方差減少量ΔEq,取得所述ΔEq值最大的問題把該節(jié)點T分裂為兩個子節(jié)點;步驟A46繼續(xù)執(zhí)行步驟A 45,一直到分裂后葉子節(jié)點中的樣本數(shù)≤η為止;步驟A47根據(jù)下面公式計算距離類中心最遠的樣本,并且將其刪除,重復此步直到刪除10%的樣本;k*=argmaxk=1..NΣi=1..N,i≠kDist(i,k)]]>步驟A48假設刪除10%的最遠的樣本后,節(jié)點中剩余的樣本集為x1,x2,...xi...,xM。根據(jù)公式下面公式計算類的中心樣本,取類中心樣本作為該葉子節(jié)點中所有樣本的代表樣本。
k*=argmink=1..MΣi=1..M,i≠kDist(i,k)]]>步驟A49把每個葉子節(jié)點的類中的樣本用G.723.1標準編碼壓縮,采用CART樹作為各葉子節(jié)點的索引,建立對各基元的CART樹的總索引,把最終得到的精簡音庫復制到移動終端設備的存儲卡中供合成使用;步驟B韻律模板的開發(fā),即韻律模型訓練,所述步驟B依次含有以下各子步驟步驟B1采用與所述步驟A1中由相同的若干上下文環(huán)境特征組成CART樹訓練所需的問題集,包括與步驟A1所述的相同的九個特征;步驟B2采用與所述步驟A2所述的方法提取聲學特征參數(shù)提取基元樣本的時長作為時長模型的訓練參數(shù);提取基元樣本在0.1、0.3、0.5、0.7、0.9時長處的基頻值作為基頻曲線模型的訓練參數(shù);步驟B3采用步驟A3所述的最大化方差減小量ΔEq(t)作為節(jié)點t的分裂標準;對于時長模型的訓練而言ΔEdq(t)=Ed(t)z(t)-[Ed(l)z(l)+Ed(r)z(r)]
對于基頻曲線模型的訓練而言ΔEpq(t)=Ep(t)z(t)-[Ep(l)z(l)+Ep(r)z(r)]其中,各物理量的定義與所述步驟A3中的相同;步驟B4時長模型的訓練依次含有以下步驟步驟B41根據(jù)步驟B1至B3所定義的問題集、時長參數(shù)和分裂標準按以下步驟對每一個基元訓練一棵CART樹作為時長預測樹。
步驟B42統(tǒng)計時長預測樹每一個葉子節(jié)點中所有樣本的時長,按正態(tài)分布做參數(shù)分布估計,剔除兩倍方差之外的樣本;步驟B43取剩余樣本的時長的平均值作為該葉子節(jié)點的時長模板;步驟B44把各葉子節(jié)點的時長模板存入韻律模板庫中,采用時長預測樹作為其基元的索引;步驟B5基頻曲線模型的訓練。
步驟B51根據(jù)步驟B1至B3所定義的問題集、時長參數(shù)和分裂標準按以下步驟對每一個基元訓練一棵CART樹作為基頻預測樹。
步驟B52假設CART樹的一個葉子節(jié)點中的樣本集為x1,x2,...xi...,xN,樣本xi的特征向量采用如步驟B2所述特征,該樣本空間的協(xié)方差矩陣為S,根據(jù)下面公式計算任意兩個樣本xj,xi之間的Mahalanobis距離,生成一個N×N的Mahalanobis距離矩陣;Dist(i,j)=(Xi-Xj)tS-1(Xi-Xj)]]>步驟B53根據(jù)下述公式計算每個葉子節(jié)點中距離類中心最遠的樣本k**,并且把其刪除,重復此步直到刪除10%的樣本為止;k**=argmaxi=1...NΣi=1KN,i=kDist(i,k);]]>步驟B54假設刪除10%的最遠的樣本后,節(jié)點中剩余的樣本集為{x1,x2,...,xM}。根據(jù)下式計算每個葉子節(jié)點的類中心樣本k*,取所述類中的樣本為該葉子節(jié)點中所有樣本的代表樣本;k*=argmink=1KMΣi=1KM,i≠kDist(i,k);]]>步驟B55把各葉子節(jié)點的類中的樣本組成基頻曲線模板,經(jīng)過平滑處理以消除跳變點后,在存入韻律模板庫,采用由上述各類中的樣本構成的基頻曲線預測樹作為其基元的索引;步驟B57建立所有基元的時長預測樹和基頻曲線預測樹的總索引,把最終得到的韻律模板復制到移動終端的存儲卡中供合成使用;
步驟C語言合成階段。該階段依次含有以下步驟包括文本獲取、文本分析、基元選取、韻律修改和波形拼接合成步驟C1文本獲取從鍵盤輸入,或從文件獲得,或截取短信息;步驟C2文本分析首先,識別數(shù)字、簡寫符號或者特殊語義塊,并給出對應的在詞表上的規(guī)范寫法;其次,進行分詞和詞性標注;最后,分析韻律結構,得到韻律詞、韻律短語、語調短語三個韻律層級的信息;得到一個目標單元序列,其中,每個目標單元由拼音碼和上下文特征組成,所述拼音碼由拼音和聲調構成;上下文特征包括該音節(jié)在所處句子中的位置、該音節(jié)在所處韻律短語中的位置、該音節(jié)在所處韻律詞中的位置、前音節(jié)的拼音碼以及后音節(jié)的拼音碼;步驟C3基元選取,依次含有以下步驟步驟C31從步驟C2得到所含每個目標單元的上下文特征的目標單元序列;步驟C32根據(jù)目標單元的拼音碼在語音庫中檢索該基元的CART樹;步驟C33根據(jù)目標單元的上下文特征對CART樹按所述步驟A1進行迭代檢索,從根節(jié)點開始,回答“是”或“否”一直到合適基元樣本,再用G.723.1標準算法解碼,得到原始的波形數(shù)據(jù);步驟C4韻律修改和波形拼接步驟C41根據(jù)目標單元的上下文特征檢索韻律模板庫中的時長預測樹和基頻曲線預測樹;步驟C42根據(jù)從步驟C33所述預測樹選取出的基頻曲線和時長使用TD-PSOLA算法對解碼樣本數(shù)據(jù)的時長和基頻進行修改,對于基頻而言,當修改量大于10%停止修改;步驟C43根據(jù)步驟C42得到的修改過的樣本進行拼接;步驟C44根據(jù)需要把合成語音輸出到文件或聲音輸出設備。
本發(fā)明所述的移動語音合成方法,其特征在于對所述步驟A43得到的N×N的Mahalanobis距離矩陣按下式進行壞節(jié)點消除操作按下式計算距離類中心最遠的樣本,并且將其刪除;重復此步,直到刪除10%的樣本;k**argmaxk=1KNΣi=1KN,i≠kDist(i,k)]]>本發(fā)明提出一種針對移動終端設備的,基于拼接式合成方式的語音合成方法。
本發(fā)明提出一個移動語音合成系統(tǒng)的語音庫構建方法,其特點是從現(xiàn)有的大型語音基元數(shù)據(jù)庫出發(fā),首先進行韻律特征的聲學參數(shù)分析,然后對語音庫中的每一個基元訓練一課CART樹,根據(jù)CART樹的聚類結果挑選基元樣本,最后采用參數(shù)編碼算法對合成基元進行壓縮,得到一個小型的嵌入式語音基元樣板數(shù)據(jù)庫—精簡語音庫。
本發(fā)明設計了一個適用于移動語音合成系統(tǒng)的韻律模型,包括時長、基頻曲線模板庫的訓練方法及其在合成中的使用。
本發(fā)明設計了移動語音合成的核心合成方法,包括基元選取方法和韻律修改方法,基于這些方法,利用前面得到的精簡語音庫和韻律模板庫能夠生成高質量的合成語音。
為了檢驗合成系統(tǒng)的效果,我們對移動語音合成系統(tǒng)與PC機上的大規(guī)模通用TTS系統(tǒng)作了主觀聽辨實驗并進行比較,比較結果如表1所示。
表1 實驗結果表明,在大幅度降低音庫規(guī)模的前提下,本發(fā)明的移動語音合成系統(tǒng)的自然度和可懂度依然能夠達到和大規(guī)模通用TTS系統(tǒng)比較接近的水平。
本發(fā)明的一個實例通過下列圖表來說明圖1是一個適用于本發(fā)明實施例的移動終端設備系統(tǒng)方框圖。
圖2是移動語音合成系統(tǒng)流程圖,包括離線的語音庫構建和韻律模型訓練,以及在線的實時合成流程。
圖3是音庫構建流程圖;圖4是基頻曲線模型訓練流程圖;圖5是基元選取流程圖;圖6是韻律修改和波形拼接的流程圖。
具體實施例方式圖1描述了一個適用于本發(fā)明實施例的移動終端系統(tǒng)。該系統(tǒng)包括處理器、存儲卡、通信電路和一些輸入輸出設備,如鍵盤、液晶顯示器、聲音輸出設備等。實施本發(fā)明的軟件存儲在存儲卡中,處理器可以對內存進行存取,并運行相應的指令,以獲得本發(fā)明的實施結果。
圖2是移動語音合成系統(tǒng)的流程圖。從圖2可以看出,本發(fā)明的技術方案包括兩大部分圖中右半部分是離線準備工作流程,包括語音庫構建和韻律模板庫訓練等過程;左半部分是在線實時合成的流程圖,包括文本分析、基元選取、韻律修改和波形拼接等過程。下面將逐一解釋之。
一、語音庫構建過程為了構建適用于移動終端的語音合成系統(tǒng),首先需要構建一個小型的語音庫。本發(fā)明采用基于統(tǒng)計學習的方法是從一個大規(guī)模語音語料庫中,為每個基元挑選合適的基元樣本,并用此構建所需要的精簡語音庫。具體方法是,首先利用大規(guī)模語音語料庫為每個基元訓練一棵CART樹,通過該樹對該基元的所有樣本進行聚類,可以把具有接近的韻律和頻譜特征的樣本聚到一起,然后選取各個聚類中心組成一個精簡語音庫。
基元是指拼接式語音合成系統(tǒng)中的最基本的合成單元,在本發(fā)明中使用有調音節(jié)作為基元,例如“shi4”就是一個基元?;獦颖臼侵敢粋€基元在音庫中的實例,如“他是士兵”這句話就包括了基元“shi4”的兩個樣本。
移動語音合成系統(tǒng)語音庫的構建基于一個大規(guī)模語音語料庫,該語料庫包括約幾千或更多的漢語句子,每個句子由文本和錄音組成。文本部分包括漢字、拼音、韻律層級標注。其中韻律層級包括句子、語調短語、韻律短語、韻律詞。錄音部分包括普通話錄音數(shù)據(jù),音節(jié)邊界標注,基頻曲線標注。整個語料庫覆蓋了比較全面的韻律環(huán)境和前后音聯(lián)環(huán)境。
CART是一種常見的決策樹模型,該模型是一種統(tǒng)計學習工具,可以用來分類或者聚類。本發(fā)明使用的是它的聚類功能,通過CART把訓練數(shù)據(jù)中具有相同的韻律上下文環(huán)境和前后音聯(lián)環(huán)境、聲學特征比較接近的基元樣本分別聚到相同的類中。
CART采用了一種二叉樹結構,樹的每一個非葉子節(jié)點包含一個問題,根據(jù)對該問題的回答是“是”還是“否”分別指向左子節(jié)點和右子節(jié)點,每一個葉子節(jié)點則包括了屬于同一類別的樣本數(shù)據(jù)。CART的訓練過程就是將一個包含了所有訓練樣本的節(jié)點反復分裂,最后生成一棵二叉樹的過程。為了訓練CART樹,首先要解決兩個方面的問題(1)根據(jù)什么來分裂一個節(jié)點,為此需要選擇一個問題集Q,問題集中的每一個問題代表了訓練樣本的一個特征;(2)選取哪個問題來分裂一個節(jié)點可以達到最好的效果,為此需要選擇若干聲學特征參數(shù)以計算不同樣本之間的相似性,并設計一個分裂標準以衡量分裂效果的好壞。
下面分別介紹問題集Q的選擇、聲學參數(shù)的提取、分裂標準的設計、CART樹的訓練方法和音庫的構建過程。
1.問題集Q的選擇問題集Q由合成基元的若干特征組成,選擇問題集的特征需要滿足兩點(1)該特征能夠影響一個基元樣本的聽覺特性,(2)在合成系統(tǒng)中,該特征能夠從文本分析模塊獲得。我們共選取九個影響一個音節(jié)的韻律變化和前后音聯(lián)的特征值來組成問題集Q1.PosInWord當前音節(jié)在所在韻律詞中的位置,取詞首--head、詞中--body、詞尾--tail三個值;2.PosInPhrase當前音節(jié)在所在韻律短語中的位置,取短語首--head、短語中--body、短語尾--tail三個值;
3.PosInSentence當前音節(jié)在所在句子中的位置,取句首--head、句中--body、句尾--tail三個值;4.PreTone前音節(jié)的聲調類型,取高--high、低--low、輕--neutral、無--null四個值,當前面音節(jié)的聲調為1聲或2聲時取為high,前面音節(jié)的聲調為3聲或4聲時為low,前面音節(jié)的聲調為輕聲時取neutral,前面沒有音節(jié)時取null;5.PostTone后面音節(jié)的聲調類型,取高--high、低--low、輕--neutral、無--null四個值,當后面音節(jié)的聲調為1聲或4聲時取為high,后面音節(jié)的聲調為2聲或3聲時為low,后面音節(jié)的聲調為輕聲時取neutral,后面沒有音節(jié)時取null;6.LeftFinal左鄰音節(jié)的韻母,包含所有韻母a,ai,ao,an,ang,o,ou,e,E,ei,en,eng,er,-i,i,ia,iao,ian,iang,ie,iu,in,ing,iong,iou,u,ua,uo,uai,uei,ui,uan,uen,uang,ueng,ong,v,ue,van,un,ve,ive,iuan,iue,vn,iun;7.RightInitial右音節(jié)的聲母,包含所有聲母和零聲母b,ch,c,d,f,g,h,j,k,l,m,n,p,q,r,sh,s,t,x,zh,z,0;8.RightInitialClass右鄰音節(jié)聲母類別,共分為10類,取值1,2,3,4,5,6,7,8,9,10,具體分類標準參考表2;9.LeftFinalClass左鄰音節(jié)韻母類別,共分為5類,取值1,2,3,4,5,具體分類標準參考表3;表2聲母分類表
表3韻母分類表
對于訓練數(shù)據(jù)來說,以上特征之都可以從語料庫的文本標注中得到,不同的特征值對不同的樣本的分類所起的作用的重要性不同,CART訓練算法會自動選擇效果最好的問題來分裂節(jié)點。對于合成系統(tǒng)來說,以上特征都能在文本分析模塊中根據(jù)輸入的文本對其進行預測。
2.聲學參數(shù)的提取為了計算不同基元樣本之間距離,以度量樣本之間的相似度,我們選擇了四種聲學參數(shù)作為特征值時長D,合成基元樣本的時長,以采樣點為單位;能量U,合成基單元的均方根能量,U=1DΣi=1D|s(i)|2,]]>其中s(i)為該單元的第i個采樣點的幅值。
基頻向量P,基頻是說話時嗓音的頻率表示,是聲帶振動的頻率,感知為音高,反映在語音信號上是信號的準周期性;該周期即為基音周期,其倒數(shù)即基頻;基頻向量P包括三個分量p1,p2,p3,它們分別是該音節(jié)長度的0.15、0.5、0.85處的基頻值,為了減小標注誤差的影響,該基頻值由前后若干基頻標注點的值平滑后得到;對于零聲母的音節(jié),如果前面缺少基頻標注則采用樣條插值算法來計算缺少的基頻值。
對于訓練數(shù)據(jù),以上特征值可以直接從語料庫的標注文件中提取。
3.節(jié)點分裂標準在CART訓練過程中,一個葉子節(jié)點中的樣本可以根據(jù)其對問題集中某個問題的回答是“是”還是“否”而分裂為兩個子節(jié)點。如果分裂后兩個子節(jié)點中的樣本比較集中,即相互之間的距離比較近,該問題的分裂效果比較好。為了衡量選取哪個問題可以更好的分裂一個節(jié)點,需要定義一個分裂標準,分裂標準的值越大,分裂效果越好。這里采用最大化方差減小量ΔEq(t)為分裂標準,ΔEq(t)定義為ΔEq(t)=E(t)z(t)-[E(l)z(l)+E(r)z(r)]其中t代表被分裂節(jié)點,l和r分別代表分裂后的左右子節(jié)點,z(t)、z(l)、z(r)分別為節(jié)點t、l、r中的樣本數(shù)占所有樣本數(shù)得比例。
對于一個節(jié)點t,E(t)定義為能量U、時長D、基頻向量P的方差的加權和E(t)=wdEd(t)+wuEu(t)+wpEp(t)其中wd,wu,wp分別為時長、能量、基頻向量的權值;Ed(t),Eu(t),Ep(t)分別為一個節(jié)點中所有樣本的時長、能量、基頻向量的方差。
4.語音庫構建過程有了問題集Q、聲學特征參數(shù)和分裂標準ΔEq(t),可以根據(jù)圖3對語料庫中的每一個基元訓練一棵CART樹,樹的每一個葉子節(jié)點包含了具有相同的韻律上下文和音聯(lián)環(huán)境的、聽感比較接近的若干樣本。
因為移動語音合成系統(tǒng)音庫的構建過程就是從一個大規(guī)模語音語料庫中選取少量最有代表性的樣本來組成一個小型的音庫,因此利用這些CART樹就可以構建移動語音合成系統(tǒng)所需要的精簡音庫。構建音庫的工作就是從每個葉子節(jié)點中選出最有代表性的一個樣本,而CART樹則作為這些樣本的索引。由于可能存在一些壞的樣本,比如發(fā)音不完全或者標注有錯誤的樣本,因此我們把這個工作分兩步進行,第一步是去除壞的節(jié)點,第二步是選取有代表性的樣本。
(1)假設CART樹的一個葉子節(jié)點中的樣本集為x1,x2,...xi,...xN,樣本xi的特征向量為Xi={Di,Ui,Pi},其中Di,Ui,Pi分別為樣本xi的時長、能量、基頻向量,該樣本空間的協(xié)方差矩陣為S,根據(jù)下面公式計算任意兩個樣本xj,xi之間的Mahalanobis距離,生成一個N×N的Mahalanobis矩陣。
Dist(i,j)=(Xi-Xj)tS-1(Xi-Xj)]]>(2)根據(jù)下面公式計算距離類中心最遠的樣本,并且將其刪除。重復此步直到刪除10%的樣本;k*=argmaxk=1..NΣi=1..N,i≠kDist(i,k)---(0.1)]]>(3)假設刪除10%的最遠的樣本后,節(jié)點中剩余的樣本集為x1,x2,...,xi,...xM。根據(jù)下面公式計算類的中心樣本,取類中心樣本作為該葉子節(jié)點中所有樣本的代表樣本。
k*=argmink=1..MΣi=1..M,i≠kDist(i,k)---(0.2)]]>最后,為了進一步降低存儲空間,將所有樣本以8k采樣率做重采樣,采用G.723.1標準算法做編碼壓縮,并且將二叉樹樹存儲為二進制格式作為音庫的索引。經(jīng)過以上步驟,得到一個適用于移動語音合成系統(tǒng)的精簡音庫,將其復制到移動終端的存儲卡中供合成系統(tǒng)使用。
二、訓練韻律模板庫韻律對合成語音的自然度有較大的影響,由于移動語音合成系統(tǒng)音庫中的基元樣本數(shù)量比較小,為了避免合成語音的韻律過于單調,需要一個韻律模型。韻律模型能夠根據(jù)從文本分析模塊得到的韻律上下文來預測韻律聲學參數(shù),如時長、能量、基頻曲線等。由合成系統(tǒng)的基元選取模塊選出基元的某個樣本,然后根據(jù)預測出的韻律參數(shù)對選出的基元樣本作韻律修改,以提高合成語音自然度。常見的韻律模型有基于規(guī)則的韻律模型和基于語料庫的數(shù)據(jù)驅動的韻律模型。本發(fā)明的韻律模型屬于后者,包括一個時長模型和一個基頻曲線模型,均在大規(guī)模語音語料庫的基礎上采用CART算法訓練生成。同音庫構建過程一樣,韻律模型的訓練也包括問題集的選擇、聲學參數(shù)的選擇、分裂標準設計、CART訓練、生成韻律模板庫幾個方面,下面分別敘述各個步驟。
1特征集的選擇(1)問題集的選擇與構建音庫的CART一樣,共選擇九個韻律環(huán)境和音聯(lián)環(huán)境特征組成問題集QPosIn Word,PosInPhrase,PosInSentence,PreTone,PostTone,LeftPhone,RightPhone,RightPhoneType,LeftPhoneType。
(2)聲學特征參數(shù)的提取對于時長模型來說,聲學參數(shù)即取基元的時長D;對于基頻曲線模型,聲學參數(shù)取基頻曲線上的五個樣值,分別是該音節(jié)長度的0.1、0.3、0.5、0.7、0.9處的基頻值,為了減小標注誤差的影響,該基頻值由前后若干基頻標注點的值平滑后得到。對于零聲母的音節(jié),如果前面缺少基頻標注則采用樣條插值算法來計算缺少的基頻值。
(3)分裂標準分裂標準亦采用最大化方差減小量。
時長模型ΔEdq(t)=Ed(t)z(t)-[Ed(l)z(l)+Ed(r)z(r)];其中Ed(t)為一個節(jié)點中所有樣本的時長的方差。
基頻模型ΔEpq(t)=Ep(t)z(t)-[Ep(l)z(l)+Ep(r)z(r)];其中Ep(t)為一個節(jié)點中所有樣本的基頻特征向量P的方差。
2訓練韻律模板有了上述準備工作,可以根據(jù)圖3的流程圖對語料庫中的每一個基元訓練一棵基頻曲線預測樹。時長預測樹的訓練方法與基頻曲線預測樹相同。下面分別敘述如何從CART樹生成所需的時長模型和基頻曲線模型。
時長模型首先統(tǒng)計時長預測樹每一個葉子中的所有樣本的時長,按照正態(tài)分布做參數(shù)估計,剔除兩倍方差之外的樣本;取剩余樣本的時長的平均值作為該葉子節(jié)點的時長模板;將各葉子節(jié)點的時長模板存入韻律模板庫中,采用時長預測樹作為其索引。
基頻曲線模型假設CART樹的一個葉子節(jié)點中的樣本集為{X1,x2,...,xN},樣本xi的特征向量為Xi={FOi1,F(xiàn)Oi2,...,F(xiàn)Oi5},該樣本空間的協(xié)方差矩陣為so根據(jù)下面公式計算任意兩個樣本xj,xi之間的Mahalanobis距離,生成一個N×N的Mahalanobis距離矩陣。
Dist(i,j)=(Xi-Xj)tS-1(Xi-Xj)]]>根據(jù)下面公式計算距離類中心最遠的樣本,并且將其刪除。重此步直到刪除10%的樣本;k*=argmaxk=1..NΣi=1..N,i≠kDist(i,k)]]>假設刪除10%的最遠的樣本后,節(jié)點中剩余的樣本集為{x1,x2,...,xM}。根據(jù)下面公式計算類的中心樣本,取類中心樣本作為該葉子節(jié)點中所有樣本的代表樣本。
k*=argmink=1..MΣi=1..M,i≠kDist(i,k)]]>對基頻曲線模板作平滑處理,消除跳變點,存入韻律模板庫。采用基頻曲線預測樹作為其索引。
最后,將生成的韻律模板庫復制到移動終端的存儲卡中,供合成系統(tǒng)使用。
合成方法語音的合成包括文本獲取、文本分析、基元選取、韻律修改和波形拼接等步驟。
1.文本獲取根據(jù)應用的不同,文本獲取可能有不同的途徑,比如鍵盤輸入、從文件獲取、截取短信息等。以手機短信語音合成為例,既可以實時截取剛剛從通信線路上接收到的短信息,也可以從存儲卡中的收件箱里提取已保存的短信息。
2.文本分析文本分析模塊首先對獲取的文本作規(guī)范化,把其中的數(shù)字,簡寫符號或者特殊語義塊識別出來,并給出它們對應的在詞表上的規(guī)范寫法。然后進行分詞和詞性標注。最后作韻律結構分析,得到韻律詞、韻律短語、語調短語三個韻律層級的信息。
文本分析模塊最終得到一個目標單元序列,其中每個目標單元由拼音碼(拼音+聲調)和上下文特征組成,其中上下文特征包括該音節(jié)在所處句子中的位置、該音節(jié)在所處韻律短語中的位置、該音節(jié)在所處韻律詞中的位置、前音節(jié)的拼音碼、后音節(jié)的拼音碼等。
3.基元選取基元選取的流程圖如圖5所示?;x取模塊從文本分析模塊得到包含每個單元的上下文特征的目標單元序列,根據(jù)目標單元的拼音碼在語音庫中檢索該基元的CART樹,根據(jù)目標單元的上下文特征對CART樹做迭代檢索,將檢索到的葉子節(jié)點中的樣本數(shù)據(jù)加入到目標單元序列中。最后,輸出更新后的目標單元序列給下一模塊。
4.韻律修改和波形拼接韻律修改和波形拼接的流程圖如圖6所示。韻律修改模塊根據(jù)目標單元序列的上下文特征檢索韻律模板庫中的時長預測樹和基頻曲線預測樹,然后根據(jù)選出的基頻曲線和時長使用TD-PSOLA算法對解碼后的樣本數(shù)據(jù)的時長和基頻進行修改。由于使用TD-PSOLA修改基頻的幅度較大時會帶來較大失真,所以設定一個修改門限,當修改量大于1%的時候不再修改基頻。TD-PSOLA對時長的修改能力比較強,所以,所有的目標單元的時長都根據(jù)韻律模型的預測值進行修改。最后對修改過的樣本進行拼接。
5.輸出合成語音根據(jù)實際需要,將合成語音輸出到文件或者聲音輸出設備。
下面根據(jù)一個在智能手機上實現(xiàn)的移動語音合成系統(tǒng)為實例來說明本發(fā)明的實施方法第一步準備一個大規(guī)模語料庫,語料庫包括5000多句取自人民日報的漢語語句,每個語句包括文本、拼音、韻律層級標注、16K采樣率16bit精度的普通話錄音數(shù)據(jù)、音節(jié)切分標注、基頻標注。
第二步提取特征值,包括每個音節(jié)的,PosInPhrase,PosInWord,PosInPhrase,PosInSentence,PreTone,PostTone,LeftPhone,RightPhone,RightPhoneType,LeftPhoneType,共九個特征值,以及時長、能量、基頻曲線、波形數(shù)據(jù)。
下面兩步以基元“shi4”為例說明音庫構建和韻律模型訓練的過程。
第三步“shi4”在語料庫中共有1166個樣本。根據(jù)每個樣本的時長D、能量U、基頻向量P所組成的特征向量,按照下面公式計算每兩個樣本之間的Mahalanobis距離,生成1166×1166的距離矩陣M1。根據(jù)時長D計算每兩個樣本之間的歐式距離,生成一個1166×1166的距離矩陣M2。根據(jù)基頻向量P,按照下面公式計算每兩個樣本之間的Mahalanobis距離,生成1166×1166的距離矩陣M3;Dist(i,j)=(Xi-Xj)tS-1(Xi-Xj)]]>第四步將用于音庫構建的CART樹的聚類比例設為10∶1,將韻律模型訓練的聚類比例設為5∶1,分別根據(jù)距離矩陣M1、M2、M3訓練三棵CART樹——T1、T2、T3。T1共包含108個葉子節(jié)點,T2共包含276個葉子節(jié)點,T3共包含258個葉子節(jié)點。
提取T1的每個葉子節(jié)點的中心樣本,做8k采樣率重采樣,用G.723.1算法壓縮,以T1為索引,將壓縮后的樣本數(shù)據(jù)存入音庫中。
計算T2每個葉子節(jié)點的均值、以T2為索引存入韻律模板庫;提取T3的每隔葉子節(jié)點的中心樣本并作平滑處理,以T3位索引,存入韻律模板庫。
第五步建立音庫和韻律模板庫的總索引,分別指向每個基元的CART樹索引。將音庫和韻律模板庫保存到手機的存儲卡上。將合成系統(tǒng)的可執(zhí)行程序安裝到手機上。
下面各步以“我是中國人?!边@句話來說明在移動語音合成系統(tǒng)中的合成過程第六步文本分析模塊首先進行文本分析,生成一個目標序列“wo3 shi4 zhong1 guo2ren2”,其中每個目標單元包含了他的上下文信息。以“shi4”為例PosInWord=tail,PosInPhrase=tail,PosInSentence=body,等第七步基元選取模塊根據(jù)每個目標單元的上下文特征從音庫中選取合時的基元樣本。以“shi4”為例首先根據(jù)音庫的總索引檢索到“shi4”的CART樹,從樹的根節(jié)點開始回答節(jié)點上的問題,如根節(jié)點的問題為PosInPhrase=head,因為回答為“否”,所以取其右子節(jié)點,以此類推,直到找到一個葉子節(jié)點。用G.723.1算法解碼,得到原始的波形數(shù)據(jù)。
第八步采用和第七步同樣的方法從韻律模板庫中取得時長和基頻曲線的預測值。使用TD-PSOLA算法根據(jù)預測的時長和基頻曲線對波形數(shù)據(jù)作韻律修改。
第九步將經(jīng)過韻律修改的“wo3 shi4 zhong1 guo2 ren2”五個目標單元的波形數(shù)據(jù)拼接起來,輸出到手機的聲音輸出設備中。
權利要求
1.移動語音合成方法,其特征在于該方法是一種在移動通信終端設備特別是在智能手機上進行文字與語音之間相互轉換的方法,所述方法是在內存有本方法軟件的存儲卡、中央處理器和語音輸出設備依次串接的系統(tǒng)中實現(xiàn)的,所述方法分為以下兩個階段,即開發(fā)階段和語音合成階段開發(fā)階段包括離線建立的語音基元精簡數(shù)據(jù)庫,簡稱語音庫,和訓練韻律模板庫的開發(fā)階段,該階段依次含有以下步驟步驟A從大規(guī)模語音語料庫內挑選合適的基元樣本組成該語音庫,該基元樣本是指在該語音語料庫中的漢字句子的實例,基元是指公知的拼接式語音合成系統(tǒng)中最基本的合成單元,本發(fā)明使用有調音節(jié)作為基元,基元樣本是基于公知的CART決策樹模型來挑選的,CART是Cassification and Re gressionTree的縮略語,中文名是分類與回歸樹,CART決策樹即利用該語音語料為每個基元訓練出來的,通過對該樹相應基元的所有樣本進行聚集,把韻律和頻譜特征相似的樣本聚到一起,再選取聚類中心而建成該語音庫,步驟A依次包含以下子步驟步驟A1選擇能反映一個有調音節(jié)的韻律變化、前后音聯(lián)的九個特征組成該CART方法所需的問題集,用Q表示在該具有二叉樹結構的CART樹中,每一個非葉子節(jié)點包括一個問題,根據(jù)對所給問題的回答為“是”與“否”分別指向左、右兩個子節(jié)點,葉子節(jié)點則包括可屬于同一基元的所有樣本數(shù)據(jù);所述九個特征描述如下(1.)PosInWord當前音節(jié)在所在韻律詞中的位置,共有詞首、詞中、詞尾三種位置;所述“韻律詞”,從韻律學的角度定義為“最小的能夠自由運用的語言單位”,其聲學表現(xiàn)是發(fā)音連續(xù)且緊密,一般包括2-3個音節(jié),音節(jié)間沒有感知到的停頓;(2.)PosInPhrase當前音節(jié)在所在韻律短語中的位置,共有短語首、短語中、短語尾三種位置,所述韻律短語由一組韻律詞組成,邊界處有停頓感或音高的變化;(3.)PosInSentence當前音節(jié)在所在句子中的位置,共有句首、句中、句尾三種位置;(4.)PreTone前面音節(jié)的音調類型,共有高、低、輕、無四種類型,前面音節(jié)的聲調為1聲或2聲時,音調類型取高;前面音節(jié)的聲調為3聲或4聲時,音調類型取低;前面音節(jié)的聲調為輕聲時,音調類型取輕;前面沒有音節(jié)時,音調類型取無;(5.)PostTone后面音節(jié)的聲調類型,共有高、低、輕、無四種類型,后面音節(jié)的聲調為1聲或4聲時,音調類型取高;后面音節(jié)的聲調為2聲或3聲時,音調類型取低;后面音節(jié)的聲調為輕聲時,音調類型取輕;后面沒有音節(jié)時,音調類型取無;(6.)LeftFinal左鄰音節(jié)的韻母,所述韻母包含所有韻母;(7.)RightInitial右鄰音節(jié)的聲母,包含所有的聲母和零聲母,所述零聲母用“0”表示;(8.)RightInitialClass右鄰音節(jié)聲母類別,共分為10類,取值為1,2,3,4,5,6,7,8,9,10,依次表示爆破音、爆破音不送氣、爆破音送氣、塞擦音、塞擦音不送氣、塞擦音送氣、擦音清音、擦音濁音、鼻音、邊音;(9.)LefiFinalClass左鄰音節(jié)韻母類別,共分為5類,取值為1,2,3,4,5,依次表示韻尾開口呼類、韻尾齊齒呼類、韻尾合口呼類、韻尾撮口呼類、韻尾鼻音;上述9個特征是從所述語音語料庫中文本部分的韻律標注中得出的;步驟A2從所述語音語料庫的標注文件中提取基元的聲學特征參數(shù),用以在后面計算基元樣本之間的距離,來度量樣本間的相似度,所述特征參數(shù)包括時長用D表示,音節(jié)的時長以采樣點個數(shù)計;能量用U表示,音節(jié)的均方根能量;U=1DΣi=1D|s(i)|2,]]>s(i)為該樣本第i個采樣點的幅值;基頻向量用P表示,基頻向量P包括三個分量p1.p2.p3,它們分別是該音節(jié)長度的0.15、0.5、0.85處的基頻值,該基頻值是根據(jù)該語音語料中對基音周期所作的標注得到的;步驟A3選擇節(jié)點分裂標準,使得一個葉子節(jié)點分裂為兩個子節(jié)點后,該兩個子節(jié)點中的樣本盡可能地集中,即相互之間距離盡可能地靠近;本申請采用最大化方差減小量ΔEq(t)為分裂標準,分裂標準的值越大,則分裂效果越好;ΔEq(t)定義為ΔEq(t)=E(t)z(t)-[E(l)z(l)+E(r)z(r)]其中,t為被分裂節(jié)點,l、r分別為分裂后的左、右子節(jié)點;z(t)、z(l)、z(r)分別為節(jié)點t、l、r中的樣本數(shù)占所有樣本數(shù)的比例;E(t),E(l),E(r)分別表示節(jié)點t,l,r的能量U、時長D、基頻向量P的方差的加權和,以E(t)為例描述之,E(t)用下式表示E(t)=wdEd(t)+wuEu(t)+wpEp(t)其中,wd、wu、wp分別為時長、能量、基頻向量的權值,是設定的;Ed(t),Eu(t),Ep(t)分別為一個節(jié)點中所有樣本的時長、能量、基頻向量的方差。步驟A4構建語音基元精簡數(shù)據(jù)庫對所述語音語料庫中的每一個基元訓練一棵CART樹,該樹的每一個葉子節(jié)點包含了具有相同韻律上下文和音聯(lián)環(huán)境的,聽感比較接近的若干基元樣本,該步驟A4依次含有以下步驟步驟A41把一個有調音節(jié)的所有基元樣本作為一個初始類;步驟A42采用A1所述的特征,提取步驟A41所述所有基元樣本的時長、能量和基頻向量;步驟A43構建有一個根節(jié)點的決策樹,該根節(jié)點把步驟A 41所述所有基元樣本x1,x2,...xi...xN作為它的樣本,樣本xi的特征向量Xi包括三個分量Di、Ui、Pi,它們分別為基元樣本xi的時長、能量和基頻向量;步驟A44按下式計算步驟A43所述每一個節(jié)點的樣本集中任意兩個樣本xj、xi之間的Mahalanobis距離,生成一個N×N的Mahalanobis距離矩陣Dist(i,j)=(Xi-Xj)tS-1(Xi-Xj)]]>Dist(i,j)即Mahalanobis距離,S為樣本空間協(xié)方差矩陣。設置停止分裂的閥值η;步驟A45根據(jù)節(jié)點分裂標準,從所述根節(jié)點開始進行節(jié)點分裂;對于任何一個允許分裂的葉子節(jié)點T,用問題集Q中的每一個問題q試分裂該葉子節(jié)點T,并計算所得方差減少量ΔEq,取得所述ΔEq值最大的問題把該節(jié)點T分裂為兩個子節(jié)點;步驟A46繼續(xù)執(zhí)行步驟A45,一直到分裂后葉子節(jié)點中的樣本數(shù)≤η為止;步驟A47根據(jù)下面公式計算距離類中心最遠的樣本,并且將其刪除,重復此步直到刪除10%的樣本;k*=argmaxk=1··NΣi=1··N,i≠kDist(i,k)]]>步驟A48假設刪除10%的最遠的樣本后,節(jié)點中剩余的樣本集為x1,x2,...xi...,xM。根據(jù)公式下面公式計算類的中心樣本,取類中心樣本作為該葉子節(jié)點中所有樣本的代表樣本。k*=argmink=1··MΣi=1··M,i≠kDist(i,k)]]>步驟A49把每個葉子節(jié)點的類中的樣本用G.723.1標準編碼壓縮,采用CART樹作為各葉子節(jié)點的索引,建立對各基元的CART樹的總索引,把最終得到的精簡音庫復制到移動終端設備的存儲卡中供合成使用;步驟B韻律模板的開發(fā),即韻律模型訓練,所述步驟B依次含有以下各子步驟步驟B1采用與所述步驟A1中由相同的若干上下文環(huán)境特征組成CART樹訓練所需的問題集,包括與步驟A1所述的相同的九個特征;步驟B2采用與所述步驟A2所述的方法提取聲學特征參數(shù)提取基元樣本的時長作為時長模型的訓練參數(shù);提取基元樣本在0.1、0.3、0.5、0.7、0.9時長處的基頻值作為基頻曲線模型的訓練參數(shù);步驟B3采用步驟A3所述的最大化方差減小量ΔEq(t)作為節(jié)點t的分裂標準;對于時長模型的訓練而言ΔEdq(t)=Ed(t)z(t)-[Ed(l)z(l)+Ed(r)z(r)]對于基頻曲線模型的訓練而言ΔEpq(t)=Ep(t)z(t)-[Ep(l)z(l)+Ep(r)z(r)]其中,各物理量的定義與所述步驟A3中的相同;步驟B4時長模型的訓練依次含有以下步驟步驟B41根據(jù)步驟B1至B3所定義的問題集、時長參數(shù)和分裂標準按以下步驟對每一個基元訓練一棵CART樹作為時長預測樹。步驟B42統(tǒng)計時長預測樹每一個葉子節(jié)點中所有樣本的時長,按正態(tài)分布做參數(shù)分布估計,剔除兩倍方差之外的樣本;步驟B43取剩余樣本的時長的平均值作為該葉子節(jié)點的時長模板;步驟B44把各葉子節(jié)點的時長模板存入韻律模板庫中,采用時長預測樹作為其基元的索引;步驟B5基頻曲線模型的訓練。步驟B51根據(jù)步驟B1至B3所定義的問題集、時長參數(shù)和分裂標準按以下步驟對每一個基元訓練一棵CART樹作為基頻預測樹。步驟B52假設CART樹的一個葉子節(jié)點中的樣本集為x1,x2,...xi...,xN,樣本xi的特征向量采用如步驟B2所述特征,該樣本空間的協(xié)方差矩陣為S,根據(jù)下面公式計算任意兩個樣本xj,xi之間的Mahalanobis距離,生成一個N×N的Mahalanobis距離矩陣;Dist(i,j)=(Xi-Xj)tS-1(Xi-Xj)]]>步驟B53根據(jù)下述公式計算每個葉子節(jié)點中距離類中心最遠的樣本k**,并且把其刪除,重復此步直到刪除10%的樣本為止;k**=argmaxi=1···NΣi=1K N,i=kDist(i,k);]]>步驟B54假設刪除10%的最遠的樣本后,節(jié)點中剩余的樣本集為{x1,x2,...,xM}。根據(jù)下式計算每個葉子節(jié)點的類中心樣本k*,取所述類中的樣本為該葉子節(jié)點中所有樣本的代表樣本;k*=argmink=1K NΣi=1K M,i≠kDist(i,k);]]>步驟B55把各葉子節(jié)點的類中的樣本組成基頻曲線模板,經(jīng)過平滑處理以消除跳變點后,在存入韻律模板庫,采用由上述各類中的樣本構成的基頻曲線預測樹作為其基元的索引;步驟B57建立所有基元的時長預測樹和基頻曲線預測樹的總索引,把最終得到的韻律模板復制到移動終端的存儲卡中供合成使用;步驟C語言合成階段。該階段依次含有以下步驟包括文本獲取、文本分析、基元選取、韻律修改和波形拼接合成步驟C1文本獲取從鍵盤輸入,或從文件獲得,或截取短信息;步驟C2文本分析首先,識別數(shù)字、簡寫符號或者特殊語義塊,并給出對應的在詞表上的規(guī)范寫法;其次,進行分詞和詞性標注;最后,分析韻律結構,得到韻律詞、韻律短語、語調短語三個韻律層級的信息;得到一個目標單元序列,其中,每個目標單元由拼音碼和上下文特征組成,所述拼音碼由拼音和聲調構成;上下文特征包括該音節(jié)在所處句子中的位置、該音節(jié)在所處韻律短語中的位置、該音節(jié)在所處韻律詞中的位置、前音節(jié)的拼音碼以及后音節(jié)的拼音碼;步驟C3基元選取,依次含有以下步驟步驟C31從步驟C2得到所含每個目標單元的上下文特征的目標單元序列;步驟C32根據(jù)目標單元的拼音碼在語音庫中檢索該基元的CART樹;步驟C33根據(jù)目標單元的上下文特征對CART樹按所述步驟A1進行迭代檢索,從根節(jié)點開始,回答“是”或“否”一直到合適基元樣本,再用G.723.1標準算法解碼,得到原始的波形數(shù)據(jù);步驟C4韻律修改和波形拼接步驟C41根據(jù)目標單元的上下文特征檢索韻律模板庫中的時長預測樹和基頻曲線預測樹;步驟C42根據(jù)從步驟C33所述預測樹選取出的基頻曲線和時長使用TD-PSOLA算法對解碼樣本數(shù)據(jù)的時長和基頻進行修改,對于基頻而言,當修改量大于10%停止修改;步驟C43根據(jù)步驟C42得到的修改過的樣本進行拼接;步驟C44根據(jù)需要把合成語音輸出到文件或聲音輸出設備。
2.根據(jù)權利要求1所述的移動語音合成方法,其特征在于對所述步驟A43得到的N×N的Mahalanobis距離矩陣按下式進行壞節(jié)點消除操作按下式計算距離類中心最遠的樣本,并且將其刪除;重復此步,直到刪除10%的樣本;k**=argmaxk=1K NΣi=1K N,i≠kDist(i,k)]]>
全文摘要
移動語音合成方法屬于通信中文字與語音之間信息轉換和處理技術領域。其特征在于,它涉及一種在移動終端設備特別是在智能手機上進行文語轉換的技術。包括移動語音合成系統(tǒng)的語音庫構建、韻律模型的訓練、合成方法等。它包括使用決策樹CART-Classification and Regression Trees方法從大規(guī)模語音語料庫中挑選基元樣本,快速地建立適用于移動終端的語音基元精簡數(shù)據(jù)庫;一個基于大規(guī)模語音語料庫的韻律模型訓練方法,可以從自然語音中提取基頻曲線以生成韻律模板。從而在移動終端上實現(xiàn)了從文本到語音的轉換的方法和系統(tǒng)。對于待轉換的文本,基于CART方法選取適當?shù)幕?,比對韻律模塊修改語音基元,拼接成自然流暢的合成語音。
文檔編號G10L13/02GK1731509SQ200510086340
公開日2006年2月8日 申請日期2005年9月2日 優(yōu)先權日2005年9月2日
發(fā)明者蔡蓮紅, 葉振興, 倪昕, 黃德智 申請人:清華大學