語音合成技術(shù)應(yīng)用探究論文
時(shí)間:2022-10-11 11:06:00
導(dǎo)語:語音合成技術(shù)應(yīng)用探究論文一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
摘要本文就語音合成系統(tǒng),特別是在文語轉(zhuǎn)換方面的一些關(guān)鍵技術(shù)及實(shí)現(xiàn)做了詳細(xì)的描述和介紹,并且給出了一個(gè)實(shí)際文語轉(zhuǎn)換系統(tǒng)的實(shí)現(xiàn)方案。該語音合成系統(tǒng)作為一種新型人機(jī)界面已經(jīng)成功的應(yīng)用在多型號(hào)衛(wèi)星測(cè)試系統(tǒng)中。
關(guān)鍵字語音合成,文語轉(zhuǎn)換,語音人機(jī)界面
1引言
由人工通過一定的機(jī)器設(shè)備產(chǎn)生出語音稱為語音合成(SpeechSynthesis)。語音合成是人機(jī)語音通信的一個(gè)重要組成部分。語音合成研究的目的是制造一種會(huì)說話的機(jī)器,它解決的是如何讓機(jī)器象人那樣說話的問題,使一些以其它方式表示或存儲(chǔ)的信息能轉(zhuǎn)換為語音,讓人們能通過聽覺而方便地獲得這些信息。
語音合成從技術(shù)方式講可分為波形編輯合成、參數(shù)分析合成以及規(guī)則合成等三種。
波形編輯合成,這種合成方式以語句、短語、詞或音節(jié)為合成單元,這些單元被分別錄音后直接進(jìn)行數(shù)字編碼,經(jīng)適當(dāng)?shù)臄?shù)據(jù)壓縮,組成一個(gè)合成語音庫。重放時(shí),根據(jù)待輸出的信息,在語料庫中取出相應(yīng)單元的波形數(shù)據(jù),串接或編輯在一起,經(jīng)解碼還原出語音。這種合成方式,也叫錄音編輯合成,合成單元越大,合成的自然度越好,系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,價(jià)格低廉,但合成語音的數(shù)碼率較大,存儲(chǔ)量也大,因而合成詞匯量有限。
參數(shù)分析合成,這種合成方式多以音節(jié)、半音節(jié)或音素為合成單元。首先,按照語音理論,對(duì)所有合成單元的語音進(jìn)行分析,提取有關(guān)語音參數(shù),這些參數(shù)經(jīng)編碼后組成一個(gè)合成語音庫;輸出時(shí),根據(jù)待合成的語音的信息,從語音庫中取出相應(yīng)的合成參數(shù),經(jīng)編輯和連接,順序送入語音合成器。在合成器中,通過合成參數(shù)的控制,將語音波形重新還原出來。
規(guī)則合成,這種合成方式通過語音學(xué)規(guī)則來產(chǎn)生目標(biāo)語音。規(guī)則合成系統(tǒng)存儲(chǔ)的是較小的語音單位(如音素、雙音素、半音節(jié)或音節(jié))的聲學(xué)參數(shù),以及由音素組成音節(jié)、再由音節(jié)組成詞或句子的各種規(guī)則。當(dāng)輸入字母符號(hào)時(shí),合成系統(tǒng)利用規(guī)則自動(dòng)地將它們轉(zhuǎn)換成連續(xù)的語音波形。由于語音中存在協(xié)同發(fā)音效應(yīng),單獨(dú)存在的元音和輔音與連續(xù)發(fā)音中的元音和輔音不同,所以,合成規(guī)則是在分析每一語音單元出現(xiàn)在不同環(huán)境中的協(xié)同發(fā)音效應(yīng)后,歸納其規(guī)律而制定的如共振峰頻率規(guī)則、時(shí)長(zhǎng)規(guī)則、聲調(diào)和語調(diào)規(guī)則等。由于語句中的輕重音,還要?dú)w納出語音減縮規(guī)則。
現(xiàn)在展開大量研究和實(shí)用的是文語轉(zhuǎn)換系統(tǒng)[1](Text-To-SpeechSystem,TTSSystem),它是一種以文字串為輸入的語音合成系統(tǒng)。其輸入的是通常的文本字串,系統(tǒng)中的文本分析器首先根據(jù)發(fā)音字典,將輸入的文字串分解為帶有屬性標(biāo)記的詞及其讀音符號(hào),再根據(jù)語義規(guī)則和語音規(guī)則,為每一個(gè)詞、每一個(gè)音節(jié)確定重音等級(jí)和語句結(jié)構(gòu)及語調(diào),以及各種停頓等。這樣文字串就轉(zhuǎn)變?yōu)榉?hào)代碼串。根據(jù)前面分析的結(jié)果,生成目標(biāo)語音的韻律特征,采用前面介紹的合成技術(shù)的一種或者是幾種的結(jié)合,合成出輸出語音。
本文所討論的語音合成應(yīng)用系統(tǒng)就是一種面向TTS應(yīng)用的語音系統(tǒng)。該系統(tǒng)的設(shè)計(jì)目標(biāo)是作為人機(jī)交互的一種反饋手段,用于將計(jì)算機(jī)中的數(shù)據(jù)或狀態(tài)以語音的形式加以輸出。該系統(tǒng)的應(yīng)用背景是作為衛(wèi)星測(cè)試系統(tǒng)的一個(gè)子系統(tǒng)用于增強(qiáng)人機(jī)交互能力。通過引入語音合成技術(shù),將原本需要測(cè)試人員主動(dòng)觀察的數(shù)據(jù)、狀態(tài)或指令等內(nèi)容以語音的形式即時(shí)播報(bào)出來,相應(yīng)的測(cè)試人員只需被動(dòng)收聽即可,只有在敏感內(nèi)容出現(xiàn)時(shí)才加以主動(dòng)觀察,從而降低測(cè)試人員的工作強(qiáng)度,改善工作環(huán)境和條件。在這樣的應(yīng)用背景下,對(duì)語音合成系統(tǒng)的要求是響應(yīng)速度快,計(jì)算復(fù)雜度和存儲(chǔ)空間復(fù)雜度低,具有良好的可擴(kuò)展性和合成語音清晰度高、可懂性強(qiáng),適于科學(xué)術(shù)語、符號(hào)和單位的發(fā)音合成等?;谝陨舷到y(tǒng)需求,我們開發(fā)了專門針對(duì)科學(xué)應(yīng)用特別是航空航天領(lǐng)域內(nèi)常見的科學(xué)術(shù)語、符號(hào)、計(jì)量單位和數(shù)學(xué)公式等文本分析模塊,以及新型的基于規(guī)則和參數(shù)的語音合成技術(shù)。
2系統(tǒng)結(jié)構(gòu)
圖1中給出了本文討論的語音合成系統(tǒng)的結(jié)構(gòu)框圖。
從外部接口上看,該系統(tǒng)的輸入為文本輸入接口,用戶將要發(fā)聲的文本內(nèi)容通過此接口送入系統(tǒng),輸入的文本不需特別的格式;輸出為音頻輸出接口,系統(tǒng)將合成的聲音以某種編碼方式由此輸出;此外系統(tǒng)中所有語音信息模型均存儲(chǔ)于語音模型庫文件中,各種符號(hào)、單位標(biāo)注、單詞字母以及詞匯的發(fā)音等均存儲(chǔ)于詞庫文件中,這些庫文件作為語音合成系統(tǒng)的內(nèi)部輸入。
圖1語音合成系統(tǒng)結(jié)構(gòu)
從內(nèi)部結(jié)構(gòu)上看,輸入的文本主要通過規(guī)范化處理和符號(hào)轉(zhuǎn)化,將其中的特殊符號(hào)、縮寫、英文單詞以及計(jì)量單位等轉(zhuǎn)換為可識(shí)別的發(fā)聲單元標(biāo)識(shí)。在分詞模型中,對(duì)輸入的文本按預(yù)置的分詞規(guī)律進(jìn)行單詞的劃分,通過分詞處理就基本確定了句子的韻律結(jié)構(gòu)以及多音字的發(fā)音。韻律預(yù)測(cè)決定各詞發(fā)音;協(xié)同發(fā)音決定了各詞之間的連接關(guān)系。選詞模塊按照韻律要求及詞的發(fā)音在詞庫中選擇最優(yōu)的發(fā)音,經(jīng)過語音重構(gòu)將波形恢復(fù)出來。各詞的語音波形經(jīng)過拼接模塊在拼接參數(shù)的控制下完成最終語句的合成。
3聲學(xué)單元的選擇及生成
為使合成語音具有較高的清晰度、可懂度以及自然度,通常采取基于波形的語音合成技術(shù)。波形拼接語音合成中的合成單元是從原始自然語音中切分出來的,保留了自然語音的一些韻律特征。根據(jù)自然語言的語音和韻律規(guī)律,存儲(chǔ)適當(dāng)?shù)恼Z音基元,使這些單元在確定的存貯容量下具有最大的語音和韻律覆蓋率。合成時(shí)經(jīng)過聲學(xué)單元選擇、波形拼接、平滑處理等步驟后輸出語音。通過精心設(shè)計(jì)語料庫,并根據(jù)語音和韻律規(guī)則從音庫中挑出最適合的聲學(xué)單元,使系統(tǒng)輸出高質(zhì)量的語音。
常見的語音單元候選可以有詞組、音節(jié)、音素和雙音素等。就詞組而言,無論是中文還是西方語系,都和確定的語義相對(duì)應(yīng),因此使用詞組作為聲學(xué)單元可以比較容易的解決合成語音的可懂度問題[2],但是由于詞組的類別非常多,而且在不同韻律環(huán)境下有著明顯不同的表現(xiàn),這樣會(huì)造成所需的聲學(xué)單元趨向于無窮大。所謂音節(jié),一般都是由元音和輔音構(gòu)成的,元音是音節(jié)的主干部分[3]。以漢語為代表的一些東方語系,音節(jié)數(shù)目較少,而且音節(jié)基本上是“輔音-元音”結(jié)構(gòu),但是對(duì)于一些西方語言,音節(jié)數(shù)目較多,結(jié)構(gòu)比較復(fù)雜,而且使用它并不但不能避免大多數(shù)協(xié)同發(fā)音的影響,而且會(huì)引起音庫容量的急劇增大。音素是最小發(fā)音單位,可以使語料庫設(shè)計(jì)時(shí)的靈活性好,但由于音素受相鄰語音環(huán)境的協(xié)同發(fā)音影響很大,對(duì)這些影響考慮的不合理時(shí),就會(huì)造成音庫在語音和韻律上的不平衡。另外在挑選單元時(shí),由于音素的聲學(xué)變體很多,所選擇的樣本不合適時(shí),會(huì)導(dǎo)致相鄰音素間存在基頻和共振峰上不連續(xù),需要采用譜平滑法進(jìn)行處理,這必然會(huì)降低合成音質(zhì)。
綜合上述對(duì)音節(jié)、詞組、音素的分析可以知道,它們各有優(yōu)缺點(diǎn),因此在構(gòu)造波形拼接所需要的語料庫時(shí),可以結(jié)合不同類型樣本的優(yōu)缺點(diǎn),例如對(duì)于自然語流中經(jīng)常出現(xiàn)的一些協(xié)同發(fā)音強(qiáng)的音素、音節(jié)組合,在通過波形拼接形成目標(biāo)語音時(shí),應(yīng)該盡量避免在這些協(xié)同發(fā)音影響大的音素組合之間進(jìn)行拼接,否則單元挑選的稍有不合適,就會(huì)造成聽覺上的難以接受。所以在構(gòu)造實(shí)用合成系統(tǒng)時(shí)所采取的聲學(xué)單元的類型和長(zhǎng)度都將是不固定的[4]。
在選擇聲學(xué)單元構(gòu)造語音庫時(shí),通常利用某種損失度函數(shù)來描述具有相同大小語音庫的合成能力。一個(gè)典型的損失度函數(shù)可以表達(dá)為:
(1)
其中f為當(dāng)前聲學(xué)單元的詞頻,d為聲學(xué)單元的預(yù)測(cè)時(shí)長(zhǎng),c為該單元中所包含的音素之間協(xié)同發(fā)音的大小[4]。在不考慮韻律條件下,構(gòu)造由聲學(xué)單元組成的語音庫時(shí),應(yīng)使由(1)表示的損失度函在該語音庫上的取值最小為目標(biāo)。用于拼接的聲學(xué)單元通常由連續(xù)語流中切分獲得。通過檢索含有大量航天、電子通信、計(jì)算機(jī)以及衛(wèi)星領(lǐng)域內(nèi)關(guān)鍵字的文獻(xiàn),并通過對(duì)這些文獻(xiàn)進(jìn)行文本處理,將文獻(xiàn)切分成詞和句。通過對(duì)詞匯的統(tǒng)計(jì)可以得到詞頻信息,并在詞頻信息的指導(dǎo)下挑選由文獻(xiàn)獲得的句子,使得選出的句子對(duì)高頻詞具有較好的覆蓋,這些挑選出來的句子成為稍后需要錄制的腳本。
挑選合適的播音員,對(duì)照腳本進(jìn)行合理朗讀,并且錄音。將錄音所得的語音波形數(shù)據(jù)按腳本以及聲學(xué)單元的劃分進(jìn)行切分,通常對(duì)于漢語可以切分為詞、字(CV結(jié)構(gòu))而英文通常需要切分到詞以及少量音素或雙音素,從而構(gòu)成發(fā)聲單元庫。對(duì)切分得到的聲學(xué)單元按其在原句子中的位置(前中后)以及前后相連的字詞進(jìn)行標(biāo)注。這些標(biāo)注信息對(duì)選詞模塊的判決提供依據(jù)。
4韻律的生成
韻律的聲學(xué)參數(shù)一般包括基頻、時(shí)長(zhǎng)、能量,對(duì)于一個(gè)TTS系統(tǒng),韻律生成和控制是十分重要的。韻律參數(shù)對(duì)于控制合成語音的節(jié)奏、語氣語調(diào)、情感等具有重要意義,而對(duì)漢譜普通話,基頻是和聲調(diào)直接相關(guān)的物理參數(shù)。漢語的構(gòu)成原則可歸結(jié)如下:由音素構(gòu)成聲母或韻母,韻母帶上聲調(diào)后成為調(diào)母,由單個(gè)調(diào)母或由聲母與調(diào)母拼接成為音節(jié)。漢語有陰平、陽平、上聲、去聲、輕聲5個(gè)調(diào),1200多個(gè)有調(diào)音節(jié)。一個(gè)音節(jié)就是一個(gè)字的音,即音節(jié)字。由音節(jié)字構(gòu)成詞,最后再由詞構(gòu)成句子[5]。
基于規(guī)則的韻律生成。通過對(duì)漢語語音學(xué)和語言學(xué)的研究總結(jié)一些通用的韻律規(guī)則,利用這些先驗(yàn)知識(shí),可以建立一個(gè)基于規(guī)則的韻律生成系統(tǒng)。通常規(guī)則系統(tǒng)包括兩個(gè)方面:一是通用規(guī)則,比如四個(gè)調(diào)的基本形狀,上聲連接的變調(diào)規(guī)則,時(shí)長(zhǎng)變化,語氣語調(diào)的音高變化等;二是目標(biāo)說話人的特定韻律規(guī)則,比如個(gè)人的基本調(diào)高、調(diào)域、語速和停頓等。此外在連續(xù)語流中,每個(gè)字的發(fā)音是會(huì)相互影響的,連續(xù)語流中一個(gè)字的發(fā)音的聲調(diào)與這個(gè)字單獨(dú)發(fā)音時(shí)的聲調(diào)會(huì)有所不同,在合成的連續(xù)語流中,只有具有這種聲調(diào)變化才能使合成的語音具有較好的可懂度,否則將只會(huì)是單字語音的生硬連接。漢語普通話語句中的變調(diào)以二字詞的變調(diào)最為主,因?yàn)槎衷~所占比例約為74.3%。它的調(diào)型基本上是兩個(gè)原調(diào)型的相連的序列,但受連讀影響使前后兩調(diào)或縮短、或變低。
基于機(jī)器學(xué)習(xí)的韻律生成。雖然目前已經(jīng)得到了許多關(guān)于韻律的規(guī)則,但這些規(guī)則對(duì)于形成非常貼近自然的韻律還相差很遠(yuǎn)。為能夠發(fā)覺隱藏而且難以描述的韻律規(guī)則通常利用機(jī)器學(xué)習(xí)的方法來實(shí)現(xiàn)韻律的生成。常用的算法模型有隱馬爾可夫模型(HMM)、人工神經(jīng)網(wǎng)絡(luò)(ANN)、支持向量機(jī)(SVM)以及決策樹等[5][6]。
基于參數(shù)化模型的韻律生成?;跈C(jī)器學(xué)習(xí)的韻律模型提取一些人工無法分析的細(xì)則,大人降低人工參與分析的工作量,但這種方法同時(shí)也存在如下問題:首先,一般的學(xué)習(xí)算法都要求比較多的數(shù)據(jù)資源,特別是屬性特征比較多的時(shí)候;其次,如果己有數(shù)據(jù)資源分布不均勻,將造成訓(xùn)練的整體偏差,影響分析結(jié)果;再次,專家知識(shí)沒有很好的結(jié)合利用進(jìn)來,是一種信息浪費(fèi);第四,訓(xùn)練模型沒有和語言特征和人的感知掛鉤,無法進(jìn)行轉(zhuǎn)移和調(diào)整。基頻和時(shí)長(zhǎng)是影響人的韻律聽感的直接聲學(xué)參數(shù),兩者都是隨時(shí)間變化和環(huán)境變化的。參數(shù)模型利用先驗(yàn)知識(shí),先分析基頻時(shí)長(zhǎng)和語言特征、人的聽感的關(guān)系,對(duì)此關(guān)系建摸,提取基頻時(shí)長(zhǎng)和語言特征及人的聽感直接相關(guān)的參數(shù)。這樣的模型有效利用了專家知識(shí),就可以用不多的數(shù)據(jù)訓(xùn)練出文本語言特征和參數(shù)的關(guān)系,同時(shí)通過調(diào)整模型參數(shù)就可以達(dá)到改變聽感的韻律特征的目的[7]。
Fujisaki模型是一種廣泛使用的基頻參數(shù)化模型[8][9],它主要通過模擬人的發(fā)音機(jī)理來預(yù)測(cè)基頻的變化。Fujisaki認(rèn)為基頻的改變主要有兩個(gè)原因:韻律短語邊界(Phrase)的影響和音節(jié)調(diào)(Accent)的影響。基頻曲線的產(chǎn)生是按照聲帶振動(dòng)的機(jī)理,以Phrase和Accent作為預(yù)測(cè)系統(tǒng)的輸入,以基頻曲線作為系統(tǒng)的輸入,其中以脈沖信號(hào)的形式產(chǎn)生Phrase形狀,以階梯函數(shù)產(chǎn)生Accent形狀。在該模型下基頻曲線可以表示為:
(2)
其中函數(shù)Gpi(t)以及Gaj(t)的表達(dá)式分別為:
(3)
(4)
在表達(dá)式(2)、(3)及(4)中各參數(shù)含義如表1中所示。
表1Fujisaki韻律模型參數(shù)
Fmin基頻最小值αi第i個(gè)Phrase命令控制系數(shù)
IPhrase元素?cái)?shù)量βj第j個(gè)Accent命令控制系數(shù)
JAccent元素?cái)?shù)量θAccent命令最大值參數(shù)
T0i第i個(gè)Phrase命令的時(shí)間標(biāo)記Api第i個(gè)Phrase命令幅度
T1j第j個(gè)Accent命令開始時(shí)間Aaj第j個(gè)Accent命令幅度
T2j第j個(gè)Accent命令結(jié)束時(shí)間
Fujisaki模型的機(jī)理很簡(jiǎn)單,對(duì)于每個(gè)phrase命令,就是以一個(gè)脈沖信號(hào)通過phrase濾波器,相應(yīng)的基頻值上升到最大點(diǎn),然后逐漸衰減。對(duì)于連續(xù)的phrase命令,基頻曲線則產(chǎn)生連續(xù)的波動(dòng)。Accent命令由一個(gè)階梯函數(shù)初始化,因?yàn)閍ccent濾波器的參數(shù)α遠(yuǎn)大于β,使得Accent元素很快達(dá)到其最大值,然后迅速衰減。
5系統(tǒng)實(shí)現(xiàn)及應(yīng)用
整個(gè)語音合成系統(tǒng)由一系列動(dòng)態(tài)鏈接庫構(gòu)成,分別對(duì)應(yīng)圖2中的各組成部分,各動(dòng)態(tài)庫由C語言書寫。這種動(dòng)態(tài)庫的使用方便未來對(duì)局部進(jìn)行修改。通過對(duì)動(dòng)態(tài)庫的加載,可以方便的將該語音合成系統(tǒng)集成到任何應(yīng)用環(huán)境中。該合成系統(tǒng)輸入以漢語為主,允許混合少量英文單詞、希臘字母以及其它通用符號(hào)。
聲學(xué)庫中的語音波形分別采樣AMR及MFCC兩種編碼方式,此外MFCC編碼后再進(jìn)行矢量量化處理,由此形成多種碼率的聲學(xué)單元庫。采用不同的單元庫將獲得不同音質(zhì)的合成結(jié)果輸出。系統(tǒng)的錄音為女聲,可以通過一定的算法,如基音同步疊加技術(shù)(PitchSynchronousOverlapAdd,PSOLA)算法,在輸出端對(duì)音色進(jìn)行修改。
該系統(tǒng)作為我所研制的衛(wèi)星測(cè)試系統(tǒng)的一個(gè)關(guān)鍵技術(shù)在實(shí)際應(yīng)用中取得了良好的效果。通過該系統(tǒng)所構(gòu)造的VoiceUI提供了一種全新的人機(jī)界面。計(jì)算機(jī)通過語音將衛(wèi)星的實(shí)時(shí)狀態(tài)匯報(bào)給監(jiān)視人員,極大的降低了監(jiān)視人員的觀察強(qiáng)度,提高了人機(jī)系統(tǒng)的工作效率。
參考文獻(xiàn)
[1]D.H.Klatt,Reviewoftext-to-speechconversionforEnglish,J.Acoust.Soc.Am.,82(3):737-793,1987
[2]R.Linggard,ElectronicSynthesisofSpeech,CambridgeUniversityPress,Cambridge.1985
[3]J.Allen,M.S.HunnicuttandD.Klatt,F(xiàn)romTexttoSpeech:TheMITalkSystem,CambridgeUniversityPress,Cambridge,1987
[4]陳永彬,王仁華.語言信號(hào)處理.中國(guó)科學(xué)技術(shù)大學(xué)出版社,1990
[5]陶建華,蔡蓮紅.漢語TTS系統(tǒng)中可訓(xùn)練韻律模型的研究.聲學(xué)學(xué)報(bào),2001
[6]初敏.自然言語的韻律組織中的不確定性及其在語音合成中的應(yīng)用.第七屆人機(jī)語音通訊學(xué)術(shù)會(huì)議,廈門,2003
[7]倪晉富,王仁華.模型化F0曲線中的升降模式控制機(jī)制.聲學(xué)學(xué)報(bào),1996
[8]H.Fujisaki,Theroleofquantitativemodelinginthestudyofintonation,SymposiumonResearchonJapaneseanditsPedagogicalApplications,November4-71992,NavaJapan
[9]H.Fujisaki,andH.Kawai,RealizationoflinguisticinformationinthevoicefundamentalfrequencycontourofthespokenJapanese.ICASSP1988IEEE