• 文件 >
  • torchaudio.pipelines >
  • 舊版本 (穩定版)
快捷鍵

torchaudio.pipelines

torchaudio.pipelines 模組將預訓練模型與支援函數和元數據打包到簡單的 API 中,專為執行特定任務而設計。

當使用預訓練模型執行任務時,除了使用預訓練權重實例化模型之外,客戶端程式碼還需要以與訓練期間相同的方式建構特徵提取和後處理的 pipelines。這需要延續訓練期間使用的資訊,例如轉換的類型及其參數(例如,採樣率、 FFT bins 的數量)。

為了使此資訊與預訓練模型相關聯並易於存取,torchaudio.pipelines 模組使用 Bundle 類別的概念,該類別定義了一組 API 來實例化 pipelines 以及 pipelines 的介面。

下圖說明了這一點。

https://download.pytorch.org/torchaudio/doc-assets/pipelines-intro.png

預訓練模型和相關的 pipelines 表示為 Bundle 的一個實例。相同 Bundle 的不同實例共享介面,但它們的實作不限於相同類型。例如,SourceSeparationBundle 定義了執行源分離的介面,但其實例 CONVTASNET_BASE_LIBRI2MIX 實例化了 ConvTasNet 的模型,而 HDEMUCS_HIGH_MUSDB 實例化了 HDemucs 的模型。儘管如此,由於它們共享相同的介面,因此用法是相同的。

注意

在底層,Bundle 的實作使用了來自其他 torchaudio 模組的元件,例如 torchaudio.modelstorchaudio.transforms,甚至像 SentencPieceDeepPhonemizer 這樣的第三方函式庫。但是這個實作細節對於函式庫的使用者來說是被抽象化的。

RNN-T 串流/非串流 ASR

介面

RNNTBundle 定義了 ASR 管線,並且由三個步驟組成:特徵提取、推論和去 Token 化 (de-tokenization)。

https://download.pytorch.org/torchaudio/doc-assets/pipelines-rnntbundle.png

RNNTBundle

資料類別,用於捆綁執行 RNN-T 模型自動語音辨識 (ASR,語音轉文字) 推論所需的元件。

RNNTBundle.FeatureExtractor

RNN-T 管線特徵提取部分的介面

RNNTBundle.TokenProcessor

RNN-T 管線 Token 處理器部分的介面

使用 RNNTBundle 的教學

Online ASR with Emformer RNN-T

使用 Emformer RNN-T 進行線上 ASR

使用 Emformer RNN-T 進行線上 ASR
Device ASR with Emformer RNN-T

使用 Emformer RNN-T 進行裝置 ASR

使用 Emformer RNN-T 進行裝置 ASR

預訓練模型

EMFORMER_RNNT_BASE_LIBRISPEECH

基於 Emformer-RNNT 的 ASR 管線,在 LibriSpeech 資料集上預訓練 [Panayotov et al., 2015],能夠執行串流和非串流推論。

wav2vec 2.0 / HuBERT / WavLM - SSL

介面

Wav2Vec2Bundle 實例化產生聲學特徵的模型,這些特徵可以用於下游推論和微調。

https://download.pytorch.org/torchaudio/doc-assets/pipelines-wav2vec2bundle.png

Wav2Vec2Bundle

資料類別,用於捆綁使用預訓練 Wav2Vec2Model 相關的資訊。

預訓練模型

WAV2VEC2_BASE

Wav2vec 2.0 模型("base" 架構),在來自 LibriSpeech 資料集 [Panayotov et al., 2015] 的 960 小時未標記音訊上預訓練("train-clean-100"、"train-clean-360" 和 "train-other-500" 的組合),未經過微調。

WAV2VEC2_LARGE

Wav2vec 2.0 模型("large" 架構),在來自 LibriSpeech 資料集 [Panayotov et al., 2015] 的 960 小時未標記音訊上預訓練("train-clean-100"、"train-clean-360" 和 "train-other-500" 的組合),未經過微調。

WAV2VEC2_LARGE_LV60K

Wav2vec 2.0 模型("large-lv60k" 架構),在來自 Libri-Light 資料集 [Kahn et al., 2020] 的 60,000 小時未標記音訊上預訓練,未經過微調。

WAV2VEC2_XLSR53

