DALL-E 已經能夠很好地從文字生成圖像,那麼如何高效地實現語音合成呢?本文帶你看微軟最新推出的語音合成模型 ——VALL-E,它的效果將驚掉你的下巴。
近十年間隨著神經網路和端到端建模的發展,語音合成技術取得了巨大突破。級聯的文字到語音(TTS)系統通常利用聲學模型 pipeline 和梅爾頻譜作為中間表示的聲碼器。先進的 TTS 系統可以從單個或多個 speaker 合成高質量的語音,但仍需要高質量的 「乾淨」 資料。從網路上抓取的大規模資料無法滿足要求,並且會導致性能下降。
由於訓練資料相對較少,目前的 TTS 系統仍存在泛化能力差的問題。在零樣本場景中,speaker 的相似性和語音自然度對於未知的 speaker 來說會急劇下降。為了解決零場景 TTS 問題,現有的工作利用 speaker 自適應和 speaker 編碼法,但需要額外的微調、複雜的預設計功能或重型結構工程。
最終的解決方案不是為該問題設計一個複雜而具體的網路,而是在文字合成領域取得成功的推動下,儘可能地訓練具有大量和多樣化資料的模型。近年來,文字語言模型的資料增加顯著提高了性能,從 16GB 的未壓縮文字增加到 160GB,再到 570GB,最後增加到 1TB 左右。
為把文字合成領域的成功引入到語音合成領域,微軟的研究者們提出了VALL-E,它是第一個利用大量、多樣化和多 speaker 語音資料的基於語言模型的 TTS 框架。如下圖 1 所示,為了合成個性化語音(如零樣本 TTS),VALL-E 以 3 秒 enrolled 錄音的聲學 token 和音素 prompt 為條件生成相應的聲學 token,這也對 speaker 和內容資訊做了約束。最後,使用生成的聲學 token 與相應的神經編解碼器合成最終波形。從音訊編解碼器模型匯出的離散聲學 token 能夠將 TTS 視為條件編解碼器語言建模,並且基於高級 prompt 的大型模型技術(如 GPT)可以用於 TTS 任務。聲學 token 還允許通過在推理過程中使用不同的取樣策略在 TTS 中生成不同的合成結果。

研究者使用 LibriLight 訓練 VALL-E,LibriLight 包含由 7000 多名不同 speaker 做的 6 萬小時的英語演講組成的語料庫。原始資料為音訊,研究者使用語音識別模型獲得對應的文字。
與以前的 TTS 訓練資料集(比如 LibriTTS)相比,研究者使用的資料集雖然包含噪聲以及不準確的文字資料,但卻包含大量不同的 speaker 語音。研究者堅信所提出的方法對噪聲具有魯棒性,並由於使用了大量資料因而表現出很好的泛化能力。值得注意的是,現有的 TTS 系統通知會使用數十小時的單 speaker 資料或數百小時的多 speaker 資料進行訓練,這比 VALL-E 使用的資料要小數百倍。
下表 1 總結了 VALL-E 的新穎性,VALL-E 是用於 TTS 的語言模型方法,使用音訊編解碼器程式碼作為中間表示,利用大量多樣的資料,從而實現強大的上下文學習能力。

評估結果表明,VALL-E 在 LibriSpeech 和 VCTK 上明顯優於 SOTA 零樣本 TTS 系統。

- 論文地址:https://arxiv.org/pdf/2301.02111.pdf
- 語音 Demo 地址:https://valle-demo.github.io/
我們可以聽一下語音示例。第一段為 Speaker 語音:
第二段為 VALL-E 模仿語音:
背景:語音量化
在論文中,研究者遵循 AudioLM 利用神經編解碼器模型來表示離散 token 中的語音。為了壓縮網路傳輸的音訊,編解碼器能夠將波形轉碼為離散的聲學編碼並重建高質量的波形,即使是訓練資料中沒見過的 speaker 資料。
與傳統的音訊編解碼器方法相比,基於神經網路編解碼器在低位元率下明顯更好。通過實驗,研究者堅定量化的 token 包含足夠的關於 speaker 和錄音條件的資訊。與其他量化方法相比,音訊編解碼器具有以下優點:
- 它包含豐富的 speaker 資訊和聲學資訊,與 HuBERT 編碼相比,可以在重構中保持 speaker 特徵一致。
- 有現成的編解碼器,可以將離散 token 轉換為波形,而無需像在頻譜上運行的基於 VQ 的方法那樣對聲碼器訓練做額外的工作。
- 它能減少時間步長,提高效率,解決 µ-law 轉換中的問題。
研究者採用預訓練神經音訊編碼模型 EnCodec 作為 tokenizer。EnCodec 是卷積編碼器 – 解碼器模型,輸入和輸出均為可變位元率的 24 kHz 音訊,編碼器為 24kHz 的輸入波形產生 75Hz 的嵌入,取樣率降低了 320 倍。每個嵌入都通過殘差向量量化 (RVQ) 建模,研究者選用八層量化器,每層有 1024 個 entries,如下圖 2 所示。該配置對應於 6K 位元率的 EnCodec,用於 24 kHz 音訊重構。

