1. 程式人生 > >DeepMind詳解新WaveNet:比原來快千倍,語音更自然 | 附論文(轉) DeepMind詳解新WaveNet:比原來快千倍,語音更自然 | 附論文

DeepMind詳解新WaveNet:比原來快千倍,語音更自然 | 附論文(轉) DeepMind詳解新WaveNet:比原來快千倍,語音更自然 | 附論文

mark一下,感謝作者分享!
https://blog.csdn.net/yh0vlde8vg8ep9vge/article/details/78621165

DeepMind詳解新WaveNet:比原來快千倍,語音更自然 | 附論文

2017年11月23日 00:00:00 閱讀數:1615
																														</div>
			<div class="operating">
													</div>
		</div>
	</div>
</div>
<article>
	<div id="article_content" class="article_content clearfix csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post">
							<div class="article-copyright">
				版權宣告:本文為博主原創文章,未經博主允許不得轉載。					https://blog.csdn.net/yH0VLDe8VG8ep9VGe/article/details/78621165				</div>
							            <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-f76675cdea.css">
					<div class="htmledit_views">
夏乙 編譯自 DeepMind Blog
量子位 出品 | 公眾號 QbitAI

640?wx_fmt=png&wxfrom=5&wx_lazy=1

上個月,Google Assistant英語和日語版終於用上了DeepMind一年前推出的語音合成演算法:WaveNet。

從演算法研究出來到用在產品裡,為什麼隔了一年多的時間呢?DeepMind說,WaveNet在去年論文釋出的時候還只是個研究用的原型,對於消費類產品來說,它消耗的計算力太多了。

於是,DeepMind用一年時間為這個語音合成演算法打造了升級版:並行WaveNet(parallel WaveNet),執行速度比原版快1000倍,語音質量也有所提升。

為了介紹升級版模型的細節,以及讓整個系統能夠在大規模平行計算環境中執行的概率密度蒸餾(probability density distillation)技術,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個樣本,要部署到實際產品上還是太慢了。

0?wx_fmt=gif

 原版WaveNet逐個生成波形樣本

為了解決這個“太慢了”的問題,就需要一種能夠一次生成長序列樣本,又不用犧牲質量的方法。DeepMind所用的,就是上面提到的概率密度蒸餾。

概率密度蒸餾法就是用一個經過完全訓練的WaveNet模型作為“教師”網路,把自己的能力教給一個“學生”網路——更小、更平行、更適用於現代計算機硬體的神經網路。

學生網路是一個比較小的dilated CNN,和原始WaveNet結構差不多。但二者有一個關鍵的區別:在學生網路中,每個樣本的生成不依賴於任何已生成的樣本,這就意味著從第一個詞到最後一個詞,以及中間的整個句子,我們都可以同時生成出來,如下圖所示:

0?wx_fmt=gif

 新WaveNet模型以白噪聲為輸入,並行合成所有樣本

在訓練過程中,學生網路從隨機狀態開始,被輸入隨機的白噪聲,它的任務是裡輸出一串連續的聲音波形。

然後,生成出的聲音波形被輸入到以訓練的原始WaveNet模型(也就是教師網路)中,教師網路給每個樣本打分,給出一個訊號來讓學生理解這個樣本和教師網路所要求的輸出相差有多遠。

這也是一個通過反向傳播來對學生網路進行調參的過程,讓學生網路學會自己該生成什麼樣的聲音。話句話說,就是教師和學生網路都為每個聲音樣本的值輸出一個可能的概率分佈,而訓練的目標是最小化二者之間的KL散度(KL divergence)。

這種訓練方法和生成對抗網路(GAN)的設計可以平行比較,學生的角色就相當於GAN裡的生成器,而教師相當於鑑別器。與GAN不同的是,學生的目標不是“騙過”教師,而是與教師合作,嘗試達到與教師差不多的效能。

儘管這種訓練方式效果不錯,但我們還是需要再加上一些額外的損失函式,才能讓學生達到我們所需要的水平。

我們添加了感知損失(perceptual loss)來防止產生不好的發音,用contrastive loss來進一步消除噪音,用power loss協助匹配人類語音的能量。

這些損失函式都是很有用的,比如說如果不加power loss,模型合成的語音就都是耳語,而不像人類大聲說話的聲音。

把上述方法都用上,我們訓練出的並行WaveNet所合成的語音,就能夠達到和原始WaveNet相同的質量,見下表所示的平均意見分(MOS):

0?wx_fmt=png

MOS這個評分體系,讓人類被試用1-5的數字來衡量語音聽起來有多自然。特別需要說明的是,真人的語音的MOS評分也只有4.667。

當然,讓WaveNet符合實際產品應用所需的速度和質量,需要很多步驟,概率密度蒸餾只是其中之一。

為了將並行WaveNet整合到Google Assistant的服務流中,DeepMind應用團隊和Google語音團隊都需要付出同樣多的工程努力,兩個團隊共同努力12個月,才能夠把WaveNet這項基礎研究用到谷歌的大規模產品中。

最後,附上相關文章地址:

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

加入社群

量子位AI社群11群開始招募啦,歡迎對AI感興趣的同學,加小助手微信qbitbot4入群;


此外,量子位專業細分群(自動駕駛、CV、NLP、機器學習等)正在招募,面向正在從事相關領域的工程師及研究人員。


進群請加小助手微訊號qbitbot4,並務必備註相應群的關鍵詞~通過稽核後我們將邀請進群。(專業群稽核較嚴,敬請諒解)

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話介面,回覆“招聘”兩個字。

0?wx_fmt=jpeg

量子位 QbitAI · 頭條號簽約作者

追蹤AI技術和產品新動態