code window

顯示包含「TTS」標籤的文章。顯示所有文章
顯示包含「TTS」標籤的文章。顯示所有文章

2024年5月14日星期二

Microsoft: 用於TTS的語言模型VALL-E

微軟引入了一種用於文字轉語音合成 (TTS) 的語言模型方法。具體而言,微軟使用從現成的神經音訊編解碼器模型中得到的離散編碼訓練了一個神經編解碼器語言模型 (稱為 VALL-E),並將 TTS 視為條件語言建模任務,而不是像之前的工作那樣進行連續訊號迴歸。在預訓練階段,微軟將 TTS 訓練資料擴大到 60K 小時的英語語音,比現有系統大數百倍。VALL-E 出現了上下文學習能力,只需一個 3 秒鐘未見說話者的錄音作為聲學提示,就可以用於合成高品質的個人化語音。實驗結果表明,在語音自然度和說話者相似度方面,VALL-E 顯著優於最先進的零樣本 TTS 系統。此外,微軟發現 VALL-E 可以在合成中保留聲學提示中的說話者情緒和聲學環境。範例請見 https://aka.ms/valle。

與以前的 pipeline (例如音素→Mel 頻譜圖→波形) 不同,VALL-E 的 pipeline 是音素→離散編碼→波形。VALL-E 根據音素和聲學編碼提示產生離散音訊編解碼器編碼,分別對應於目標內容和說話者的聲音。VALL-E 直接支援各種語音合成應用,例如零樣本 TTS、語音編輯以及與 GPT-3 等其他生成式 AI 模型結合的內容創作。




1 引言

神經網路和端到端建模的發展在過去十年中給語音合成帶來了巨大突破。目前,級聯文字轉語音 (TTS) 系統通常利用一個聲學模型和一個聲碼器的 pipeline,使用 Mel 頻譜圖作為中間表示。儘管先進的 TTS 系統能夠從單個或多個說話者合成高品質的語音,但它仍然需要來自錄音室的高品質乾淨資料。從網際網路爬取的大規模資料無法滿足要求,而且總是導致性能下降。由於訓練資料相對較少,目前的 TTS 系統在泛化方面仍然存在不足。在零樣本場景中,說話者相似度和語音自然度會大幅下降。

為了解決零樣本 TTS 問題,現有工作利用說話者自適應和說話者編碼方法,需要額外的微調、複雜的預設計特徵或繁重的結構工程。

與其為這個問題設計一個複雜而特定的網路,不如盡可能地用大量和多樣化的資料訓練模型,這受到文字合成領域成功的啟發。近年來,隨著文字語言模型中資料增加,人們見證了顯著的性能提升,從 16GB 的未壓縮文字,到 160GB,再到 570GB,最後是大約 1TB。將這一成功轉移到語音合成領域,微軟引入了 VALL-E,這是第一個利用大規模、多樣化和多說話者語音資料的基於語言模型的 TTS 框架。如圖 1 所示,為了合成個人化語音 (例如零樣本 TTS),VALL-E 以 3 秒鐘註冊錄音的聲學編碼和音素提示為條件產生相應的聲學編碼,分別約束說話者和內容資訊。最後,產生的聲學編碼用於合成最終的波形。來自音訊編解碼器模型的離散聲學編碼使我們能夠將 TTS 視為條件編解碼器語言建模,並且可以利用基於提示的大型模型技術 (如 GPT)用於 TTS 任務。聲學編碼還允許我們在推理期間使用不同的採樣策略在 TTS 中產生不同的合成結果。

微軟使用 LibriLight 訓練 VALL-E,這是一個包含 60K 小時英語語音的語料庫,有 7000 多個獨特的說話者。原始資料是純音訊的,因此微軟採用語音識別模型產生轉錄。與之前的 TTS 訓練資料集 (如 LibriTTS)相比,微軟的資料包含更多噪音和不準確的轉錄,但提供了不同的說話者和韻律。微軟相信,通過利用大數據,所提出的方法對噪音具有魯棒性,並且泛化性能良好。值得注意的是,現有的 TTS 系統總是使用幾十小時的單說話者資料或幾百小時的多說話者資料進行訓練,比 VALL-E 小幾百倍。表 1 總結了 VALL-E 的創新,即一種用於 TTS 的語言模型方法,使用音訊編解碼器編碼作為中間表示,利用大規模和多樣化的資料,從而具有強大的上下文學習能力。




微軟在 LibriSpeech 和 VCTK 資料集上評估 VALL-E,其中所有測試說話者在訓練語料庫中都是未見過的。在語音自然度和說話者相似度方面,VALL-E 顯著優於最先進的零樣本 TTS 系統,在 LibriSpeech 上的比較平均意見得分 (CMOS) 提高了 +0.12,相似度平均意見得分 (SMOS) 提高了 +0.93。VALL-E 在 VCTK 上也以 +0.11 SMOS 和 +0.23 CMOS 的改進擊敗了基準。它甚至在 VCTK 上獲得了 +0.04 的 CMOS 分數,表明未見說話者的合成語音與人類錄音一樣自然。此外,定性分析表明,VALL-E 能夠用相同的文字和目標說話者合成不同的輸出,這可能有利於為語音識別任務創建偽資料。我們還發現,VALL-E 可以保持聲學提示中的聲學環境 (例如混響) 和情緒 (例如憤怒)。



總之,微軟做出了以下貢獻:

- 微軟提出了 VALL-E,這是第一個像 GPT-3 那樣具有強大上下文學習能力的 TTS 框架,它將 TTS 視為語言模型任務,使用音訊編解碼器編碼作為中間表示,取代傳統的 Mel 頻譜圖。它具有上下文學習能力,並支援基於提示的方法進行零樣本 TTS,不需要像之前的工作那樣進行額外的結構工程、預設計的聲學特徵和微調。

- 微軟通過利用大量半監督資料在說話者維度上構建了一個廣義 TTS 系統,表明簡單地擴大半監督資料的規模在 TTS 中被低估了。 

- VALL-E 能夠用相同的輸入文字提供多樣化的輸出,並保持聲學提示中的聲學環境和說話者情緒。

- 微軟驗證了 VALL-E 通過提示在零樣本場景中合成具有高說話者相似度的自然語音。評估結果表明,VALL-E 在 LibriSpeech 和 VCTK 上顯著優於最先進的零樣本 TTS 系統。


微軟鼓勵讀者在範例頁面 https://aka.ms/valle 上聽樣本。


3 背景:語音量化 

由於音訊通常儲存為一系列 16 位整數值,生成模型需要在每個時間步輸出 $2^{16}=65,536$ 個機率才能合成原始音訊。此外,超過萬赫茲的音訊採樣率導致了極長的序列長度,使得原始音訊合成更加難以處理。為此,需要進行語音量化以壓縮整數值和序列長度。μ-law 變換可以將每個時間步量化為 256 個值並重建高品質的原始音訊。它在語音生成模型 (如 WaveNet) 中被廣泛使用,但由於序列長度沒有減少,推理速度仍然很慢。最近,向量量化在自監督語音模型中被廣泛應用於特徵提取,如 vq-wav2vec 和 HuBERT。後續工作表明自監督模型中的編碼也可以重建內容,並且推理速度比 WaveNet 更快。然而,說話者身份已經被丟棄,重建品質也很低。AudioLM 在自監督模型的 k-means 權杖和神經編解碼器模型的聲學權杖上訓練語音到語音語言模型,從而實現高品質的語音到語音生成。

在本文中,微軟沿用 AudioLM 的做法,利用神經編解碼器模型將語音表示為離散權杖。為了壓縮音訊以進行網路傳輸,編解碼器模型能夠將波形編碼為離散聲學編碼並重建高品質波形,即使說話者在訓練中是未見過的。與傳統的音訊編解碼器方法相比,基於神經網路的編解碼器在低位元速率下明顯更好,微軟相信量化後的權杖包含了關於說話者和錄音條件的充分資訊。與其他量化方法相比,音訊編解碼器具有以下優勢:1)它包含豐富的說話者資訊和聲學資訊,與 HuBERT 編碼相比,可以在重建中維持說話者身份。2)有一個現成的編解碼器解碼器將離散權杖轉換為波形,不需要像在頻譜上操作的基於 VQ 的方法那樣額外訓練聲碼器。3)它可以減少時間步長以提高效率,解決 μ-law 變換中的問題。 