VALL-E 方法概覽
問題表述:將 TTS 視為條件編解碼器語言建模
給定資料集 D = {x_i , y_i},其中 y 是音訊樣本,x = {x_0, x-1, . . . , x_L} 是其對應的音素轉錄。研究者使用預訓練神經編解碼器模型將每個音訊樣本編碼為離散的聲學編碼,記為 Encodec (y) = C^T ×8,其中 C 表示二維聲學編碼矩陣,T 表示下采樣的發聲長度。
零樣本 TTS 需要模型為看不見的 speaker 合成高質量的語音。在該工作中,研究者將零樣本 TTS 看作條件編解碼器語言建模任務。他們通過訓練神經語言模型,以生成以音素序列x和聲學 prompt 矩陣

為條件的聲學編碼矩陣 C,最佳化目標為

。
研究者期望神經語言模型學習分別從音素序列和聲學 prompt 中提取內容和 speaker 資訊。在推理過程中,給定音素序列和 speaker 的 3 秒 enrolled 錄音,首先通過訓練好的語言模型估計具有相應內容和 speaker 聲音的聲學編碼矩陣,然後神經編解碼器合成高質量語音。
訓練:條件編解碼語言建模
神經語音編解碼器模型允許對離散音訊表示進行操作。由於神經編解碼器模型中的殘差量化,token 具有分層結構:來自先前量化器的 token 恢復聲學特性,如 speaker 特徵,而連續量化器學習更精細的聲音細節。每個量化器被訓練為對來自先前量化器的殘差進行建模。受此啟發,研究者以分層方式設計了兩個條件語言模型。
對於來自第一個量化器 c_:,1 的離散 token,研究者訓練了一個自迴歸 (AR) 解碼器專用語言模型。它建立在音素序列 x 和聲音 prompt

條件基礎上,並如下公式(1)所示。

對於從第二個到最後一個量化器的離散 token 記為

,這樣就訓練了一個非自迴歸(NAR)語言模型。
AR 模型和 NAR 模型的結合在語音質量和推理速度之間達到了良好的平衡。這種情況下,AR 模型是更自然的選擇,它具有聲學序列長度預測的靈活性。總體而言,C 的預測可以建模為:

自迴歸編解碼語言建模
自迴歸語言模型從第一個量化器生成 token。它包括音素嵌入 W_x、聲學嵌入 W_a、transformer 解碼器和預測層。為了生成特定內容的語音,研究者使用音素序列作為語言模型的音素 prompt。因此,模型輸入是 x 和 c_:,1 的串聯,並在它們之後附加了兩個特殊的 token。研究者分別計算了 prompt 和輸入 token 的正弦位置嵌入。對於因果 transformer 模型,每個 c_t,1 都可以參與 (x, c_≤t,1) ,如下圖 3 左側所示。
該模型經過最佳化以最大化第一個 codebook 中下一個 token 的概率。研究者將輸出對映層的參數與聲學嵌入 W_a 的參數共享。

非自迴歸編解碼語言建模
當通過 AR 模型獲得第一個量化器編碼時,使用非自迴歸(NAR)模型來生成其他七個量化器的編碼。NAR 模型具有與 AR 模型相似的架構,不同之處在於它包含八個單獨的聲學嵌入層。在每個訓練步驟中,隨機抽取訓練階段 i ϵ [2, 8]。該模型被訓練為最大化來自第 i 個量化器的 codebook 的聲學 token。第 1 階段至第 i−1 階段的聲學 token 被嵌入並彙總為模型輸入:

