0
本文作者: AI研習(xí)社-譯站 | 2019-01-18 11:16 |
本文為 AI 研習(xí)社編譯的技術(shù)博客,原標(biāo)題 :
WaveNet: Google Assistant’s Voice Synthesizer
作者 | Janvijay Singh
翻譯 | 醬番梨、王立魚(yú)、莫青悠、Disillusion
校對(duì)、整理 | 菠蘿妹
原文鏈接:
https://towardsdatascience.com/wavenet-google-assistants-voice-synthesizer-a168e9af13b1
一文帶你讀懂 WaveNet:谷歌助手的聲音合成器
有沒(méi)有想過(guò)有可能使機(jī)器合成的人類(lèi)聲音幾乎和人類(lèi)本身的聲音一樣自然? WaveNet使其成為可能。
機(jī)器合成擬人化語(yǔ)音(文語(yǔ)轉(zhuǎn)換)的想法已經(jīng)存在很長(zhǎng)時(shí)間了。在深度學(xué)習(xí)出現(xiàn)之前,存在兩種主流的建立語(yǔ)音合成系統(tǒng)的方式,即波音拼接合成和參數(shù)合成。
在波音拼接合成的文語(yǔ)轉(zhuǎn)換中,它的思路就是通過(guò)收集一個(gè)人的一長(zhǎng)列句子的發(fā)聲錄音,將這些錄音切割成語(yǔ)音單元,嘗試著將那些和最近提供的文本相匹配的語(yǔ)音單元進(jìn)行拼接縫合,從而生成這文本對(duì)應(yīng)的發(fā)聲語(yǔ)音。通過(guò)波音拼接合成產(chǎn)生的語(yǔ)音,對(duì)于那些文本已經(jīng)存在于用于初始收集的錄音之中的部分,文語(yǔ)轉(zhuǎn)換后的語(yǔ)音聽(tīng)上去比較自然,但是那些初次遇見(jiàn)的文本,就會(huì)聽(tīng)上去有些異樣。除此之外,修飾聲音要求我們對(duì)整個(gè)新錄音集進(jìn)行操作。反之在參數(shù)合成的文語(yǔ)轉(zhuǎn)換中,它的思路是通過(guò)參數(shù)物理模型(本質(zhì)上來(lái)說(shuō)就是一個(gè)函數(shù))來(lái)模擬人類(lèi)的聲道并使用記錄的聲音來(lái)調(diào)整參數(shù)。通過(guò)參數(shù)合成文語(yǔ)轉(zhuǎn)換生成的聲音聽(tīng)上去沒(méi)有通過(guò)音波結(jié)合文語(yǔ)轉(zhuǎn)換生成的聲音那么自然,但是這種方式更容易通過(guò)調(diào)整某些模型中的參數(shù)來(lái)修飾聲音。
近日來(lái),隨著WavNet的面世,對(duì)我們來(lái)說(shuō)以端對(duì)端(來(lái)自聲音記錄本身)的方式來(lái)生成未處理的聲音樣本成為可能,可以簡(jiǎn)單的修飾聲音,更重要的是和現(xiàn)存的語(yǔ)音處理方式相比,得到的聲音明顯的更加自然。所有的一切都要感謝深度學(xué)習(xí)的出現(xiàn)。
為了能夠描繪出WaveNet和現(xiàn)存的語(yǔ)音合成方法的區(qū)別,采用了主觀5分平均意見(jiàn)分法(MOS)測(cè)試進(jìn)行統(tǒng)計(jì)。在平均意見(jiàn)分測(cè)試中,提供給對(duì)象(人)從各個(gè)聲音合成系統(tǒng)中合成的聲音樣本,并被要求以5分制來(lái)評(píng)估樣本的自然度(1:很差 2:較差 3:一般 4:好 5:優(yōu)秀)。
用于主觀5分平均意見(jiàn)分法的聲音樣本分別從基于長(zhǎng)短期記憶-循環(huán)神經(jīng)網(wǎng)絡(luò)(LSTM-RNN)的參數(shù)合成,基于隱馬爾可夫模型(HMM)的語(yǔ)音單元集的波音拼接合成,和基于WaveNet的語(yǔ)音合成得到的。
從柱狀圖中可以清晰看到,WaveNet在5分制中得到了大概4.0分左右,很明顯是優(yōu)于其他的系統(tǒng)基線(xiàn)的,并且非常接近真實(shí)的人類(lèi)聲音。查閱了DeepMind’s blog 可以認(rèn)識(shí)到在合成的語(yǔ)音的自然度方面這些方法的區(qū)別所在。除了能夠輸出合成的語(yǔ)音樣本,WaveNet能夠輕松的適應(yīng)各種各樣的語(yǔ)音特性,如:文本,發(fā)言者特性等,來(lái)生成滿(mǎn)足我們需求的聲音。這使它更加的令人感到激動(dòng)。
生成式模型。這是指什么呢?給出的一般的未標(biāo)記的數(shù)據(jù)點(diǎn),一個(gè)生成式模型會(huì)嘗試去學(xué)習(xí)什么樣的概率分布可以生成這些數(shù)據(jù)點(diǎn),目的是為了通過(guò)利用學(xué)習(xí)分布來(lái)產(chǎn)生新的數(shù)據(jù)點(diǎn)(與輸入數(shù)據(jù)點(diǎn)相似)。生成式模型可以通過(guò)不同的方式對(duì)概率分布建模,隱式(具有可處理或近似密度)或者顯式。當(dāng)我們說(shuō)一個(gè)生成式模型是顯式建模模型的話(huà),意味著我們明確的定義概率分布并嘗試去適配每一個(gè)輸入的未標(biāo)記數(shù)據(jù)點(diǎn)。與它形成對(duì)比,一個(gè)隱式生成式模型學(xué)習(xí)一個(gè)概率分布,可以直接取樣新數(shù)據(jù)點(diǎn)而不需要明確的定義。GANs(生成對(duì)抗網(wǎng)絡(luò)),目前深度學(xué)習(xí)領(lǐng)域的圣杯,就屬于隱式生成式模型。然而,WaveNet和它的表親Pixel CNNs/RNNs(像素卷積神經(jīng)網(wǎng)絡(luò)模型/遞歸神經(jīng)網(wǎng)絡(luò)模型) 都屬于顯示生成式模型。
WaveNet如何明確的建立概率分布模型?WaveNet試圖對(duì)一個(gè)數(shù)據(jù)流X的聯(lián)合概率分布建立模型,對(duì)數(shù)據(jù)流X中的每一個(gè)元素Xt的條件概率求乘積。因此對(duì)于一段未處理音波X = {X1, X2, X3 … XT},構(gòu)建的聯(lián)合概率函數(shù)如下:
每一個(gè)樣本Xt 因此而受限于所有的先前時(shí)間步長(zhǎng)的樣品。在一個(gè)時(shí)間步長(zhǎng)上的觀察結(jié)果取決于先前時(shí)間步長(zhǎng)的觀察結(jié)果(這就是我們?cè)噲D使用每一個(gè)條件分布項(xiàng)去構(gòu)建的模型),這看上去難道不像是一個(gè)時(shí)間序列預(yù)測(cè)模型嗎?事實(shí)上,WaveNet是一個(gè)自動(dòng)回歸模型。
我們要如何去對(duì)這些條件分布項(xiàng)進(jìn)行建模呢?RNs(遞歸神經(jīng)網(wǎng)絡(luò)模型)或者LSTMs(長(zhǎng)短記憶網(wǎng)絡(luò)模型)作為強(qiáng)有力的非線(xiàn)性時(shí)序模型是最顯而易見(jiàn)的選擇。事實(shí)上,像素遞歸神經(jīng)網(wǎng)絡(luò)使用同樣的思路來(lái)生成與輸入的圖像相似的合成圖像。我們可以使用這種思路來(lái)生成合成語(yǔ)音嗎?語(yǔ)音是從至少16KHZ的頻率取樣,這意味著,每秒的音頻至少有16000個(gè)樣本。RNNs(遞歸神經(jīng)網(wǎng)絡(luò))或者LSTMs(長(zhǎng)短記憶網(wǎng)絡(luò))還未曾對(duì)如此長(zhǎng)(大約10000時(shí)間步長(zhǎng)序列)的時(shí)間依賴(lài)性進(jìn)行建模,他們目前能建模的最長(zhǎng)時(shí)間依賴(lài)性是100時(shí)間步長(zhǎng)序列,因此這兩種模型并不能很好的適用于語(yǔ)音合成。我們能否適用CNN(卷積神經(jīng)網(wǎng)絡(luò))來(lái)處理呢?等一下,CNNs(卷積神經(jīng)網(wǎng)絡(luò)模型)?如何做到呢?相似的思路已經(jīng)被使用于像素卷積神經(jīng)網(wǎng)絡(luò)模型中了。
為什么我們要嘗試使用CNNs(卷積神經(jīng)網(wǎng)絡(luò)模型)?CNNs(卷積神經(jīng)網(wǎng)絡(luò)模型)訓(xùn)練速度與RNNs(遞歸神經(jīng)網(wǎng)絡(luò)模型)或者LSTMs(長(zhǎng)短記憶網(wǎng)絡(luò)模型)相比是典型地更快速,尤其是應(yīng)用于長(zhǎng)的一維序列,因?yàn)榕c每一個(gè)掩?;蜻^(guò)濾器的卷積位置相關(guān)的操作可以以一個(gè)并行,獨(dú)立的方式進(jìn)行。更快的訓(xùn)練速度。聽(tīng)上去很棒!自回歸(一個(gè)時(shí)間步長(zhǎng)的輸出是只依賴(lài)于先前時(shí)間步長(zhǎng)的輸出而與未來(lái)時(shí)間步長(zhǎng)的輸出無(wú)關(guān))的性能如何呢?因果卷積在此轉(zhuǎn)化成行動(dòng)。一維因果卷積可以輕易的通過(guò)左填充輸入的一維序列來(lái)執(zhí)行,在這里通過(guò)為卷積補(bǔ)充適量的0來(lái)得到一個(gè)可用的卷機(jī)。與RNNs(遞歸神經(jīng)網(wǎng)絡(luò)模型)和LSTMs(長(zhǎng)短記憶網(wǎng)絡(luò)模型)相比,因果卷積可以允許我們?nèi)?duì)長(zhǎng)的多的時(shí)間依賴(lài)性(也允許我們指定回看長(zhǎng)度)進(jìn)行建模。
因果卷積確保模型不會(huì)違反我們對(duì)數(shù)據(jù)構(gòu)建的模型的規(guī)則
很好!我們已經(jīng)可以輕易地處理自回歸違規(guī)的問(wèn)題。但是關(guān)于管理幾千個(gè)樣本序列的回看長(zhǎng)度的問(wèn)題呢(例如我們的模型在當(dāng)前時(shí)間步長(zhǎng)上畫(huà)一個(gè)關(guān)于輸出的卷機(jī)之前,回看至少一秒的音頻)? 能想到的最簡(jiǎn)單實(shí)現(xiàn)的方式就是將過(guò)濾器的規(guī)格增加到足夠可以回看適當(dāng)長(zhǎng)度,但是這種方式真的有效嗎? 我認(rèn)為這種做法會(huì)使模型減少非線(xiàn)性,這會(huì)導(dǎo)致模型難以學(xué)習(xí)復(fù)雜的暫時(shí)依賴(lài)性,從而限制了模型的性能。你想到的下一個(gè)想法可能是增加神經(jīng)網(wǎng)絡(luò)的層數(shù) 。這種方法可能有效。但是計(jì)算上是不可能的,因?yàn)閷?duì)輸出中的一個(gè)時(shí)間步長(zhǎng)內(nèi)的接受域大小或者回看長(zhǎng)度,隨模型中的隱藏層數(shù)線(xiàn)性增長(zhǎng),而對(duì)于我們計(jì)算上來(lái)說(shuō)是不希望有一個(gè)有著幾千個(gè)隱藏層的模型?,F(xiàn)在我們要考慮的是限制隱藏層的數(shù)量、過(guò)濾器的大小和增加回看長(zhǎng)度?我們將如何做到呢?膨脹卷積將會(huì)幫助我們。
膨脹卷積嘗試通過(guò)將過(guò)濾器應(yīng)用在超過(guò)它本身長(zhǎng)度的區(qū)域上和按特定步驟跳過(guò)輸入值的方式,來(lái)增加回看長(zhǎng)度或者接受域大小。 這等同于一個(gè)卷積使用通過(guò)0來(lái)擴(kuò)充原過(guò)濾器得到更大的過(guò)濾器但是顯然這種方式更加有效。在WaveNet中,多重膨脹卷積層一個(gè)個(gè)疊放來(lái)通過(guò)極少的層來(lái)獲得極大的接受域。
膨脹因果卷積層堆:加倍每層的膨脹因子會(huì)使接受域以 O(2^n)倍增。
為了對(duì)條件概率見(jiàn)面,WaveNet采用softmax分布(分類(lèi)分布)來(lái)替代其他的混合模型,分類(lèi)分布沒(méi)有對(duì)它的形狀進(jìn)行假設(shè),因此而更加靈活,更容易對(duì)任意分布建模。 未處理音頻被作為16位整數(shù)值(-32,768...32,767)存儲(chǔ),使用一個(gè)softmax層輸出概率分布需要我們的模型在一個(gè)時(shí)間步長(zhǎng)上輸出65,5535個(gè)數(shù)值。這會(huì)拉慢模型表現(xiàn)嗎?這確實(shí)會(huì)。我們可以做什么來(lái)改善呢?減少位深度會(huì)起到作用。如果我們使用線(xiàn)性位深度減少(除以256)對(duì)低振幅樣本的影響會(huì)比對(duì)高振幅樣本的影響更大。 考慮一個(gè)初始值是32767的16位樣本,可取的最大正數(shù)值。轉(zhuǎn)化為8位,樣本值變?yōu)?27(32767/256 = 127余255),舍入誤差是255/32768。 這是一個(gè)小于1%的量化誤差。但是將這個(gè)誤差與最小量級(jí)的16位樣本,那些取值在0與255之間的樣本,獲得的量化誤差相比較。當(dāng)最小量級(jí)的16位樣本簡(jiǎn)化成8位的時(shí)候,轉(zhuǎn)化后的值會(huì)接近于0,誤差是100%。所以使用線(xiàn)性位深度縮減方法舍入,對(duì)低振幅樣本的影響會(huì)比對(duì)高振幅樣本的影響更大。 如果我們可以重新分配樣本數(shù)值,更多的量化等級(jí)在較低的振幅,少量的量化等級(jí)在較高的振幅,就可以減少量化誤差。這就是在WaveNet中使用Mu-law分布(非線(xiàn)性量化)來(lái)代替使用簡(jiǎn)單的線(xiàn)性量化的原因。
執(zhí)行Mu-law壓縮的表達(dá)式比使用線(xiàn)性量化的可以等到更優(yōu)的重構(gòu)輸出(更接近與原音頻) 。
在上面的表達(dá)式中,?1 < Xt < 1(音頻的樣本在不同的時(shí)間不長(zhǎng)重新取樣,從-32,768...32,767轉(zhuǎn)為-1...1), μ = 255。這將使模型在每個(gè)時(shí)間步長(zhǎng)中只輸出256個(gè)值而不是 65,535個(gè)值,提高了訓(xùn)練和推論的速度。
非線(xiàn)性激活函數(shù)對(duì)于任何一個(gè)學(xué)習(xí)輸出與輸入之間的復(fù)雜關(guān)系的深度學(xué)習(xí)模型來(lái)說(shuō)都是要素之一。RELU(線(xiàn)性單元)最初在WaveNet中被使用,但是在執(zhí)行實(shí)驗(yàn)后發(fā)現(xiàn),對(duì)于WaveNet來(lái)說(shuō),使用一個(gè)非線(xiàn)性的tan-hyperbolic(tanh)函數(shù)選通sigmoid (S型)函數(shù)的激活函數(shù)效果更好。
在WaveNet中使用的選通激活函數(shù)表達(dá)式
在上面的表達(dá)式中,W 表示可許阿西過(guò)濾器,* 表示卷積算子,⊙表示同或數(shù)學(xué)運(yùn)算符。殘差連接,不斷疊加底層和它上層的輸出,跳躍連接,直接將底層輸出疊加到輸出層,這兩者已經(jīng)證實(shí)在減少神經(jīng)網(wǎng)絡(luò)與訓(xùn)練深層網(wǎng)絡(luò)的收斂時(shí)間方面是有效的。因此,如下圖所示,殘差連接已經(jīng)在WaveNet的架構(gòu)中被使用。
WaveNet架構(gòu):選通激活函數(shù),跳躍連接,殘差連接
現(xiàn)在還沒(méi)有講到,我們?nèi)绾胃鶕?jù)演講者身份,相應(yīng)文本等各種功能來(lái)調(diào)節(jié)輸出語(yǔ)音。WaveNet的輸出語(yǔ)音可以通過(guò)兩種方式進(jìn)行調(diào)節(jié):(1)全局調(diào)節(jié),(2)單個(gè)特征偏置輸出所有時(shí)間步驟,如說(shuō)話(huà)者的身份或局部調(diào)節(jié),具有多個(gè)特征,實(shí)際上是不同的時(shí)間序列特征,其在不同時(shí)間步驟偏置輸出,如語(yǔ)音的基礎(chǔ)文本。如果我們更正式地表達(dá)這一點(diǎn),那么這將意味著在實(shí)際模型中在條件分布術(shù)語(yǔ)(本地條件中的Ht和全局調(diào)節(jié)中的H)中引入新參數(shù)。
在引入條件輸入之后修改條件分布項(xiàng)
在本地調(diào)節(jié)中,調(diào)節(jié)輸入的時(shí)間序列可能具有比音頻更短的長(zhǎng)度,并且對(duì)于局部調(diào)節(jié),要求兩個(gè)時(shí)間序列必須具有相同的長(zhǎng)度。為了匹配長(zhǎng)度,我們可以使用轉(zhuǎn)置的CNN(一種可學(xué)習(xí)的上采樣方案)或其他上采樣方案來(lái)增加調(diào)節(jié)輸入的長(zhǎng)度
引入偏差項(xiàng)h后的表達(dá)式
在上面的表達(dá)式中,V是可學(xué)習(xí)的線(xiàn)性投影,其基本上用于兩個(gè)目的變換h以校正尺寸并學(xué)習(xí)偏置輸出的正確權(quán)重。
WaveNet的架構(gòu),無(wú)論我們到目前為止討論了什么,都很好地捕獲了復(fù)雜的時(shí)間依賴(lài)性和條件。除此之外,高度并行化使訓(xùn)練變得非常迅速。但是推理呢?由于時(shí)間步長(zhǎng)的輸出依賴(lài)于前一個(gè)時(shí)間步長(zhǎng)的輸出,所以對(duì)新音頻的采樣本質(zhì)上是連續(xù)的。產(chǎn)生1秒的輸出大約需要1分鐘的GPU時(shí)間。如果谷歌將這個(gè)模型部署到他們的助手上,那么對(duì)于像“嘿谷歌!天氣怎么樣?”這樣簡(jiǎn)單的問(wèn)題也得花上幾個(gè)小時(shí)來(lái)思考。那么他們是如何縮短推理時(shí)間的呢?IAF就是答案。
什么是規(guī)范化流程?規(guī)范化流程是一系列轉(zhuǎn)換的過(guò)程,可以學(xué)習(xí)從從簡(jiǎn)單概率密度(如高斯)到豐富的復(fù)雜分布的映射(雙射)。設(shè)想一下,如果你從概率分布q(z)和概率分布q(x)中采樣中得到足夠多的點(diǎn),那么這個(gè)規(guī)范化流程可以用來(lái)學(xué)習(xí)轉(zhuǎn)換過(guò)程,也就是從q(x)采樣的點(diǎn)映射到其在分布q中的相應(yīng)映射(Z)的過(guò)程。這個(gè)過(guò)程如何完成的?讓我們先考慮有一個(gè)轉(zhuǎn)換f,f是一個(gè)一個(gè)可逆和平滑的映射。如果我們使用此映射來(lái)轉(zhuǎn)換具有分布q(z)的隨機(jī)變量z,那么,我們得到的隨機(jī)變量z'= f(z)具有分布q(z'):
為了向你更加直觀地介紹,我們是如何為變換后的隨機(jī)變量的分布得出這個(gè)表達(dá)式,請(qǐng)查看Eric Jang的這篇博客文章。一個(gè)轉(zhuǎn)換是否足夠?實(shí)際上,我們可以通過(guò)組合幾個(gè)簡(jiǎn)單的變換,并連續(xù)應(yīng)用上述表達(dá)式來(lái)構(gòu)造任意復(fù)雜的密度。通過(guò)將分布q0通過(guò)K變換鏈fk連續(xù)變換隨機(jī)變量z0而獲得的密度qK(z)是:
這些變換中的每一個(gè)都可以使用矩陣乘法(具有可學(xué)習(xí)的值)輕松建模,然后是非線(xiàn)性,例如ReLU。然后,通過(guò)優(yōu)化在變換的概率分布qK(z)下從q(x)采樣的點(diǎn)的似然性(對(duì)數(shù)似然),使用任何您喜歡的優(yōu)化算法來(lái)更新變換的可學(xué)習(xí)參數(shù)。這將使分布qK(z)與q(x)非常相似,從而學(xué)習(xí)從q(z)到q(x)的適當(dāng)映射。
經(jīng)過(guò)一系列可逆變換的分布流
規(guī)范化流程的想法如何幫助我們快速推理?請(qǐng)記住,WaveNet是一個(gè)生成模型,它除了嘗試學(xué)習(xí)可能產(chǎn)生訓(xùn)練數(shù)據(jù)的概率分布之外,什么都不做。因?yàn)樗且粋€(gè)明確定義的生成模型(具有易處理的密度),我們可以很容易地學(xué)習(xí)一個(gè)可以映射簡(jiǎn)單點(diǎn)的轉(zhuǎn)換,像Gaussian這樣的分布到WaveNet學(xué)習(xí)的復(fù)雜分類(lèi)分布。如果學(xué)習(xí)到的具有快速推理方案的規(guī)范化流程,我們可以輕松地對(duì)WaveNet中的慢推理問(wèn)題進(jìn)行排序。 IAF(反向自回歸流)可以很好地適應(yīng)這種想法。 在IAF中,我們的想法是首先從z~Logistic(0,I)中抽取隨機(jī)樣本,然后將以下變換應(yīng)用于繪制的樣本。
zt上的簡(jiǎn)單縮放和移位變換,其中縮放因子(s)和移位因子(μ)通過(guò)使用可學(xué)習(xí)參數(shù)(θ)和來(lái)自先前時(shí)間步長(zhǎng)的輸入樣本z中的值來(lái)計(jì)算
為了輸出時(shí)間步長(zhǎng)xt的正確分布,逆自回歸流 基于噪聲輸入z1到zt-1的序列,可以隱含地推斷它之前的time-step x1到xt-1的序列。噪聲輸入序列可以在給定zt的情況下并行輸出所有xt。下面的圖片會(huì)讓事情變得更加清晰(注意改變記譜法)。
在逆自回歸流中,可以并行計(jì)算不同時(shí)間步的輸出,因?yàn)闀r(shí)間步的輸出不依賴(lài)于先前時(shí)間步的輸出
太棒啦! IAF具有快速推理方案(甚至可以并行計(jì)算條件概率),但它們訓(xùn)練較慢。為什么比較慢呢?因?yàn)槿绻憬o我們一個(gè)新的數(shù)據(jù)點(diǎn)并要求評(píng)估密度,我們需要恢復(fù)u,這個(gè)過(guò)程固有的順序很慢。 Parallel WaveNet利用這一事實(shí),提出了使用簡(jiǎn)單的WaveNet(教師WaveNet)培訓(xùn)IAF(學(xué)生WaveNet)的概念。
與WaveNet差不多,我們的想法是利用IAF具有快速推理方案的特性。因此,在第一階段,我們訓(xùn)練出一個(gè)簡(jiǎn)單的WaveNet模型(我們稱(chēng)之為教師培訓(xùn))。在第二階段,我們凍結(jié)教師WaveNet的權(quán)重,并利用它來(lái)訓(xùn)練IAF(Student Distillation)。我們的想法是先從z~Logistic(0,I)中抽取一個(gè)隨機(jī)樣本,然后以并行方式傳遞給IAF。這將為我們提供轉(zhuǎn)換分布和相關(guān)條件概率的要點(diǎn)。我們的想法是通過(guò)簡(jiǎn)單的教師WaveNet將這一點(diǎn)轉(zhuǎn)換為轉(zhuǎn)換后的分布,這將產(chǎn)生關(guān)于已經(jīng)訓(xùn)練過(guò)的教師WaveNet的條件概率。然后我們嘗試最小化從任一模型接收的條件概率之間的KL-差異。這將允許IAF(學(xué)生WaveNet)學(xué)習(xí)與其教師幾乎相似的概率分布,并且結(jié)果驗(yàn)證了這一事實(shí),因?yàn)閺慕處熀蛯W(xué)生WaveNet收到的輸出之間的5級(jí)MOS分?jǐn)?shù)幾乎可以忽略不計(jì)。
Parallel WaveNet的培訓(xùn)程序
部署的速度是否足夠快?是的。實(shí)際上,它能夠以比實(shí)時(shí)快20倍的速度生成語(yǔ)音樣本。但是仍然存在一個(gè)問(wèn)題,每當(dāng)我們需要重新訓(xùn)練我們的模型時(shí),我們首先會(huì)訓(xùn)練WaveNet教師然后訓(xùn)練學(xué)生WaveNet。此外,學(xué)生WaveNet的表現(xiàn)在很大程度上取決于教師WaveNet的培訓(xùn)情況。但總的來(lái)說(shuō),進(jìn)行部署是件好事。
“理論是廉價(jià)的,請(qǐng)給我代碼。(實(shí)踐出真知)”
在網(wǎng)上有許多的關(guān)于簡(jiǎn)單的WaveNet的實(shí)踐可以使用,但是關(guān)于并行實(shí)踐目前還沒(méi)有找到。
1.Keras實(shí)踐
2.PyTorch實(shí)踐
3.TensorFlow實(shí)踐(這是目前網(wǎng)上可被使用的實(shí)踐中被引用借鑒最多的)
參考文獻(xiàn):
Audio Companding.
Convolutional Layers in NLP tasks.
Dilated Convolutions.
Normalising Flows: Tutorial by Eric Jang - Part 1, Part 2. Variational Inference with Normalizing Flows (Paper).
Deep Voice: Real-time Neural Text-to-Speech (Paper): Appendix is pretty useful to understand WaveNet.
WaveNet: A generative model for raw audio (Paper).
Parallel WaveNet: Fast High-Fidelity Speech Synthesis (Paper).
PixelCNN, Wavenet & Variational Autoencoders — Santiago Pascual — UPC 2017.
想要繼續(xù)查看該篇文章相關(guān)鏈接和參考文獻(xiàn)?
長(zhǎng)按鏈接點(diǎn)擊打開(kāi)或點(diǎn)擊【一文帶你讀懂WaveNet:谷歌助手的聲音合成器】:
https://ai.yanxishe.com/page/TextTranslation/1228
AI研習(xí)社每日更新精彩內(nèi)容,觀看更多精彩內(nèi)容:雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
等你來(lái)譯:
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。