torchaudio.pipelines¶
torchaudio.pipelines
模組將預訓練模型與支援函數和元數據打包到簡單的 API 中,專為執行特定任務而設計。
當使用預訓練模型執行任務時,除了使用預訓練權重實例化模型之外,客戶端程式碼還需要以與訓練期間相同的方式建構特徵提取和後處理的 pipelines。這需要延續訓練期間使用的資訊,例如轉換的類型及其參數(例如,採樣率、 FFT bins 的數量)。
為了使此資訊與預訓練模型相關聯並易於存取,torchaudio.pipelines
模組使用 Bundle 類別的概念,該類別定義了一組 API 來實例化 pipelines 以及 pipelines 的介面。
下圖說明了這一點。

預訓練模型和相關的 pipelines 表示為 Bundle
的一個實例。相同 Bundle
的不同實例共享介面,但它們的實作不限於相同類型。例如,SourceSeparationBundle
定義了執行源分離的介面,但其實例 CONVTASNET_BASE_LIBRI2MIX
實例化了 ConvTasNet
的模型,而 HDEMUCS_HIGH_MUSDB
實例化了 HDemucs
的模型。儘管如此,由於它們共享相同的介面,因此用法是相同的。
注意
在底層,Bundle
的實作使用了來自其他 torchaudio
模組的元件,例如 torchaudio.models
和 torchaudio.transforms
,甚至像 SentencPiece 和 DeepPhonemizer 這樣的第三方函式庫。但是這個實作細節對於函式庫的使用者來說是被抽象化的。
RNN-T 串流/非串流 ASR¶
介面¶
RNNTBundle
定義了 ASR 管線,並且由三個步驟組成:特徵提取、推論和去 Token 化 (de-tokenization)。

資料類別,用於捆綁執行 RNN-T 模型自動語音辨識 (ASR,語音轉文字) 推論所需的元件。 |
|
RNN-T 管線特徵提取部分的介面 |
|
RNN-T 管線 Token 處理器部分的介面 |
使用 RNNTBundle
的教學
預訓練模型¶
基於 Emformer-RNNT 的 ASR 管線,在 LibriSpeech 資料集上預訓練 [Panayotov et al., 2015],能夠執行串流和非串流推論。 |
wav2vec 2.0 / HuBERT / WavLM - SSL¶
介面¶
Wav2Vec2Bundle
實例化產生聲學特徵的模型,這些特徵可以用於下游推論和微調。

