我們還將展示W(wǎng)aveNets是如何合成如音樂(lè )這樣的音頻信號的。大家可以在下面聽(tīng)到若干由這個(gè)系統自動(dòng)生成的驚人的鋼琴演奏小樣。
對話(huà)機器
實(shí)現人類(lèi)和機器進(jìn)行對話(huà)是人機交互領(lǐng)域長(cháng)期以來(lái)的一個(gè)夢(mèng)想。隨著(zhù)過(guò)去的幾年中深度神經(jīng)網(wǎng)絡(luò )的應用(如谷歌語(yǔ)音搜索),計算機理解自然對話(huà)的能力已經(jīng)得到了很大的提升。然而,讓計算機生成語(yǔ)音,這個(gè)過(guò)程通常被描述為語(yǔ)音合成或者TTS(文本到語(yǔ)音),卻基本上還是基于拼接TTS的方法。
這種通過(guò)先將一個(gè)人類(lèi)錄制的語(yǔ)音分解成大量的一小段一小段的語(yǔ)音片段,積累成一個(gè)非常大的數據庫,然后再這些小片段去合成人類(lèi)的語(yǔ)音。這樣做的問(wèn)題就使得修改聲音變得非常困難,例如在不錄制一個(gè)新的數據庫的情況下,能夠將合成的語(yǔ)音變成另一個(gè)人的聲音,或者改變他們在演講時(shí)的側重或者情感。
這就自然的引出了對于參量式TTS的巨大需求。在參量式TTS中,所有用于生成數據的信息被存儲在模型的參量中。因為,語(yǔ)音的內容和特色就可以通過(guò)模型的輸入來(lái)進(jìn)行控制。不過(guò),目前來(lái)講,參量式TTS聽(tīng)上去沒(méi)有拼接式來(lái)得自然,至于對于英語(yǔ)這樣的音節語(yǔ)音是的。現存的參量式模型一般上通過(guò)一個(gè)叫做vocoders的信號處理算法來(lái)輸出它的結果,以生成語(yǔ)音信號。
WaveNet通過(guò)直接將音頻信號的原始波形進(jìn)行建模,并且一次產(chǎn)生一個(gè)樣本,從來(lái)改變了現在的局面。此外,使用原始波形,意味著(zhù)WaveNet可以對包括音樂(lè )在內的任何音頻進(jìn)行建模,這樣子生成的語(yǔ)音聽(tīng)起來(lái)會(huì )更自然。
WaveNets




研究人員一般都會(huì )避免去對原始音頻進(jìn)行建模,因為它的節拍太快了。一般來(lái)說(shuō),一秒存在著(zhù)1萬(wàn)6千個(gè)samples,或者更多,并且在很多時(shí)間尺度上有著(zhù)重要的結構。構建一個(gè)完全自回歸的模型,并且能夠預測每一個(gè)samples是如何被前面所有的samples所影響的(從統計學(xué)上來(lái)說(shuō),每個(gè)預測都和所有之前的觀(guān)測存在關(guān)聯(lián)),這是一個(gè)相當艱巨的挑戰。
然而,我們在今年早先時(shí)候發(fā)布的PixelRNN和PixelCNN模型卻向我們展示了,它可以生成完全自然的圖片。不僅是一次一個(gè)像素,而且是一次一個(gè)color-channel,一張圖片需要進(jìn)行成千上萬(wàn)次的預測。這激發(fā)了我們將二維的PixelNet調整為一維的WaveNet。