Wav2vec 2.0 模型("base" 架構),在來自多個資料集的 56,000 小時未標記音訊上預訓練(Multilingual LibriSpeech [Pratap et al., 2020]CommonVoice [Ardila et al., 2020]BABEL [Gales et al., 2014]),未經過微調。

WAV2VEC2_XLSR_300M

具有 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 種語言,未經過微調。

WAV2VEC2_XLSR_1B

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 種語言,未經過微調。

WAV2VEC2_XLSR_2B

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

HuBERT 模型("base" 架構),在來自 LibriSpeech 資料集 [Panayotov et al., 2015]("train-clean-100"、"train-clean-360" 和 "train-other-500" 的組合)的 960 小時未標記音訊上進行預訓練,未經過微調。

HUBERT_LARGE

HuBERT 模型("large" 架構),在來自 Libri-Light 資料集 [Kahn et al., 2020] 的 60,000 小時未標記音訊上進行預訓練,未經過微調。

HUBERT_XLARGE

HuBERT 模型("extra large" 架構),在來自 Libri-Light 資料集 [Kahn et al., 2020] 的 60,000 小時未標記音訊上進行預訓練,未經過微調。

WAVLM_BASE

WavLM Base 模型("base" 架構),在來自 LibriSpeech 資料集 [Panayotov et al., 2015] 的 960 小時未標記音訊上進行預訓練,未經過微調。

WAVLM_BASE_PLUS

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

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。

https://download.pytorch.org/torchaudio/doc-assets/pipelines-wav2vec2asrbundle.png

Wav2Vec2ASRBundle

資料類別,用於捆綁使用預訓練 Wav2Vec2Model 相關的資訊。

使用 Wav2Vec2ASRBundle 的教學課程

Speech Recognition with Wav2Vec2

使用 Wav2Vec2 進行語音辨識

使用 Wav2Vec2 進行語音辨識
ASR Inference with CTC Decoder

使用 CTC 解碼器進行 ASR 推論

使用 CTC 解碼器進行 ASR 推論
Forced Alignment with Wav2Vec2

使用 Wav2Vec2 進行強制對齊

使用 Wav2Vec2 進行強制對齊

預訓練模型

WAV2VEC2_ASR_BASE_10M

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 分鐘轉錄音訊上進行微調。

WAV2VEC2_ASR_BASE_100H

Wav2vec 2.0 模型("base" 架構,帶有一個額外的線性模組),預訓練於來自 LibriSpeech 資料集 [Panayotov et al., 2015] 的 960 小時未標記音訊("train-clean-100"、"train-clean-360" 和 "train-other-500" 的組合),並且針對 ASR 在來自 "train-clean-100" 子集的 100 小時轉錄音訊上進行微調。

WAV2VEC2_ASR_BASE_960H

Wav2vec 2.0 模型("base" 架構,帶有一個額外的線性模組),預訓練於來自 LibriSpeech 資料集 [Panayotov et al., 2015] 的 960 小時未標記音訊("train-clean-100"、"train-clean-360" 和 "train-other-500" 的組合),並且針對 ASR 在具有相應轉錄的相同音訊上進行微調。

WAV2VEC2_ASR_LARGE_10M

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 分鐘轉錄音訊上進行微調。

WAV2VEC2_ASR_LARGE_100H

Wav2vec 2.0 模型("large" 架構,帶有一個額外的線性模組),預訓練於來自 LibriSpeech 資料集 [Panayotov et al., 2015] 的 960 小時未標記音訊("train-clean-100"、"train-clean-360" 和 "train-other-500" 的組合),並且針對 ASR 在來自相同資料集("train-clean-100" 子集)的 100 小時轉錄音訊上進行微調。

WAV2VEC2_ASR_LARGE_960H

Wav2vec 2.0 模型("large" 架構,帶有一個額外的線性模組),預訓練於來自 LibriSpeech 資料集 [Panayotov et al., 2015] 的 960 小時未標記音訊("train-clean-100"、"train-clean-360" 和 "train-other-500" 的組合),並且針對 ASR 在具有相應轉錄的相同音訊上進行微調。

WAV2VEC2_ASR_LARGE_LV60K_10M

Wav2vec 2.0 模型(具有額外線性模組的 "large-lv60k" 架構),在 Libri-Light 資料集中預訓練了 60,000 小時的未標記音訊 [Kahn et al., 2020],並在來自同一資料集的 10 分鐘轉錄音訊("train-10min" 子集)上進行了 ASR 微調。

