2019深度學(xué)習(xí)語音合成指南
雷鋒網(wǎng)AI科技評(píng)論編者按:人工合成人類語音被稱為語音合成。這種基于機(jī)器學(xué)習(xí)的技術(shù)適用于文本轉(zhuǎn)換語音(text-to-speech)、音樂生成、語音生成、語音支持設(shè)備、導(dǎo)航系統(tǒng)以及為視障人士提供無障礙服務(wù)。
本文引用地址:http://butianyuan.cn/article/201909/404379.htm在這篇文章中,我們將研究基于深度學(xué)習(xí)而進(jìn)行的研究或模型框架。
在我們正式開始之前,我們需要簡(jiǎn)要概述一些特定的、傳統(tǒng)的語音合成策略:拼接和參數(shù)化。
拼接方法,需要使用大型數(shù)據(jù)庫(kù)中的語音來拼接生成新的可聽語音。在需要不同語音風(fēng)格的情況下,必須使用新的音頻數(shù)據(jù)庫(kù),這極大的限制了這種方法的可擴(kuò)展性。
參數(shù)化方法則是用一條記錄下的人的聲音以及一個(gè)含參函數(shù),通過調(diào)節(jié)函數(shù)參數(shù)來改變語音。
這兩種方法代表了傳統(tǒng)的語音合成方法?,F(xiàn)在讓我們來看看使用深度學(xué)習(xí)的新方法。為了探索當(dāng)前流行的語音合成方法,我們研究了這些:
●WaveNet: 原始音頻生成模型
●Tacotron:端到端的語音合成
●Deep Voice 1:實(shí)時(shí)神經(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ù)測(cè)上的條件WaveNet進(jìn)行自然TTS合成
WaveNet:原始音頻生成模型
這篇文章的作者來自谷歌。他們提出了一種能產(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
在這個(gè)生成模型中,每個(gè)音頻樣本都以先前的音頻樣本為條件。條件概率用一組卷積層來建模。這個(gè)網(wǎng)絡(luò)沒有池化層,模型的輸出與輸入具有相同的時(shí)間維數(shù)。
圖3
在模型架構(gòu)中使用臨時(shí)卷積可以確保模型不會(huì)違反數(shù)據(jù)建模的順序。在該模型中,每個(gè)預(yù)測(cè)語音樣本被反饋到網(wǎng)絡(luò)上用來幫助預(yù)測(cè)下一個(gè)語音樣本。由于臨時(shí)卷積沒有周期性連接,因此它們比RNN訓(xùn)練地更快。
使用臨時(shí)卷積的主要挑戰(zhàn)之一是,它們需要很多層來增加感受野。為了解決這一難題,作者使用了加寬的卷積。加寬的卷積使只有幾層的網(wǎng)絡(luò)能有更大的感受野。模型使用了Softmax分布對(duì)各個(gè)音頻樣本的條件分布建模。
圖4
這個(gè)模型在多人情景的語音生成、文本到語音的轉(zhuǎn)換、音樂音頻建模等方面進(jìn)行了評(píng)估。測(cè)試中使用的是平均意見評(píng)分(MOS),MOS可以評(píng)測(cè)聲音的質(zhì)量,本質(zhì)上就是一個(gè)人對(duì)聲音質(zhì)量的評(píng)價(jià)一樣。它有1到5之間的數(shù)字,其中5表示質(zhì)量最好。
圖5
下圖顯示了1-5級(jí)waveNet的語音質(zhì)量:
圖6
Tacotron:端到端的語音合成
這篇文章的作者來自谷歌。 Tacotron是一種端到端的生成性文本轉(zhuǎn)化語音的模型,可直接從文本和音頻對(duì)合形成語音。Tacotron在美式英語上獲得3.82分的平均得分。Tacotron是在幀級(jí)生成語音,因此比樣本級(jí)自回歸的方法更快。
文章鏈接:https://arxiv.org/abs/1703.10135
這個(gè)模型是在音頻和文本對(duì)上進(jìn)行的訓(xùn)練,因此它可以非常方便地應(yīng)用到新的數(shù)據(jù)集上。Tacotron是一個(gè)seq2seq模型,該模型包括一個(gè)編碼器、一個(gè)基于注意力的解碼器以及一個(gè)后端處理網(wǎng)絡(luò)(post-processing net)。如下框架圖所示,該模型輸入字符,輸出原始譜圖。然后把這個(gè)譜圖轉(zhuǎn)換成波形圖。
圖7
下圖顯示了CBHG模塊的結(jié)構(gòu)。它由1-D卷積濾波器,highway networks和雙向GRU(Gated Recurrent Unit)組成。
圖8
將字符序列輸入編碼器,編碼器將提取出文本的順序表示。每個(gè)字符被表示為一個(gè)獨(dú)熱向量嵌入到連續(xù)向量中。然后加入非線性變換,再然后加上一個(gè)dropout,以減少過度擬合。這在本質(zhì)上減少了單詞的發(fā)音錯(cuò)誤。
模型所用的解碼器是基于內(nèi)容注意力的tanh解碼器。然后使用Griffin-Lim算法生成波形圖。該模型使用的超參數(shù)如下所示。
圖9
下圖顯示了與其他替代方案相比,Tacotron的性能優(yōu)勢(shì)。
圖10
Deep Voice 1:實(shí)時(shí)神經(jīng)文本到語音合成
這篇文章的作者來自百度硅谷人工智能實(shí)驗(yàn)室。Deep Voice是一個(gè)利用深度神經(jīng)網(wǎng)絡(luò)開發(fā)的文本到語音的系統(tǒng).
文章鏈接:https://arxiv.org/abs/1702.07825
它有五個(gè)重要的組成模塊:
●定位音素邊界的分割模型(基于使用連接時(shí)間分類(CTC)損失函數(shù)的深度神經(jīng)網(wǎng)絡(luò));
●字母到音素的轉(zhuǎn)換模型(字素到音素是在一定規(guī)則下產(chǎn)生單詞發(fā)音的過程);
●音素持續(xù)時(shí)間預(yù)測(cè)模型;
●基頻預(yù)測(cè)模型;
●音頻合成模型(一個(gè)具有更少參數(shù)的WaveNet變體)。
圖11
字母到音素模型將英文字符轉(zhuǎn)換為音素。分割模型識(shí)別每個(gè)音素在音頻文件中開始和結(jié)束的位置。音素持續(xù)時(shí)間模型預(yù)測(cè)音素序列中每個(gè)音素的持續(xù)時(shí)間。
基頻模型預(yù)測(cè)音素是否發(fā)聲。音頻合成模型則綜合了字母到音素轉(zhuǎn)換模型、音素持續(xù)時(shí)間模型、基頻預(yù)測(cè)模型等的輸出進(jìn)行音頻合成。
以下是它與其他模型的對(duì)比情況:
圖12
Deep Voice 2:多說話人神經(jīng)文本語音轉(zhuǎn)換
這篇文章是百度硅谷人工智能實(shí)驗(yàn)室在Deep Voice上的二次迭代。他們介紹了一種利用低維可訓(xùn)練說話人嵌入來增強(qiáng)神經(jīng)文本到語音的方法,這可以從單個(gè)模型產(chǎn)生不同的聲音。
該模型與DeepVoice 1有類似的流水線,但它在音頻質(zhì)量上卻有顯著的提高。該模型能夠從每個(gè)說話人不到半個(gè)小時(shí)的語音數(shù)據(jù)中學(xué)習(xí)數(shù)百種獨(dú)特的聲音。
文章鏈接:https://arxiv.org/abs/1705.08947
作者還介紹了一種基于WaveNet的聲譜到音頻的神經(jīng)聲碼器,并將其與Taco tron結(jié)合,代替Griffin-Lim音頻生成。這篇文章的重點(diǎn)是處理多個(gè)說話人而每個(gè)說話人的數(shù)據(jù)有非常少的情況。模型的架構(gòu)類似于Deep Voice 1,訓(xùn)練過程如下圖所示。
圖13
Deep Voice 2和Deep Voice 1之間的主要區(qū)別在于音素持續(xù)時(shí)間模型和頻率模型的分離。 Deep Voice 1有一個(gè)用于聯(lián)合預(yù)測(cè)音素持續(xù)時(shí)間和頻率曲線的單一模型; 而在Deep Voice 2中,則先預(yù)測(cè)音素持續(xù)時(shí)間,然后將它們用作頻率模型的輸入。
Deep Voice 2中的分割模型使用一種卷積遞歸結(jié)構(gòu)(采用連接時(shí)間分類(CTC)損失函數(shù))對(duì)音素對(duì)進(jìn)行分類。Deep Voice 2的主要修改是在卷積層中添加了大量的歸一化和殘余連接。它的發(fā)聲模型是基于WaveNet架構(gòu)的。
從多個(gè)說話人合成語音,主要通過用每個(gè)說話人的單個(gè)低維級(jí)說話人嵌入向量增強(qiáng)每個(gè)模型來完成的。說話人之間的權(quán)重分配,則是通過將與說話人相關(guān)的參數(shù)存儲(chǔ)在非常低維的矢量中來實(shí)現(xiàn)。
遞歸神經(jīng)網(wǎng)絡(luò)(RNN)的初始狀態(tài)由說話人聲音的嵌入產(chǎn)生。采用均勻分布的方法隨機(jī)初始化說話人聲音的嵌入,并用反向傳播對(duì)其進(jìn)行聯(lián)合訓(xùn)練。說話人聲音的嵌入包含在模型的多個(gè)部分中,以確保能考慮到每個(gè)說話人的聲音特點(diǎn)。
圖14
接下來讓我們看看與其他模型相比它的性能如何:
圖15
Deep Voice 3:利用卷積序列學(xué)習(xí)將文本轉(zhuǎn)換為語音
文章鏈接:https://arxiv.org/abs/1710.07654
這篇文章的作者提出了一種全卷積字符到譜圖的框架,可以實(shí)現(xiàn)完全并行計(jì)算。該框架是基于注意力的序列到序列模型。這個(gè)模型在LibriSpeech ASR數(shù)據(jù)集上進(jìn)行訓(xùn)練。
這個(gè)模型的結(jié)構(gòu)能夠?qū)⒆址?、音素、重音等文本特征轉(zhuǎn)換成不同的聲碼器參數(shù),其中包括Mel波段光譜圖、線性比例對(duì)數(shù)幅度譜圖、基頻譜圖、譜包絡(luò)圖和非周期性參數(shù)。然后將這些聲碼器參數(shù)作為音頻波形合成模型的輸入。
圖16
模型的結(jié)構(gòu)由以下幾個(gè)部分組成:
●編碼器:一種全卷積編碼器,可將文本特征轉(zhuǎn)換為內(nèi)部學(xué)習(xí)表示。
●解碼器:一種全卷積因果解碼器,以自回歸的方式解碼學(xué)習(xí)表示。
●轉(zhuǎn)換器:一種全卷積后處理網(wǎng)絡(luò),可預(yù)測(cè)最終的聲碼器參數(shù)。
對(duì)于文本預(yù)處理,作者的處理方式包括:大寫文本輸入字符,刪除標(biāo)點(diǎn)符號(hào),以句號(hào)或問號(hào)結(jié)束每句話,并用表示停頓長(zhǎng)度的特殊字符替換空格。
下圖是該模型與其他替代模型的性能比較。
圖17
評(píng)論