DeepMind详解新WaveNet:比原来快千倍,语音更自然 | 附论文
上個月,Google Assistant英語和日語版終于用上了DeepMind一年前推出的語音合成算法:WaveNet。
從算法研究出來到用在產(chǎn)品里,為什么隔了一年多的時間呢?DeepMind說,WaveNet在去年論文發(fā)布的時候還只是個研究用的原型,對于消費類產(chǎn)品來說,它消耗的計算力太多了。
于是,DeepMind用一年時間為這個語音合成算法打造了升級版:并行WaveNet(parallel WaveNet),運行速度比原版快1000倍,語音質(zhì)量也有所提升。
為了介紹升級版模型的細節(jié),以及讓整個系統(tǒng)能夠在大規(guī)模并行計算環(huán)境中運行的概率密度蒸餾(probability density distillation)技術(shù),DeepMind同時還公布了一篇論文:
Parallel WaveNet: Fast High-Fidelity Speech Synthesis
Aaron van den Oord, Yazhe Li, Igor Babuschkin, Karen Simonyan, Oriol Vinyals, Koray Kavukcuoglu
George van den Driessche, Edward Lockhart, Luis C. Cobo, Florian Stimberg, Norman Casagrande, Dominik Grewe, Seb Noury, Sander Dieleman, Erich Elsen, Nal Kalchbrenner, Heiga Zen, Alex Graves, Helen King, Tom Walters, Dan Belov, Demis Hassabis
地址:https://deepmind.com/documents/131/Distilling_WaveNet.pdf
原版WaveNet模型用自回歸連接來一個樣本一個樣本地合成聲音波形,每一個新樣本受前一個樣本制約。按照這樣的序列生成方法,每秒能夠生成24000個樣本,要部署到實際產(chǎn)品上還是太慢了。
△?原版WaveNet逐個生成波形樣本
為了解決這個“太慢了”的問題,就需要一種能夠一次生成長序列樣本,又不用犧牲質(zhì)量的方法。DeepMind所用的,就是上面提到的概率密度蒸餾。
概率密度蒸餾法就是用一個經(jīng)過完全訓練的WaveNet模型作為“教師”網(wǎng)絡(luò),把自己的能力教給一個“學生”網(wǎng)絡(luò)——更小、更平行、更適用于現(xiàn)代計算機硬件的神經(jīng)網(wǎng)絡(luò)。
學生網(wǎng)絡(luò)是一個比較小的dilated CNN,和原始WaveNet結(jié)構(gòu)差不多。但二者有一個關(guān)鍵的區(qū)別:在學生網(wǎng)絡(luò)中,每個樣本的生成不依賴于任何已生成的樣本,這就意味著從第一個詞到最后一個詞,以及中間的整個句子,我們都可以同時生成出來,如下圖所示:
△?新WaveNet模型以白噪聲為輸入,并行合成所有樣本
在訓練過程中,學生網(wǎng)絡(luò)從隨機狀態(tài)開始,被輸入隨機的白噪聲,它的任務(wù)是里輸出一串連續(xù)的聲音波形。
然后,生成出的聲音波形被輸入到以訓練的原始WaveNet模型(也就是教師網(wǎng)絡(luò))中,教師網(wǎng)絡(luò)給每個樣本打分,給出一個信號來讓學生理解這個樣本和教師網(wǎng)絡(luò)所要求的輸出相差有多遠。
這也是一個通過反向傳播來對學生網(wǎng)絡(luò)進行調(diào)參的過程,讓學生網(wǎng)絡(luò)學會自己該生成什么樣的聲音。話句話說,就是教師和學生網(wǎng)絡(luò)都為每個聲音樣本的值輸出一個可能的概率分布,而訓練的目標是最小化二者之間的KL散度(KL divergence)。
這種訓練方法和生成對抗網(wǎng)絡(luò)(GAN)的設(shè)計可以平行比較,學生的角色就相當于GAN里的生成器,而教師相當于鑒別器。與GAN不同的是,學生的目標不是“騙過”教師,而是與教師合作,嘗試達到與教師差不多的性能。
盡管這種訓練方式效果不錯,但我們還是需要再加上一些額外的損失函數(shù),才能讓學生達到我們所需要的水平。
我們添加了感知損失(perceptual loss)來防止產(chǎn)生不好的發(fā)音,用contrastive loss來進一步消除噪音,用power loss協(xié)助匹配人類語音的能量。
這些損失函數(shù)都是很有用的,比如說如果不加power loss,模型合成的語音就都是耳語,而不像人類大聲說話的聲音。
把上述方法都用上,我們訓練出的并行WaveNet所合成的語音,就能夠達到和原始WaveNet相同的質(zhì)量,見下表所示的平均意見分(MOS):
MOS這個評分體系,讓人類被試用1-5的數(shù)字來衡量語音聽起來有多自然。特別需要說明的是,真人的語音的MOS評分也只有4.667。
當然,讓WaveNet符合實際產(chǎn)品應(yīng)用所需的速度和質(zhì)量,需要很多步驟,概率密度蒸餾只是其中之一。
為了將并行WaveNet整合到Google Assistant的服務(wù)流中,DeepMind應(yīng)用團隊和Google語音團隊都需要付出同樣多的工程努力,兩個團隊共同努力12個月,才能夠把WaveNet這項基礎(chǔ)研究用到谷歌的大規(guī)模產(chǎn)品中。
最后,附上相關(guān)文章地址:
DeepMind博客文章地址:https://deepmind.com/blog/high-fidelity-speech-synthesis-wavenet/
Parallel WaveNet論文:https://deepmind.com/documents/131/Distilling_WaveNet.pdf
原版WaveNet論文:https://arxiv.org/pdf/1609.03499.pdf
— 完 —
本文作者:夏乙? 原文發(fā)布時間:2017-11-23總結(jié)
以上是生活随笔為你收集整理的DeepMind详解新WaveNet:比原来快千倍,语音更自然 | 附论文的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HierarchicalDataTemp
- 下一篇: 通过域名,直接访问到网站主页