微軟的 VALL-E 開放原始碼實現 3 秒音頻可模仿人說話語音

微軟的 VALL-E 開放原始碼實現 3 秒音頻可模仿人說話語音

微軟近期提出的語音大模型 VALL-E 透過語言模型的方式實現語音合成,官方 demo https://valle-demo.github.io/。VALL-E 訓練數據高達 60000 小時,並使用 96 層 TransformerDecoder 結構,Zero-shot TTS 能力相比之前工作提升明顯,其中的 zero-shot 指的是無需微調模型參數,只需提供 prompt text 和 audio 即可實現聲音克隆。

微軟研究人員表示,此項人工智慧語音模型是以 Libri-light 聲音資料庫中收錄的來自7000多名演講者、長度超過60000小時的英語演講內容進行訓練,讓人工智慧語音模型學習特定聲音念特定文本內容時的音調呈現方式。

在此基礎上,「VALL-E」可參考僅為3秒長度的聲音資料,即可建立具有相同聲音說話方式的模型,並能依照不同情緒進行表達,同時模擬在不同環境下的說話聲音效果。

Vall E

VALL-E

VALL-E 使用了 Meta 提出的 Audio Codec 提取離散的音頻碼本,作為訓練標籤,其包含8(音頻碼維數)個 Decoder Block,每個 Block 含有 12 層 TransformerDecoder 層,第一個 block 為自回歸結構,其餘 block 為非自回歸結構。

過年的後幾天興起動手寫了個開放原始碼實現 https://github.com/lifeiteng/vall-e ,已經完成 Training 和 Inference,mini 配置(32 層 128 維,相比論文模型配置小了 200 倍)在 LibriTTS(約 1000 小時音頻) 數據集上訓練的模型可以合成出人聲了。

因為手上沒有合適的 GPU 資源,無法驗證論文里 96 層 1024 維的配置。如此也好,避免被濫用了。

真正做技術的同學如果要實現,這個開放原始碼是值得參考的,算是比較完備了(除了多GPU的模型並行)。

Vall-E

除了實現 VALL-E 之外,在復現過程中基於自己的理解也實現了一個變體 VALL-F,想法不同於 Language model 的 VALL-E,VALL-F 源自於 seq2seq。

在 mini 配置下 VALL-F 效果相比 VALL-E 要穩定合理的多,差異不是很大,理解 Transformer/seq2seq 技術細節的話可以秒懂。細節都在論文和程式碼里,就不詳細寫了。

開放原始碼實現:https://github.com/lifeiteng/vall-e

論文地址:Neural Codec Language Models are Zero-Shot Text to Speech Synthesizers

其他資訊: