第十四屆中國研究生電賽_第1頁
第十四屆中國研究生電賽_第2頁
第十四屆中國研究生電賽_第3頁
第十四屆中國研究生電賽_第4頁
第十四屆中國研究生電賽_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

摘要語音合成就是將任意文本轉(zhuǎn)換成語音的技術(shù),即TTS。語言合成技術(shù)的研究已有二百多年的歷史,但是真正有實用意義的語音合成技術(shù)是隨著計算機技術(shù)和數(shù)字信號處理技術(shù)的革新而發(fā)展起來的。一個典型的語音合成系統(tǒng)的前端部分主要是對輸入文本進行分析并提取語音建模需要的信息,具體包括分詞、詞性標(biāo)注、多音字消歧、字音轉(zhuǎn)換、韻律結(jié)構(gòu)與參數(shù)的預(yù)測等等。后端的部分讀入前端文本分析結(jié)果,并結(jié)合文本信息對輸出的語音進行建模。在合成過程中,后端會利用輸入的文本信息和訓(xùn)練好的聲學(xué)模型,生成語音信號。根據(jù)所采用的方法和框架不同,現(xiàn)階段的語音生成器主要分為波形拼接、參數(shù)生成和基于波形的端到端統(tǒng)計合成這三種形式?,F(xiàn)階段語音合成發(fā)展的主要目標(biāo)是進一步提高合成語音的清晰度與自然度、降低技術(shù)的復(fù)雜度等方面。TACOTRON是一個直接從文本合成語音的神經(jīng)網(wǎng)絡(luò)架構(gòu),它將各模塊放入一個黑箱,我們無需花費大量時間了解TTS中的各模塊或者專業(yè)領(lǐng)域知識,可直接通過深度學(xué)習(xí)訓(xùn)練出一個TTS模型。傳統(tǒng)TACOTRON模型后端通過Griffin-Lim算法合成語音,合成語音保真度相較于波形拼接、參數(shù)生成算法有著較大的提升,但是聲碼器部分依然保留了Griffin-Lim算法從語譜圖到聲音波形的轉(zhuǎn)換思路,合成語音的自然度還有很大的提升空間。本文首先分析了語音合成技術(shù)目前的難點,在此基礎(chǔ)上提出新的思路。我們選取Thchs30中文語料庫和LJSpeech英文語料庫進行模型訓(xùn)練,實現(xiàn)了中、英文語音合成。我們選擇TACOTRON模型作為基礎(chǔ)架構(gòu),并對其進行一定的改進,為了在不提高算法復(fù)雜度的前提下,提升語音合成的自然度,我們選擇WaveRNN網(wǎng)絡(luò)作為基礎(chǔ)架構(gòu)的聲碼器模塊。實驗證明改進的端到端網(wǎng)絡(luò)模型在保證了傳統(tǒng)模型合成速度的前提下,較大程度地提升了語音合成的自然度。本項目同時設(shè)計了友好的人機交互界面以及手機端APP的實現(xiàn)。本文詳細介紹了TACOTRON原理及WaveRNN算法,最后對系統(tǒng)結(jié)果進行測試分析。關(guān)鍵詞:TTS(文本到語音)、TACOTRON、WaveRNN、深度學(xué)習(xí)AbstractSpeechsynthesisisthetechniqueofconvertinganytextintospeech,calledTTS.Theresearchoflanguagesynthesistechnologyhasbeenmorethantwohundredyearsold,butthetrulypracticalspeechsynthesistechnologyhasbeendevelopedwiththeinnovationofcomputertechnologyanddigitalsignalprocessingtechnology.Thefront-endpartofatypicalspeechsynthesissystemmainlyanalyzestheinputtextandextractstheinformationneededforspeechmodeling,includingwordsegmentation,part-of-speechtagging,multi-worddisambiguation,word-to-speechconversion,prosodicstructureandparameterprediction.Theback-endpartreadsthefront-endtextanalysisresultsandmodelstheoutputspeechincombinationwiththetextinformation.Duringthesynthesisprocess,thebackendusestheinputtextinformationandthetrainedacousticmodeltogenerateaspeechsignal.Dependingonthemethodandframeworkused,thecurrentspeechgeneratorsaremainlydividedintowaveformstitching,parametergenerationandwaveform-basedend-to-endstatisticalsynthesis.Themaingoalofthedevelopmentofspeechsynthesisatthisstageistofurtherimprovetheclarityandnaturalnessofsynthesizedspeechandreducethecomplexityofthetechnology.TACOTRONisaneuralnetworkarchitecturethatsynthesizesspeechdirectlyfromtext.Wedon'tneedtospendalotoftimetounderstandthemodulesorprofessionaldomainknowledgeinTTS,wecantrainaTTSmodeldirectlythroughdeeplearning.ThetraditionalTACOTRONmodelbackendsynthesizesspeechthroughtheGriffin-Limalgorithm.Thesynthesizedspeechfidelityisgreatlyimprovedcomparedwiththewaveformstitchingandparametergenerationalgorithms,butthevocoderpartstillretainstheGriffin-LimalgorithmfromthespectrogramtoTheconversionofthesoundwaveform,thenaturalnessofthesynthesizedspeechhasalotofroomforimprovement.Thispaperfirstanalyzesthecurrentdifficultiesofspeechsynthesistechnology,andproposesnewideasonthisbasis.WeselectedtheThchs30ChinesecorpusandtheLJSpeechEnglishcorpusformodeltraining,andrealizedChineseandEnglishspeechsynthesis.WechosetheTACOTRONmodelastheinfrastructureandmadesomeimprovements.Inordertoimprovethenaturalnessofspeechsynthesiswithoutincreasingthecomplexityofthealgorithm,wechosetheWaveRNNnetworkasthevocodermoduleoftheinfrastructure.Experimentsshowthattheimprovedend-to-endnetworkmodelgreatlyimprovesthenaturalnessofspeechsynthesisunderthepremiseofensuringthespeedoftraditionalmodelsynthesis.Theprojectalsodesignedafriendlyhuman-computerinteractioninterfaceandtheimplementationofthemobileterminalAPP.ThispaperintroducestheTACOTRONprincipleandtheWaveRNNalgorithmindetail,andfinallytestsandanalyzesthesystemresults.Keywords:TTS(Text-To-Speech)、TACOTRON、WaveRNN、DeepLearning目錄TOC\o"1-3"第1章作品難點與創(chuàng)新 第1章作品難點與創(chuàng)新1.1作品難點從文本生成自然語音(語音合成,TTS)經(jīng)歷了幾十年的研究,仍是一項有挑戰(zhàn)的任務(wù)。在基于統(tǒng)計學(xué)的模型中通常需要實現(xiàn)一個文本前端來抽取豐富的語言學(xué)特征,持續(xù)時間模型,聲學(xué)特征預(yù)測模型和一個復(fù)雜的基于信號處理的聲碼器。這些子模塊不僅需要領(lǐng)域知識,在設(shè)計實現(xiàn)上也很困難。此外,由于這些子模型進行相互獨立的訓(xùn)練,每個組件的錯誤可能會復(fù)合。上述TTS系統(tǒng)的設(shè)計復(fù)雜性導(dǎo)致在構(gòu)建新模型的時候必須要進行大量的工程方面的努力。單元挑選和拼接式合成方法,是一項把預(yù)先錄制的語音波形的小片段縫合在一起的技術(shù),過去很多年中一直代表了最高水平。統(tǒng)計參數(shù)語音合成方法,是直接生成語音特征的平滑軌跡,然后交由聲碼器來合成語音,這種方法解決了拼接合成方法中出現(xiàn)的邊界人工痕跡的很多問題。然而由這些方法構(gòu)造的系統(tǒng)生成的語音與人類語音相比,經(jīng)常模糊不清并且不自然。TACOTRON作為集成的端到端TTS系統(tǒng)具有許多優(yōu)點:它可以減少繁重的特征工程需要,更容易對各種屬性(如說話者或語言)或情緒等高級功能進行豐富的調(diào)節(jié),對新數(shù)據(jù)的適應(yīng)也可能更容易,單個模型可能比多階段模型更穩(wěn)健。TACOTRON使用Griffin-Lim算法,會產(chǎn)生特有的人工痕跡并且合成的語音保真度較低。另一方面,Griffin-Lim算法是基于CPU實現(xiàn),無法實現(xiàn)實時語音合成。WaveRNN是一種強大的音頻生成模型。它適用于TTS,但由于其樣本級別的自回歸性質(zhì),訓(xùn)練速度會變得很慢。它還需要對現(xiàn)有TTS前端的語言特征進行調(diào)節(jié),因此不是端到端:它只取代聲碼器和聲學(xué)模型。因此,我們需要設(shè)計一個保真度高的實時端到端TTS系統(tǒng)。1.2作品創(chuàng)新點本文結(jié)合了TACOTRON和WaveRNN,組成統(tǒng)一的神經(jīng)網(wǎng)絡(luò)語音合成模型。在實現(xiàn)端到端合成TTS系統(tǒng)的優(yōu)點同時,后接WaveRNN聲碼器,提高了合成的語音的自然度。在全球一體化的今天,漢語與英語成為大部分人日常工作中使用最頻繁的語言,為了使得系統(tǒng)具有更高的普適性,我們選用了中文語料庫Thchs30和英文語料庫LJSpeech進行模型訓(xùn)練,同時實現(xiàn)了中文及英文的語音合成。為了提高用戶體驗,我們?yōu)樵撓到y(tǒng)設(shè)計了友好的人機交互界面,讓語音合成的實現(xiàn)接口化,操作簡單。