WAV2VEC2_ASR_LARGE_LV60K_100H

Wav2vec 2.0 模型(具有額外線性模組的 "large-lv60k" 架構),在 Libri-Light 資料集中預訓練了 60,000 小時的未標記音訊 [Kahn et al., 2020],並在來自 LibriSpeech 資料集的 100 小時轉錄音訊("train-clean-100" 子集)上進行了 ASR 微調。

WAV2VEC2_ASR_LARGE_LV60K_960H

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 微調。

VOXPOPULI_ASR_BASE_10K_DE

wav2vec 2.0 模型("base" 架構),在 VoxPopuli 資料集中預訓練了 1 萬小時的未標記音訊 [Wang et al., 2021] (包含 23 種語言的 "10k" 子集),並在來自 "de" 子集的 282 小時轉錄音訊上進行了 ASR 微調。

VOXPOPULI_ASR_BASE_10K_EN

wav2vec 2.0 模型("base" 架構),在 VoxPopuli 資料集中預訓練了 1 萬小時的未標記音訊 [Wang et al., 2021] (包含 23 種語言的 "10k" 子集),並在來自 "en" 子集的 543 小時轉錄音訊上進行了 ASR 微調。

VOXPOPULI_ASR_BASE_10K_ES

wav2vec 2.0 模型("base" 架構),在 VoxPopuli 資料集中預訓練了 1 萬小時的未標記音訊 [Wang et al., 2021] (包含 23 種語言的 "10k" 子集),並在來自 "es" 子集的 166 小時轉錄音訊上進行了 ASR 微調。

VOXPOPULI_ASR_BASE_10K_FR

wav2vec 2.0 模型("base" 架構),在 VoxPopuli 資料集中預訓練了 1 萬小時的未標記音訊 [Wang et al., 2021] (包含 23 種語言的 "10k" 子集),並在來自 "fr" 子集的 211 小時轉錄音訊上進行了 ASR 微調。

VOXPOPULI_ASR_BASE_10K_IT

wav2vec 2.0 模型("base" 架構),在 VoxPopuli 資料集中預訓練了 1 萬小時的未標記音訊 [Wang et al., 2021] (包含 23 種語言的 "10k" 子集),並在來自 "it" 子集的 91 小時轉錄音訊上進行了 ASR 微調。

HUBERT_ASR_LARGE

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_ASR_XLARGE

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 權杖維度。

https://download.pytorch.org/torchaudio/doc-assets/pipelines-wav2vec2fabundle.png

Wav2Vec2FABundle

資料類別,捆綁相關資訊以使用預訓練的 Wav2Vec2Model 進行強制對齊。

Wav2Vec2FABundle.Tokenizer

Tokenizer 的介面

Wav2Vec2FABundle.Aligner

Aligner 的介面

使用 Wav2Vec2FABundle 的教學

CTC forced alignment API tutorial

CTC 強制對齊 API 教學

CTC 強制對齊 API 教學
Forced alignment for multilingual data

用於多語言資料的強制對齊

用於多語言資料的強制對齊
Forced Alignment with Wav2Vec2

使用 Wav2Vec2 進行強制對齊

使用 Wav2Vec2 進行強制對齊

預訓練模型

MMS_FA

Scaling Speech Technology to 1,000+ Languages [Pratap et al., 2023] 中,使用 1,130 種語言的 31K 小時資料進行訓練。

Tacotron2 文字轉語音

Tacotron2TTSBundle 定義了文字轉語音管道,包含三個步驟:權杖化、頻譜圖生成和聲碼器。 頻譜圖生成基於 Tacotron2 模型。

https://download.pytorch.org/torchaudio/doc-assets/pipelines-tacotron2bundle.png

TextProcessor 可以是基於規則的權杖化(在字元的情況下),或者它可以是基於神經網路的 G2P 模型,從輸入文字產生音素序列。

類似地,Vocoder 可以是沒有學習參數的演算法,例如 Griffin-Lim,或者像 Waveglow 這樣的基於神經網路的模型。

介面

Tacotron2TTSBundle

資料類別,捆綁相關資訊以使用預訓練的 Tacotron2 和聲碼器。

Tacotron2TTSBundle.TextProcessor

Tacotron2TTS 管道的文字處理部分的介面

Tacotron2TTSBundle.Vocoder

Tacotron2TTS 管道的聲碼器部分的介面

