王志超 吳 浩,2 李 棟 劉益岑
(1.四川輕化工大學自動化與信息工程學院 自貢 643000)(2.人工智能四川省重點實驗室 自貢 643000)(3.國網(wǎng)四川省電力公司電力科學研究院 成都 610000)
語音合成(Speech Synthesis)是通過機械、電子方法產(chǎn)生和人類說話聲音相似的語音技術。又名文本轉(zhuǎn)換語音技術TTS(Text to Speech)[1]。它可以應用于各種生活場景之中,例如汽車導航、音樂合成以及為視力受損人士提供更便利的服務[2]。
在語音合成技術的發(fā)展歷史中,語音合成技術隨著時代與科技發(fā)展逐漸變得更加智能與可靠。傳統(tǒng)語音合成方法步驟繁瑣,要求專業(yè)知識背景強,對于沒有聲學和統(tǒng)計學基礎的從業(yè)者具有很高的準入門檻。在傳統(tǒng)語音合成系統(tǒng)中,主要分為前端和后端兩大部分[3~4]。
前端針對輸入的文本進行預處理,例如文本正則化(text normallization):將輸入的文本中包含的數(shù)字、英文字母轉(zhuǎn)化為中文文字等;文本轉(zhuǎn)音素(text to phoneme):在語音合成系統(tǒng)中,我們輸入的是中文文字,但是計算機并不會直接識別文字,所以需要提前將文字轉(zhuǎn)換為音素的形式。
后端合成語音傳統(tǒng)方法為參數(shù)合成或拼接式合成。參數(shù)合成方法指通過數(shù)學方法對語料庫錄音進行建模,提取已有錄音頻譜、時長信息等特征,構(gòu)建文本序列映射到語音特征的映射關系[5]。在合成階段通過時長(duration)模型和聲學模型預測聲學特征參數(shù),最后利用聲碼器(vocoder)合成波形[6]。這類方法所需錄音數(shù)據(jù)量小,合成語音平滑,但缺點是太過機械不夠自然[7]。拼接式合成方法是通過在錄音室或其他專業(yè)器械幫助下預先錄制大量音頻,針對對應的音節(jié)音素,從語料庫中挑選出適當語音單元進行參數(shù)合成。拼接法需要大量錄音來構(gòu)建語料庫才能合成效果較好的音頻,拼接法的優(yōu)點是音質(zhì)較好并且擁有一定情感,但缺點是字與字之間缺乏平滑過渡,不自然。
隨著近幾年機器學習技術的進步,語音合成技術也從傳統(tǒng)合成方法轉(zhuǎn)變,出現(xiàn)了一大批基于深度學習的合成方法。深度學習因為它獨有的可學習的特性,使合成出來的語音更加自然、平順,更加符合人類的聽覺習慣。文獻[8]是由谷歌公司提出的Tacotron 端到端語音合成系統(tǒng),其基于seq-to-seq自回歸模型[9],采用Griffin-lim 作為聲碼器進行音頻合成[10],這是第一個真正意義上的輸入文本直接輸出語音的端到端語音合成系統(tǒng)[11],簡化了傳統(tǒng)語音合成步驟,但其訓練速度較慢,且因聲碼器在合成音頻中會丟失大量相位信息,所以音頻質(zhì)量得不到較好保證。文獻[12]是谷歌公司提出的第二代Tacotron,它的模型架構(gòu)中舍去了CBHG(Convolution Bank Highway Network Bidirectional Gated Recurrent Unit)模塊,使用了位置敏感注意力機制[13],并將聲碼器更改為WaveNet[14]。得益于WaveNet聲碼器,音頻合成質(zhì)量明顯提升。但受制于自回歸模型架構(gòu),訓練速度依然緩慢。文獻[15]將自然語言處理領域大放異彩的Transformer 結(jié)構(gòu)運用在語音合成領域,使用多頭注意力機制來代替速度較慢的RNN(Recurrent Neural Network)[16]網(wǎng)絡和原始的注意力機制。編碼器和解碼器在隱藏層是平行結(jié)構(gòu),這樣可以有效提升訓練效率。但模型在獲取音頻特征時存在損失,合成音頻效果較差。其他語音合成模型還包括Deep Voice1[17]、Deep voice2[18]等。
針對以上語音合成方法訓練速度慢、音頻質(zhì)量不高等問題,本文提出了一種基于非自回歸模型的中文語音合成方法。模型采用多頭注意力機制和并行化編解碼器提高合成效率,利用可變信息適配器添加音頻特征使梅爾頻譜擁有更豐富特征信息,提升了所合成語音質(zhì)量。并將生成對抗網(wǎng)絡應用在聲碼器中,成功合成了高質(zhì)量音頻。
本文所提出的基于非自回歸模型的語音合成系統(tǒng),由三大部分:前端處理、聲學模型和聲碼器組成。模型結(jié)構(gòu)如圖1所示。
圖1 模型結(jié)構(gòu)圖
前端處理負責將輸入的中文漢字轉(zhuǎn)換為最小聲音單元:音素。再將音素輸入到聲學模型中,經(jīng)過編解碼器轉(zhuǎn)換,音素序列由解碼器輸出為梅爾頻譜。聲碼器由生成器和判別器組成,利用生成器生成音頻波形,判別器將真實音頻與合成音頻進行判斷,得以輸出高質(zhì)量的合成音頻。
在神經(jīng)網(wǎng)絡中,機器并不能直接識別輸入的中文漢字,要利用模型合成中文音頻,第一步是將漢字轉(zhuǎn)換為音素。前端處理主要包括文本規(guī)范化、漢字轉(zhuǎn)拼音、拼音轉(zhuǎn)音素。在進行文本規(guī)范化時,主要針對多音字、符號、日期、時間等進行規(guī)范化處理。例如句號標記為長時間停頓,逗號標記為短時間停頓;2020 年10 月1 日轉(zhuǎn)換為二零二零年十月一日;16:34 轉(zhuǎn)換為十六點三十四分等。漢字轉(zhuǎn)拼音則使用內(nèi)嵌《漢語拼音方案》工具pypinyin 進行轉(zhuǎn)換,同時可在轉(zhuǎn)換時提供該漢字聲調(diào)。音素采用國際音標(IPA)標記,將拼音轉(zhuǎn)為音素更有利于合成語音質(zhì)量的提升。由于漢語具有多音字的特殊性,多音字在轉(zhuǎn)換時不容易得到正確讀音,需構(gòu)建多音字詞庫,在文字轉(zhuǎn)拼音時與多音字詞庫進行匹配,輸出正確讀音。
聲學模型部分由編碼器、可變信息適配器、梅爾頻譜解碼器組成用以生成梅爾頻譜。結(jié)構(gòu)如圖2 所示。
圖2 聲學模型結(jié)構(gòu)圖
將前端處理后的音素作為輸入,通過獨熱編碼(one-hot encoding)將音素符號編碼為向量轉(zhuǎn)換到音素嵌入層。獨熱編碼器將總的音素個數(shù)表示為N,單個音素使用N-1 個0 和單個1 的向量來表示。本文中的非自回歸模型的注意力機制并沒有位置信息,為了注意詞與詞之間的位置關系,針對位置不敏感的模型需采用相對位置編碼,使用正余弦函數(shù)表示絕對位置,相乘得到相對位置。
這里PE表示二維矩陣,pos為詞語在句子中的位置,2i和2i+1 表示詞向量位置,dmodel是每個一幀的詞向量維數(shù)。
編碼器與解碼器均由包含自注意力機制和一維卷積網(wǎng)絡4 個前饋網(wǎng)絡組成,前饋網(wǎng)絡中分別在多頭注意力機制和一維卷積網(wǎng)絡后添加了殘差網(wǎng)絡和層歸一化。通過前饋網(wǎng)絡將音素序列轉(zhuǎn)換為隱藏序列,音素序列作為前饋網(wǎng)絡的輸入,利用自注意力機制中的多頭注意力可以注意整個序列的上下文信息。多頭注意力機制是注意力模型中的一種,注意力模型由Q(query) 、K(key) 、V(value)組成,本質(zhì)上是對V進行加權(quán)求和,而Q和K是對V進行權(quán)重的計算。多頭注意力中創(chuàng)建query、key、value三個向量,各自進行相應的線性變換輸入到放縮點積注意力中,如下所示:
其中W為待訓練的權(quán)值參數(shù)矩陣,有h個頭即有h個維度,每個維度都為一個向量,即每次Q、K、V進行線性變換時參數(shù)矩陣W均隨之變換,最后做h次放縮點積參數(shù)后進行線性變換作為多頭注意力的結(jié)果。
可變信息適配器[19]由時長預測器、長度規(guī)范器、音高預測器和能量預測器組成,它從真實錄音中提取音頻的時長、音高和能量信息添加到由編碼器輸出的隱藏序列中用以預測目標語音。一個音素序列往往要短于梅爾頻譜序列長度,為解決音素序列長度和梅爾頻譜序列長度不匹配的關系,假設音素時長為d,長度規(guī)范器會擴大音素序列的隱藏層d倍,總的隱藏層長度將會與梅爾頻譜長度相等,長度規(guī)范器可表示為
Hpho表示音素隱藏層序列,D表示音素時長序列,α是確定Hmel梅爾頻譜序列拓展長度的超參數(shù)。隱藏序列經(jīng)過時長預測器將會輸出對數(shù)域中音素的長度,經(jīng)過音高預測器輸出幀級的基頻序列,而能量預測期則會輸出梅爾頻譜幀的能量序列。
最后解碼器將添加了可變信息適配器語音信息的隱藏序列作為輸入,經(jīng)過與編碼器相同的前饋網(wǎng)絡,通過輸出線性層將256維隱藏序列轉(zhuǎn)換為80維梅爾頻譜序列。
將梅爾頻譜轉(zhuǎn)換為音頻形式所需聲碼器主要類型為純信號處理、自回歸神經(jīng)網(wǎng)絡模型和非自回歸神經(jīng)網(wǎng)絡模型。純信號處理的聲碼器代表有Griffin-lim、world 等,在梅爾頻譜到音頻的映射時會引入明顯的偽像,造成音頻聽感含有金屬感。自回歸神經(jīng)網(wǎng)絡模型的聲碼器代表有WaveNet、WaveRNN[20]等,合成音頻效果較好,但由于自回歸下一步的輸入必須依賴上一步的輸出,所以合成音頻效率較低。非自回歸網(wǎng)絡模型聲碼器代表為WaveGlow[21]和Parallel WaveNet[22],這一類型聲碼器訓練過程太過復雜,訓練速度雖快于自回歸模型但效果略差。
本文采用基于生成對抗網(wǎng)絡(GAN)[23~25]的非自回歸模型聲碼器,由生成器和判別器兩大部分組成。聲碼器結(jié)構(gòu)如圖3所示。
圖3 聲碼器結(jié)構(gòu)圖
生成器是非自回歸前饋卷積網(wǎng)絡,將解碼器輸出的梅爾頻譜序列作為輸入,通過反卷積網(wǎng)絡對頻譜序列進行上采樣,卷積核的大小是步長的兩倍。在每個上采樣層后連接殘差模塊和空洞卷積以擴大感受域。為了能更好還原音頻特征,通過分析濾波器得到子頻帶的目標波形,采用多分辨率的短時傅里葉對子頻段進行計算:
對于單個短時傅里葉變換目標函數(shù),本文將最頻譜收斂Lsc最小化:
這里‖ ·‖F(xiàn)屬于F-范數(shù),x表示原始音頻,為生成器生成的預測音頻波形。
所有子頻帶信號相加合成為全頻帶信號作為判別器輸入,全頻帶信號經(jīng)過平均池化為三個不同尺度的音頻信號,分別經(jīng)過三個不同尺度的判別器:D1、D2 、D3。D1 以原始尺度音頻波形執(zhí)行,D2 和D3 分別以2、4 倍數(shù)的下采樣執(zhí)行。判別模塊結(jié)構(gòu)如圖4所示。
圖4 判別模塊結(jié)構(gòu)圖
判別模塊通過計算不同尺度上生成音頻和真實音頻之間的特征圖損失與均方損失函數(shù),通過對抗學習使判別器無法判斷生成器生成音頻的真假。
另外,政府及行業(yè)協(xié)會還應該積極舉辦低碳環(huán)保宣傳活動,增強國民低碳意識,使企業(yè)、游客、社區(qū)居民能夠在旅游的各個環(huán)節(jié)自覺踐行節(jié)能減排的行動,真正實現(xiàn)旅游的綠色低碳可持續(xù)發(fā)展目標。
本文采用由年齡20 歲~30 歲專業(yè)播音女性在專業(yè)錄音棚環(huán)境錄制(錄制環(huán)境及設備保持不變,錄音環(huán)境信噪比不低于35dB),音頻容量為10000句,每句長度約為16 個字的WAV 格式語音合成數(shù)據(jù)集,總時長約為12h,采樣率為48kHz,16bit。其中數(shù)據(jù)標注已完成韻律標注、音字校對以及中文聲韻母邊界切分。其中8000 句作為訓練集,1000 句作為驗證集,1000句作為測試集。
實驗基于Linux 16.04 操作系統(tǒng),GPU 采用NVIDIA GeForce GTX 1070Ti,CPU Intel i7-7700,訓練框架為TensorFlow 2.0。
聲學模型由4 個前饋模塊組成編碼器和解碼器,解碼器和編碼器中隱藏層數(shù)和大小分別為4 和384。多頭注意力機制中,頭數(shù)設置為2,卷積核大小為3??勺冃畔⑦m配器兩層卷積核大小分別為9和3,丟棄率為0.5。批大小設置為16,Adam優(yōu)化器β1=0.9 ,β2=0.98 ,ξ=1e-6 ,初始學習率為0.001。訓練迭代次數(shù)在160K時模型收斂。
聲碼器中生成器模型初始卷積層和結(jié)束卷積層卷積核大小為7,殘差層中的空洞卷積核大小為3,殘差層數(shù)設置為4,輸出通道為4 個子頻段音頻。判別器在3 種尺度來判斷真實音頻與生成音頻特征,池化層大小為4,非線性激活函數(shù)使用Leaky ReLU,α=0.2。批大小大64,Adam優(yōu)化器[26]學習率使用分段恒定衰減。訓練迭代次數(shù)在1740K時模型收斂。
本文通過TensorFlow 可視化工具,將訓練后的訓練集和驗證集loss 進行可視化分析。通過訓練集和驗證集收斂情況,可以判斷模型訓練效果是否良好。結(jié)果如圖5所示。
圖5 可視化loss曲線
其中圖5(a)為訓練集收斂情況,圖5(b)為驗證集收斂情況。由圖5 可知,訓練集loss 迭代次數(shù)在160K時基本收斂,loss系數(shù)為0.135。驗證集loss迭代次數(shù)在80K 時收斂,loss系數(shù)為0.182。訓練集與驗證集均能收斂,說明模型訓練效果良好。
本文利用原始錄制語音文本,分別合成20 段音頻,并隨機選取其中三段與原始音頻進行對比。利用Sonic Visualiser 音頻分析軟件生成各段語音頻譜圖進行對比。對比結(jié)果如圖6所示。
圖6 頻譜對比分析圖
圖6 (a)、(b)、(c)為三段頻譜對比圖,左方為合成語音,右方為原始音頻。每段語音文字分別為“寶馬配掛跛騾鞍,貂蟬怨枕董翁榻”、“老虎幼崽與寵物犬玩?!薄ⅰ澳显嚼錾脚c西藏接壤”。由圖6可知,合成語音較原始音頻字與字發(fā)音更為清晰,各音素間間隔較為分明。但是在字與字間過渡較為生硬,連續(xù)性較差。分析共振峰可知,合成語音頻率較高,相較于原始音頻擁有更高的音高。
MOS 評分邀請30 名無明顯聽力缺陷大學生對合成語音進行打分:5分優(yōu)秀;4分良好;3分中等;2分較差;1分差,最小分值間隔為0.5,最后綜合所有得分選取平均分作為最終得分。
本文將真實音頻、Tacatron2和傳統(tǒng)參數(shù)式模型與本模型所合成語音進行對比,由表1 可知,得分最高為真實音頻,說明評分符合實際情況真實有效。Tacotron2 聲碼器選用WaveNet。本文所提出的基于非自回歸模型所合成語音得分明顯高于傳統(tǒng)參數(shù)式模型,略低于Tacotron2 模型和真實語音,說明合成質(zhì)量較為優(yōu)異。
表1 平均主觀意見得分
客觀評價法是將合成音頻的梅爾頻率倒譜系數(shù)(MFCC)與原始音頻梅爾頻率倒譜系數(shù)差距進行計算,原始音頻MFCC 特征設為x,合成音頻特征為,計算公式為
由表2可知,基于非自回歸模型的MCD值在三種方法中MCD值最低,表明合成音頻MFCC特征與原始音頻MFCC特征差距最小,語音合成質(zhì)量最高。
表2 客觀評價法MCD值
語音合成中模型訓練速度同樣是一項重要指標,本文分別統(tǒng)計了自回歸模型Tacotron2 與非自回歸訓練所需時長。
由表3 可知,Tacotron2 是基于自回歸模型,需要編碼器和解碼器序列對齊,解碼器依賴于上一步的輸出,所以訓練速度較慢,本文所提出的非自回歸模型編解碼器是并行化結(jié)構(gòu),解碼器不依賴上一步輸出,訓練速度較快。
表3 神經(jīng)網(wǎng)絡模型訓練時間
本文提出一種基于非自回歸模型的語音合成方法,輸入音素序列經(jīng)過編碼器和多頭注意力機制轉(zhuǎn)換為隱藏序列,再加上可變信息適配器預測的相關音頻特征,解碼器接受到添加音頻特征的隱藏序列后將其轉(zhuǎn)換為梅爾頻譜。梅爾頻譜作為聲碼器的輸入,經(jīng)過生成器和判別器語音波形合成生成相應原始音頻。經(jīng)過研究得到以下結(jié)論:
1)本文基于非自回歸模型的語音合成方法,訓練速度快于基于自回歸模型語音合成方法。
2)使用基于非自回歸網(wǎng)絡的聲學模型,合成語音質(zhì)量與自回歸模型相近,顯著高于傳統(tǒng)參數(shù)式方法。
3)采用基于生成對抗網(wǎng)絡的聲碼器用于音頻波形生成,證明GAN 網(wǎng)絡也能在語音合成中得到良好效果。