第2章方案論證與設(shè)計2.1語料庫的選擇我們選用了中文語料庫Thchs30和英文語料庫LJSpeech。兩種數(shù)據(jù)中,漢語數(shù)據(jù)屬于相對難以處理的數(shù)據(jù),漢字?jǐn)?shù)量龐大,因此考慮到用漢語拼音作為網(wǎng)絡(luò)訓(xùn)練的字符集,可以將字符集限制在a-z范圍內(nèi),很好的和英文字符集統(tǒng)一到了一起,為同時識別中文以及英文提供了可能在漢語的處理過程中,由于同音字較多,因此在處理過程中還需要通過分析上下文信息以確定相應(yīng)的同音字。Thchs30(TsinghuaChinese30hourdatabase)是清華大學(xué)語言與語言技術(shù)中心發(fā)布的開放式中文語音數(shù)據(jù)庫。Thchs30語料庫是在安靜的辦公室環(huán)境下,通過單個碳粒麥克風(fēng)錄取的,總時長約33.5h,共13388句話,每句平均20個字,平均時長9s。其選取了大容量的新聞,由30個會講流利普通話的大學(xué)生錄制。采樣率為16kHz,數(shù)據(jù)為16bit,這些錄音根據(jù)其文本內(nèi)容分為了四個部分,A(句子的ID是1~250),B(句子的ID是251~500),C(501~750),D(751~1000)。ABC三組包括30個人的10893句發(fā)音,用來做訓(xùn)練,D包括10個人的2496句發(fā)音,用來做測試。LJSpeech英語語料庫是一個開放式的英文語音數(shù)據(jù)集,由13100個簡短的音頻剪輯組成,其中的演講者閱讀7本非小說類書籍的段落。LJSpeech語料庫的總時長約24h,共13100句話,每句平均17個單詞,平均時長6.6s。語料庫中的每個音頻文件都是單通道16位PCMWAV,采樣率為22050Hz。將本文實驗需用的兩種語料庫對比如下:表2-1語料庫對比Thchs30LJSpeech語言中文英文采樣率(kHz)2216語量1338813100時長(h)33.524平均時長(s)96.62.2語音數(shù)據(jù)特征對于語音數(shù)據(jù)而言,從自然界中直接獲取的語音含有噪聲,且包含了大量的冗余信息,需對其進行一系列的預(yù)處理,然后將音頻信號中具有辨識度的特性提取出來,以壓縮數(shù)據(jù)處理量?;谟行院涂煽啃詢蓚€方面,特征參數(shù)一定要有很好的區(qū)分性,并且要具有較強的魯棒性。最常用的語音特征是梅爾倒譜系數(shù)(MelFrequencyCepstralCoefficient,MFCC),其是在Mel標(biāo)度頻率域提取出來的倒譜參數(shù),Mel標(biāo)度描述了人耳頻率的非線性特性,更符合人耳的聽覺特性。梅爾倒譜系數(shù)是在1980年由Davis和Mermelstein提出的,從那時起,作為一種簡單可用并且切合人主觀感受的音頻特性,MFCC一直廣泛地應(yīng)用于語音識別領(lǐng)域。(1)預(yù)加重研究表明,人在發(fā)聲過程中發(fā)聲器會對頻譜造成影響,使得信號高頻部分受到壓制,通常當(dāng)頻率高于800Hz的頻段會有6dB的衰減。因此,預(yù)加重的目的在于提升高頻部分,使信號的頻譜變得平坦,保持在低頻到高頻的整個頻帶中,能用同樣的信噪比求頻譜。同時,也是為了消除發(fā)生過程中聲帶和嘴唇的效應(yīng),來補償語音信號受到發(fā)音系統(tǒng)所抑制的高頻部分,突出高頻的共振峰。預(yù)加重操作的時域表達式與z域表達式如下:(2.1)(2.2)其中為原始信號的第n個采樣點,為預(yù)加重系數(shù),其值一般介于0.94-0.97之間。(2)分幀與加窗由于語音信號的非平穩(wěn)性,其在不同的時間點由于說話內(nèi)容的不同而形成不同的波形,因此將語音信號分割成若干段短時間信號,更利于對其波形進行觀察。分幀是將語音信號分成若干幀,把N個采樣點作為一個觀測單位為一幀,對信號以固定長度(通常為10ms-30ms)進行分割,此時我們可以認(rèn)為短時間內(nèi)的語音信號是平穩(wěn)的。為了確保幀與幀之間更加平滑的過渡,采樣時讓兩個相鄰的幀之間有一定程度的重疊,這一重疊部分即為幀移,其長度通常取每一幀長度的1/2或1/3。加窗即讓每幀語音信號與窗函數(shù)相乘,其目的主要有兩個:一是降低兩相鄰幀間的不連續(xù)性,避免出現(xiàn)吉布斯效應(yīng);二是使原本沒有周期的語音信號呈現(xiàn)出周期函數(shù)的部分特征。若選用漢明窗:(2.3)假設(shè)分幀后的信號為,N為幀的大小,則經(jīng)過加窗后的信號為(2.4)(3)快速傅里葉變換(FastFourierTransform,F(xiàn)FT)由于信號在時域上的變換很難看出信號的特性,所以通常將它轉(zhuǎn)換為頻域上的能量分布來觀察,不同的能量分布代表不同語音信號的特性。所以在乘上漢明窗后,每幀還必須再經(jīng)過快速傅里葉變換以得到在頻譜上的能量分布。語音信號的DFT及語音信號的功率譜分別為:(2.5)(2.6)式中y(n)為分幀加窗后的語音信號,N表示傅里葉變換的點數(shù)。(4)Mel濾波器組人的聽覺系統(tǒng)是一個特殊的非線性系統(tǒng),它響應(yīng)不同頻率信號的靈敏度是不同的。因此需要將傅里葉譜變換到梅爾頻譜,梅爾頻率的變換比較符合人的直觀感受。傅里葉頻率和梅爾頻譜的關(guān)系可表示為:(2.7)圖2-1傅里葉頻率與梅爾頻率的關(guān)系將梅爾頻率上等間隔采樣的點映射回頻率域后可獲得多個梅爾濾波器,此濾波器在梅爾頻率內(nèi)是等寬的,但在頻率域上則表現(xiàn)為隨著頻率增大而逐漸變寬的三角形。此三角帶通濾波器能夠?qū)︻l譜進行平滑化,并消除諧波的作用,突顯出原先語音的共振峰。定義一個有M個濾波器的濾波器組,通常取22-26,本文取M=24,其每一個子濾波器的頻率響應(yīng)可定義為:(2.8)將(2.3)中的頻譜通過Mel濾波器組得到Mel頻譜,將線形的自然頻譜轉(zhuǎn)換為體現(xiàn)人類聽覺特性的Mel頻譜。(5)計算每個濾波器組輸出的對數(shù)能量將能量譜與梅爾濾波器相乘后進行數(shù)值積分后取對數(shù)可得到:(2.9)(6)離散余弦變換(DiscreteCosineTransform,DCT)經(jīng)離散余弦變換得到MCFF系數(shù):(2.10)將上述的對數(shù)能量帶入離散余弦變換,求出L階的Mel-scaleCepstrum參數(shù)。L階指MFCC系數(shù)階數(shù),通常取12-16。2.3TTS算法對比2.3.1Griffin-Lim算法Griffin-Lim算法是在僅已知幅度譜、未知相位譜的條件下重建語音的算法。Griffin-Lim算法將Seq2Seq的輸出轉(zhuǎn)化成被合成為波形的目標(biāo)表達,使得估計得到的信號傅里葉變換的幅度值與原始信號傅里葉變換的幅度值的平方誤差達到最小。通過迭代重構(gòu)信號的相位信息和已知的幅度信息,得到語音信號的估算值。當(dāng)兩者的差值達到一個比較小的值后,則停止迭代,就認(rèn)為第i次迭代后所獲得的語音信號是從信號傅里葉變換幅度值重構(gòu)的原始語音信號。對于不同的迭代次數(shù),將原始波形與重構(gòu)波形對比如下圖,可得到在這種迭代算法下D會不斷下降,即使原來不依賴原始相位,我們也能很大程度上還原波形。圖2-2原始波形與重構(gòu)波形對比2.3.2WaveRNNWaveRNN模型是具有雙softmax層的單層RNN,旨在有效地預(yù)測16位原始音頻樣本。對WaveRNN模型進行質(zhì)量與采樣性能測評如下:在單人北美英語文字轉(zhuǎn)語音數(shù)據(jù)庫上進行測試,輸入是語言特征向量,輸出是24kHz,16位的波形。在驗證集上進行三項評估:負對數(shù)似然函數(shù)(NLL),人為評價的平均主觀意見分(MOS),以及人為評價模型之間的A/B對比測試(分?jǐn)?shù)在-3非常差和+3非常好之間)。表2-2給定模型/WaveRNN模型的對比測試結(jié)果資料來源:EfficientNeuralAudioSynthesis模型/WaveRNN模型更好中立更差總計重要性WAVENET512(60)1455291260.02±0.08否SPARSEWR384(2048/96.4%)139441220-0.14±0.08是SPARSEWRMOBILE71456237-0.40±0.09是SUBSCALEWR1024(16×)113558129-0.03±0.05否從A/B對比試驗中可以看出,僅有896單元的WaveRNN與最大的

