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

torchaudio.pipelines

torchaudio.pipelines 模組將預訓練模型與支援函式和元資料打包成針對特定任務量身定製的簡單 API。

在使用預訓練模型執行任務時,除了使用預訓練權重例項化模型外,客戶端程式碼還需要以與訓練期間相同的方式構建特徵提取和後處理的流水線。這需要保留訓練期間使用的資訊,例如變換的型別及其引數(例如,取樣率和 FFT bin 的數量)。

為了使這些資訊與預訓練模型相關聯並易於訪問,torchaudio.pipelines 模組使用了 Bundle 類的概念,該類定義了一組用於例項化流水線以及流水線介面的 API。

下圖對此進行了說明。

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

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

注意

在內部,Bundle 的實現使用了來自其他 torchaudio 模組的元件,例如 torchaudio.modelstorchaudio.transforms,甚至包括第三方庫,例如 SentencPieceDeepPhonemizer。但這種實現細節已從庫使用者中抽象出來。

RNN-T 流式/非流式 ASR

介面

RNNTBundle 定義了 ASR 流水線,包括三個步驟:特徵提取、推理和去標記化。

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

RNNTBundle

用於捆綁執行基於 RNN-T 模型的自動語音識別 (ASR, speech-to-text) 推理所需元件的資料類。

RNNTBundle.FeatureExtractor

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

RNNTBundle.TokenProcessor

RNN-T 流水線標記處理器部分的介面

使用 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”架構),在多個數據集( Multilingual LibriSpeech [Pratap et al., 2020]CommonVoice [Ardila et al., 2020]BABEL [Gales et al., 2014])的 56,000 小時無標籤音訊上預訓練,未微調。

WAV2VEC2_XLSR_300M

引數量為 3 億的 XLS-R 模型,在來自多個數據集( 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])的 436,000 小時無標籤音訊上預訓練(涵蓋 128 種語言),未微調。

WAV2VEC2_XLSR_1B

引數量為 10 億的 XLS-R 模型,在來自多個數據集( 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])的 436,000 小時無標籤音訊上預訓練(涵蓋 128 種語言),未微調。

WAV2VEC2_XLSR_2B

引數量為 20 億的 XLS-R 模型,在來自多個數據集( 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])的 436,000 小時無標籤音訊上預訓練(涵蓋 128 種語言),未微調。

HUBERT_BASE

HuBERT 模型(“base”架構),在 LibriSpeech 資料集 [Panayotov et al., 2015] 的 960 小時無標籤音訊(“train-clean-100”、“train-clean-360”和“train-other-500”的組合)上預訓練,未微調。

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”架構),在 60,000 小時 Libri-Light 資料集 [Kahn et al., 2020]、10,000 小時 GigaSpeech [Chen et al., 2021] 和 24,000 小時 VoxPopuli [Wang et al., 2021] 上預訓練,未微調。

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”的組合)上預訓練,並在 Libri-Light 資料集 [Kahn et al., 2020] 的 10 分鐘轉錄音訊(“train-10min”子集)上為 ASR 任務進行了微調。

WAV2VEC2_ASR_BASE_100H

Wav2vec 2.0 模型(“base”架構,包含額外的線性模組),在 LibriSpeech 資料集 [Panayotov et al., 2015] 的 960 小時無標籤音訊(“train-clean-100”、“train-clean-360”和“train-other-500”的組合)上預訓練,並在“train-clean-100”子集的 100 小時轉錄音訊上為 ASR 任務進行了微調。

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”的組合)上預訓練,並在 Libri-Light 資料集 [Kahn et al., 2020] 的 10 分鐘轉錄音訊(“train-10min”子集)上為 ASR 任務進行了微調。

WAV2VEC2_ASR_LARGE_100H

