• 文档 >
  • torchaudio.pipelines >
  • 旧版本 (稳定)
快捷方式

torchaudio.pipelines

The torchaudio.pipelines 模块将预训练模型与支持函数和元数据打包成简单 API,这些 API 专为执行特定任务而量身定制。

当使用预训练模型执行任务时,除了使用预训练权重实例化模型之外,客户端代码还需要以与训练期间相同的 방식 构建特征提取和后处理管道。 这需要传递训练期间使用信息,例如转换的类型及其参数(例如,采样率、FFT 仓数)。

为了将此信息绑定到预训练模型并使其易于访问,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,语音转文本) 推理的组件。

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 模型(“基础”架构),在 960 小时的 LibriSpeech 数据集 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360” 和 “train-other-500” 的组合)上的未标记音频上预训练,未经微调。

WAV2VEC2_LARGE

Wav2vec 2.0 模型(“大型”架构),在 960 小时的 LibriSpeech 数据集 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360” 和 “train-other-500” 的组合)上的未标记音频上预训练,未经微调。

WAV2VEC2_LARGE_LV60K

Wav2vec 2.0 模型(“large-lv60k” 架构),在 60,000 小时的 Libri-Light 数据集 [Kahn et al., 2020] 上的未标记音频上预训练,未经微调。

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

XLS-R 模型,具有 3 亿个参数,在来自多个数据集(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

XLS-R 模型,具有 10 亿个参数,在来自多个数据集(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

XLS-R 模型,具有 20 亿个参数,在来自多个数据集(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](“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” 架构),在 Libri-Light 数据集 [Kahn et al., 2020] 的 60,000 小时、GigaSpeech [Chen et al., 2021] 的 10,000 小时和 VoxPopuli [Wang et al., 2021] 的 24,000 小时未标记音频上进行预训练,未进行微调。

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”架构),在 960 小时来自 _LibriSpeech_ 数据集 [Panayotov 等人,2015](“train-clean-100”、“train-clean-360” 和 “train-other-500” 的组合)的未标记音频上进行预训练,并在 10 分钟来自 _Libri-Light_ 数据集 [Kahn 等人,2020](“train-10min” 子集)的转录音频上针对 ASR 进行微调。

WAV2VEC2_ASR_BASE_100H

Wav2vec 2.0 模型(带有额外线性模块的“base”架构),在 960 小时来自 _LibriSpeech_ 数据集 [Panayotov 等人,2015](“train-clean-100”、“train-clean-360” 和 “train-other-500” 的组合)的未标记音频上进行预训练,并在 100 小时来自 “train-clean-100” 子集的转录音频上针对 ASR 进行微调。

WAV2VEC2_ASR_BASE_960H

Wav2vec 2.0 模型(带有额外线性模块的“base”架构),在 960 小时来自 _LibriSpeech_ 数据集 [Panayotov 等人,2015](“train-clean-100”、“train-clean-360” 和 “train-other-500” 的组合)的未标记音频上进行预训练,并在相同音频及其对应转录本上针对 ASR 进行微调。

WAV2VEC2_ASR_LARGE_10M

Wav2vec 2.0 模型(带有额外线性模块的“large”架构),在 960 小时来自 _LibriSpeech_ 数据集 [Panayotov 等人,2015](“train-clean-100”、“train-clean-360” 和 “train-other-500” 的组合)的未标记音频上进行预训练,并在 10 分钟来自 _Libri-Light_ 数据集 [Kahn 等人,2020](“train-10min” 子集)的转录音频上针对 ASR 进行微调。

WAV2VEC2_ASR_LARGE_100H

Wav2vec 2.0 模型(带有额外线性模块的“large”架构),在 960 小时来自 _LibriSpeech_ 数据集 [Panayotov 等人,2015](“train-clean-100”、“train-clean-360” 和 “train-other-500” 的组合)的未标记音频上进行预训练,并在相同数据集(“train-clean-100” 子集)的 100 小时转录音频上针对 ASR 进行微调。

WAV2VEC2_ASR_LARGE_960H

Wav2vec 2.0 模型(带有额外线性模块的“large”架构),在 960 小时来自 _LibriSpeech_ 数据集 [Panayotov 等人,2015](“train-clean-100”、“train-clean-360” 和 “train-other-500” 的组合)的未标记音频上进行预训练,并在相同音频及其对应转录本上针对 ASR 进行微调。

WAV2VEC2_ASR_LARGE_LV60K_10M

Wav2vec 2.0 模型(带有额外线性模块的“large-lv60k” 架构),在 60,000 小时来自 _Libri-Light_ 数据集 [Kahn 等人,2020] 的未标记音频上进行预训练,并在相同数据集(“train-10min” 子集)的 10 分钟转录音频上针对 ASR 进行微调。

WAV2VEC2_ASR_LARGE_LV60K_100H

Wav2vec 2.0 模型(带有额外线性模块的“large-lv60k” 架构),在 60,000 小时来自 _Libri-Light_ 数据集 [Kahn 等人,2020] 的未标记音频上进行预训练,并在 100 小时来自 _LibriSpeech_ 数据集 [Panayotov 等人,2015](“train-clean-100” 子集)的转录音频上针对 ASR 进行微调。

WAV2VEC2_ASR_LARGE_LV60K_960H

Wav2vec 2.0 模型(带有额外线性模块的“large-lv60k” 架构),在 60,000 小时来自 _Libri-Light_ [Kahn 等人,2020] 数据集的未标记音频上进行预训练,并在 960 小时来自 _LibriSpeech_ 数据集 [Panayotov 等人,2015](“train-clean-100”、“train-clean-360” 和 “train-other-500” 的组合)的转录音频上针对 ASR 进行微调。

VOXPOPULI_ASR_BASE_10K_DE

wav2vec 2.0 模型(“base” 架构),在 10k 小时来自 _VoxPopuli_ 数据集 [Wang 等人,2021](“10k” 子集,包含 23 种语言)的未标记音频上进行预训练,并在 282 小时来自 “de” 子集的转录音频上针对 ASR 进行微调。

VOXPOPULI_ASR_BASE_10K_EN

wav2vec 2.0 模型(“base” 架构),在 10k 小时来自 _VoxPopuli_ 数据集 [Wang 等人,2021](“10k” 子集,包含 23 种语言)的未标记音频上进行预训练,并在 543 小时来自 “en” 子集的转录音频上针对 ASR 进行微调。

VOXPOPULI_ASR_BASE_10K_ES

wav2vec 2.0 模型(“base” 架构),在 10k 小时来自 _VoxPopuli_ 数据集 [Wang 等人,2021](“10k” 子集,包含 23 种语言)的未标记音频上进行预训练,并在 166 小时来自 “es” 子集的转录音频上针对 ASR 进行微调。

VOXPOPULI_ASR_BASE_10K_FR

wav2vec 2.0 模型(“base” 架构),在 10k 小时来自 _VoxPopuli_ 数据集 [Wang 等人,2021](“10k” 子集,包含 23 种语言)的未标记音频上进行预训练,并在 211 小时来自 “fr” 子集的转录音频上针对 ASR 进行微调。

VOXPOPULI_ASR_BASE_10K_IT

wav2vec 2.0 模型(“base” 架构),在 10k 小时来自 _VoxPopuli_ 数据集 [Wang 等人,2021](“10k” 子集,包含 23 种语言)的未标记音频上进行预训练,并在 91 小时来自 “it” 子集的转录音频上针对 ASR 进行微调。

HUBERT_ASR_LARGE

HuBERT 模型(“大型” 架构),在来自 Libri-Light 数据集[Kahn 等人,2020] 的 60,000 小时未标记音频上进行预训练,并在来自 LibriSpeech 数据集[Panayotov 等人,2015] 的 960 小时转录音频上针对 ASR 进行微调(“train-clean-100”、“train-clean-360” 和 “train-other-500” 的组合)。

HUBERT_ASR_XLARGE

HuBERT 模型(“超大型” 架构),在来自 Libri-Light 数据集[Kahn 等人,2020] 的 60,000 小时未标记音频上进行预训练,并在来自 LibriSpeech 数据集[Panayotov 等人,2015] 的 960 小时转录音频上针对 ASR 进行微调(“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

分词器的接口

Wav2Vec2FABundle.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 等人,2023] 的 1,130 种语言的 31,000 小时数据上进行训练。

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 和 Johnson,2017] 上训练 1,500 个纪元的 Tacotron2,以及使用在 LJSpeech[Ito 和 Johnson,2017] 的 8 位深度波形上训练 10,000 个纪元的 WaveRNN 声码器。