微軟採用預先訓練的神經音訊編解碼器模型 EnCodec 作為標記器。EnCodec 是一個卷積編碼器-解碼器模型,其輸入和輸出都是可變位元速率的 24 kHz 音訊。編碼器為 24 kHz 的輸入波形產生 75 Hz 的嵌入,這是採樣率的 320 倍減少。每個嵌入由殘差向量量化 (RVQ) 建模,其中選擇了 8 個具有 1024 個條目的階層量化器,如圖 2 所示。此配置對應於用於 24 kHz 音訊重建的 6K 位元速率下的 EnCodec。在此設定下,給定一個 10 秒的波形,離散表示是一個 \(750 \times 8\) 的矩陣,其中 \(750 = \lfloor \frac{24,000 \times 10}{320} \rfloor\) 是下採樣的時間步,8是量化器的數量。選擇其他位元速率設定也是可以的。更大的位元速率對應更多的量化器和更好的重建品質。例如,如果選擇 12K 位元速率下的 EnCodec,則需要 16 個量化器,10 秒波形對應一個 \(750 \times 16\) 的矩陣。使用所有量化器的離散編碼,EnCodec 的卷積解碼器生成實值嵌入並以 24 kHz 重建波形。


4 VALL-E

4.1 問題公式化:將 TTS 視為條件編解碼器語言建模 


給定一個資料集 \(\mathcal{D}={x^i,y^i\\}\),其中 \(y\) 是一個音訊樣本, \(x={x_0,x_1,\ldots,x_L\\}\) 是其對應的音素轉錄,微軟使用預先訓練的神經編解碼器模型對每個音訊樣本進行編碼為離散聲學編碼,表示為 \(\text{Encodec}(y)=C^{T\times 8}\),其中 \(C\) 表示二維聲學編碼矩陣, \(T\) 是下採樣的話語長度。每個聲學編碼矩陣的行向量 \(c_{t,:}\) 表示第 \(t\) 幀的 8 個編碼,每個聲學編碼矩陣的列向量 \(c_{:,j}\) 表示來自第 \(j\) 個碼本的編碼序列,其中 \(j\in{1,\ldots,8\\}\)。量化後,神經編解碼器解碼器能夠重建波形,表示為 \(\text{Decodec}(C)\approx\hat{y}\)。

零樣本 TTS 要求模型為未見過的說話者合成高品質的語音。