WaveNet

達到了相當(dāng)?shù)?/p>

NLL評分,而且音頻保真度之間也沒有很大的差距,而且

MOS

評分均很高。WaveRNN

在產(chǎn)生每一個

16

位樣本時,僅用了N=5次的矩陣矢量相乘,就達到了這樣的表現(xiàn)性能。而WaveNet用了兩層網(wǎng)絡(luò),每層

30

個殘差塊(residual

block),即

N=30*2=60

次矩陣矢量相乘。我們在實現(xiàn)過程中將TACOTRON模塊聲碼器部分的Griffin-Lim實現(xiàn)替換為WaveRNN模型的聲碼器,來高效率地合成高質(zhì)量語音。

第3章原理分析3.1TACOTRONTACOTRON系統(tǒng)通過一個循環(huán)Seq2Seq結(jié)構(gòu)的特征預(yù)測網(wǎng)絡(luò),把字符向量映射到線性頻譜圖為了最終合成出幅度譜圖,TACOTRON使用Griffin-Lim算法估計相位,然后施加一個短時傅里葉逆變換。圖3-1TACOTRON結(jié)構(gòu)圖3.1.1Seq2Seq架構(gòu)一般模型的輸入特征通常是一個固定大小的矩陣,機器翻譯輸入的句長不固定,而輸入的長度必須一致。Seq2Seq結(jié)構(gòu)的輸入序列和輸出序列長度是不固定的,因而可以解決這個問題。通常我們把RNN的輸入稱為“上下文”,通過編碼器產(chǎn)生表示此上下文的向量C。圖3-2Seq2Seq網(wǎng)絡(luò)結(jié)構(gòu)Seq2Seq網(wǎng)絡(luò)通常包括兩部分:編碼器:主要用于處理RNN的輸入序列X={x(1),x(2)...x(nx)},將最后一個RNN的單元狀態(tài)來作為最終的輸出的上下文C。解碼器:它以編碼器的輸出C作為輸入,以固定長度的向量作為條件,產(chǎn)生輸出序列Y={y(1),y(2)...y(ny)}。這種架構(gòu)輸入序列的長度不需和輸出序列的長度保持一致。而編碼器的輸出上下文C的維度太小,因此它很難概括長序列完整的語義細節(jié)信息。引入注意機制并讓C成為一個可變長度的序列,可以解決這個問題。3.1.2注意機制注意機制主要包括三個部分:編碼器:用于讀取原始數(shù)據(jù),并將其轉(zhuǎn)化成分布式的表示,其中一個特征向量與一個單詞相互對應(yīng),這里使用的結(jié)構(gòu)為RNN;存儲器:主要用于存儲編碼器輸出的特征向量列表;解碼器:利用存儲器的內(nèi)容,順序的執(zhí)行任務(wù),每次任務(wù)聚焦于某個或幾個具有不同權(quán)重的內(nèi)容;注意機制的結(jié)構(gòu)如下圖所示:圖3-3注意機制示意圖對上下文向量C有: (3.1)其中h(t)為編碼器輸出的特征向量,在編碼器中使用了RNN,h(t)即為RNN中隱藏層的狀態(tài)S,α(t)為權(quán)重。權(quán)重向量在譯碼器每次進行預(yù)測時都不一樣,計算方法如下:(3.2)其中的eij代表了編碼器的第j個輸入與譯碼器的第i個輸出的匹配程度,這里把匹配程度轉(zhuǎn)化為了概率來表示。3.1.3TACOTRON結(jié)構(gòu)如圖3-1所示,注意機制連接了編碼器與譯碼器模塊用于預(yù)測線性頻譜的幀序列,后處理網(wǎng)絡(luò)模塊通過Griffin-Lim合成語音。編碼器編碼器的目標(biāo)是提取文本的高魯棒性序列表示。編碼器的輸入是字符序列,其中每個字符表示為one-hot矢量并嵌入到連續(xù)矢量中。然后對每個嵌入施加一組非線性變換,統(tǒng)稱為前網(wǎng)。前網(wǎng)是一個3層的網(wǎng)絡(luò)結(jié)構(gòu),其主要功能是對輸入進行一系列的非線性的變換,這樣有助于模型收斂和泛化。它有兩個隱藏層,層與層之間的連接均是全連接;第一層的隱藏單元數(shù)目與輸入單元數(shù)目一致,第二層的隱藏單元數(shù)目為第一層的一半。圖3-4CBHG結(jié)構(gòu)圖CBHG模塊將前網(wǎng)輸出轉(zhuǎn)換為最終編碼器表示以便被注意機制模塊使用。CBHG是一個功能強大的模塊,用于從序列中提取表示信息。輸入序列首先會經(jīng)過一個卷積層,它有K個大小不同的1維的濾波器,其大小為1,2,3…K。這些大小不同的卷積核提取了長度不同的上下文信息。然后,將經(jīng)過不同大小的k個卷積核的輸出堆積在一起。進而沿著時間軸對每一個時間步的結(jié)果進行最大池化,以增加局部不變性。經(jīng)過池化之后,會再經(jīng)過兩層一維的卷積層。卷積輸出被饋送到多層高速網(wǎng)以提取高級特征。最后,在頂部堆疊雙向門控循環(huán)單位(GRU)以及RNN以提取前向和后向文本特征。譯碼器譯碼器是一個自回歸的循環(huán)神經(jīng)網(wǎng)絡(luò),它從經(jīng)過編碼的輸入序列預(yù)測輸出聲譜圖,一次預(yù)測一幀。譯碼器模塊主要分為三部分:前網(wǎng)、注意-RNN、譯碼-RNN。前網(wǎng)的結(jié)構(gòu)與編碼器中的前網(wǎng)相同,主要是對輸入做一些非線性變換。注意-RNN將前網(wǎng)的輸出和注意機制模塊的輸出作為輸入,經(jīng)過具有垂直殘余連接的堆棧GRU單元后輸出到譯碼-RNN中。譯碼-RNN的輸出為輸入與經(jīng)過GRU單元輸出之和。殘余連接可以加速收斂。雖然整段文本的原始頻譜圖可直接預(yù)測,但它是一種高度冗余的表示??蓪eq2Seq譯碼目標(biāo)設(shè)定為不同于原始語譜圖的輸出目標(biāo),之后再進行波形合成。Seq2Seq譯碼目標(biāo)可以是一種高度壓縮的信息表示,只要它能為反演過程提供足夠的可懂度和韻律信息,即可實現(xiàn)修復(fù)或訓(xùn)練。由于每個字符在發(fā)音的時候,可能對應(yīng)了多個幀,因此每個GRU單元輸出為多個幀的音頻文件。該模型可以減少訓(xùn)練模型的大小,同時減少了訓(xùn)練的時間,收斂速度大大提高。后處理網(wǎng)絡(luò)后處理網(wǎng)絡(luò)的任務(wù)是將Seq2Seq目標(biāo)轉(zhuǎn)換為可以用于波形合成的目標(biāo)。我們使用Griffin-Lim作為合成器,后處理網(wǎng)絡(luò)學(xué)習(xí)如何預(yù)測在線性頻率范圍內(nèi)采樣的頻譜幅度,進而把線性頻譜特征表達逆變換為時域波形樣本。后處理網(wǎng)的另一個作用是它可以看到完整的解碼序列。與始終從左到右運行的Seq2Seq相比,它具有前向和后向信息以校正每個單獨幀的預(yù)測誤差。在這項工作中,我們使用CBHG模塊進行后處理網(wǎng)絡(luò)。3.2WaveRNN3.2.1WaveRNN模型概述端到端的語音合成模型相較于傳統(tǒng)的語音合成算法在音質(zhì)方面得到了前所未有的提高,沒有了傳統(tǒng)算法合成語音濃厚的“機器味”,同時還可以根據(jù)深度網(wǎng)絡(luò)設(shè)計完備的訓(xùn)練字符集,使機器學(xué)會有情感的發(fā)聲。但是高質(zhì)量的語音合成需要消耗大量的計算資源,對于實時性要求較高的項目任務(wù),可能還需要在質(zhì)量和計算資源消耗方面做一個均衡。Google針對實時高質(zhì)量的音頻合成任務(wù)提出了WaveRNN網(wǎng)絡(luò)模型架構(gòu)。該模型設(shè)計的目標(biāo)為:增加音頻序列模型的采樣效率,而不損失模型的性能。(3.3)采樣花費時間由上述公式定義,其中:采樣花費時間音頻樣例單元網(wǎng)絡(luò)模型深度樣例單元計算時間每層網(wǎng)絡(luò)所需運行時間3.2.2模型參數(shù)分析與設(shè)計降低網(wǎng)絡(luò)深度減少采樣花費時間RNN的目的使用來處理序列數(shù)據(jù)。在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)模型中,是從輸入層到隱含層再到輸出層,層與層之間是全連接的,每層之間的節(jié)點是無連接的。但是這種普通的神經(jīng)網(wǎng)絡(luò)對于很多問題卻無能無力。例如,你要預(yù)測句子的下一個單詞是什么,一般需要用到前面的單詞,因為一個句子中前后單詞并不是獨立的。RNNs之所以稱為循環(huán)神經(jīng)網(wǎng)路,即一個序列當(dāng)前的輸出與前面的輸出也有關(guān)。具體的表現(xiàn)形式為網(wǎng)絡(luò)會對前面的信息進行記憶并應(yīng)用于當(dāng)前輸出的計算中,即隱藏層之間的節(jié)點不再無連接而是有連接的,并且隱藏層的輸入不僅包括輸入層的輸出還包括上一時刻隱藏層的輸出。理論上,RNNs能夠?qū)θ魏伍L度的序列數(shù)據(jù)進行處理。但是在實踐中,為了降低復(fù)雜性往往假設(shè)當(dāng)前的狀態(tài)只與前面的幾個狀態(tài)相關(guān)??梢钥闯鯮NN網(wǎng)絡(luò)層不是當(dāng)前輸入的簡單的線性輸出,該網(wǎng)絡(luò)的輸出取決于前面幾個網(wǎng)絡(luò)層的狀態(tài)特征,從而可以很好的處理時序關(guān)聯(lián)的文本,語音序列。WaveRNN的設(shè)計就是借鑒了RNN網(wǎng)絡(luò)這樣的特點,即單層循環(huán)網(wǎng)絡(luò)層可以輸出對文本的高非線性變換。WaveRNN由單層RNN和雙softmax層構(gòu)成,softmax層用于預(yù)測bit位音頻樣本。圖3-5WaveRNN結(jié)構(gòu)圖代表上一時刻狀態(tài)的粗采樣樣本數(shù)據(jù),代表上一時刻的細采樣樣本數(shù)據(jù)。每一個部分分別輸入對應(yīng)的softmax層,對細樣本的預(yù)測是基于粗樣本的。R與粗樣本和細樣本同時相乘,門輸出只用于估算粗樣本,然后采樣得到。從中采樣得到后,估算細樣本,然后采樣得到。權(quán)重稀疏化減少采樣計算時間 減少網(wǎng)絡(luò)的參數(shù)數(shù)量可以減少采樣所需要的計算時間,如何在給定參數(shù)數(shù)量情況下最優(yōu)化表現(xiàn)性能,WaveRNN給出了稀疏化權(quán)重的策略。在參數(shù)固定時,大型稀疏WaveRNN比小型密集WaveRNN表現(xiàn)性能要好,而且這一對比關(guān)系在稀疏程度高達96%時也能保持。圖3-6固定參數(shù)數(shù)量NLL與稀疏度變化曲線資料來源:EfficientNeuralAudioSynthesis子尺度WaveRNN減少單次訓(xùn)練樣本數(shù)量圖3-7SubscaleWaveRNN依賴機制資料來源:EfficientNeuralAudioSynthesis圖中每一個方塊對應(yīng)一個bit位采樣樣本。子尺度方法首先將張量分割成B個交錯樣本的子張量。每個子張量基于之前生成的子張量的過去和未來樣本生成。過去范圍不受限制,而未來范圍為F,根據(jù)條件網(wǎng)絡(luò)的接受野而定,然后應(yīng)用批采樣。最后的張量由生成的子張量重組而成。批采樣:一個尺度為L的張量折疊成B個子張量,每一個尺度為L/B。子尺度的方法可以在一個batch中一次生成多個樣本。由于每個子張量的生成基于前一個子張量,在實際中只需要相對較小的未來狀態(tài)視野(futurehorizonF)。下一個子張量的生成可以在前一個子張量的前F個樣本生成后立刻開始。GRU網(wǎng)絡(luò)層解決長序列依賴問題GRU即GatedRecurrentUnit。為了克服RNN無法很好處理遠距離依賴而提出了LSTM,而GRU則是LSTM的一個變體,當(dāng)然LSTM還有有很多其他的變體。GRU保持了LSTM的效果同時又使結(jié)構(gòu)更加簡單,所以它非常流行。而GRU模型如下,它只有兩個門了,分別為更新門和重置門,即圖中的ut和rt。更新門用于控制前一時刻的狀態(tài)信息被帶入到當(dāng)前狀態(tài)中的程度,更新門的值越大說明前一時刻的狀態(tài)信息帶入越多。重置門用于控制忽略前一時刻的狀態(tài)信息的程度,重置門的值越小說明忽略得越多。GRU模型單元如下圖所示:圖3-8GRU模型單元 WaveRNN模型中引入GRU網(wǎng)絡(luò)連接層以更好的解決該網(wǎng)絡(luò)模型對于長序列依賴問題的解決,可以使得網(wǎng)絡(luò)在長時間序列即長輸入音頻采樣序列上表現(xiàn)出更好的時間軸上的因素級別的關(guān)聯(lián)。結(jié)合GRU單元,單層RNN網(wǎng)絡(luò)的數(shù)學(xué)模型分析如下:(3.4)(3.5)(3.6)(3.7)(3.8)(3.9)(3.10)如圖3-5所示,當(dāng)前粗采樣數(shù)據(jù)只送入網(wǎng)絡(luò)的細采樣分析部分,網(wǎng)絡(luò)的R部分即循環(huán)部分根據(jù)GRU單元的更新門和重置門計算響應(yīng)的向量權(quán)重。告知網(wǎng)絡(luò)單元對此刻輸入?yún)?shù)的參量變化,以及對前一時刻網(wǎng)絡(luò)層次信息的篩選和保留程度,以便更好地對下一時刻的輸出做出參數(shù)的調(diào)整。3.3改進的TACOTRONTACOTRON是一個從字符序列生成幅度譜圖的Seq2Seq架構(gòu),它僅用輸入數(shù)據(jù)訓(xùn)練出一個單一的神經(jīng)網(wǎng)絡(luò),用于替換語言學(xué)和聲學(xué)特征的生成模塊,從而簡化了傳統(tǒng)語音合成的流水線。為了最終合成出幅度譜圖,TACOTRON使用Griffin-Lim算法估計相位,然后施加一個短時傅里葉逆變換。Griffin-Lim算法會產(chǎn)生特有的人工痕跡并且合成的語音保真度較低,我們將其替換成WaveRNN神經(jīng)網(wǎng)絡(luò)聲碼器。本文將TACOTRON與WaveRNN優(yōu)勢相結(jié)合組成一個統(tǒng)一的神經(jīng)網(wǎng)絡(luò)語音合成模型。基于Seq2Seq的TACOTRON模型用來生成梅爾聲譜圖,后接一個WaveRNN聲碼器。該系統(tǒng)允許直接使用字符序列和語音波形數(shù)據(jù)進行端到端的訓(xùn)練學(xué)習(xí)語音合成,它合成的語音的自然度接近了真人語音。圖3-9改進的TACOTRON結(jié)構(gòu)

