0
雷鋒網(wǎng)AI科技評論編者按:人工合成人類語音被稱為語音合成。這種基于機(jī)器學(xué)習(xí)的技術(shù)適用于文本轉(zhuǎn)換語音(text-to-speech)、音樂生成、語音生成、語音支持設(shè)備、導(dǎo)航系統(tǒng)以及為視障人士提供無障礙服務(wù)。
在這篇文章中,我們將研究基于深度學(xué)習(xí)而進(jìn)行的研究或模型框架。
在我們正式開始之前,我們需要簡要概述一些特定的、傳統(tǒng)的語音合成策略:拼接和參數(shù)化。
拼接方法,需要使用大型數(shù)據(jù)庫中的語音來拼接生成新的可聽語音。在需要不同語音風(fēng)格的情況下,必須使用新的音頻數(shù)據(jù)庫,這極大的限制了這種方法的可擴(kuò)展性。
參數(shù)化方法則是用一條記錄下的人的聲音以及一個含參函數(shù),通過調(diào)節(jié)函數(shù)參數(shù)來改變語音。
這兩種方法代表了傳統(tǒng)的語音合成方法?,F(xiàn)在讓我們來看看使用深度學(xué)習(xí)的新方法。為了探索當(dāng)前流行的語音合成方法,我們研究了這些:
WaveNet: 原始音頻生成模型
Tacotron:端到端的語音合成
Deep Voice 1: 實時神經(jīng)文本語音轉(zhuǎn)換
Deep Voice 2: 多說話人神經(jīng)文本語音轉(zhuǎn)換
Deep Voice 3: 帶有卷積序列學(xué)習(xí)的尺度文本語音轉(zhuǎn)換
Parallel WaveNet: 快速高保真語音合成
利用小樣本的神經(jīng)網(wǎng)絡(luò)語音克隆
VoiceLoop: 通過語音循環(huán)進(jìn)行語音擬合與合成
利用梅爾圖譜預(yù)測上的條件WaveNet進(jìn)行自然TTS合成
這篇文章的作者來自谷歌。他們提出了一種能產(chǎn)生原始音頻波的神經(jīng)網(wǎng)絡(luò)。他們的模型是完全概率的和自回歸的,在英語和漢語的text-to-speech上都取得了最先進(jìn)的結(jié)果。
文章鏈接: https://arxiv.org/abs/1609.03499
圖1
WaveNET是基于PixelCNN的音頻生成模型,它能夠產(chǎn)生類似于人類發(fā)出的聲音。
圖2
在這個生成模型中,每個音頻樣本都以先前的音頻樣本為條件。條件概率用一組卷積層來建模。這個網(wǎng)絡(luò)沒有池化層,模型的輸出與輸入具有相同的時間維數(shù)。
圖3
在模型架構(gòu)中使用臨時卷積可以確保模型不會違反數(shù)據(jù)建模的順序。在該模型中,每個預(yù)測語音樣本被反饋到網(wǎng)絡(luò)上用來幫助預(yù)測下一個語音樣本。由于臨時卷積沒有周期性連接,因此它們比RNN訓(xùn)練地更快。
使用臨時卷積的主要挑戰(zhàn)之一是,它們需要很多層來增加感受野。為了解決這一難題,作者使用了加寬的卷積。加寬的卷積使只有幾層的網(wǎng)絡(luò)能有更大的感受野。模型使用了Softmax分布對各個音頻樣本的條件分布建模。
圖4
這個模型在多人情景的語音生成、文本到語音的轉(zhuǎn)換、音樂音頻建模等方面進(jìn)行了評估。測試中使用的是平均意見評分(MOS),MOS可以評測聲音的質(zhì)量,本質(zhì)上就是一個人對聲音質(zhì)量的評價一樣。它有1到5之間的數(shù)字,其中5表示質(zhì)量最好。
圖5
下圖顯示了1-5級waveNet的語音質(zhì)量
圖6
這篇文章的作者來自谷歌。 Tacotron是一種端到端的生成性文本轉(zhuǎn)化語音的模型,可直接從文本和音頻對合形成語音。Tacotron在美式英語上獲得3.82分的平均得分。Tacotron是在幀級生成語音,因此比樣本級自回歸的方法更快。
文章鏈接:https://arxiv.org/abs/1703.10135
這個模型是在音頻和文本對上進(jìn)行的訓(xùn)練,因此它可以非常方便地應(yīng)用到新的數(shù)據(jù)集上。Tacotron是一個seq2seq模型,該模型包括一個編碼器、一個基于注意力的解碼器以及一個后端處理網(wǎng)絡(luò)(post-processing net)。如下框架圖所示,該模型輸入字符,輸出原始譜圖。然后把這個譜圖轉(zhuǎn)換成波形圖。
圖7
下圖顯示了CBHG模塊的結(jié)構(gòu)。它由1-D卷積濾波器,highway networks和雙向GRU(Gated Recurrent Unit)組成。
圖8
將字符序列輸入編碼器,編碼器將提取出文本的順序表示。每個字符被表示為一個獨熱向量嵌入到連續(xù)向量中。然后加入非線性變換,再然后加上一個dropout,以減少過度擬合。這在本質(zhì)上減少了單詞的發(fā)音錯誤。
模型所用的解碼器是基于內(nèi)容注意力的tanh解碼器。然后使用Griffin-Lim算法生成波形圖。該模型使用的超參數(shù)如下所示。
圖9
下圖顯示了與其他替代方案相比,Tacotron的性能優(yōu)勢。
圖10
這篇文章的作者來自百度硅谷人工智能實驗室。Deep Voice是一個利用深度神經(jīng)網(wǎng)絡(luò)開發(fā)的文本到語音的系統(tǒng).
文章鏈接:https://arxiv.org/abs/1702.07825
它有五個重要的組成模塊:
定位音素邊界的分割模型(基于使用連接時間分類(CTC)損失函數(shù)的深度神經(jīng)網(wǎng)絡(luò));
字母到音素的轉(zhuǎn)換模型(字素到音素是在一定規(guī)則下產(chǎn)生單詞發(fā)音的過程);
音素持續(xù)時間預(yù)測模型;
基頻預(yù)測模型;
音頻合成模型(一個具有更少參數(shù)的WaveNet變體)。
圖11
字母到音素模型將英文字符轉(zhuǎn)換為音素。分割模型識別每個音素在音頻文件中開始和結(jié)束的位置。音素持續(xù)時間模型預(yù)測音素序列中每個音素的持續(xù)時間。
基頻模型預(yù)測音素是否發(fā)聲。音頻合成模型則綜合了字母到音素轉(zhuǎn)換模型、音素持續(xù)時間模型、基頻預(yù)測模型等的輸出進(jìn)行音頻合成。
以下是它與其他模型的對比情況
圖12
這篇文章是百度硅谷人工智能實驗室在Deep Voice上的二次迭代。他們介紹了一種利用低維可訓(xùn)練說話人嵌入來增強神經(jīng)文本到語音的方法,這可以從單個模型產(chǎn)生不同的聲音。
該模型與DeepVoice 1有類似的流水線,但它在音頻質(zhì)量上卻有顯著的提高。該模型能夠從每個說話人不到半個小時的語音數(shù)據(jù)中學(xué)習(xí)數(shù)百種獨特的聲音。
文章鏈接:https://arxiv.org/abs/1705.08947
作者還介紹了一種基于WaveNet的聲譜到音頻的神經(jīng)聲碼器,并將其與Taco tron結(jié)合,代替Griffin-Lim音頻生成。這篇文章的重點是處理多個說話人而每個說話人的數(shù)據(jù)有非常少的情況。模型的架構(gòu)類似于Deep Voice 1,訓(xùn)練過程如下圖所示。
圖13
Deep Voice 2和Deep Voice 1之間的主要區(qū)別在于音素持續(xù)時間模型和頻率模型的分離。 Deep Voice 1有一個用于聯(lián)合預(yù)測音素持續(xù)時間和頻率曲線的單一模型; 而在Deep Voice 2中,則先預(yù)測音素持續(xù)時間,然后將它們用作頻率模型的輸入。
Deep Voice 2中的分割模型使用一種卷積遞歸結(jié)構(gòu)(采用連接時間分類(CTC)損失函數(shù))對音素對進(jìn)行分類。Deep Voice 2的主要修改是在卷積層中添加了大量的歸一化和殘余連接。它的發(fā)聲模型是基于WaveNet架構(gòu)的。
從多個說話人合成語音,主要通過用每個說話人的單個低維級說話人嵌入向量增強每個模型來完成的。說話人之間的權(quán)重分配,則是通過將與說話人相關(guān)的參數(shù)存儲在非常低維的矢量中來實現(xiàn)。
遞歸神經(jīng)網(wǎng)絡(luò)(RNN)的初始狀態(tài)由說話人聲音的嵌入產(chǎn)生。采用均勻分布的方法隨機(jī)初始化說話人聲音的嵌入,并用反向傳播對其進(jìn)行聯(lián)合訓(xùn)練。說話人聲音的嵌入包含在模型的多個部分中,以確保能考慮到每個說話人的聲音特點。
圖14
接下來讓我們看看與其他模型相比它的性能如何
圖15
文章鏈接:https://arxiv.org/abs/1710.07654
這篇文章的作者提出了一種全卷積字符到譜圖的框架,可以實現(xiàn)完全并行計算。該框架是基于注意力的序列到序列模型。這個模型在LibriSpeech ASR數(shù)據(jù)集上進(jìn)行訓(xùn)練。
這個模型的結(jié)構(gòu)能夠?qū)⒆址?、音素、重音等文本特征轉(zhuǎn)換成不同的聲碼器參數(shù),其中包括Mel波段光譜圖、線性比例對數(shù)幅度譜圖、基頻譜圖、譜包絡(luò)圖和非周期性參數(shù)。然后將這些聲碼器參數(shù)作為音頻波形合成模型的輸入。
圖16
模型的結(jié)構(gòu)由以下幾個部分組成:
編碼器:一種全卷積編碼器,可將文本特征轉(zhuǎn)換為內(nèi)部學(xué)習(xí)表示。
解碼器:一種全卷積因果解碼器,以自回歸的方式解碼學(xué)習(xí)表示。
轉(zhuǎn)換器:一種全卷積后處理網(wǎng)絡(luò),可預(yù)測最終的聲碼器參數(shù)。
對于文本預(yù)處理,作者的處理方式包括:大寫文本輸入字符,刪除標(biāo)點符號,以句號或問號結(jié)束每句話,并用表示停頓長度的特殊字符替換空格。
下圖是該模型與其他替代模型的性能比較。
圖17
這篇文章的作者來自谷歌。他們引入了一種叫做概率密度蒸餾的方法,它從一個訓(xùn)練過的WaveNet中訓(xùn)練一個并行前饋網(wǎng)絡(luò)。該方法是通過結(jié)合逆自回歸流(IAFS)和波形網(wǎng)(WaveNet)的最佳特征構(gòu)建的。這些特征代表了WaveNet的有效訓(xùn)練和IAF網(wǎng)絡(luò)的有效采樣。
文章鏈接:https://arxiv.org/abs/1711.10433
為了進(jìn)行有效訓(xùn)練,作者使用一個已經(jīng)訓(xùn)練過的WaveNet作為“老師”,并行WaveNet‘學(xué)生’向其學(xué)習(xí)。目的是為了讓學(xué)生從老師那里學(xué)到的分布中匹配自己樣本的概率。
圖18
作者還提出了額外的損失函數(shù),以指導(dǎo)學(xué)生生成高質(zhì)量的音頻流:
功率損失函數(shù):確保使用語音不同頻帶的功率,就像人在說話一樣。
感知損失函數(shù):針對這種損失函數(shù),作者嘗試了特征重構(gòu)損失函數(shù)(分類器中特征圖之間的歐氏距離)和風(fēng)格損失函數(shù)(Gram矩陣之間的歐氏距離)。他們發(fā)現(xiàn)風(fēng)格損失函數(shù)會產(chǎn)生更好的效果。
無論條件向量如何,對比度損失會懲罰有高可能性的波形。
下圖顯示了這個模型的性能:
圖19
據(jù)雷鋒網(wǎng)了解,這篇文章的作者來自百度研究院。他們引入了一個神經(jīng)語音克隆系統(tǒng),它可以通過學(xué)習(xí)從少量音頻樣本合成一個人的聲音。
系統(tǒng)使用的兩種方法是說話人自適應(yīng)和說話人編碼。說話人自適應(yīng)是通過對多個說話人的聲音生成模型進(jìn)行微調(diào)來實現(xiàn)的,而說話人編碼則是通過訓(xùn)練一個單獨的模型來直接推斷一個新的嵌入到多個說話人語音生成模型。
文章鏈接:https://arxiv.org/abs/1802.06006v3
本文采用Deep Voice 3作為多說話人模型的基線。所謂聲音克隆,即提取一個說話人的聲音特征,并根據(jù)這些特征來生成給定的文本所對應(yīng)的音頻。
生成音頻的性能指標(biāo)決定于語音的自然度和說話人聲音的相似度。作者提出了一種說話人編碼方法,該方法能夠從未曾見過的說話人音頻樣本中預(yù)測說話人聲音嵌入。
圖20
下面是聲音克隆的性能:
圖21
圖22
VoiceLoop: 通過語音循環(huán)進(jìn)行語音擬合與合成
這篇文章的作者來自Facebook AI研究院。他們引入了一種神經(jīng)文本到語音(TTS)技術(shù),可以將文本從野外采集的聲音轉(zhuǎn)換為語音。
文章鏈接:https://arxiv.org/abs/1707.06588
VoiceLoop的靈感來源于一種稱為語音循環(huán)的工作記憶模型,它能在短時間內(nèi)保存語言信息。它由兩部分組成,其一是一個不斷被替換的語音存儲(phonological store),其二是一個在語音存儲中保持長期表達(dá)(longer-term representations)的預(yù)演過程。
Voiceloop將移動緩沖區(qū)視作矩陣,從而來構(gòu)造語音存儲。句子表示為音素列表。然后從每個音素解碼一個短向量。通過對音素的編碼進(jìn)行加權(quán)并在每個時間點對它們求和來生成當(dāng)前的上下文向量。
使VoiceLoop脫穎而出的一些屬性包括:使用內(nèi)存緩沖區(qū)而不是傳統(tǒng)的RNN,所有進(jìn)程之間的內(nèi)存共享,以及使用淺層、全連接的網(wǎng)絡(luò)進(jìn)行所有計算。
圖23
下圖顯示了模型與其他替代方案相比的性能表現(xiàn)
圖24
圖25
作者來自谷歌和加州大學(xué)伯克利分校。他們引入了Tacotron 2,這是一種用于文本語音合成的神經(jīng)網(wǎng)絡(luò)架構(gòu)。
文章鏈接:https://arxiv.org/abs/1712.05884
它由一個循環(huán)的的序列到序列特征預(yù)測網(wǎng)絡(luò)組成,該網(wǎng)絡(luò)將字符嵌入到梅爾標(biāo)度圖譜中。然后是一個修改后的WaveNet模型,這個模型充當(dāng)聲碼器,利用頻譜圖來合成時域波。模型的平均意見評分(MOS)為4.53分。
圖26
這個模型結(jié)合了Tacconon和WaveNet的最佳特點。下面是它與其他模型的性能對比:
圖27
雷鋒網(wǎng)小結(jié):
現(xiàn)在的語音合成技術(shù)發(fā)展很快,我們希望能夠盡快追趕上最前沿的研究。以上這幾篇文章是當(dāng)前語音合成領(lǐng)域最重要的進(jìn)展代表,論文、以及其代碼實現(xiàn)都可在網(wǎng)上找到,期待你能去下載下來進(jìn)行測試,并能夠獲得期望的結(jié)果。
讓我們一起創(chuàng)造一個豐富多彩的語音世界。
原文鏈接:
https://heartbeat.fritz.ai/a-2019-guide-to-speech-synthesis-with-deep-learning-630afcafb9dd
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。