資料類別,用於捆綁使用預訓練 |
預訓練模型¶
Wav2vec 2.0 模型("base" 架構),在來自 LibriSpeech 資料集 [Panayotov et al., 2015] 的 960 小時未標記音訊上預訓練("train-clean-100"、"train-clean-360" 和 "train-other-500" 的組合),未經過微調。 |
|
Wav2vec 2.0 模型("large" 架構),在來自 LibriSpeech 資料集 [Panayotov et al., 2015] 的 960 小時未標記音訊上預訓練("train-clean-100"、"train-clean-360" 和 "train-other-500" 的組合),未經過微調。 |
|
Wav2vec 2.0 模型("large-lv60k" 架構),在來自 Libri-Light 資料集 [Kahn et al., 2020] 的 60,000 小時未標記音訊上預訓練,未經過微調。 |
|
Wav2vec 2.0 模型("base" 架構),在來自多個資料集的 56,000 小時未標記音訊上預訓練(Multilingual LibriSpeech [Pratap et al., 2020]、CommonVoice [Ardila et al., 2020] 和 BABEL [Gales et al., 2014]),未經過微調。 |
|
具有 3 億參數的 XLS-R 模型,在來自多個資料集的 436,000 小時未標記音訊上預訓練(Multilingual LibriSpeech [Pratap et al., 2020]、CommonVoice [Ardila et al., 2020]、VoxLingua107 [Valk and Alumäe, 2021]、BABEL [Gales et al., 2014] 和 VoxPopuli [Wang et al., 2021]),涵蓋 128 種語言,未經過微調。 |
|
XLS-R 模型,具有 10 億個參數,在來自多個資料集的 436,000 小時未標記音訊上進行預訓練(Multilingual LibriSpeech [Pratap et al., 2020]、CommonVoice [Ardila et al., 2020]、VoxLingua107 [Valk and Alumäe, 2021]、BABEL [Gales et al., 2014] 和 VoxPopuli [Wang et al., 2021]),包含 128 種語言,未經過微調。 |
|
XLS-R 模型,具有 20 億個參數,在來自多個資料集的 436,000 小時未標記音訊上進行預訓練(Multilingual LibriSpeech [Pratap et al., 2020]、CommonVoice [Ardila et al., 2020]、VoxLingua107 [Valk and Alumäe, 2021]、BABEL [Gales et al., 2014] 和 VoxPopuli [Wang et al., 2021]),包含 128 種語言,未經過微調。 |
|
HuBERT 模型("base" 架構),在來自 LibriSpeech 資料集 [Panayotov et al., 2015]("train-clean-100"、"train-clean-360" 和 "train-other-500" 的組合)的 960 小時未標記音訊上進行預訓練,未經過微調。 |
|
HuBERT 模型("large" 架構),在來自 Libri-Light 資料集 [Kahn et al., 2020] 的 60,000 小時未標記音訊上進行預訓練,未經過微調。 |
|
HuBERT 模型("extra large" 架構),在來自 Libri-Light 資料集 [Kahn et al., 2020] 的 60,000 小時未標記音訊上進行預訓練,未經過微調。 |
|
WavLM Base 模型("base" 架構),在來自 LibriSpeech 資料集 [Panayotov et al., 2015] 的 960 小時未標記音訊上進行預訓練,未經過微調。 |
|
WavLM Base+ 模型("base" 架構),在來自 Libri-Light 資料集 [Kahn et al., 2020] 的 60,000 小時、GigaSpeech [Chen et al., 2021] 的 10,000 小時,以及 VoxPopuli [Wang et al., 2021] 的 24,000 小時未標記音訊上進行預訓練,未經過微調。 |
|
WavLM Large 模型("large" 架構),預訓練於 60,000 小時的 Libri-Light 資料集 [Kahn et al., 2020]、10,000 小時的 GigaSpeech [Chen et al., 2021],以及 24,000 小時的 VoxPopuli [Wang et al., 2021],未經微調。 |
wav2vec 2.0 / HuBERT - 微調後的 ASR¶
介面¶
Wav2Vec2ASRBundle
實例化產生預定義標籤上的機率分佈的模型,可用於 ASR。