上面的動(dòng)畫(huà)演示像我們展示了WaveNet是如何組織的。這是一個(gè)完全的卷積神經(jīng)網(wǎng)絡(luò )。在這其中,卷積層擁有不同的擴張因素,能夠讓它的接受域隨著(zhù)成千上萬(wàn)的timesteps的深度和覆蓋呈現指數型的增長(cháng)。
在訓練時(shí),輸入序列是來(lái)自人類(lèi)演講者的真實(shí)的波形。在訓練后,我們可以取樣這個(gè)網(wǎng)絡(luò )來(lái)生成合成的語(yǔ)音。每一步的采樣值是由網(wǎng)絡(luò )計算得出的概率分布得到的。這個(gè)值隨后會(huì )重新回到輸入端,然后在下一步生成一個(gè)新的預測。構建一個(gè)像這樣能夠一次進(jìn)行一步取樣的網(wǎng)絡(luò )是需要大量的計算的,但我們覺(jué)得這對于生成復雜、聽(tīng)上去和實(shí)際的聲音一樣的音頻是非常必要的。
開(kāi)拓創(chuàng )新
我們用了一部分Google的TTS數據庫來(lái)訓練WaveNet。因此,我們可以去衡量它的表現。下面的數據展示了從規模1-5上,對比Google現在最好的TTS系統(參量式和拼接式)和人類(lèi)語(yǔ)音(使用的是MOS),WaveNet的質(zhì)量。MOS是一個(gè)標準的用于主觀(guān)音質(zhì)測試的衡量體系,它由人類(lèi)在盲測中所提交的數據獲得。如我們所能看到的一樣,WaveNets在中英文和中文上,縮小的超過(guò)50%的目前最前進(jìn)的技術(shù)和人類(lèi)表現之前的差距。
對于中文和英文來(lái)說(shuō),目前Google的TTS系統被認為是目前世界上最佳的系統。所以,WaveNets可以通過(guò)一個(gè)系統來(lái)對兩種語(yǔ)言同時(shí)進(jìn)行提升,確實(shí)是一個(gè)重大的成果。

關(guān)于三者對比的語(yǔ)音,建議大家進(jìn)入DeepMind的英文原文,進(jìn)行試聽(tīng),WaveNets的效果相當不錯!
知道說(shuō)什么
為了使用WaveNets將文本變成語(yǔ)音,我們先要告訴它什么是文本。我們的做法是,通過(guò)將文本轉換成有語(yǔ)言和語(yǔ)音特色(包括當前的音素、章節、單詞等信息)的一個(gè)序列,之后將它們都投入到WaveNet中。這意味著(zhù)這個(gè)網(wǎng)絡(luò )的預測不僅可以基于之前的音頻samples,也可以基于我們想要讓他說(shuō)的文本。
如果我們在沒(méi)有文本序列的情況下來(lái)訓練網(wǎng)絡(luò ),它仍然可以生成語(yǔ)音,但是它不得不編造一些它要說(shuō)的東西。你同樣可以在DeepMind的英文原文頁(yè)聽(tīng)到,這樣生成的小樣聽(tīng)上去就是在胡說(shuō)八道。
WaveNets在有些時(shí)間還可以生成例如呼吸和嘴部運動(dòng)這樣的非語(yǔ)言聲音,這也反映了一個(gè)原始的音頻模型所擁有的更大的自由度。
如你在這些樣本中所能聽(tīng)到的一樣,一個(gè)單一的WaveNet可以學(xué)習很多種聲音的特點(diǎn),不論是男性還是女性。為了確認WaveNet知道在任意的情景下它知道用什么聲音,我們去控制演講人的身份。有意思的是,我們發(fā)布用很多的演講者是訓練這個(gè)系統,使得它能夠更好的去給單個(gè)演講者建模。這比只用一個(gè)演講者去訓練要強。這是一種形式的遷移學(xué)習。
同樣的,我們也可以在模型的輸入端給予更多的東西,例如情感或噪音,這樣使得生成的語(yǔ)音可以更多樣化,也更有趣。
生成音樂(lè )
既然WaveNets可以用來(lái)能任意的音頻信息進(jìn)行建模,我們就想如果能讓他來(lái)生成音樂(lè )的話(huà),這樣就更有意思了。和TTS實(shí)驗不同,我們沒(méi)有給網(wǎng)絡(luò )一個(gè)輸入序列,告訴它要去播放什么(例如一個(gè)譜子)。相反的,我們只是讓它去生成任意它想生成的東西。當我們將它在一個(gè)古典鋼琴音樂(lè )的數據集上進(jìn)行訓練時(shí),它聽(tīng)上去的效果確定還不錯。
這幾段生成的樣本,也建議大家點(diǎn)擊文章最下方的“閱讀原文”按鈕,進(jìn)入DeepMind的英文原文,進(jìn)行試聽(tīng)。
WaveNets為T(mén)TS、音樂(lè )合成以及音頻建模開(kāi)啟了更多的可能性。我們已經(jīng)迫不及待地想要去探索更多WaveNets能做的事!