都格草,才讓卓瑪,南措吉,算太本
(青海師范大學(xué) 計(jì)算機(jī)學(xué)院 藏文智能信息處理與機(jī)器翻譯重點(diǎn)實(shí)驗(yàn)室,青海 西寧 810008)
語(yǔ)音合成(speech synthesis)是人機(jī)交互的核心技術(shù)之一,也是中文信息處理領(lǐng)域的一項(xiàng)前沿技術(shù)。語(yǔ)音合成的目標(biāo)是將文字信息自動(dòng)轉(zhuǎn)換為清晰、流暢的語(yǔ)音,它的研究對(duì)自動(dòng)控制、智能機(jī)器人和人機(jī)語(yǔ)音通信系統(tǒng)等的研制具有重要的理論意義和實(shí)用價(jià)值。隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的發(fā)展,語(yǔ)音合成技術(shù)越來(lái)越引起社會(huì)的關(guān)注。
語(yǔ)音合成技術(shù)的發(fā)展按時(shí)間順序大致經(jīng)歷了機(jī)械式、電子式和計(jì)算機(jī)語(yǔ)音合成[1]三個(gè)階段。盡管計(jì)算機(jī)語(yǔ)音合成技術(shù)由于其側(cè)重點(diǎn)的不同,分類方法也有所差異,但當(dāng)前主流和獲得較認(rèn)同的分類是將語(yǔ)音合成方法按照設(shè)計(jì)思想分為規(guī)則驅(qū)動(dòng)(rule-based)方法和數(shù)據(jù)驅(qū)動(dòng)(data-based)方法。前者的主要思想是根據(jù)人類發(fā)音的物理過(guò)程制定一系列規(guī)則來(lái)模擬語(yǔ)音合成過(guò)程,例如共振峰合成和發(fā)音規(guī)則合成;數(shù)據(jù)驅(qū)動(dòng)方法則是對(duì)語(yǔ)音庫(kù)的數(shù)據(jù)用統(tǒng)計(jì)方法實(shí)現(xiàn)合成,例如波形拼接(concatenative synthesis)合成[2]、基于隱馬爾可夫模型(hidden markov model,HMM)的統(tǒng)計(jì)參數(shù)語(yǔ)音合成[3]及深度神經(jīng)網(wǎng)絡(luò)(deep neural networks,DNN)的語(yǔ)音合成[4-8]。相對(duì)而言,基于數(shù)據(jù)驅(qū)動(dòng)方法更為成功,也更受研究人員的青睞。近年來(lái),隨著神經(jīng)網(wǎng)絡(luò)方法在機(jī)器翻譯、文本分類、問(wèn)答系統(tǒng)及信息抽取等領(lǐng)域的廣泛應(yīng)用,基于神經(jīng)網(wǎng)絡(luò)的語(yǔ)音處理技術(shù)在語(yǔ)音合成中也取得了顯著成績(jī)[9-12],從而成為當(dāng)前研究語(yǔ)音識(shí)別及合成的主流技術(shù)。
藏語(yǔ)語(yǔ)音合成技術(shù)是中文信息處理的重要任務(wù)之一,目前藏語(yǔ)語(yǔ)音合成系統(tǒng)的實(shí)現(xiàn)主要采用波形拼接技術(shù)[13]或基于隱馬爾可夫模型(HMM)統(tǒng)計(jì)參數(shù)語(yǔ)音合成技術(shù)[14-15]??紤]到波形拼接技術(shù)對(duì)存儲(chǔ)容量要求高且系統(tǒng)構(gòu)建周期長(zhǎng),而統(tǒng)計(jì)參數(shù)語(yǔ)音合成技術(shù)的合成語(yǔ)音效果不穩(wěn)定且韻律表現(xiàn)不佳,本文通過(guò)分析藏文字結(jié)構(gòu)與拼讀規(guī)則,融合Sequence to Sequence(簡(jiǎn)稱Seq2Seq)模型和注意力機(jī)制(attention),研究基于神經(jīng)網(wǎng)絡(luò)的藏語(yǔ)語(yǔ)音合成技術(shù)。
本文分為幾個(gè)部分:引言主要介紹語(yǔ)音合成技術(shù)的發(fā)展及藏語(yǔ)語(yǔ)音合成研究現(xiàn)狀;第1部分介紹語(yǔ)音合成模型相關(guān)技術(shù);第2部分給出了基于神經(jīng)網(wǎng)絡(luò)的藏語(yǔ)語(yǔ)音合成方法;第3部分進(jìn)行了實(shí)驗(yàn)及實(shí)驗(yàn)結(jié)果分析;第4部分是結(jié)語(yǔ)與展望。
隨著神經(jīng)網(wǎng)絡(luò)理論的不斷深入,基于神經(jīng)網(wǎng)絡(luò)的各種模型被廣泛地應(yīng)用于語(yǔ)音合成中。例如,文獻(xiàn)[4]中使用DNN模型進(jìn)行語(yǔ)音合成、文獻(xiàn)[5-7]使用循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network, RNN)模型進(jìn)行語(yǔ)音合成,而文獻(xiàn)[8]使用長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(long short term memory,LSTM)模型進(jìn)行語(yǔ)音合成等??紤]到Seq2Seq模型突破了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的固定大小輸入問(wèn)題,并在英語(yǔ)-法語(yǔ)翻譯、英語(yǔ)—德語(yǔ)翻譯[16-17]等的應(yīng)用中有著不俗的表現(xiàn)。本文采用基于Seq2Seq模型和注意力機(jī)制融合研究藏語(yǔ)語(yǔ)音合成。Seq2Seq模型主要通過(guò)深度神經(jīng)網(wǎng)絡(luò)模型(常用的是LSTM,長(zhǎng)短時(shí)記憶網(wǎng)絡(luò))將一個(gè)作為輸入的序列映射為一個(gè)作為輸出的序列。
2014年,Google Brain團(tuán)隊(duì)和Yoshua Bengio團(tuán)隊(duì)針對(duì)機(jī)器翻譯的相關(guān)問(wèn)題不約而同地提出了Seq2Seq模型[17-18],該模型通過(guò)使用長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)或者遞歸神經(jīng)網(wǎng)絡(luò)(recursive neural network,RNN)將一個(gè)序列作為輸入映射為另外一個(gè)輸出序列,機(jī)器翻譯的準(zhǔn)確率因?yàn)樵撃P偷膽?yīng)用而有了較大的提升。同時(shí),由于Seq2Seq模型突破了傳統(tǒng)的固定大小輸入問(wèn)題,從而被廣泛應(yīng)用于自動(dòng)編碼、分類器訓(xùn)練、句法分析、文本自動(dòng)摘要、智能對(duì)話系統(tǒng)、語(yǔ)音合成與識(shí)別等領(lǐng)域。Seq2Seq模型結(jié)構(gòu)如圖1所示。
圖1 Seq2seq模型
從圖1中可見(jiàn),Seq2Seq模型是一個(gè)編碼器到解碼器結(jié)構(gòu)的網(wǎng)絡(luò),通過(guò)編碼器來(lái)產(chǎn)生上下文向量C(其中C有可能是一個(gè)輸入序列X={x1,x2,…,xT}的向量或者向量序列),向量C輸入到解碼器,得到輸出序列Y(輸出序列Y={y1,y2,…,yT})。
Seq2Seq模型中輸入序列的所有信息都被編譯成一定維度的特征向量C,但隨著序列的不斷增長(zhǎng),Seq2Seq模型處理較長(zhǎng)數(shù)據(jù)時(shí)會(huì)出現(xiàn)兩個(gè)問(wèn)題,其一是無(wú)論輸入有多長(zhǎng),都被編碼成一個(gè)固定長(zhǎng)度的向量,當(dāng)句子比較長(zhǎng)時(shí)編碼結(jié)果可能會(huì)損失較多的信息,這將不利于接下來(lái)的解碼工作;其次,每個(gè)時(shí)刻的輸出在解碼過(guò)程中用到的上下文向量都相同,也會(huì)給解碼帶來(lái)困難。為了解決這些問(wèn)題,需要引入注意力機(jī)制,該機(jī)制的核心目標(biāo)是從輸入序列和輸出序列中選擇出對(duì)當(dāng)前任務(wù)目標(biāo)更關(guān)鍵的信息。計(jì)算上下文向量C如式(1)所示。
(1)
其中h(t)為編碼器輸出的特征向量,a(t)為權(quán)重。a(t)權(quán)重向量在Decoder每次進(jìn)行預(yù)測(cè)時(shí)都不一樣,計(jì)算方法如式(2)所示。
(2)
其中的eij代表Encoder的第j個(gè)輸入與Decoder的第i個(gè)輸出的注意力匹配程度。
藏語(yǔ)文字是一種拼音文字,主要由30個(gè)輔音字母和4個(gè)元音組成[20]。輔音字母中有10個(gè)后加字,4個(gè)下加字。后加字中5個(gè)字母也可作前加字、2個(gè)字母也可作重后加字、3個(gè)字母也可作上加字。藏語(yǔ)雖有衛(wèi)藏方言、康方言和安多方言等不同方言,但各方言都遵從相同的文法與拼接規(guī)則[19]。藏文字以基字為中心呈橫向與縱向結(jié)構(gòu)。其基字的橫向有前加字、后加字、重后加字拼寫,而基字的縱向還有上加字、下加字和元音拼寫。藏文字的基本結(jié)構(gòu)如圖2所示。藏文字的拼讀按照其文字結(jié)構(gòu)逐項(xiàng)疊加進(jìn)行[21],即將藏文字按其基本結(jié)構(gòu)從左往右、從上到下逐項(xiàng)拼讀,便可得到相應(yīng)的音節(jié),音節(jié)中的元音通常只出現(xiàn)一次。藏文字拼讀順序示意圖如圖3所示。
圖2 藏文字的基本結(jié)構(gòu)
圖3 藏文字拼讀順序示意圖
在基于神經(jīng)網(wǎng)絡(luò)的語(yǔ)音合成模型中,輸入為一系列文本字向量,輸出為聲譜圖, 然后使用Griffin_Lim算法[22]生成對(duì)應(yīng)音頻。以下將對(duì)模型進(jìn)行簡(jiǎn)單介紹。
圖4 藏文字符嵌入過(guò)程
人的聽(tīng)覺(jué)系統(tǒng)是一個(gè)特殊的非線性系統(tǒng),它響應(yīng)不同頻率信號(hào)的靈敏度是不同的。在語(yǔ)音特征的提取上,人類聽(tīng)覺(jué)系統(tǒng)做得非常好,它不僅能提取出語(yǔ)義信息,而且能提取出說(shuō)話人的個(gè)人特征。因此,為了使合成系統(tǒng)能更好地模擬人類聽(tīng)覺(jué)感知處理特點(diǎn),本文在語(yǔ)音特征的選取中主要考慮了參數(shù)維度低且更符合聽(tīng)覺(jué)系統(tǒng)的梅爾頻率倒譜系數(shù)(mel frequency cepstral coefficients,MFCC)。MFCC的主要思想是先將線性頻譜映射到基于聽(tīng)覺(jué)感知的Mel非線性頻譜中,然后轉(zhuǎn)換到倒譜上,其主要過(guò)程如下:首先,對(duì)語(yǔ)音進(jìn)行預(yù)加重、分幀和加窗;其次,對(duì)每一個(gè)短時(shí)分析窗,通過(guò)快速傅里葉氏變換(fast fourier transformation,FFT)得到對(duì)應(yīng)的頻譜(spectrum),并通過(guò)Mel濾波器組得到Mel頻譜;最后,在Mel頻譜上面進(jìn)行倒譜分析,即取對(duì)數(shù),做傅里葉變換逆變換,獲得Mel頻率倒譜系數(shù)MFCC。
第1節(jié)已介紹Seq2Seq模型與注意力機(jī)制。該模型主要由編碼器與解碼器兩大模塊組成。
2.3.1 編碼器模塊
編碼器模塊主要包含預(yù)網(wǎng)(pre-net)結(jié)構(gòu)與CBHG(全稱conv bank highway gru_rnn)結(jié)構(gòu)。模塊訓(xùn)練過(guò)程如圖5所示。
圖5 編碼器模塊訓(xùn)練過(guò)程
Pre-net的主要功能是對(duì)輸入進(jìn)行一系列非線性的變換。它是一個(gè)3層的網(wǎng)絡(luò)結(jié)構(gòu),有兩個(gè)隱藏層,層與層之間均為全連接。第一層的神經(jīng)元個(gè)數(shù)與輸入藏文詞向量個(gè)數(shù)一致,第二層的神經(jīng)元個(gè)數(shù)為第一層的一半。兩個(gè)隱藏層采用的激活函數(shù)均為ReLu,并保持0.5的dropout來(lái)提高泛化能力。CBHG主要用于提高模型的泛化能力。Pre-net的輸出經(jīng)過(guò)一個(gè)卷積層。它有K個(gè)大小不同的1維濾波器(filter),其中Filter的大小為1,2,3,…,K(16)。大小不同的卷積核提取長(zhǎng)度不同的上下文信息。然后,將經(jīng)過(guò)不同大小的K個(gè)卷積核的輸出堆積在一起。下一層為最大池化層(max-pool),步長(zhǎng)(stride)為1。經(jīng)過(guò)池化之后,會(huì)再經(jīng)過(guò)兩層一維的卷積層。第一個(gè)卷積層的Filter大小為3,Stride為1,采用的激活函數(shù)為ReLu;第二個(gè)卷積層的Filter大小為3,Stride為1,沒(méi)有采用激活函數(shù)。然后把卷積層輸出與字符的序列相加輸入到Highway layers中,同時(shí)放入到兩個(gè)一層的全連接網(wǎng)絡(luò),兩個(gè)網(wǎng)絡(luò)的激活函數(shù)分別采用ReLu和Sigmoid函數(shù)。假定輸入為Input,ReLu的輸出為H,Sigmoid的輸出為T,Highway layer的輸出為:Output=H×T+Input×(1-T)。它的輸出提供給GRU模型,得到上下文向量C。
2.3.2 解碼器模塊
解碼器模塊主要分為Pre-net、Attention RNN、Decoder RNN三部分。模塊訓(xùn)練過(guò)程如圖6所示。
圖6 解碼器模塊訓(xùn)練過(guò)程
Pre-net的結(jié)構(gòu)與Encoder中的Pre-net相同,主要是對(duì)輸入做一些非線性變換。Attention RNN的結(jié)構(gòu)為一層包含256個(gè)GRU的RNN單元,它將Pre-net的輸出和注意力機(jī)制的輸出作為輸入,經(jīng)過(guò)GRU單元后輸出到Decoder RNN中。Decode RNN為兩層Residual GRU,它的輸出為輸入與經(jīng)過(guò)GRU單元輸出之和。
在Decoder-RNN輸出之后并沒(méi)有直接將輸出轉(zhuǎn)化為音頻文件,所以添加了后處理的網(wǎng)絡(luò)。后處理的網(wǎng)絡(luò)在一個(gè)線性頻率范圍內(nèi)預(yù)測(cè)幅度譜(spectral magnitude),并且后處理網(wǎng)絡(luò)能看到整個(gè)解碼的序列從左至右地運(yùn)行。后處理網(wǎng)絡(luò)通過(guò)反向傳播來(lái)修正每一幀的錯(cuò)誤。最后使用Griffin-Lim算法生成音頻。
訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型時(shí)語(yǔ)料是必不可少的主要要素,本實(shí)驗(yàn)使用的語(yǔ)料是藏族第1部哲理格言詩(shī)集《薩迦格言》,詩(shī)集強(qiáng)調(diào)知識(shí)、智慧的作用,它既是藏族學(xué)者必讀著作,也在群眾中口頭廣泛流傳。詩(shī)集中有456個(gè)韻文,每個(gè)韻文由四個(gè)句子構(gòu)成,每個(gè)句子有7個(gè)音節(jié),總共有1 824個(gè)句子和12 768個(gè)音節(jié)。這些語(yǔ)料作為本文的訓(xùn)練數(shù)據(jù)。采樣率為16kHz,采樣精度為16bits。
為了評(píng)估模型的性能和模型擬合的好壞,本文從客觀和主觀兩方面進(jìn)行分析。客觀上用模型訓(xùn)練的誤差函數(shù)來(lái)度量擬合程度。誤差(loss)函數(shù)極小化,意味著擬合程度最好,對(duì)應(yīng)的模型參數(shù)即為最優(yōu)參數(shù)。由圖7可知,模型訓(xùn)練的誤差逐步極小化,說(shuō)明模型的擬合程度最好,收斂速度最快。圖中train/loss是快速傅里葉變換與MFCC語(yǔ)音特征和的誤差圖,train/loss1是MFCC特征在訓(xùn)練過(guò)程中的誤差圖,誤差接近0,說(shuō)明訓(xùn)練后的MFCC值靠近原始MFCC的值。train/lr是不同的學(xué)習(xí)率下每輪完整迭代過(guò)后的loss應(yīng)該呈現(xiàn)的變化狀況,初始學(xué)習(xí)率設(shè)為0.001,先使用較大的學(xué)習(xí)率來(lái)快速得到一個(gè)較優(yōu)的解,然后隨著迭代的繼續(xù),逐步減小學(xué)習(xí)率,使得模型在訓(xùn)練后期更加穩(wěn)定。
圖7 訓(xùn)練藏語(yǔ)語(yǔ)音合成模型的誤差
主觀上,由7位測(cè)聽(tīng)員通過(guò)對(duì)合成語(yǔ)音與原始語(yǔ)音(設(shè)定為5分)進(jìn)行對(duì)比打分給出了MOS分。
表1是不同測(cè)試語(yǔ)料下合成語(yǔ)音的清晰度、自然度的MOS值。
表1 合成語(yǔ)音的MOS值
由表1可見(jiàn),合成語(yǔ)音的清晰度和自然度分別為3.46和3.9分,基本能達(dá)到預(yù)期效果。評(píng)分中測(cè)聽(tīng)員一致認(rèn)為能夠完全聽(tīng)清楚合成語(yǔ)音的內(nèi)容,語(yǔ)音自然、清晰,但與原始真人語(yǔ)音相比有較重的機(jī)器味。
語(yǔ)音合成技術(shù)的主要任務(wù)是將文本映射為音頻信號(hào)。為了提高語(yǔ)音合成的自然度和清晰度,本文通過(guò)分析藏文字結(jié)構(gòu)與拼讀規(guī)則,融合Seq2Seq模型和注意力機(jī)制研究基于神經(jīng)網(wǎng)絡(luò)的藏語(yǔ)語(yǔ)音合成技術(shù)。基于神經(jīng)網(wǎng)絡(luò)的語(yǔ)音合成模型中,輸入為一系列文本字向量和MFCC語(yǔ)音特征,并進(jìn)行神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練,輸出為聲譜圖, 然后使用Griffin_Lim算法生成對(duì)應(yīng)音頻。為了評(píng)估模型的性能和模型擬合的好壞,本文從模型訓(xùn)練的誤差和MOS評(píng)估兩方面進(jìn)行客觀和主觀分析,合成效果均達(dá)到預(yù)期目標(biāo)。
在本文研究?jī)?nèi)容的基礎(chǔ)上,后續(xù)的工作主要是收集更多的語(yǔ)料,并加強(qiáng)語(yǔ)料文體的多樣化,對(duì)藏語(yǔ)的語(yǔ)言學(xué)和語(yǔ)音學(xué)內(nèi)在關(guān)系進(jìn)行深入研究。