TACOTRON2_WAVERNN_CHAR_LJSPEECH

基于字符的 TTS 管道,使用在 LJSpeech[Ito 和 Johnson,2017] 上训练 1,500 个纪元的 Tacotron2,以及使用在 LJSpeech[Ito 和 Johnson,2017] 的 8 位深度波形上训练 10,000 个纪元的 WaveRNN 声码器。

TACOTRON2_GRIFFINLIM_PHONE_LJSPEECH

基于音素的 TTS 管道,使用在 LJSpeech[Ito 和 Johnson,2017] 上训练 1,500 个纪元的 Tacotron2,以及使用 GriffinLim 作为声码器。

TACOTRON2_GRIFFINLIM_CHAR_LJSPEECH

基于字符的 TTS 管道,使用在 LJSpeech[Ito 和 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

使用混合 Demucs 进行音乐源分离

使用混合 Demucs 进行音乐源分离

预训练模型

CONVTASNET_BASE_LIBRI2MIX

预训练的源分离管道,使用在 Libri2Mix 数据集[Cosentino 等人,2020] 上训练的 ConvTasNet[Luo 和 Mesgarani,2019]

HDEMUCS_HIGH_MUSDB_PLUS

预训练的音乐源分离管道,使用在 MUSDB-HQ 的训练集和测试集[Rafii 等人,2019] 以及来自 Meta 内部数据库的额外 150 首歌曲(专门为 Meta 制作)上训练的 Hybrid Demucs[Défossez,2021]

HDEMUCS_HIGH_MUSDB

预训练的音乐源分离管道,使用在 MUSDB-HQ 的训练集[Rafii 等人,2019] 上训练的 Hybrid Demucs[Défossez,2021]

Squim 目标

接口

SquimObjectiveBundle 定义了语音质量和清晰度测量 (SQUIM) 管道,它可以根据输入波形预测 **客观** 度量分数。

SquimObjectiveBundle

数据类,将关联信息捆绑在一起,以使用预训练的 SquimObjective 模型。

预训练模型

SQUIM_OBJECTIVE

使用[Kumar 等人,2023]中描述的方法在DNS 2020 数据集[Reddy 等人,2020]上训练的 SquimObjective 管道。

Squim 主观

接口

SquimSubjectiveBundle 定义了语音质量和可懂度测量 (SQUIM) 管道,该管道可以根据输入波形预测主观指标分数。

SquimSubjectiveBundle

数据类,捆绑了使用预训练的 SquimSubjective 模型的关联信息。

预训练模型

SQUIM_SUBJECTIVE

SquimSubjective 管道,如[Manocha 和 Kumar,2022][Kumar 等人,2023]中所述,在BVCC [Cooper 和 Yamagishi,2021]DAPS [Mysore,2014] 数据集上训练。

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

获取面向初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源