資料類別,用於捆綁使用預訓練 |
使用 Wav2Vec2ASRBundle
的教學課程
預訓練模型¶
Wav2vec 2.0 模型("base" 架構,帶有一個額外的線性模組),預訓練於來自 LibriSpeech 資料集 [Panayotov et al., 2015] 的 960 小時未標記音訊("train-clean-100"、"train-clean-360" 和 "train-other-500" 的組合),並且針對 ASR 在來自 Libri-Light 資料集 [Kahn et al., 2020]("train-10min" 子集)的 10 分鐘轉錄音訊上進行微調。 |
|
Wav2vec 2.0 模型("base" 架構,帶有一個額外的線性模組),預訓練於來自 LibriSpeech 資料集 [Panayotov et al., 2015] 的 960 小時未標記音訊("train-clean-100"、"train-clean-360" 和 "train-other-500" 的組合),並且針對 ASR 在來自 "train-clean-100" 子集的 100 小時轉錄音訊上進行微調。 |
|
Wav2vec 2.0 模型("base" 架構,帶有一個額外的線性模組),預訓練於來自 LibriSpeech 資料集 [Panayotov et al., 2015] 的 960 小時未標記音訊("train-clean-100"、"train-clean-360" 和 "train-other-500" 的組合),並且針對 ASR 在具有相應轉錄的相同音訊上進行微調。 |
|
Wav2vec 2.0 模型("large" 架構,帶有一個額外的線性模組),預訓練於來自 LibriSpeech 資料集 [Panayotov et al., 2015] 的 960 小時未標記音訊("train-clean-100"、"train-clean-360" 和 "train-other-500" 的組合),並且針對 ASR 在來自 Libri-Light 資料集 [Kahn et al., 2020]("train-10min" 子集)的 10 分鐘轉錄音訊上進行微調。 |
|
Wav2vec 2.0 模型("large" 架構,帶有一個額外的線性模組),預訓練於來自 LibriSpeech 資料集 [Panayotov et al., 2015] 的 960 小時未標記音訊("train-clean-100"、"train-clean-360" 和 "train-other-500" 的組合),並且針對 ASR 在來自相同資料集("train-clean-100" 子集)的 100 小時轉錄音訊上進行微調。 |
|
Wav2vec 2.0 模型("large" 架構,帶有一個額外的線性模組),預訓練於來自 LibriSpeech 資料集 [Panayotov et al., 2015] 的 960 小時未標記音訊("train-clean-100"、"train-clean-360" 和 "train-other-500" 的組合),並且針對 ASR 在具有相應轉錄的相同音訊上進行微調。 |
|
Wav2vec 2.0 模型(具有額外線性模組的 "large-lv60k" 架構),在 Libri-Light 資料集中預訓練了 60,000 小時的未標記音訊 [Kahn et al., 2020],並在來自同一資料集的 10 分鐘轉錄音訊("train-10min" 子集)上進行了 ASR 微調。 |
|
Wav2vec 2.0 模型(具有額外線性模組的 "large-lv60k" 架構),在 Libri-Light 資料集中預訓練了 60,000 小時的未標記音訊 [Kahn et al., 2020],並在來自 LibriSpeech 資料集的 100 小時轉錄音訊("train-clean-100" 子集)上進行了 ASR 微調。 |
|
Wav2vec 2.0 模型(具有額外線性模組的 "large-lv60k" 架構),在 Libri-Light 資料集中預訓練了 60,000 小時的未標記音訊 [Kahn et al., 2020],並在來自 LibriSpeech 資料集的 960 小時轉錄音訊("train-clean-100"、"train-clean-360" 和 "train-other-500" 的組合)上進行了 ASR 微調。 |
|
wav2vec 2.0 模型("base" 架構),在 VoxPopuli 資料集中預訓練了 1 萬小時的未標記音訊 [Wang et al., 2021] (包含 23 種語言的 "10k" 子集),並在來自 "de" 子集的 282 小時轉錄音訊上進行了 ASR 微調。 |
|
wav2vec 2.0 模型("base" 架構),在 VoxPopuli 資料集中預訓練了 1 萬小時的未標記音訊 [Wang et al., 2021] (包含 23 種語言的 "10k" 子集),並在來自 "en" 子集的 543 小時轉錄音訊上進行了 ASR 微調。 |
|
wav2vec 2.0 模型("base" 架構),在 VoxPopuli 資料集中預訓練了 1 萬小時的未標記音訊 [Wang et al., 2021] (包含 23 種語言的 "10k" 子集),並在來自 "es" 子集的 166 小時轉錄音訊上進行了 ASR 微調。 |
|
wav2vec 2.0 模型("base" 架構),在 VoxPopuli 資料集中預訓練了 1 萬小時的未標記音訊 [Wang et al., 2021] (包含 23 種語言的 "10k" 子集),並在來自 "fr" 子集的 211 小時轉錄音訊上進行了 ASR 微調。 |
|
wav2vec 2.0 模型("base" 架構),在 VoxPopuli 資料集中預訓練了 1 萬小時的未標記音訊 [Wang et al., 2021] (包含 23 種語言的 "10k" 子集),並在來自 "it" 子集的 91 小時轉錄音訊上進行了 ASR 微調。 |
|
HuBERT 模型("large" 架構),在 Libri-Light 資料集中經過 60,000 小時的無標籤音訊預訓練 [Kahn et al., 2020],並且在 LibriSpeech 資料集中經過 960 小時的轉錄音訊微調用於 ASR [Panayotov et al., 2015]("train-clean-100"、"train-clean-360" 和 "train-other-500" 的組合)。 |
|
HuBERT 模型("extra large" 架構),在 Libri-Light 資料集中經過 60,000 小時的無標籤音訊預訓練 [Kahn et al., 2020],並且在 LibriSpeech 資料集中經過 960 小時的轉錄音訊微調用於 ASR [Panayotov et al., 2015]("train-clean-100"、"train-clean-360" 和 "train-other-500" 的組合)。 |
wav2vec 2.0 / HuBERT - 強制對齊¶
介面¶
Wav2Vec2FABundle
捆綁預訓練模型及其相關的字典。此外,它還支援附加 star
權杖維度。