推理:通過 prompting 進行 in-context 學習
In-context 學習是基於文字語言模型的一種令人驚訝的能力,它能夠預測未見過輸入的標籤,而無需額外的參數更新。對於 TTS,如果該模型可以在沒有微調的情況下為未見過 speaker 合成高質量的語音,則該模型被認為具有 in-context 學習能力。
對於語言模型,prompt 對於在零樣本場景中啟用 in-context 學習是必要的。研究者設計 prompt 和推理是按照接下來的步驟進行的:首先將文字轉換為音素序列,並將語音編碼為聲學矩陣,形成音素 prompt 和聲學 prompt。此外,基於取樣方法可以顯著增加輸出的多樣性。對於 NAR 模型,研究者使用貪心解碼來選擇概率最高的 token,最後使用神經編解碼器來生成基於八個編碼序列的波形。
- VALL-E:研究者的主要興趣是為未見過的 speaker 生成給定的內容,需要給該模型一個文字句子、一段 enrolled 語音及其對應的轉錄。
- VALL-E-continual:在此設置中,研究者使用整個轉錄和語音的前 3 秒分別作為音素和聲音 prompt,並要求模型生成後續部分。
實驗結果
研究者在 LibriSpeech 和 VCTK 資料集上評估 VALL-E,在這些資料集中,所有測試 speaker 都在訓練語料庫中是未見過的。
LibriSpeech 評估
研究者首先使用 LibriSpeech 進行零樣本 TTS 評估,並計算 WER 分數和真實語音的 speaker 相似度分數作為上限。與 YourTTS 基線相比,研究者建立的模型在魯棒性和 speaker 相似性方面都明顯更好,表明研究者生成的語音高度忠實於給定的文字和給定的 enrolled 語音。此外,在 VALL-E-continual 設置中可以進一步降低單詞錯誤率。
研究者還將其魯棒性與其他基於 speech-to-speech LM 的生成模型 GSLM 和 AudioLM 進行了比較。實驗結果表明,VALL-E 在魯棒性方面明顯更好。

在 LibriSpeech 測試中,研究者為每個 speaker 隨機抽取一段語音進行人工評估,產生 40 個測試用例。
下表 3 顯示了人工評估結果。VALL-E 在 SMOS 方面非常接近真實情況,表明合成語音與測試中給定的未見過 speaker 相似。它以 + 0.93 SMOS 顯著優於基線,證明了 VALL-E 在零樣本場景中的有效性。關於自然度,VALL-E 以 + 0.12 CMOS 優於基線,表明所提出的方法可以根據基線合成更自然、更真實的語音。

VCTK 評估
研究者在由 108 個 speaker 組成的 VCTK 上評估了模型,所有 speaker 均是在訓練時沒有見過的。
研究者首先使用上述的 speaker 驗證指標評估 YourTTS 和 VALL-E 兩個模型。從下表 6 中可以看出,即使 YourTTS 在訓練時已經用到 97 個 speaker 的語音,VALL-E 也優於 YourTTS,表明 VALL-E 能夠合成與 speaker 相似度更高的語音。當兩個模型同時使用訓練中未見過的 11 個 speaker 語音進行比較時,性能差距變得更大,尤其是當只有 3 秒 prompt 可用時。

表 6
研究者抽取 60 位 speaker 進行人工評估,每人一段語音,其中 11 位未見過,49 位在 YourTTS 的訓練集中。VALL-E 未見過 60 個 speaker 的任何資料。在模型合成過程中,每個 speaker 都錄一段 3 秒語音。下表 7 顯示了研究者的方法與 YourTTS 及 GroundTruth 的比較。
SMOS 的比較表明,VALL-E 合成的語音比 YourTTS 更接近 speaker。side-by-side CMOS 評估顯示 VALL-E 比 YourTTS 高出 +0.23,表明在自然度方面表現明顯更好。此外,VALL-E 比 GroundTruth 高出 + 0.04 CMOS,表明與該資料集上的人類錄音沒有統計學上的顯著差異。

定性分析
由於 VALL-E 使用基於取樣的方法生成離散 token,因此推理具有隨機性,對於相同的輸入文字,其輸出是不同的。給定一個句子和一個 enrolled 錄音,運行兩次推理過程,並在下圖 4 中視覺化其波形。

更多技術細節請參閱原論文。