第4章軟件設(shè)計與流程根據(jù)以上原理分析,我們設(shè)計了代碼實現(xiàn)部分。硬件參數(shù)如下:CPU:i7-9750、顯卡:GTX1650、內(nèi)存:8GB。4.1前期數(shù)據(jù)處理表4-1訓(xùn)練音頻文件處理參數(shù)設(shè)置參數(shù)數(shù)值采樣速率22050FFT點數(shù)2048位深度9bits梅爾系數(shù)80音頻預(yù)處理方法實現(xiàn)(部分示例):訓(xùn)練數(shù)據(jù)的線性頻譜和梅爾頻譜4.2模型設(shè)計4.2.1.TACOTRON模型參數(shù)設(shè)計表4-2TACOTRON模型參數(shù)設(shè)計模型參數(shù)數(shù)值詞向量嵌入維度256編碼維度128解碼維度256LSTM維度512Pre-Net維度128Droupout0.5代碼實現(xiàn)(部分示例):TACOTRON類定義及初始化函數(shù):前向傳播方法實現(xiàn):4.2.2WaveRNN模型參數(shù)設(shè)計表4-3WaveRNN模型參數(shù)設(shè)計模型參數(shù)數(shù)值上采樣系數(shù)(5,5,11)RNN維度512粗/細采樣維度512計算維度(R)128代碼實現(xiàn)(部分示例):定義WaveRNN類,并設(shè)計初始化函數(shù):定義前向傳播方法:

