GitHub標星近1萬:只需5秒音源,這個網路就能實時“克隆”你的聲音
作者 | Google團隊
譯者 | 凱隱
編輯 | Jane
出品 | AI科技大本營(ID:rgznai100)
本文中,Google 團隊提出了一種文字語音合成(text to speech)神經系統,能通過少量樣本學習到多個不同說話者(speaker)的語音特徵,併合成他們的講話音訊。此外,對於訓練時網路沒有接觸過的說話者,也能在不重新訓練的情況下,僅通過未知說話者數秒的音訊來合成其講話音訊,即網路具有零樣本學習能力。
目前,已經有人將該論文實現並在 GitHub 上釋出了開源專案,目前該專案標星超 9.5k,fork 數是 1.5k。
GitHub連結:
https://github.com/CorentinJ/Real-Time-Voice-Cloning?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more
簡介
傳統的自然語音合成系統在訓練時需要大量的高質量樣本,通常對每個說話者,都需要成百上千分鐘的訓練資料,這使得模型通常不具有普適性,不能大規模應用到複雜環境(有許多不同的說話者)。而這些網路都是將語音建模和語音合成兩個過程混合在一起。本文工作首先將這兩個過程分開,通過第一個語音特徵編碼網路(encoder)建模說話者的語音特徵,接著通過第二個高質量的TTS網路完成特徵到語音的轉換。
兩個網路可以分別在不同的資料集上訓練,因此對訓練資料的需求量大大降低。對於特徵編碼網路,其關鍵在於聲紋資訊的建模,即判斷兩段語音為同一人所說,因此可以從語音識別(speaker verification)任務進行遷移學習,並且該網路可以在帶有噪聲和混響的多目標資料集上訓練。
為了保證網路對未知(訓練集中沒有的)說話者仍然具有聲音特徵提取能力,編碼網路在18K說話者的資料集上訓練,而語音合成網路只需要在1.2K說話者的資料集上訓練。
網路結構
主要由三部分構成:
聲音特徵編碼器(speaker encoder):
1. 語音編碼器,提取說話者的聲音特徵資訊。將說話者的語音嵌入編碼為固定維度的向量,該向量表示了說話者的聲音潛在特徵。
2. 序列到序列的對映合成網路
基於Tacotron 2的對映網路,通過文字和1得到的向量來生成對數梅爾頻譜圖(log mel spectrogram)。
(梅爾光譜圖將譜圖的頻率標度Hz取對數,轉換為梅爾標度,使得人耳對聲音的敏感度與梅爾標度承線性正相關關係)
3.基於WaveNet的自迴歸語音合成網路
將梅爾頻譜圖(譜域)轉化為時間序列聲音波形圖(時域),完成語音的合成。
需要注意的是,這三部分網路都是獨立訓練的,聲音編碼器網路主要對序列對映網路起到條件監督作用,保證生成的語音具有說話者的獨特聲音特徵。
1. 聲音特徵編碼器
編碼器主要將參考語音訊號嵌入編碼到固定維度的向量空間,並以此為監督,使對映網路能生成具有相同特徵的原始聲音訊號(梅爾光譜圖)。編碼器的關鍵作用在於相似性度量,對於同一說話者的不同語音,其在嵌入向量空間中的向量距離(餘弦夾角)應該儘可能小,而對不同說話者應該儘可能大。此外,編碼器還應具有抗噪能力和魯棒性,能夠不受具體語音內容和背景噪聲的影響,提取出說話者聲音的潛在特徵資訊。這些要求和語音識別模型(speaker-discriminative)的要求不謀而合,因此可以進行遷移學習。
編碼器主要由三層LSTM構成,輸入是40通道數的對數梅爾頻譜圖,最後一層最後一幀cell對應的輸出經過L2正則化處理後,即得到整個序列的嵌入向量表示。實際推理時,任意長度的輸入語音訊號都會被800ms的視窗分割為多段,每段得到一個輸出,最後將所有輸出平均疊加,得到最終的嵌入向量。這種方法和短時傅立葉變換(STFT)非常相似。
訓練集包含按1.6s劃分的音訊樣本,以及他們所對應的說話者label資訊,不使用任何重複樣本。
生成的嵌入空間向量視覺化如下圖:
可以看到不同的說話者在嵌入空間中對應不同的聚類範圍,可以輕易區分,並且不同性別的說話者分別位於兩側。
然而合成語音和真實語音也比較容易區分開,合成語音離聚類中心的距離更遠。這說明合成語音的真實度還不夠。
2. 序列到序列的對映合成網路
在Tacotron 2的基礎上,額外新增了對多個不同說話者的語音進行合成的功能。Tacotron 2包含注意力層,作者發現直接將嵌入向量作為注意力層的輸入,能使網路對不同的說話者語音收斂。
該網路獨立於編碼器網路的訓練,以音訊訊號和對應的文字作為輸入,音訊訊號首先經過預訓練的編碼器提取特徵,然後再作為attention層的輸入。網路輸出特徵由視窗長度為50ms,步長為12.5ms序列構成,經過梅爾標度濾波器和對數動態範圍壓縮後,得到梅爾頻譜圖。為了降低噪聲資料的影響,本文還對該部分的損失函式額外新增了L1正則化。
輸入梅爾頻譜圖與合成頻譜圖的對比示例如下:
右圖紅線表示文字和頻譜的對應關係。可以看到,用於參考監督的語音訊號不需要與目標語音訊號在文字上一致,這也是本工作的一大特色。
3. 基於WaveNet的自迴歸語音合成網路
在得到合成頻譜圖後,還需要進一步轉化為時域上的聲音波形圖,這部分主要通過自迴歸WaveNet完成。由於上一個合成器生成的序列已經包含了聲音合成所需的全部資訊,因此這部分不需要編碼器進行監督。
4.零樣本推斷
除了以上三部分,網路還具備零樣本推斷能力。即對於不在訓練集內的說話者(不可見),只需要該說話者幾秒的音訊段,編碼器就能提取出說話者的關鍵語音特徵,並用來輔助對映網路合成序列。並且不需要這段語音與待合成的語音具有相同文字。
實驗結果
主要在VCTK和LibriSpeech兩個大型資料集上訓練。
語音自然度
首先評估了模型合成語音的自然度(即真實度),構建了一個具有100個句子的驗證集(不在訓練集中),然後對每個資料集,都選擇一定數量的可見和不可見說話者,對每個說話者隨機選擇一個句子作為編碼器的輸入,然後對該說話者的所有句子進行合成,再與原來的真值進行對比:
語音相似度
為了驗證合成語音與原始說話者語音是否相似,對每個說話者的每段語音,都隨機選擇另一段語音作為真值,然後評估他們的相似度:
說話人認證
該指標與前面兩個指標相反,旨在驗證語音識別系統能否有效區分合成語音和真實語音:
語音編碼器評估
語音編碼器是本文工作的核心網路,訓練編碼器所用的資料集對網路整體效能有較大影響:
總結
本文提出的語音合成網路,能對訓練不可見的說話者進行聲音合成,並且僅僅依賴於說話者的一小段語音,這使得該網路能夠大規模應用於實際環境,也使得語音造假的成本大大降低,類似於之前的deepfake網路。
作者指出該網路生成的合成語音和真實語音仍然是可以區分的,這是因為訓練集的數量不足(避免太逼真帶來的安全問題)。如果要生成非常逼真的聲音,對每個目標說話,仍然需要數十分鐘的語音。
https://arxiv.org/pdf/1806.04558.pdf
(*本文為AI科技大本營編譯文章,轉載請微信聯絡 1092722531)
◆
精彩推薦
◆
2019 中國大資料技術大會(BDTC)再度來襲!豪華主席陣容及百位技術專家齊聚,15 場精選專題技術和行業論壇,超強幹貨+技術剖析+行業實踐立體解讀,深入解析熱門技術在行業中的實踐落地。6.6 折票限時特惠(立減1400元),學生票僅 599 元!
推薦閱讀
相關文章
- VALL-EX下載介紹:只需3秒錄音,即可克隆你的聲音
- 如何基於實時聲紋變聲實現對聲音的“克隆”
- 5 秒克隆聲音「GitHub 熱點速覽 v.21.34」Github
- 用AI打個電話騙走22萬歐元,克隆你的語音只需5秒錄音AI
- GitHub 熱榜第一!這個 Python 專案超 8.4k 標星,網友:太實用!GithubPython
- 刷爆了!GitHub標星1.6W,這個 Python 專案太實用!GithubPython
- linux檔案系統損壞?你只需學會這個方法就能完美修復Linux
- OpenAI:可從15秒的音訊中克隆出聲音OpenAI音訊
- 只要6秒 AI人工智慧只要聽聲音就能描繪你的長相AI人工智慧
- 做好這4點就能混好網際網路
- python爬取_網易雲音樂_你的姑娘 _MP3_獲取無損音源Python
- 只需3 分鐘,就能建立 一個SpreadJS 的 Vue 專案JSVue
- 基於函式計算部署GPT-Sovits語音生成模型實現AI克隆聲音函式GPT模型AI
- 探索Web API SpeechSynthesis:給你的網頁增添聲音WebAPI網頁
- 春招已近,這份GitHub萬星的ML演算法面試大全請收下Github演算法面試
- RTN實時音視訊傳輸網路
- GitHub標星3W+,80個Python案例,帶你輕鬆玩轉Python學習!GithubPython
- 只需傳送一條簡訊 黑客就能成功入侵你的iPhone黑客iPhone
- 聲網把七年無全網事故的實時傳輸網路SD-RTN全面開放了——這就是FPA!
- 用深度神經網路修復H漫:看完這篇你就能眼中無碼神經網路
- 面試官:請你實現一個深克隆面試
- 只需3分鐘,就能輕鬆建立 一個SpreadJS的React專案JSReact
- 命令列的藝術 (GitHub 星標 6 萬多)命令列Github
- 太可怕,這項技術僅透過語音就能勾勒出你的長相
- Github標星28K+!這款視覺化的物件儲存服務真香!Github視覺化物件
- 樹莓派實時播放麥克風聲音到音響樹莓派
- GitHub標星力推!Spring MVC 中文文件GithubSpringMVC
- github克隆專案太慢Github
- 別人工作8小時,我只需1小時!這些寶藏網站我都替你收集好了!網站
- 只需要2分鐘你就能體驗AI臉部替換!!!AI
- WebRTC 作者加入 OpenAI 主導實時 AI 專案;TTS 小模型 OuteTTS v0.2 釋出:聲音克隆 + 多語言WebOpenAITTS模型
- WebRTC 作者加入 OpenAI 主導實時 AI 專案;TTS 小模型 OuteTTS v0.2 釋出:聲音克隆+多語言WebOpenAITTS模型
- 只需要瞭解常用的4個api, 就能深入理解React HooksAPIReactHook
- 如何走近目標玩家?只需這三步
- GitHub 標星 14.3K+!一款開源替代 ls 的工具你值得擁有!Github
- 聲網 2020 實時大會後的弱網對抗實踐
- Carbon —— PHP 中日期 / 時間處理,你只需要這個擴充套件包就夠了PHP套件
- 讀懂這幾個關鍵詞,你就能瞭解 Docker 啦Docker