SpeechT5:統一模態編碼器-解碼器於語音處理

概述

SpeechT5 是一個統一模態的編碼器-解碼器模型,旨在於單一架構中處理多種語言語音處理任務。透過在文字轉語音、語音轉文字、文字轉文字與語音轉語音資料的混合上進行預訓練,模型建立了一個文字與語音共享的統一隱藏表示空間。

核心架構

SpeechT5 為所有任務使用標準的 Transformer 編碼器-解碼器骨幹。為了能處理多樣的資料類型,模型採用模組化的「pre-nets」與「post-nets」:

  • Pre-nets:將輸入的文字或語音轉換為 Transformer 編碼器所需的隱藏表示。
  • Post-nets:將 Transformer 輸出的隱藏表示轉回文字或語音。

模型在預訓練時同時使用所有的 pre-nets 與 post-nets,但在特定任務上會進行微調。微調完成後,模型僅使用與該任務相關的 pre-nets 與 post-nets。由於微調過程會改變權重,為某一任務(例如 ASR)微調的模型無法僅透過交換 pre-nets 與 post-nets 就轉換為另一任務(例如 TTS)。

文字轉語音(TTS)功能

SpeechT5 作為一個多功能的文字轉語音系統,能夠使用說話者嵌入為多位說話者合成音訊。

技術實作

針對 TTS 任務,SpeechT5 使用以下特定模組:

  • Text encoder pre-net:將詞彙映射為隱藏表示的文字嵌入層。
  • Speech decoder pre-net:一系列線性層,將對數梅爾頻譜壓縮為隱藏表示(基於 Tacotron 2)。
  • Speech decoder post-net:預測殘差以細化輸出頻譜的模組(基於 Tacotron 2)。

音訊生成工作流程

為產生最終波形,模型會生成對數梅爾頻譜,接著必須由聲碼器處理。Hugging Face 提供基於 HiFi-GAN 的聲碼器(SpeechT5HifiGan)以完成此步驟。系統以固定 16 kHz 的取樣率運作。

語音轉語音與語者轉換

SpeechT5 能透過將文字編碼器 pre-net 替換為語音編碼器 pre-net,執行語音轉語音任務,例如語者轉換。

技術實作

  • Speech encoder pre-net:此模組使用卷積層將輸入波形下採樣為音訊框架表示,採用與 wav2vec 2.0 相同的特徵編碼模組。

語者轉換透過提供模型輸入語音波形與目標說話者嵌入,使模型將原始聲音轉換為目標說話者的特徵。

自動語音辨識(ASR)

SpeechT5 提供語音轉文字的功能,可用於轉錄與說話者辨識。

技術實作

在 ASR 中,模型使用:

  • Speech encoder pre-net:與語音轉語音模型相同的 CNN 特徵編碼器(wav2vec 2.0)。
  • Text decoder pre-net:將文字詞彙映射為隱藏表示的嵌入層。
  • Text decoder post-net:單一線性層,將隱藏表示投射為詞彙表上的機率。

由於分詞器以字元層級運作,產生的 ASR 轉錄結果不包含標點或大小寫。

多功能性概述

除了已整合的 ASR、TTS 與語者轉換檢查點外,原始研究指出 SpeechT5 架構亦能支援語音翻譯、語音增強與說話者辨識。

Sources