在這項工作中,微軟將零樣本 TTS 視為條件編解碼器語言建模任務。微軟訓練了一個神經語言模型,以在給定音素序列 \(x\) 和聲學提示矩陣 \(\tilde{C}^{T'\times 8}\) 的條件下產生聲學編碼矩陣 \(C\),優化目標是 \(\max p(C|x,\tilde{C})\)。這裡, \(\tilde{C}\) 是通過相同的神經編解碼器從註冊錄音中得到的。微軟期望神經語言模型分別從音素序列和聲學提示中學習提取內容和說話者資訊。在推理期間,給定一個音素序列和一個未見過的說話者的 3 秒鐘註冊錄音,聲學編碼矩陣首先由訓練好的語言模型估計,然後神經編解碼器解碼器合成高品質的語音。


 4.2 訓練:條件編解碼器語言建模


神經語音編解碼器模型允許我們對離散音訊表示進行操作。由於神經編解碼器模型中的殘差量化,權杖具有分層結構:來自先前量化器的權杖恢復聲學屬性 (如說話者身份),而連續的量化器學習精細的聲學細節。每個量化器都經過訓練以對來自先前量化器的殘差進行建模。受此啟發,微軟以分層方式設計了兩個條件語言模型。 

對於來自第一個量化器 \(c_{:,1}\) 的離散權杖,微軟訓練了一個自迴歸 (AR) 解碼器語言模型。它以音素序列 \(x\) 和聲學提示 \(\tilde{C}_{:,1}\) 為條件,公式為:


$$p(c_{:,1}|x,\tilde{C}_{:,1};\theta_{AR})=\prod_{t=0}^T p(c_{t,1}|c_{<t,1},\tilde{c}_{:,1},x;\theta_{AR})$$


由於 VALL-E 是一個僅解碼器 LM,所以 \(\tilde{c}_{:,1}\) 和 \(c_{:,1}\) 的連接是一個完整的序列,在訓練中微軟不區分它們或插入特定的權杖。在推理中只預測 \(c_{:,1}\) 而前綴 \(\tilde{c}_{:,1}\) 是給定的。




對於第二個到最後一個量化器的離散權杖 \(c_{:,j\in[2,8]}\),微軟訓練了一個非自迴歸 (NAR) 語言模型。由於權杖在 NAR 方式下無法相互訪問,為了約束說話者身份,聲學提示矩陣 \(\tilde{C}\) 被用作聲學提示。因此,該模型以音素序列 \(x\)、聲學提示 \(\tilde{C}\) 和屬於先前碼本的預測聲學權杖 \(C_{:,<j}\) 為條件:


$$p(C_{:,2:8}|x,\tilde{C};\theta_{NAR})=\prod_{j=2}^8 p(c_{:,j}|C_{:,<j},x,\tilde{C};\theta_{NAR})$$


AR 模型和 NAR 模型的組合在語音品質和推理速度之間提供了很好的權衡。一方面,產生的語音速率應該與註冊錄音一致,並且由於不同說話者的說話速度可能非常不同,因此很難為不同的說話者訓練長度預測器。在這種情況下,AR 模型在聲學序列長度預測方面具有更大的靈活性,是一個更自然的選擇。另一方面,對於連續階段,由於輸出槽的數量遵循第一階段的序列長度,NAR 可以將時間複雜度從 \(O(T)\) 減少到 \(O(1)\)。總的來說, \(C\) 的預測可以建模為:


$$p(C|x,\tilde{C};\theta)=p(c_{:,1}|\tilde{C}_{:,1},X;\theta_{AR})\prod_{j=2}^8 p(c_{:,j}|c_{:,<j},x,\tilde{C};\theta_{NAR})$$


4.2.1 自迴歸編解碼器語言建模 

自迴歸語言模型產生來自第一個量化器的權杖。它包括音素嵌入 \(W_x\)、聲學嵌入 \(W_a\)、transformer 解碼器和預測層。為了產生具有特定內容的語音,微軟使用音素序列作為語言模型的音素提示。因此,模型輸入是 \(x\) 和 \(c_{:,1}\) 的連接,在每個序列之後附加兩個特殊的 <EOS> 權杖。微軟分別為提示和輸入權杖計算正弦位置嵌入。對於因果 transformer 模型,每個權杖 \(c_{t,1}\) 可以參與 \((x,c_{\leq t,1})\),如圖 3 的左側所示。該模型被優化以最大化第一個碼本中下一個權杖的機率。微軟共享輸出投影層的參數與聲學嵌入 \(W_a\) 的參數。

在 AR 模型中,微軟沒有在訓練中明確提取音訊片段作為提示。訓練過程是純因果語言模型訓練。通過這種方式,任何前綴序列 \(c_{<t,1}\) 都被視為序列 \(c_{\geq t,1}\) 後面部分的提示。在推理過程中,給定註冊錄音,應該將註冊錄音的音素序列和要合成的音素序列連接在一起。同時,註冊錄音的聲學權杖序列被用作 AR 解碼中的前綴,如公式 1 所示。微軟將在實驗中研究這種設置的優越性。  

4.2.2 非自迴歸編解碼器語言建模

當微軟通過 AR 模型獲得第一個量化器編碼時,使用非自迴歸 (NAR) 模型產生其他七個量化器的編碼。NAR 模型的架構與 AR 模型類似,只是它包含八個獨立的聲學嵌入層。在每個訓練步驟中,隨機採樣一個訓練階段 \(i\in[2,8]\)。模型被訓練以最大化來自第 \(i\) 個量化器碼本的聲學權杖。來自第 1 階段到第 \(i-1\) 階段的聲學權杖被嵌入並相加作為模型輸入:


$$e_{c_{t,j}}=W_a^j c_{t,j}$$ 


$$e_{c_t}=\sum_{j=1}^{i-1} e_{c_{t,j}}$$


其中表示索引選擇。音素序列也被視為語言模型的提示。此外,為了克隆給定說話者的獨特聲音,微軟還使用來自註冊語音的聲學權杖作為聲學提示。具體來說,首先用神經編解碼器模型將註冊語音標記為 \(\tilde{C}^{T\times 8}\)。來自所有八個碼本的嵌入表示相加為聲學提示 \(e_{\tilde{c}_t}=\sum_{j=1}^8 e_{\tilde{c}_{t,j}}\)。為了預測來自第 $i$ 個碼本的聲學權杖,transformer 輸入是 \((e_x,e_{\tilde{c}},e_{c_{:,<i}})\) 的串聯。位置嵌入也是分別為提示和聲學序列計算的。目前階段 \(i\) 通過自適應層歸一化 (AdaLN) 算子注入到網路中,即 \(\text{AdaLN}(h,i)=a_i\text{LayerNorm}(h)+b_i\),其中 \(h\) 是中間激活, \(a_i\) 和 \(b_i\) 是從階段嵌入的線性投影獲得的。與 AR 不同的是,NAR 模型允許每個權杖在自注意力層中參與所有輸入權杖。微軟還共享聲學嵌入層和輸出預測層的參數,這意味著第 \(j\) 個預測層的權重與第 \(j+1\) 個聲學嵌入層相同。 


4.3 推理:通過提示進行上下文學習

上下文學習是基於文字的語言模型的一種令人驚訝的能力,它能夠在不進行額外參數更新的情況下預測未見輸入的標籤。對於 TTS 而言,如果模型能夠在沒有微調的情況下為未見說話者合成高品質的語音,則認為該模型具有上下文學習能力。然而,現有 TTS 系統的上下文學習能力並不強,因為它們要麼需要額外的微調,要麼在未見說話者上顯著下降。

對於語言模型,提示是在零樣本場景中實現上下文學習所必需的。微軟設計提示和推理如下。首先將文字轉換為音素序列,並將註冊錄音編碼為聲學矩陣,形成音素提示和聲學提示。AR 模型和 NAR 模型都使用這兩個提示。對於 AR 模型,微軟在給定提示的條件下使用基於採樣的解碼,因為觀察到 beam search 可能會導致 LM 陷入無限循環。此外,基於採樣的方法可以顯著增加輸出的多樣性。對於 NAR 模型,微軟使用貪婪解碼來選擇機率最高的權杖。最後,使用神經編解碼器解碼器在給定八個編碼序列的條件下產生波形。聲學提示可能與要合成的語音在語義上相關或不相關,從而產生兩種情況:

VALL-E:微軟的主要興趣是為未見過的說話者產生給定的內容。給模型一個文字句子、一段註冊語音及其相應的轉錄。將註冊語音的轉錄音素附加到給定句子的音素序列前作為音素提示,並使用註冊語音的第一層聲學權杖 \(\tilde{c}_{:,1}\) 作為聲學前綴。使用音素提示和聲學前綴,VALL-E 產生給定文字的聲學權杖,克隆該說話者的聲音。

VALL-E-continual:在此設置中,使用整個轉錄和話語的前 3 秒作為音素和聲學提示,並要求模型產生後續內容。推理過程與 VALL-E 設置相同,只是註冊語音和產生的語音在語義上是連續的。


5 實驗

5.1 實驗設置

資料集:微軟使用 LibriLight 作為訓練資料,其中包含 60K 小時來自英語有聲讀物的未標記語音。LibriLight 中不同說話者的數量約為 7000。微軟在 960 小時帶標籤的 LibriSpeech 上訓練了一個混合 DNN-HMM ASR 模型。一旦訓練了混合模型,就對未標記的語音資料進行解碼並轉換為最佳的音素級別對齊路徑,其中幀移為 30ms。EnCodec 模型用於為 60K 小時的資料產生聲學編碼矩陣。 

模型:AR 模型和 NAR 模型具有相同的 transformer 架構,包括12層、16個注意力頭、1024維嵌入維度、4096維前饋層和 0.1 的 dropout。LibriLight 中波形的平均長度為 60 秒。在訓練期間,隨機將波形裁剪為 10 秒到 20 秒之間的隨機長度。其相應的音素對齊用作音素提示。微軟刪除了偏對齊音素序列中的連續重複。對於 NAR 聲學提示權杖,從同一話語中選擇 3 秒的隨機片段波形。

使用 16 個 NVIDIA TESLA V100 32GB GPU 對模型進行了 800k 步的訓練,每個 GPU 的批次大小為 6k 個聲學權杖。微軟使用 AdamW 優化器優化模型,在前 32k 次更新中將學習率預熱到 $5\times 10^{-4}$ 的峰值,然後線性衰減。 

基準:微軟選擇 SOTA 零樣本 TTS 模型 YourTTS 作為基準,該模型在 VCTK、LibriTTS 和 TTS-Portuguese 的組合資料集上進行訓練。微軟使用其發布的檢查點。

自動指標:微軟使用 SOTA 說話者驗證模型 WavLM-TDNN 來評估提示 (解壓縮的註冊語音) 和合成語音之間的說話者相似度。WavLM-TDNN 在 VoxSRC Challenge 2021 和 2022 排行榜上獲得第一名。它在 Vox1-O、Vox1-E 和 Vox1-H 上分別達到了 0.383、0.480 和 0.986 的平均等錯誤率 (EER)。WavLM-TDNN 預測的相似度分數在 \([-1,1]\) 的範圍內,其中較大的值表示輸入樣本的相似度較高。 

微軟還評估了模型的合成穩健性。神經 TTS 系統存在穩健性問題,由於注意力對齊錯誤,有時會出現刪除、插入和替換錯誤。微軟對產生的音訊執行 ASR,並計算相對於原始轉錄的字錯誤率 (WER)。在此實驗中,微軟使用在 LibriSpeech 960h 上微調的 HuBERT-Large 模型作為 ASR 模型,這是一個沒有語言模型融合的基於 CTC 的模型。

人工評估:微軟通過眾包計算比較平均意見得分 (CMOS) 和相似度平均意見得分 (SMOS),其中 12 名和 6 名母語者分別被邀請為 CMOS 和 SMOS 貢獻者。SMOS 的量表從 1 到 5,增量為 0.5。CMOS 的範圍從 -3 (新系統比基準差得多) 到 3 (新系統比基準好得多),間隔為 1。CMOS 是語音自然度的指標,SMOS 衡量語音是否與原始說話者的聲音相似。


5.2 LibriSpeech 評估

微軟首先使用 LibriSpeech 進行零樣本 TTS 評估,因為 LibriLight 訓練資料和 LibriSpeech test-clean 資料之間沒有說話者重疊。微軟使用 LibriSpeech test-clean 中長度在 4 到 10 秒之間的樣本,得到 2.2 小時的子集。對於每個樣本合成,VALL-E 隨機選擇同一說話者的另一個話語,並裁剪 3 秒的語音片段作為註冊語音。每個實驗運行三次,報告平均分數。VALL-E-continual 使用真實語音的前 3 秒作為註冊語音。




表 2 顯示了客觀評估結果。微軟首先計算真實語音的 WER 分數和說話者相似度分數作為上限。為了比較說話者相似度,微軟使用測試集中來自同一說話者的語音對。與 YourTTS 基準相比,微軟的模型在穩健性和說話者相似度方面都有顯著優勢,表明產生的語音高度忠實於給定文字和給定註冊語音。此外,在 VALL-E-continual 設置中,字錯誤率可以進一步降低,因為前 3 秒的聲學權杖是從真實語音中提取的。微軟還將穩健性與其他基於語音到語音 LM 的生成模型 (如 GSLM 和 AudioLM) 進行了比較,這些模型使用音訊潛在編碼作為輸入。GSLM 使用 HuBERT 編碼作為輸入,並使用 Tacotron2 模型和 WaveGlow 聲碼器重建波形。微軟運行其開源代碼使用發布的模型並評估結果。由於 HuBERT 編碼丟棄了說話者身份,因此它在說話者得分方面表現很差。對於 AudioLM,微軟列出了他們論文中報告的 WER 分數,該分數是由 Conformer Transducer 模型獲得的。實驗結果表明,在穩健性方面,VALL-E 優於其他基於語音到語音 LM 的生成系統。一個主要原因是 VALL-E 使用偽音素進行訓練,而不是 HuBERT/w2v-BERT 編碼,這與輸入文字相比具有更好的對齊品質。

微軟隨機採樣 LibriSpeech test-clean 中每個說話者的一個話語進行人工評估,得到 40 個測試用例。表 3 顯示了人工評估結果。在 SMOS 方面,VALL-E 非常接近真實語音,表明合成語音與測試中給定的未見說話者相似。它以 +0.93 SMOS 顯著優於基準,證明了 VALL-E 在零樣本場景中的有效性。在自然度方面,VALL-E 以 +0.12 CMOS 擊敗基準,表明所提出的方法可以合成比基準更自然和逼真的語音。




消融研究:在本節中,微軟進行了詳細的消融實驗。首先研究 NAR 模型。微軟訓練了具有不同數量提示的三個 NAR 模型。設置 NAR-no prompt 在沒有任何提示的情況下進行訓練。設置 NAR-phn prompt 僅使用音素序列作為提示進行訓練,設置 NAR-2 prompts 同時使用音素提示和聲學權杖提示作為條件。在評估中,使用真實的第一級聲學權杖作為模型輸入,並計算 WER 和說話者相似度分數。結果列於表 4 中。結果表明,即使聲學輸入權杖是真實的,沒有任何提示的模型在 ASR 和說話者相似度評估方面的表現都很差。當添加音素提示時,WER 從 19.6 大幅降低到 3.0。這表明音素提示主要有助於產生的內容。在 NAR-2 prompts 中,模型可以從聲學權杖提示中學習說話者資訊,從而提高說話者評估品質。


微軟進一步對 AR 模型進行了消融實驗。在這些實驗中,始終使用 NAR-2 prompts 設置作為 NAR 模型。在表 5 中,可以看到,當移除聲學提示 (w/o 聲學提示) 時,它只能獲得 0.236 的說話者相似度得分,表明提示對於說話者身份極其重要。即使 NAR 模型可以看到提示,AR 模型的提示也對說話者相似度有很大貢獻。




5.3 VCTK 評估 

微軟在包含 108 個說話者的 VCTK 上評估模型,其中沒有一個說話者在訓練期間被觀察到。由於 YourTTS 在 VCTK 中將 97 個說話者視為訓練,微軟分別評估了 YourTTS 在全部 107 個說話者和 11 個未見說話者上的性能。對於每個說話者,隨機選擇三個 3s/5s/10s 的話語作為提示,另一個話語的文字作為文字提示。


微軟首先使用前面描述的說話者驗證指標評估兩個模型。從表 6 可以看出,即使基準在訓練中看到了 97 個說話者,VALL-E 也優於基準,表明微軟的模型能夠合成具有更高說話者相似度的語音。當在公平設置下 (11 個說話者) 與基準進行比較時,性能差距變得更大,尤其是當只有 3s 提示可用時。通過比較不同長度的提示,可以看出微軟的模型能夠在提示變長時產生更相似的語音,這與直覺一致。 

微軟採樣 60 個說話者進行人工評估,每個說話者一個話語,其中 11 個是未見說話者,49 個說話者在 YourTTS 中被視為已見。VALL-E 沒有看到任何 60 個說話者。在模型合成期間,每個說話者有一個 3 秒的註冊錄音。表 7 顯示了微軟的方法與基準和真實語音的比較。SMOS 的比較表明,VALL-E 的說話者相似度優於基準,即使基準在訓練中看到了一些說話者。並排 CMOS 評估表明,VALL-E 比 YourTTS 高 +0.23,在語音自然度方面表現明顯更好。此外,VALL-E 在真實語音上獲得 +0.04 CMOS,表明在該資料集上與人類錄音沒有統計學上的顯著差異。與 LibriSpeech 上的評估結果相比,VALL-E 在與真實語音的比較中表現出更好的 CMOS 分數,主要原因是 VCTK 中平均句子長度更短,並且一些真實話語也有嘈雜的環境。在說話者相似度方面,VCTK 更具挑戰性,因為它包含具有各種口音的說話者,而訓練資料和 LibriSpeech 測試資料不包含各種口音的說話者。






5.4 定性分析

多樣性:以前的 TTS 系統在輸入文字和輸出波形之間具有強的一對一映射,因為 Mel 頻譜產生基於每一步的重建,沒有隨機性。由於 VALL-E 使用基於採樣的方法產生離散權杖,對於相同的輸入文字,其輸出由於推理中的隨機性而多樣化。給定一個句子和一個註冊錄音,微軟運行推理過程兩次並在圖 4 中可視化其波形。在圖 4(a) 中,可以觀察到兩個樣本具有不同的長度和短語持續時間,其中第一個具有更快的語音速率。在圖 4(b) 中,可以觀察到兩個樣本的重音不同。第二個輸出用更大的振幅強調單詞 "must",而第一個輸出沒有。微軟在演示頁面上提供了更多樣本。

多樣性對某些下游場景很重要。例如,語音識別總是從具有不同說話者和聲學環境的多樣化輸入中受益,而以前的 TTS 系統無法滿足這一點。考慮到 VALL-E 的多樣性特點,它是產生語音識別偽資料的理想候選。

聲學環境維持:另一個有趣的發現是聲學提示和產生之間的聲學環境一致性。當聲學提示有混響時,VALL-E 也可以合成有混響的語音,而基準輸出乾淨的語音。微軟的解釋是,與基準使用的資料相比,VALL-E 在包含更多聲學條件的大規模資料集上進行訓練,因此 VALL-E 可以在訓練期間學習聲學一致性,而不僅僅是乾淨的環境。微軟在演示頁面上展示了一致性。

說話者情緒維持:情緒 TTS 是語音合成的一個經典子主題,它合成具有所需情緒的語音。傳統方法總是在有監督的情緒 TTS 資料集上訓練模型,其中語音對應於轉錄和情緒標籤。微軟發現 VALL-E 可以在零樣本設置下保留提示中的情緒。微軟從 EmoV-DB 中選擇聲學提示,這是一個包含五種情緒語音的資料集,VALL-E 能夠在語音合成中保持與提示相同的情緒,即使模型沒有在情緒 TTS 資料集上進行微調。微軟在演示頁面上放置了音訊樣本。


6 結論、局限性和未來工作


微軟引入了 VALL-E,這是一種使用音訊編解碼器編碼作為中間表示的 TTS 語言模型方法。微軟使用 60K 小時的語音資料對 VALL-E 進行了預訓練,並展示了在零樣本場景中的上下文學習能力。微軟在 LibriSpeech 和 VCTK 上實現了新的最先進的零樣本 TTS 結果。此外,VALL-E 可以在合成中保持聲學環境和說話者情緒,並在不同的基於採樣的解碼過程中提供多樣化的輸出。

儘管取得了顯著進展,VALL-E 仍然存在幾個問題。

合成穩健性:微軟觀察到,在語音合成中,某些詞可能不清楚、遺漏或重複。這主要是因為音素到聲學語言部分是一個自迴歸模型,其中存在無序的注意力對齊,並且沒有解決該問題的約束。在基於普通 Transformer 的 TTS 中也觀察到了這種現象,通過應用非自迴歸模型或修改建模中的注意力機制來解決。未來,微軟希望利用這些技術來解決這個問題。

資料覆蓋:即使微軟使用 60K 小時的資料進行訓練,它仍然無法覆蓋每個人的聲音,尤其是口音說話者。在 VCTK 上的結果比在 LibriSpeech 上的結果差,也暗示了對口音說話者的覆蓋不足。此外,說話風格的多樣性還不夠,因為 LibriLight 是一個有聲讀物數據集,其中大多數話語都是朗讀風格。未來,微軟將進一步擴大訓練數據,以提高模型在韻律、說話風格和說話者相似度方面的性能。微軟相信,通過我們的方法,通過模型和數據的擴展,零樣本 TTS 任務幾乎可以解決。

模型結構:現在,微軟使用兩個模型來預測不同量化器的編碼。一個有前途的方向是使用一個大型通用模型來預測它們。另一個有趣的方向是在框架中使用完全 NAR 模型來加速模型推理。 


更廣泛的影響:由於 VALL-E 可以合成保持說話者身份的語音,它可能存在濫用模型的潛在風險,例如欺騙聲音識別或模仿特定說話者。為了降低此類風險,可以構建檢測模型來區分音訊片段是否由 VALL-E 合成。在進一步開發模型時,微軟也將付諸實踐微軟 AI 原則。 


以下是我的一些思考:

從技術倫理的角度,我們要警惕 VALL-E 被濫用的風險,如用於製造虛假語音、侵犯他人隱私等。這需要研發人員保持警惕,並制定相應的防範機制。

語音合成只是人機交互的一個方面,如何將其與語音識別、自然語言理解等技術更好地結合,來創造無縫的交互體驗,還有待進一步探索。

從產業化的角度,VALL-E 在客製化語音、有聲內容創作等領域有廣闊的應用前景。但是,如何平衡模型性能和部署成本,如何適配不同的硬體環境,也是工程師們需要考慮的問題。

從學術研究的角度,VALL-E 提出的一些思路,如語言模型範式、提示學習等,可能啟發其他領域的研究,如計算機視覺、機器翻譯等。跨學科的創新,往往能產生意想不到的火花。

展望未來,隨著模型和數據規模的進一步增長,以及範式的不斷創新,人工智慧生成語音與真人的差距會越來越小。這對傳統的配音行業、有聲內容生產模式,都會帶來深遠的影響。我們要積極擁抱變革,也要未雨綢繆,做好應對準備。

2024年5月1日星期三

FlashSpeech: 高效的零樣本語音合成系統

目前我正協助一家UC/CC公司進行業務戰略轉型及新產品開發, 所以就精讀了這篇我工作相關的報告。也希望跟相關合作的硬體公司進行更深入的探討。

近年來,大規模零樣本語音合成的進展,在語言模型和擴散模型的推動下取得了顯著的進步。然而,這兩種方法的生成過程都相當緩慢且計算密集。在有限的計算資源下,如何達到與之前研究相當的合成品質,仍然是一個重大挑戰。本文提出了FlashSpeech,一個約只需要先前研究5%推論時間的大規模零樣本語音合成系統。FlashSpeech建構在潛在一致性模型(Latent Consistency Model)之上,並應用一種新穎的對抗式一致性訓練方法,該方法可以從頭開始訓練,而無需預訓練的擴散模型作為教師模型。此外,新的韻律生成器模組增強了韻律的多樣性,使得合成語音的節奏聽起來更加自然。FlashSpeech的生成過程可以在一到兩個採樣步驟內高效完成,同時在零樣本語音生成場景中維持高音訊品質和與參考音訊的高相似度。實驗結果展示了FlashSpeech的優異表現。值得注意的是,FlashSpeech的速度比其他零樣本語音合成系統快約20倍,同時在語音品質和相似度方面表現可媲美。此外,FlashSpeech還展現了在語音轉換、語音編輯和多樣化語音採樣等任務中的多功能性和高效性。

引言

大規模生成模型的出現,改變了語音合成領域的格局。在大幅增加資料集和模型大小後,最新的研究成果實現了零樣本語音合成系統的顯著進步,即在推論階段生成具有未見說話人特徵的語音,而無需額外訓練。目前先進的零樣本語音合成系統通常利用語言模型和擴散式模型,在大規模資料集上進行上下文學習(in-context learning),以生成自然且具有多樣說話人身份和韻律的語音。然而,這些方法的生成過程需要長時間的迭代。以VALL-E為例,它採用Encodec將音訊波形離散化為符號,再使用語言模型預測75個音訊符號序列以生成1秒鐘的語音,屬於第一階段的自回歸(autoregressive)符號序列生成。而使用非自回歸(non-autoregressive)的潛在擴散模型框架時,如NaturalSpeech 2,仍需要150個採樣步驟。因此,雖然這些方法可以生成接近人聲的語音,但它們需要大量的計算時間和成本。

一些研究致力於加速生成過程。Voicebox採用流匹配(flow-matching)技術,因此可以用更少的採樣步驟實現最佳的傳輸路徑。ClaM-TTS則提出一個壓縮率更高的梅爾頻譜編解碼器(mel-codec)和一個可一次生成多個符號堆疊的潛在語言模型。雖然這些方法在一定程度上緩解了生成速度慢的問題,但推論速度仍遠未達到實際應用的理想水平。此外,這些方法大量的計算時間也導致巨大的計算成本開銷,這是另一個挑戰。

語音生成的根本限制在於語言模型和擴散模型的內在機制,它們需要大量的時間進行自回歸或通過多步去噪過程生成。因此,本研究的主要目標是在保持與先前研究相當的生成品質的同時,加快推論速度並降低計算成本。本文提出FlashSpeech作為邁向高效零樣本語音合成的下一步。為了解決生成速度慢的挑戰,該研究利用最近在生成模型領域的進展——潛在一致性模型(Latent Consistency Model, LCM)。在先前的非自回歸TTS系統的基礎上,該研究採用神經音訊編解碼器的編碼器將語音波形轉換為潛在向量,作為LCM的訓練目標。為了訓練這個模型,該研究提出了一種新穎的對抗式一致性訓練方法,利用預訓練的語音語言模型作為鑑別器(discriminator)。這有助於將大型預訓練語音語言模型的知識遷移到語音生成任務中,高效地整合對抗訓練和一致性訓練以提升性能。LCM以從音素編碼器、提示編碼器和韻律生成器獲得的先驗向量為條件。此外,該研究證明了新提出的韻律生成器可在保持穩定性的同時,提高韻律的多樣性。

本研究的貢獻可總結如下:

  • 該研究提出了FlashSpeech,一個高效的零樣本語音合成系統,可在零樣本場景中生成高音質、高相似度的語音。
  • 該研究引入了對抗式一致性訓練,這是一種新穎的結合一致性訓練和對抗訓練的方法,利用預訓練的語音語言模型,可從頭開始訓練潛在一致性模型,實現一到兩步的語音生成。  
  • 該研究提出一個韻律生成器模組,可在保持穩定性的同時增強韻律的多樣性。
  • FlashSpeech在音訊品質方面顯著優於強基準模型,並在說話人相似度方面與之相當。值得注意的是,它以大約是其他可比系統20倍的速度實現了這一點,展現了前所未有的效率。

相關工作

大規模語音合成

受大型語言模型成功的啟發,語音研究社區最近越來越關注透過顯著增加模型和訓練資料的規模來提升泛化能力,在零樣本設定下產生具有多樣說話人身份和韻律的自然語音。先驅性的工作是VALL-E,它採用Encodec將音訊波形離散化為符號,因此可以透過上下文學習來訓練語言模型,生成風格與提示語音一致的目標語音。然而,以這種自回歸方式生成音訊可能導致韻律不穩定、跳字和重複等問題。為確保系統的豐富性,非自回歸方法如NaturalSpeech2和Voicebox利用擴散式模型(如VP-diffusion或flow-matching)來學習mel頻譜圖或編解碼器潛在向量等連續中間向量的分佈。基於語言模型和基於擴散模型的方法都在語音生成任務中表現出色。然而,由於需要迭代計算,它們的生成速度很慢。考慮到許多語音生成場景需要即時推論和低計算成本,該研究採用潛在一致性模型進行大規模語音生成,可以在一到兩步內完成推論,同時保持高音訊品質。



語音合成的加速

由於早期的神經語音生成模型使用自回歸模型(如Tacotron和TransformerTTS),導致推論速度緩慢,計算複雜度為O(N),其中N為序列長度。為了解決推論速度慢的問題,FastSpeech提出以非自回歸方式生成梅爾頻譜圖。然而,由於使用回歸損失和建模方法的能力限制,這些模型會導致模糊和過度平滑的梅爾頻譜圖。為了進一步提高語音品質,採用了擴散模型,計算複雜度增加到O(T),其中T為擴散步數。因此,針對基於擴散的方法的蒸餾技術(如CoMoSpeech、CoMoSVC和Reflow-TTS)應運而生,將採樣步驟減少回O(1),但需要額外預訓練擴散模型作為教師模型。與需要預訓練額外的擴散模型作為教師並受其性能限制的先前蒸餾技術不同,本研究提出的對抗式一致性訓練技術可以直接從頭訓練,顯著降低了訓練成本。此外,先前的加速方法僅在有限資料多樣性的說話人有限錄音室資料集上進行驗證。據該研究所知,FlashSpeech是第一個在大規模語音生成系統中將計算成本降低回O(1)的工作。

一致性模型 

一致性模型最初在圖像生成中提出,透過直接將噪聲映射到資料來生成高品質的樣本。此後,許多變體被提出以進一步提高圖像生成品質。潛在一致性模型是由Luo等人提出,可以直接在潛在空間中預測PF-ODE的解。然而,原始的LCM採用在預訓練潛在擴散模型(LDM)上進行一致性蒸餾,利用大規模現成的圖像擴散模型。由於語音社群中沒有預訓練的大規模TTS模型,並受到相關技術的啟發,該研究提出了新穎的對抗式一致性訓練方法,利用大型預訓練語音語言模型(如WavLM)可以直接從頭訓練用於語音生成的大規模潛在一致性模型。


FlashSpeech

總覽

該研究的工作致力於提高語音合成效率,在保持與先前研究相當的性能的同時,將計算成本降低到O(1)。圖2展示了所提出的FlashSpeech框架。FlashSpeech整合了神經編解碼器、音素和提示編碼器、韻律生成器以及LCM,這些模組在訓練和推論階段都會使用。只有在訓練期間,才會採用條件式鑑別器。FlashSpeech採用上下文學習範式,首先將從編解碼器提取的潛在向量z分割成z_target和z_prompt。然後,音素和z_prompt通過編碼器生成隱藏特徵。接著,韻律生成器根據隱藏特徵預測音高和時長。將音高和時長嵌入與隱藏特徵結合,作為LCM的條件特徵輸入。LCM模型使用對抗式一致性訓練從頭開始訓練。訓練後,FlashSpeech可以在一到兩個採樣步驟內實現高效生成。



潛在一致性模型

一致性模型是一種新的生成模型家族,可以實現一步或少步生成。讓該研究將資料分佈表示為\(p_data(x)\)。一致性模型的核心思想是學習一個將PF-ODE軌跡上任意點映射到該軌跡原點的函數,可以表示為:

$$f(x_σ, σ) = x_σmin$$

其中\(f(·,·)\)是一致性函數,\(x_σ\)表示通過添加標準差為σ的零均值高斯噪聲擾動的資料\(x_σmin\)是一個固定的小正數。然後可以將\(x_σmin\)視為資料分佈\(p_data(x)\)的近似樣本。為了滿足方程\((1)\)的性質,該研究參考Song等人的工作,將一致性模型參數化為

$$f_θ(x_σ, σ) = c_skip(σ)x + c_out(σ)F_θ(x_σ, σ)$$

其中\(f_θ\)是通過從資料中學習來估計一致性函數f的模型,\(F_θ\)是參數為θ的深度神經網路,\(c_skip(σ)\)和\(c_out(σ)\)是可微分函數,並滿足\(c_skip(σmin)=1\)和\(c_out(σmin)=0\)以確保邊界條件。一個有效的一致性模型應滿足自一致性性質:

$$f_θ(x_σ, σ) = f_θ(x_σ', σ'), ∀σ, σ'∈[σmin, σmax].$$

其中\(σmax=80,σmin=0.002\),與先前研究一致。然後,模型可以通過計算以下公式在一步內生成樣本:

$$x_σmin = f_θ(x_σmax, σmax)$$

其中\(x_σmax∼N(0,σ^2max*I)\)。

由於該研究將一致性模型應用於音訊的潛在空間,因此使用編解碼器提取的潛在特徵\(z\):

$$z = CodecEncoder(y)$$

其中y是語音波形。此外,該研究添加來自韻律生成器和編碼器的特徵作為條件特徵c,該研究的目標已變為實現:

$$f_θ(z_σ, σ, c) = f_θ(z_σ', σ', c), ∀σ, σ'∈[σmin, σmax].$$

在推論過程中,合成的波形ŷ通過編解碼器解碼從預測的ẑ轉換而來。預測的ẑ通過一步採樣獲得:

$$ẑẑ = f_θ(ϵ * σmax, σmax)$$

或通過兩步採樣獲得:

$$ẑ_inter = f_θ(ϵ * σmax, σmax)$$

$$ẑ = f_θ(ẑ_inter + ϵ * σinter, σinter)$$

其中\(ẑ_inter\)表示中間步驟,\(σinter\)經驗性地設置為2。\(ϵ\)從標準高斯分佈中採樣。

對抗式一致性訓練

LCM的一個主要缺點是需要在第一階段預訓練基於擴散的教師模型,然後執行蒸餾以產生最終模型。這會使訓練過程變得複雜,並且由於蒸餾,性能會受到限制。為了消除對教師模型訓練的依賴,本文提出了一種新穎的對抗式一致性訓練方法,可以從頭開始訓練LCM。該研究的訓練過程如圖3所示,包括三個部分:



一致性訓練

為了實現方程(3)中的性質,該研究採用以下一致性損失:

$$L^N_ct(θ, θ^-) = E[λ(σi)d(f_θ(z_(i+1), σ_(i+1), c), f_θ^-(z_i, σ_i, c))].$$

其中\(σi\)表示離散時間步i的噪聲級別,\(d(·,·)\)是距離函數,\(f_θ(z_(i+1)\), \(σ_(i+1), c)\)是具有較高噪聲級別的學生模型,\(f_θ^-(z_i, σ_i, c)\)是具有較低噪聲級別的教師模型。離散時間步表示為\(σmin = σ0 < σ1 < · · · < σN = σmax\),在時間區間\([σmin, σmax]\)中劃分,其中離散化課程\(N\)隨著訓練步數的增加而相應增加:

$$N(k) = min(s0 * 2^⌊k/K'⌋, s1) + 1$$

其中\(K' = ⌊K/(log2⌊s1/s0⌋+1)⌋\),\(k\)是當前訓練步,\(K\)是總訓練步數。\(s1\)和\(s0\)是控制\(N(k)\)大小的超參數。距離函數\(d(·,·)\)使用偽Huber度量:

$$d(x, y) = √(∥x - y∥^2 + a^2) - a$$

其中\(a\)是可調常數,使訓練對異常值更加穩健,因為它對大錯誤施加的懲罰小於\(ℓ2\)損失。教師模型的參數\(θ^-\)為:

$$θ^- ←− stopgrad(θ)$$

與學生參數\(θ\)相同。這種方法已被證明可以提高先前使用不同衰減率的策略的樣本品質。權重函數參考:

$$λ(σi) = 1/(σ_(i+1) - σ_i)$$

強調較小噪聲級別的損失。通過一致性訓練,LCM可以在幾個步驟內生成可接受品質的語音,但仍不及先前方法。因此,為了進一步提高生成樣本的品質,該研究整合了對抗訓練。

對抗訓練 

對於對抗目標,生成的樣本\(ẑ ← f_θ(z_σ, σ, c)\)和真實樣本z被傳遞給鑑別器\(D_η\),鑑別器旨在區分它們,其中\(η\)表示可訓練的參數。因此,該研究採用對抗訓練損失:

$$L_adv(θ, η) = E_z[log D_η(z)] + E_σ E_z_σ[log(1 - D_η(f_θ(z_σ, σ, c)))].$$

通過這種方式,來自鑑別器的錯誤信號引導\(f_θ\)產生更真實的輸出。

具體而言,該研究使用凍結的預訓練語音語言模型SLM和可訓練的輕量級鑑別器頭\(D_head\)來構建鑑別器。由於當前SLM是在語音波形上訓練的,該研究使用編解碼器將z和ẑ轉換為真實波形和預測波形。為了進一步增加提示音訊與生成音訊之間的相似度,該研究的鑑別器以提示音訊特徵為條件。這個提示特徵\(F_prompt\)是通過在提示音訊上使用SLM並在時間軸上應用平均池化獲得的。因此,

$$D_η = D_head(F_prompt ⊙ F_gt, F_prompt ⊙ F_pred)$$

其中\(F_gt\)和\(F_pred\)分別表示通過SLM提取的真實波形和預測波形的特徵。鑑別器頭由多個\(1D\)卷積層組成。鑑別器的輸入特徵通過投影以\(F_prompt\)為條件。

整合在一起

由於一致性損失和對抗損失之間的損失尺度存在巨大差距,可能導致訓練不穩定和失敗。因此,該研究參考Esser等人的工作,用以下公式計算自適應權重:

$$λ_adv = ∥∇_θ_L L^N_ct(θ, θ^-)∥ / ∥∇_θ_L L_adv(θ, η)∥$$

其中\(θ_L\)是LCM中神經網路的最後一層。訓練LCM的最終損失定義為\(L^N_ct(θ, θ^-) + λ_adv L_adv(θ, η)\)。這種自適應加權通過平衡每項的梯度尺度顯著地穩定了訓練。

韻律生成器

韻律預測分析

先前的韻律預測回歸方法由於其確定性映射和單峰分佈假設,往往無法捕捉人類語音韻律固有的多樣性和表現力。這導致預測缺乏變化且可能顯得過度平滑。另一方面,用於韻律預測的擴散方法提供了一個有前景的替代方案,通過提供更大的韻律多樣性。然而,它們在穩定性方面存在挑戰,並且可能產生不自然的韻律。此外,DM中的迭代推理過程需要大量的採樣步驟,這也可能阻礙實時應用。同時,基於LM的方法也需要長時間推理。為了緩解這些問題,該研究的韻律生成器由韻律回歸模組和韻律細化模組組成,通過高效的一步一致性模型採樣來增強韻律回歸結果的多樣性。

通過一致性模型進行韻律細化



如圖4所示,該研究的韻律生成器由兩部分組成,即韻律回歸和韻律細化。該研究首先訓練韻律回歸模組以獲得確定性輸出。接下來,該研究凍結韻律回歸模組的參數,並使用真實韻律與確定性預測韻律之間的殘差作為韻律細化的訓練目標。該研究採用一致性模型作為韻律細化模組。一致性模型的條件特徵是來自韻律回歸最終投影層之前的特徵。因此,隨機採樣器的殘差細化了確定性韻律回歸的輸出,並在相同的轉錄和音訊提示下產生一組多樣的合理韻律。最終韻律輸出\(p_final\)的一個選項可以表示為:

$$p_final = p_res + p_init$$

其中\(p_final\)表示最終韻律輸出,\(p_res\)表示韻律細化模組的殘差輸出,捕獲真實韻律與確定性預測之間的變化,\(p_init\)是韻律回歸模組的初始確定性韻律預測。

然而,這種公式可能會對韻律穩定性產生負面影響,類似的觀察結果也在其他研究中發現。更具體地說,更高的多樣性可能會導致較低的穩定性,有時會產生不自然的韻律。為了解決這個問題,該研究引入一個控制因子\(α\),可以精細調整韻律輸出中穩定性和多樣性之間的平衡:

$$p_final = α * p_res + p_init$$

其中\(α\)是介於0和1之間的標量值。這種調整允許以受控的方式將可變性融入韻律,緩解了與穩定性相關的問題,同時仍能從韻律細化模組提供的多樣性中獲益。

應用

本節闡述了FlashSpeech的實際應用。該研究深入探討了它在各種任務中的部署,如零樣本TTS、語音編輯、語音轉換和多樣化語音採樣。所有應用的音訊樣本都可以在demo頁面上找到。

零樣本TTS

給定目標文本和參考音訊,該研究首先使用g2p(字母到音素轉換)將文本轉換為音素。然後該研究使用編解碼器將參考音訊轉換為\(z_prompt\)。通過FlashSpeech的音素輸入和\(z_prompt\),可以高效地合成語音,在不需要對特定聲音進行預訓練的情況下實現高品質的文本到語音轉換結果。

語音轉換

語音轉換旨在使用參考音訊的說話人聲音將源音訊轉換為目標音訊。參考Shen等人和Preechakul等人的工作,該研究首先將源音訊擴散到一個起始點,該起始點仍然保留源音訊中的一些資訊。之後,該研究從這個起始點開始執行採樣過程,以參考音訊作為\(z_prompt\)和條件\(c\)。條件\(c\)使用源音訊的音素和時長,音高由韻律生成器預測。這種方法允許在保留源音訊語言內容的同時進行零樣本語音轉換,並實現與參考音訊相同的音色。

語音編輯

給定語音、原始轉錄和新轉錄,該研究首先使用MFA(Montreal Forced Aligner)將語音與原始轉錄對齊,以獲得每個詞的時長。然後該研究刪除需要編輯的部分以構建參考音訊。接下來,該研究使用新的轉錄和參考來合成新的語音。由於這個任務與上下文學習一致,該研究可以將原始語音的剩餘部分與合成部分連接起來作為最終語音,從而實現精確無縫的語音編輯。

多樣化語音採樣

FlashSpeech利用其固有的隨機性在相同條件下生成各種語音輸出。通過在其韻律生成和LCM中採用隨機採樣,FlashSpeech可以從相同的音素輸入和音訊提示中產生音高、時長和整體音訊特徵的多種變化。這一特性對於從單一輸入生成各種語音表達和風格特別有用,增強了語音合成在配音、虛擬助手的合成語音變化以及更個性化等應用中的能力。此外,通過語音採樣合成的資料也可以使其他任務(如ASR)受益。

實驗

實驗設置

資料與預處理

該研究使用Multilingual LibriSpeech(MLS)的英語子集,包括44.5k小時帶轉錄的有聲讀物資料,包含5490位不同的說話人。音訊資料以16kHz頻率重新採樣。輸入文本通過字母到音素轉換(g2p)轉換為音素序列,然後該研究使用內部對齊工具將其與語音對齊,以獲得音素級別的時長。該研究對所有幀級特徵採用200的跳步大小。使用PyWorld提取音高序列。該研究採用Encodec作為音訊編解碼器。該研究使用經過修改的版本,並在MLS上對其進行訓練。該研究使用從編解碼器殘差量化層之前提取的緻密特徵作為潛在向量z。

訓練細節

該研究的訓練分為兩個階段,在第一階段,該研究訓練LCM和韻律回歸部分。該研究使用8個H800 80GB GPU,每個GPU的批次大小為20k幀潛在向量,訓練650k步。該研究使用AdamW優化器,學習率為\(3e-4\),在前30k次更新中使用學習率預熱,然後線性衰減。該研究在600K次訓練迭代之前停用對抗訓練\((λ_adv=0)\)。對於超參數,該研究將方程(12)中的\(a\)設置為0.03。在方程(10)中,

$$σi = (σ_min^(1/ρ) + (i-1)/(N(k)-1) * (σ_max^(1/ρ) - σ_min^(1/ρ)))^ρ$$

其中\(i∈[1, N(k)], ρ=7, σmin=0.002, σmax=80\)。

對於方程(11)中的\(N(k)\),該研究設置\(s0=10,s1=1280,K=600k\)。在600k步之後,該研究激活對抗損失,\(N(k)\)可視為固定為1280。該研究將餵入鑑別器的波形長度裁剪為最小批次中的波形長度。此外,特徵提取器WavLM和編解碼器的權重被凍結。

在第二階段,該研究使用方程(10)中的一致性訓練對韻律細化模組進行150k步訓練。與上述設置不同的是,該研究根據經驗設置\(s1=160,K=150k\)。在訓練期間,只更新韻律細化部分的權重。

模型細節

提示編碼器和音素編碼器的模型結構參考Shen等人的工作。LCM中的神經函數部分與Shen等人的工作幾乎相同。該研究將神經函數部分中的正弦位置嵌入重新縮放1000倍。對於韻律生成器,該研究在韻律細化模組的神經函數部分採用30個非因果WaveNet層,韻律回歸部分的配置與Shen等人的工作相同。該研究根據經驗設置韻律細化模組的\(α=0.2\)。對於鑑別器的頭部,該研究堆疊5個帶權重正則化的卷積層進行二元分類。

評估指標

該研究同時使用客觀和主觀評估指標,包括:

  • RTF:實時因子(RTF)測量系統生成一秒鐘語音所需的時間。該指標對於評估該研究系統的效率至關重要,特別是對於需要實時處理的應用。該研究在NVIDIA V100 GPU上端到端測量系統的時間,與Shen等人的工作一致。 
  • Sim-O和Sim-R:這些指標評估說話人相似度。Sim-R通過預訓練的說話人驗證模型提取的特徵嵌入,測量合成語音與通過音訊編解碼器重建的參考語音之間的客觀相似度。Sim-O是用原始參考語音計算的。Sim-O和Sim-R的分數越高,說明說話人相似度越高。
  • WER(詞錯誤率):為了評估TTS系統合成語音的準確性和清晰度,該研究採用自動語音識別(ASR)模型將生成的音訊轉錄。使用詞錯誤率(WER)量化這些轉錄與原始文本之間的差異,這是表明可懂度和穩健性的關鍵指標。
  • CMOS、SMOS、UTMOS:該研究使用mturk對比平均意見分數(CMOS)和相似性平均意見分數(SMOS)進行排序。CMOS的提示是「請專注於音訊品質和自然度,忽略其他因素」。SMOS的提示是「請專注於說話人與參考的相似度,忽略內容、語法或音訊品質的差異」。每個音訊至少有10位聽眾收聽。UTMOS是一個語音MOS預測器,用於測量語音的自然度。該研究在消融研究中使用它來降低評估成本。
  • 韻律JS散度:為了評估該研究TTS系統中韻律預測的多樣性和準確性,該研究引入了韻律JS散度指標。該指標採用Jensen-Shannon(JS)散度來量化預測韻律特徵分佈與真實韻律特徵分佈之間的散度。韻律特徵(包括音高和時長)被量化,並比較合成語音和自然語音中的分佈。JS散度值越低,表示預測的韻律特徵與真實特徵越接近,表明合成語音的多樣性越高。

零樣本TTS的實驗結果 

參考Wang等人的工作,該研究採用LibriSpeech測試集的test-clean進行零樣本TTS評估。該研究採用Wang等人提出的跨句設置,即該研究從同一說話人的語音中隨機選擇3秒鐘的片段作為提示。結果總結在表1和圖5中。


評估基準

  • VALL-E:VALL-E使用AR和NAR模型預測編解碼器符號。RTF來自Kim等人和Le等人的工作。該研究使用複現的結果進行MOS、Sim和WER評估。此外,該研究使用其官方demo進行偏好測試。
  • Voicebox:Voicebox使用流匹配來預測被遮罩的梅爾頻譜圖。RTF來自原論文。該研究使用複現的結果進行MOS、Sim和WER評估。該研究還使用其官方demo實現偏好測試。
  • NaturalSpeech2:NaturalSpeech2使用潛在擴散模型來預測編解碼器的潛在特徵。RTF來自原論文。Sim、WER和MOS樣本是通過與作者溝通獲得的。該研究還使用其官方demo進行偏好測試。
  • Mega-TTS:Mega-TTS同時使用語言模型和GAN來預測梅爾頻譜圖。該研究從mobilespeech獲得RTF,從原論文獲得WER。該研究使用其官方demo進行偏好測試。
  • ClaM-TTS:ClaM-TTS使用AR模型來預測梅爾編解碼器符號。該研究從原論文獲得客觀評估結果,並使用其官方demo進行偏好測試。

生成品質

FlashSpeech在說話人品質方面表現突出,在CMOS和音訊品質偏好測試中超過其他基準。值得注意的是,該研究的方法非常接近真實錄音,突顯了其有效性。這些結果證實了FlashSpeech在語音合成方面的卓越品質。

生成相似度

該研究使用Sim、SMOS和說話人相似度偏好測試來評估說話人相似度,該研究的方法分別獲得第一、第二和第三名。這些發現驗證了該研究的方法在實現與其他方法相當的說話人相似度方面的能力。儘管該研究的訓練資料(MLS)包含約5k個說話人,少於大多數其他方法(例如,Librilight約有7k個說話人或自採集資料),但該研究認為增加該研究方法中的說話人數量可以進一步提高說話人相似度。

穩健性

該研究的方法實現了2.7的WER,處於第一梯隊。這歸因於該研究方法的非自回歸特性,從而確保了穩健性。

生成速度

FlashSpeech實現了比先前工作快約20倍的推理速度。考慮到其出色的音訊品質、穩健性和可比的說話人相似度,該研究的方法作為一種高效且有效的大規模語音合成解決方案脫穎而出。

消融研究

LCM的消融研究

該研究探索了對抗訓練中不同預訓練模型對UTMOS和Sim-O的影響。如表2所示,僅採用一致性訓練的基準實現了3.62的UTMOS和0.45的Sim-O。使用wav2vec2-large、hubert-large和wavlm-large作為鑑別器,將對抗訓練納入其中,顯著提高了UTMOS和Sim-O分數。值得注意的是,將Wavlm-large用於對抗訓練獲得了最高分數(UTMOS:4.00,Sim-O:0.52),突顯了該預訓練模型在提高合成語音的品質和說話人相似度方面的效果。此外,在不使用音訊提示特徵作為鑑別器的條件特徵時,性能略有下降(UTMOS:3.97,Sim-O:0.51),凸顯了條件特徵在引導對抗訓練過程中的重要性。



如表3所示,採樣步驟(NFE)對UTMOS和Sim-O的影響表明,將NFE從1增加到2略微提高了UTMOS(從3.99提高到4.00)和Sim-O(從0.51提高到0.52)。然而,進一步增加到4個採樣步驟略微降低了UTMOS至3.91,這是由於分數估計誤差的累積。因此,該研究使用2步作為LCM的預設設置。



韻律生成器的消融研究

在這一部分中,該研究研究了控制因子(表示為α)對語音合成中音高和時長等韻律特徵的影響,方法是將另一個影響因子設置為零。該研究的研究專門進行消融分析,以評估α如何影響這些特徵,強調其在平衡該研究框架韻律輸出的穩定性和多樣性方面的關鍵作用。

表4闡明了不同α值對音高成分的影響。當α設置為0時,表示不包含來自韻律細化的殘差輸出,該研究觀察到0.072的Pitch JSD和2.8的WER。將α略微修改為0.2導致Pitch JSD降低到0.067,WER保持不變。值得注意的是,將α設置為1,完全納入韻律細化的殘差輸出,進一步將Pitch JSD降低到0.063,但是代價是WER增加到3.7,這表明韻律多樣性和語音可懂度之間存在權衡。



在表5的時長成分分析中也觀察到類似的趨勢。當α=0時,Duration JSD為0.0175,WER為2.8。將α調整為0.2略微改善了Duration JSD至0.0168,而不影響WER。然而,通過將α設置為1來完全接受細化模組的輸出,在Duration JSD方面產生了最顯著的改善,達到0.0153,與音高分析類似,這伴隨著WER增加到3.9。結果強調了在調整α以在不影響語音可懂度的情況下優化韻律的多樣性和穩定性之間取得平衡所需的細微平衡。

語音轉換的評估結果

在本節中,該研究介紹該研究的語音轉換系統FlashSpeech與最先進方法(包括YourTTS和DDDM-VC)的評估結果。該研究在內部測試集上使用它們的官方檢查點進行實驗。



表6顯示,該研究的系統在CMOS、SMOS和Sim-O方面都優於YourTTS和DDDM-VC,證明了它在生成高品質且與目標說話人相似的轉換語音方面的能力。這些結果證實了該研究的FlashSpeech方法在語音轉換任務中的有效性。

結論與未來工作

在本文中,該研究提出了FlashSpeech,這是一種新穎的語音生成系統,可以顯著降低計算成本,同時保持高品質的語音輸出。利用新穎的對抗一致性訓練方法和LCM,FlashSpeech在效率方面優於現有的零樣本TTS系統,實現了約20倍的速度,而不會影響語音品質、相似度和穩健性。未來,該研究的目標是進一步改進模型,提高推理速度並降低計算需求。此外,該研究將擴大資料規模,增強系統傳達更廣泛情感和更細微韻律的能力。對於未來的應用,FlashSpeech可以集成用於虛擬助手和教育工具等應用中的實時互動。

https://arxiv.org/pdf/2404.14700

我對FlashSpeech的觀點

FlashSpeech 是一個大規模zero-shot發聲合成系統,目標是在保持高音質的同時,大幅提升語音合成的效率。這個系統利用了潛在一致性模型(Latent Consistency Model, LCM),並通過一種新穎的對抗一致性訓練方法來進行訓練。FlashSpeech實現了比現有零樣本TTS系統快約20倍的速度,而語音品質、相似度和穩健性並未下降。這使得FlashSpeech在需要實時語音合成的應用中更具實用性。

FlashSpeech 的創新點主要包括:

  1. 高效的語音合成:FlashSpeech 能在約為傳統系統 5% 的推理時間內完成語音生成,大約是其他零擊發聲合成系統的 20 倍速度。
  2. 對抗一致性訓練:這是一種結合了一致性訓練和對抗訓練的方法,利用預訓練的語音語言模型作為判別器,有效地將從大型預訓練模型中獲得的知識轉移到語音生成任務中。
  3. 韻律生成器:通過新的韻律生成模塊增強了語音的韻律多樣性,使得語音節奏聽起來更加自然。

此外,FlashSpeech 在實驗中展示了優於或可比的語音質量和說話人相似性,並且能夠高效地執行語音轉換、語音編輯和多樣化語音採樣等任務。在應用實例中,包括zero-shot發聲的文本到語音(TTS)、語音轉換和語音編輯等,FlashSpeech 都展示了其實用性和高效性。

儘管FlashSpeech取得了顯著進展,但仍有改進空間。未來的工作可以探索進一步優化模型以提高推理速度和降低計算需求。此外,擴大訓練數據的規模和多樣性有望增強FlashSpeech生成更廣泛情感和韻律的能力。隨著FlashSpeech在虛擬助手、教育工具和其他需要逼真語音合成的應用中的潛在集成,它有望revolutionise人機交互的體驗。


TTS: 新戰場

Text to Speech arena加入了 OpenVoice v2、PlayHT 2.0 和 Voicecraft 2.0 🔥

記得開聲音 🔔

為什麼選擇它們?

OpenVoice v2 是 myshell ai 最新發布的版本,使用了更多的數據和更好的訓練策略進行訓練,更重要的是,它是以 MIT 授權發布的。

Voicecraft 2.0 是最近由 Puyuan 和德州大學發布的版本 - 這些模型是專門針對 TTS 進行微調的,儘管採用了非許可性的授權。

Play HT 2.0 可以說是 TTS 的最前沿技術 - 它與 ElevenLabs 類似,是封閉原始碼的 - 它只是為了在僅有封閉原始碼 API 的區域中加熱競爭。



SambaNova SN40L: 利用Dataflow和專家組合(COE)來克服AI記憶牆的大模型

摘要 GPT-4等整體式大型語言模型(LLM)為現代生成AI應用鋪路。然而,大規模訓練、服務及維護整體式LLM仍然極其昂貴和充滿挑戰。現代AI加速器計算能力與記憶體比例的不成比例增長已經造成了記憶體壁障,需要新的方法來部署AI。最近的研究顯示,許多小型專家模型的組合,每個模型參數...