使用 Tacotron2TTSBundle 的教學

Text-to-Speech with Tacotron2

使用 Tacotron2 進行文字轉語音

使用 Tacotron2 進行文字轉語音

預訓練模型

TACOTRON2_WAVERNN_PHONE_LJSPEECH

基於音素的 TTS 管道,使用在 LJSpeech [Ito and Johnson, 2017] 上訓練了 1,500 個 epoch 的 Tacotron2 和在 LJSpeech [Ito and Johnson, 2017] 上使用 8 位元深度波形訓練了 10,000 個 epoch 的 WaveRNN 聲碼器。

TACOTRON2_WAVERNN_CHAR_LJSPEECH

基於字元的 TTS 管道,使用在 LJSpeech [Ito and Johnson, 2017] 上訓練了 1,500 個 epoch 的 Tacotron2 和在 LJSpeech [Ito and Johnson, 2017] 上使用 8 位元深度波形訓練了 10,000 個 epoch 的 WaveRNN 聲碼器。

TACOTRON2_GRIFFINLIM_PHONE_LJSPEECH

基於音素的 TTS 流程,使用在 LJSpeech 資料集 [Ito and Johnson, 2017] 上訓練 1,500 個 epochs 的 Tacotron2,並使用 GriffinLim 作為聲碼器。

TACOTRON2_GRIFFINLIM_CHAR_LJSPEECH

基於字元的 TTS 流程,使用在 LJSpeech 資料集 [Ito and Johnson, 2017] 上訓練 1,500 個 epochs 的 Tacotron2,並使用 GriffinLim 作為聲碼器。

音源分離

介面

SourceSeparationBundle 實例化音源分離模型,該模型接受單聲道音訊並產生多聲道音訊。

https://download.pytorch.org/torchaudio/doc-assets/pipelines-sourceseparationbundle.png

SourceSeparationBundle

用於捆綁執行音源分離的組件的資料類別。

使用 SourceSeparationBundle 的教學課程

Music Source Separation with Hybrid Demucs

使用 Hybrid Demucs 進行音樂源分離

使用 Hybrid Demucs 進行音樂源分離

預訓練模型

CONVTASNET_BASE_LIBRI2MIX

預訓練的音源分離流程,使用在 Libri2Mix dataset 資料集 [Cosentino et al., 2020] 上訓練的 ConvTasNet 模型 [Luo and Mesgarani, 2019]

HDEMUCS_HIGH_MUSDB_PLUS

預訓練的音樂音源分離流程,使用在 MUSDB-HQ 的訓練集和測試集 [Rafii et al., 2019] 以及 Meta 專門製作的內部資料庫中的額外 150 首歌曲上訓練的 Hybrid Demucs 模型 [Défossez, 2021]

HDEMUCS_HIGH_MUSDB

預訓練的音樂音源分離流程,使用在 MUSDB-HQ 的訓練集 [Rafii et al., 2019] 上訓練的 Hybrid Demucs 模型 [Défossez, 2021]

Squim 客觀指標

介面

SquimObjectiveBundle 定義語音品質和可理解度測量 (SQUIM) 流程,該流程可以根據輸入的波形預測客觀指標分數。

SquimObjectiveBundle

用於捆綁相關資訊以使用預訓練的 SquimObjective 模型的資料類別。

預訓練模型

SQUIM_OBJECTIVE

SquimObjective 流程使用 [Kumar et al., 2023] 中描述的方法,在 DNS 2020 Dataset 資料集 [Reddy et al., 2020] 上進行訓練。

Squim 主觀指標

介面

SquimSubjectiveBundle 定義語音品質和可理解度測量 (SQUIM) 流程,該流程可以根據輸入的波形預測主觀指標分數。

SquimSubjectiveBundle

用於捆綁相關資訊以使用預訓練的 SquimSubjective 模型的資料類別。

預訓練模型

SQUIM_SUBJECTIVE

SquimSubjective 流程按照 [Manocha and Kumar, 2022][Kumar et al., 2023] 中的描述進行訓練,使用 BVCC 資料集 [Cooper and Yamagishi, 2021]DAPS 資料集 [Mysore, 2014]

文件

存取 PyTorch 的完整開發人員文件

檢視文件

教學

取得適合初學者和進階開發人員的深入教學課程

檢視教學課程

資源

尋找開發資源並獲得問題解答

查看資源