第5章系統(tǒng)測試與誤差分析英語和漢語前期數(shù)據(jù)預(yù)處理有著些許不同,英文標(biāo)注主要有A-Z,a-z以及數(shù)字常用標(biāo)點符號等組成。而漢字本身有2-3萬個,窮舉的話太多,還有很多同音字,所以我們使用漢語拼音作為字符標(biāo)注是一種可行方案,其中數(shù)字1-5分別表示拼音的一聲調(diào),二聲調(diào),三聲調(diào),四聲調(diào)以及輕聲。所謂的端到端<文本,聲譜>配對,其實就是要讓機器學(xué)會將每一個包括空格和標(biāo)點在內(nèi)的字符集對應(yīng)到(梅爾頻譜或線性頻譜)的某幾幀。5.1模型訓(xùn)練數(shù)據(jù)表5-1模型訓(xùn)練數(shù)據(jù)數(shù)據(jù)集樣本數(shù)量LJSpeech10177Thchs30133885.2LJSpeech模型分析圖5-1模型訓(xùn)練初期Alignment圖及梅爾頻譜圖左圖為訓(xùn)練初期模型的Alignment圖示,該圖線性程度越高以及對應(yīng)單元顏色亮度越大說明模型訓(xùn)練效果越好。右圖為梅爾頻譜的顯示情況,此刻該模型還沒有學(xué)會很好分類各音素單元,所以圖示頻譜混亂沒有規(guī)則。我們可以通過Aligment圖示以及Loss指標(biāo)對模型進行實時的訓(xùn)練監(jiān)督。5.2.1TACOTRON模型最后的訓(xùn)練結(jié)果圖示如下圖5-2訓(xùn)練結(jié)果圖可以看出Aligment圖示線性程度良好,且音素單元亮度明晰,說明合成效果較好,沒有嘈雜的背景噪聲。圖5-3網(wǎng)絡(luò)訓(xùn)練loss圖模型在20ksteps下可以出現(xiàn)能分辨的語言合成,250k之后loss基本不變,模型訓(xùn)練完成。示例:輸入“Tobeornottobethisisaquestion”圖5-4示例訓(xùn)練結(jié)果圖語音合成模型參數(shù)總量:11.088M。5.2.2TACOTRON+WaveRNN模型該模型與TACOTRON模型最大的區(qū)別在于最后語音合成階段。根據(jù)WaveRNN模型的原理分析,我們設(shè)計了代碼實現(xiàn)部分可以自定義設(shè)計實現(xiàn)子尺度下Batch(批采樣)精度。可以通過設(shè)置unbatched參數(shù)實現(xiàn)批采樣,集保留最高品質(zhì)的音效,但是相應(yīng)的要增加合成語音的時長。相反可以根據(jù)不同的—batched參數(shù)設(shè)計不同數(shù)值大小,在合成效率和合成質(zhì)量上做合理地取舍。示例:輸入“Tobeornottobethisisaquestion”unbatched(batchsize=1)圖5-5示例設(shè)置unbatched(batchsize=1)參數(shù)訓(xùn)練結(jié)果圖輸入“Tobeornottobethisisaquestion”batched9(batchsize=9)GenRate參數(shù)可以清晰地指示合成需要的時間縮短為unbatched的2.6/0.3=8.7倍,大小約等于batchsize的倍數(shù)。同時從Aligment圖示可以看出,合成效果基本沒有差別。圖5-6示例設(shè)置unbatched(batchsize=9)參數(shù)訓(xùn)練結(jié)果圖語音合成模型參數(shù)總量:4.234M5.3Thchs30漢語言合成漢語言合成相比于英文語音合成前期數(shù)據(jù)處理階段需要對輸入漢字進行拼音劃分和音調(diào)標(biāo)注,具體實現(xiàn)如下代碼:表5-2合成語音參數(shù)分析參數(shù)數(shù)值采樣速率24000通道數(shù)量1采樣寬度2幀速率24000總幀數(shù)84424時長(s)3.518下圖為訓(xùn)練1000step時候的Alignment圖示。圖5-7Alignment圖(訓(xùn)練1000step)下圖為訓(xùn)練92000step時候的Alignment圖示。圖5-8Alignment圖(訓(xùn)練92000step)可以看出此時模型線性程度較好,說明模型訓(xùn)練有效。示例:輸入“南京航空航天大學(xué)電子信息工程學(xué)院”圖5-9合成時域波形圖圖5-10合成語音頻譜圖

第6章客戶端設(shè)計6.1安卓端APP設(shè)計開發(fā)工具:AndroidStudio開發(fā)語言:Java測試平臺:Android9.0軟件設(shè)計實現(xiàn)手機客戶端可以和同在一局域網(wǎng)下的Python服務(wù)器端進行信息交互和指令控制,客戶端和服務(wù)端程序執(zhí)行流程如下:圖6-1APP軟件系統(tǒng)框圖主要界面展示: 圖6-2APP主界面框架設(shè)計主要功能介紹:軟件名稱:ITalk軟件主要功能分為三個模塊:聽聞館:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論