Wav2vec 2.0 模型(“large”架構,包含額外的線性模組),在 LibriSpeech 資料集 [Panayotov et al., 2015] 的 960 小時無標籤音訊(“train-clean-100”、“train-clean-360”和“train-other-500”的組合)上預訓練,並在相同資料集的 100 小時轉錄音訊(“train-clean-100”子集)上為 ASR 任務進行了微調。

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 資料集 [Kahn et al., 2020] 的 60,000 小時無標籤音訊上預訓練,並在相同資料集的 10 分鐘轉錄音訊(“train-10min”子集)上為 ASR 任務進行了微調。

WAV2VEC2_ASR_LARGE_LV60K_100H

Wav2vec 2.0 模型(“large-lv60k”架構,包含額外的線性模組),在 Libri-Light 資料集 [Kahn et al., 2020] 的 60,000 小時無標籤音訊上預訓練,並在 LibriSpeech 資料集 [Panayotov et al., 2015] 的 100 小時轉錄音訊(“train-clean-100”子集)上為 ASR 任務進行了微調。

WAV2VEC2_ASR_LARGE_LV60K_960H

Wav2vec 2.0 模型(“large-lv60k”架構,包含額外的線性模組),在 Libri-Light 資料集 [Kahn et al., 2020] 的 60,000 小時無標籤音訊上預訓練,並在 LibriSpeech 資料集 [Panayotov et al., 2015] 的 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] ("10k" 子集,包含 23 種語言),並在 "de" 子集的 282 小時轉錄音訊上針對 ASR 進行微調。

VOXPOPULI_ASR_BASE_10K_EN

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

VOXPOPULI_ASR_BASE_10K_ES

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

VOXPOPULI_ASR_BASE_10K_FR

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

VOXPOPULI_ASR_BASE_10K_IT

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

HUBERT_ASR_LARGE

HuBERT 模型("large" 架構),在來自 Libri-Light 資料集的 6 萬小時無標註音訊上進行預訓練 [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 資料集的 6 萬小時無標註音訊上進行預訓練 [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 token 維度。

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

Wav2Vec2FABundle

用於打包關聯資訊的資料類,以便使用預訓練的 Wav2Vec2Model 進行強制對齊。

Wav2Vec2FABundle.分詞器

分詞器的介面

Wav2Vec2FABundle.對齊器

對齊器的介面

使用 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 的 3.1 萬小時(1130 種語言)資料上進行訓練 [Pratap et al., 2023]

Tacotron2 文字到語音

Tacotron2TTSBundle 定義了文字到語音的管道,包含三個步驟:分詞、聲譜圖生成和聲碼器。聲譜圖生成基於 Tacotron2 模型。

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

TextProcessor 可以是基於規則的字元分詞,也可以是基於神經網路的 G2P 模型,用於從輸入文字生成音素序列。

類似地,Vocoder 可以是一個不含學習引數的演算法,如 Griffin-Lim,也可以是基於神經網路的模型,如 Waveglow

介面

Tacotron2TTSBundle

用於打包關聯資訊的資料類,以便使用預訓練的 Tacotron2 和聲碼器。

Tacotron2TTSBundle.文字處理器

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

Tacotron2TTSBundle.聲碼器

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

使用 Tacotron2TTSBundle 的教程

Text-to-Speech with Tacotron2

使用 Tacotron2 進行文字到語音

使用 Tacotron2 進行文字到語音

預訓練模型

TACOTRON2_WAVERNN_PHONE_LJSPEECH

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

TACOTRON2_WAVERNN_CHAR_LJSPEECH

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

TACOTRON2_GRIFFINLIM_PHONE_LJSPEECH

基於音素的 TTS 管道,使用在 LJSpeech [Ito and Johnson, 2017] 上訓練了 1,500 輪的 Tacotron2 模型,並使用 GriffinLim 作為聲碼器。

TACOTRON2_GRIFFINLIM_CHAR_LJSPEECH

基於字元的 TTS 管道,使用在 LJSpeech [Ito and Johnson, 2017] 上訓練了 1,500 輪的 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 的全面開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲取問題解答

檢視資源