資料類別,捆綁相關資訊以使用預訓練的 |
|
Tokenizer 的介面 |
|
Aligner 的介面 |
使用 Wav2Vec2FABundle
的教學
預訓練模型¶
在 Scaling Speech Technology to 1,000+ Languages [Pratap et al., 2023] 中,使用 1,130 種語言的 31K 小時資料進行訓練。 |
Tacotron2 文字轉語音¶
Tacotron2TTSBundle
定義了文字轉語音管道,包含三個步驟:權杖化、頻譜圖生成和聲碼器。 頻譜圖生成基於 Tacotron2
模型。

TextProcessor
可以是基於規則的權杖化(在字元的情況下),或者它可以是基於神經網路的 G2P 模型,從輸入文字產生音素序列。
類似地,Vocoder
可以是沒有學習參數的演算法,例如 Griffin-Lim,或者像 Waveglow 這樣的基於神經網路的模型。
介面¶
資料類別,捆綁相關資訊以使用預訓練的 Tacotron2 和聲碼器。 |
|
Tacotron2TTS 管道的文字處理部分的介面 |
|
Tacotron2TTS 管道的聲碼器部分的介面 |
使用 Tacotron2TTSBundle
的教學
預訓練模型¶
基於音素的 TTS 管道,使用在 LJSpeech [Ito and Johnson, 2017] 上訓練了 1,500 個 epoch 的 |
|
基於字元的 TTS 管道,使用在 LJSpeech [Ito and Johnson, 2017] 上訓練了 1,500 個 epoch 的 |
|
基於音素的 TTS 流程,使用在 LJSpeech 資料集 [Ito and Johnson, 2017] 上訓練 1,500 個 epochs 的 |
|
基於字元的 TTS 流程,使用在 LJSpeech 資料集 [Ito and Johnson, 2017] 上訓練 1,500 個 epochs 的 |
音源分離¶
介面¶
SourceSeparationBundle
實例化音源分離模型,該模型接受單聲道音訊並產生多聲道音訊。

用於捆綁執行音源分離的組件的資料類別。 |
使用 SourceSeparationBundle
的教學課程
預訓練模型¶
預訓練的音源分離流程,使用在 Libri2Mix dataset 資料集 [Cosentino et al., 2020] 上訓練的 ConvTasNet 模型 [Luo and Mesgarani, 2019]。 |
|
預訓練的音樂音源分離流程,使用在 MUSDB-HQ 的訓練集和測試集 [Rafii et al., 2019] 以及 Meta 專門製作的內部資料庫中的額外 150 首歌曲上訓練的 Hybrid Demucs 模型 [Défossez, 2021]。 |
|
預訓練的音樂音源分離流程,使用在 MUSDB-HQ 的訓練集 [Rafii et al., 2019] 上訓練的 Hybrid Demucs 模型 [Défossez, 2021]。 |
Squim 客觀指標¶
介面¶
SquimObjectiveBundle
定義語音品質和可理解度測量 (SQUIM) 流程,該流程可以根據輸入的波形預測客觀指標分數。
用於捆綁相關資訊以使用預訓練的 |
預訓練模型¶
SquimObjective 流程使用 [Kumar et al., 2023] 中描述的方法,在 DNS 2020 Dataset 資料集 [Reddy et al., 2020] 上進行訓練。 |
Squim 主觀指標¶
介面¶
SquimSubjectiveBundle
定義語音品質和可理解度測量 (SQUIM) 流程,該流程可以根據輸入的波形預測主觀指標分數。
用於捆綁相關資訊以使用預訓練的 |
預訓練模型¶
SquimSubjective 流程按照 [Manocha and Kumar, 2022] 和 [Kumar et al., 2023] 中的描述進行訓練,使用 BVCC 資料集 [Cooper and Yamagishi, 2021] 和 DAPS 資料集 [Mysore, 2014]。 |