最前沿:你的聲音,分分鐘非給複製
本文轉發自 微信公眾號:FloodSung的AI遊樂場
這是FloodSung的AI遊樂場的第一篇文章!
微信的語音轉文字我們都用過,那麼反過來,文字轉語音呢?
想像這樣的場景:
你正在開會很無聊,就和朋友聊天,朋友在給你發語音,但是你卻不方便說話。於是你這邊將語音轉文字,然後你輸入文字,而你朋友卻能聽到你的聲音,關鍵是,朋友還不知道這聲音不是你說的,會不會很酷?
再想象一個場景,年輕的媽媽因為不幸突然喪失了發音能力,可愛的孩子再也聽不到媽媽的聲音了,這是多麼的遺憾。那麼如果能夠文字轉語音的話,並且轉成的語音就是原來媽媽說話的聲音,那會多麼美妙。如果未來還能直接通過腦電波解碼要說的話,我們就可以用機器完全代替我們的聲帶了。
所以,文字轉語音真是一個很有價值的技術。這個技術近年來由於Google Deepmind WaveNet的發展,文字轉語音已經到了人很難分辨的程度了,但是我們上面說的功能要實現,需要能夠利用我們特定少量的聲音就能高度複製還原我們特定的聲音,這個難度就大多了,也神奇很多。
現在能實現了嗎?
答案當然是Yes!
作為FloodSung的AI遊樂場的開篇文章,當然是給大家爆料最新最強的技術啦。
DeepMind在ICLR2019的投稿文章中有一篇是《Sample Efficient Adaptive Text-to-Speech》,前天才在arxiv上放出來。
在這篇文章中,Deepmind以WaveNet做基礎,基於Meta Learning技術(今年上升勢頭最猛的領域),初步實現了這個功能,大家可以上 ofollow,noindex"> https:// sample-efficient-adaptive-tts.github.io /demo/ 感受一下這個技術。僅使用非常少的語音樣本,就能在新的文字轉語音中高度還原說話人的聲音。按照paper裡面的說法,Deepmind實現的這個系統騙過了目前最先進的說話人識別系統,也就是機器分辨不出來這是你說的還是機器說的,真的很牛逼!
談完技術談商業,Deepmind實現的這個技術恐怕明年就可以嵌入到Android系統上了。對於國內公司來說,貌似WaveNet技術Google已經申請了專利,所以想要直接拿來主義恐怕不行。但是除掉WaveNet技術,Meta Learning技術方法就多了,隨便改吧改吧都可以和Deepmind不一樣,倒是有點機會。
說到商業當然也要說到道德了。因為文字轉語音是一個雙刃劍,既可以用在好的地方,也可以用在壞的地方。比如以後你將無法確定對面打來的電話是不是真人,如果他模仿你最好朋友的聲音找你借錢你給不給呢?由於視訊也同樣可以合成,未來遠端聊天只能先生物識別確認一下了,否則一切都可能是假的。想到這,未來的世界又沒有那麼美好了。
今天的AI爆料就基本說完啦,知道這個最新進展的朋友就可以開心的關掉頁面啦。但是,FloodSung的AI遊樂場絕對不是那些一般AI媒體,只是簡單介紹或者翻譯一下這些成果,我們還想要Detail細節!所以,下面我們就花點時間說說DeepMind到底是怎麼實現的吧!
====================================================
下面的文字會涉及比較專業的知識,不瞭解的朋友可以略過。
先說說Meta Learning,今年ICLR2019的投稿文章中Meta Learning的數量特別多,好幾十篇,Meta Learning也不再僅僅做影象的Few-Shot Learning少樣本學習了,而是延伸到各個領域,就如我們今天介紹的文字轉語音。Meta Learning到底是什麼?在我看來就是深度學習的渦輪增壓器,加上去,讓學習速度變快!適應能力變強!Meta Learning可以有多火?或者說Meta Learning的坑有多大?只要把任何一個現有的CV,NLP的問題加上Few Shot都可以變成新問題,簡直就是一個金礦。
Ok,我們回到Deepmind這篇Paper,到底對WaveNet做了什麼呢?簡單一句話就是訓練一個Multi-Speaker WaveNet做為一個prior,然後基於此做few shot adaptation。

Embedding Table裡面就是不同Speaker的Embedding,額外加上Linguistic features (輸入的text資訊)及Fundamental freq,作為condition輸入到WaveNet中進行訓練。
那麼怎麼做Few-shot adaptation呢?Paper裡面給出了多種方法。
1)第一種,預訓練好整個multi-speaker WaveNet後,拿到一個新的說話人樣本,我們先固定WaveNet Stack的引數,然後隨機化Embedding,用新樣本來訓練這個embedding。
2)第二種,最最簡單粗暴的做法,直接用新樣本finetune整個網路。
2)第三種,額外訓練一個encoder network,輸入新的說話人樣本,然後就能預測新的embedding。這樣訓練完之後,拿到新的說話人樣本,我們就可以不用接著訓練,直接通過encoder network就得到了對應的embedding,從而產生新的聲音,這個方案不需要finetune,所以很省時間。
大家看到上面幾種方案一定會瘋掉,怎麼這麼簡單?Meta Learning在哪裡?其實簡單的說,conditional neural network就是Meta Learning的最基本實現方式,而且效果很不錯哦。
接下來說說實驗。有了上面三種方法,Paper裡面使用一個公開的資料庫LibriSpeech,包含了2302個說話人樣本,不算多。然後測試的時候,Deepmind使用了10s和5min兩種測試方法,使用的樣本時間很短。但只要這麼短(甚至只是10s)的時間,取得的效果就可以被評價為Good 第4級 (指標分5等)。然後第二種全部做finetuning的做法效果是最好的,不過這個finetuning所需的時間也最多了。
小結一下,Deepmind這篇Paper用最簡單的Meta Learning方法,在Text-to-Speech這個新Few-shot learning問題上取得了SOTA,當然Deepmind也指出,目前的實驗使用的樣本是高度簡單純粹的,現實環境有噪聲的情況可以作為未來的下一步研究。
本文就說到這,以上分析也包含了很多個人觀點,歡迎大家批評指正!
最後,歡迎各位感興趣的朋友關注我新開的公眾號 FloodSung的AI遊樂場 ,相比於知乎專欄,我可以更快速的為大家分享最前沿AI,謝謝!
https:// github.com/floodsung/so ngrotek.github.io/blob/master/gallery/qrcode.jpg