目录

torchaudio.pipelines

The torchaudio.pipelines 模块将预训练模型与支持函数及元数据打包,提供专为执行特定任务而设计的简单 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 的在线自动语音识别

基于 Emformer RNN-T 的在线自动语音识别
Device ASR with Emformer RNN-T

搭载 Emformer RNN-T 的端侧自动语音识别

搭载 Emformer RNN-T 的端侧自动语音识别

预训练模型

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 数据集的 960 小时无标签音频上进行了预训练 [Panayotov et al., 2015](包含 "train-clean-100"、"train-clean-360" 和 "train-other-500" 的组合),未经过微调。

WAV2VEC2_LARGE

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

WAV2VEC2_LARGE_LV60K

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

WAV2VEC2_XLSR53

Wav2vec 2.0 模型("base"架构),在来自多个数据集的 56,000 小时无标签音频上进行预训练(多语言 LibriSpeech [Pratap et al., 2020]CommonVoice [Ardila et al., 2020]BABEL [Gales et al., 2014]),未经过微调。

WAV2VEC2_XLSR_300M

XLS-R 模型,包含 3 亿参数,在来自多个数据集的 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 数据集的 960 小时无标签音频上进行了预训练 [Panayotov et al., 2015](包含 "train-clean-100"、"train-clean-360" 和 "train-other-500" 的组合),未经过微调。

HUBERT_LARGE

HuBERT 模型("large"架构),在来自 Libri-Light 数据集的 60,000 小时无标签音频上进行了预训练 [Kahn et al., 2020],未经过微调。

HUBERT_XLARGE

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

WAVLM_BASE

WavLM 基础模型("base"架构),在来自 LibriSpeech 数据集的 960 小时无标签音频上进行了预训练 [Panayotov et al., 2015],未经过微调。

WAVLM_BASE_PLUS

WavLM Base+ 模型("base"架构),在 Libri-Light 数据集的 60,000 小时 [Kahn et al., 2020]、GigaSpeech 的 10,000 小时 [Chen et al., 2021] 以及 VoxPopuli 的 24,000 小时 [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 - 微调后的自动语音识别

接口

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 解码器进行自动语音识别推理

使用 CTC 解码器进行自动语音识别推理
Forced Alignment with Wav2Vec2

基于 Wav2Vec2 的强制对齐

基于 Wav2Vec2 的强制对齐

预训练模型

WAV2VEC2_ASR_BASE_10M

Wav2vec 2.0 模型(带有额外线性模块的 "base" 架构),在来自 LibriSpeech 数据集的 960 小时无标签音频上进行了预训练 [Panayotov et al., 2015](包含 "train-clean-100"、"train-clean-360" 和 "train-other-500" 的组合),并在来自 Libri-Light 数据集的 10 分钟转录音频上针对 ASR 进行了微调 [Kahn et al., 2020]("train-10min" 子集)。

WAV2VEC2_ASR_BASE_100H

Wav2vec 2.0 模型(带有额外线性模块的 "base" 架构),在来自 LibriSpeech 数据集的 960 小时无标签音频上进行了预训练 [Panayotov et al., 2015](包括 "train-clean-100"、"train-clean-360" 和 "train-other-500" 的组合),并在 "train-clean-100" 子集的 100 小时转录音频上针对 ASR 进行了微调。

WAV2VEC2_ASR_BASE_960H

Wav2vec 2.0 模型(带有额外线性模块的 "base" 架构),在来自 LibriSpeech 数据集的 960 小时无标签音频上进行了预训练 [Panayotov et al., 2015](包含 "train-clean-100"、"train-clean-360" 和 "train-other-500" 的组合),并在相同音频及其对应的转录文本上针对自动语音识别(ASR)任务进行了微调。

WAV2VEC2_ASR_LARGE_10M

Wav2vec 2.0 模型(带有额外线性模块的"large"架构),在来自 LibriSpeech 数据集的 960 小时未标注音频上进行预训练 [Panayotov et al., 2015](包括 "train-clean-100"、"train-clean-360" 和 "train-other-500" 的组合),并在来自 Libri-Light 数据集的 10 分钟已转录音频上针对 ASR 进行了微调 [Kahn et al., 2020]("train-10min" 子集)。

WAV2VEC2_ASR_LARGE_100H

Wav2vec 2.0 模型(采用带有额外线性模块的“large”架构),在来自 LibriSpeech 数据集的 960 小时无标签音频上进行了预训练 [Panayotov et al., 2015](包含 "train-clean-100"、"train-clean-360" 和 "train-other-500" 的组合),并在同一数据集的 100 小时已转录音频("train-clean-100" 子集)上针对自动语音识别(ASR)进行了微调。

WAV2VEC2_ASR_LARGE_960H

Wav2vec 2.0 模型(带有额外线性模块的“large”架构),在来自 LibriSpeech 数据集的 960 小时无标签音频上进行了预训练 [Panayotov et al., 2015](包含 "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" 子集)。

WAV2VEC2_ASR_LARGE_LV60K_100H

Wav2vec 2.0 模型(采用带有额外线性模块的 "large-lv60k" 架构),在来自 Libri-Light 数据集的 60,000 小时无标签音频上进行预训练 [Kahn et al., 2020],并在来自 LibriSpeech 数据集的 100 小时转录音频上针对 ASR 进行微调 [Panayotov et al., 2015]("train-clean-100" 子集)。

WAV2VEC2_ASR_LARGE_LV60K_960H

Wav2vec 2.0 模型(“large-lv60k”架构,带有一个额外的线性模块),在来自Libri-Light [Kahn et al., 2020] 数据集的60,000小时未标记音频上预训练,并在来自LibriSpeech数据集LibriSpeech数据集 [Panayotov et al., 2015](“train-clean-100”,“train-clean-360”和“train-other-500”的组合)上进行ASR微调。

VOXPOPULI_ASR_BASE_10K_DE

wav2vec 2.0 模型("base" 架构),在来自 VoxPopuli 数据集的 10k 小时无标签音频上进行了预训练 [Wang et al., 2021]("10k" 子集,包含 23 种语言),并在来自 "de" 子集的 282 小时转录音频上针对 ASR 进行了微调。

VOXPOPULI_ASR_BASE_10K_EN

wav2vec 2.0 模型("base" 架构),在来自 VoxPopuli 数据集的 10k 小时无标签音频上进行了预训练 [Wang et al., 2021]("10k" 子集,包含 23 种语言),并在来自 "en" 子集的 543 小时转录音频上针对 ASR 进行了微调。

VOXPOPULI_ASR_BASE_10K_ES

wav2vec 2.0 模型("base" 架构),在来自 VoxPopuli 数据集的 10k 小时无标签音频上进行了预训练 [Wang et al., 2021]("10k" 子集,包含 23 种语言),并在来自 "es" 子集的 166 小时转录音频上针对 ASR 进行了微调。

VOXPOPULI_ASR_BASE_10K_FR

wav2vec 2.0 模型("base"架构),在来自 VoxPopuli 数据集的 10k 小时无标签音频上进行了预训练 [Wang et al., 2021]("10k"子集,包含 23 种语言),并在来自 "fr" 子集的 211 小时转录音频上针对 ASR 进行了微调。

VOXPOPULI_ASR_BASE_10K_IT

wav2vec 2.0 模型("base" 架构),在来自 VoxPopuli 数据集的 10k 小时无标签音频上进行了预训练 [Wang et al., 2021]("10k" 子集,包含 23 种语言),并在来自 "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 模型(“超大”架构),在来自 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 个 token 维度。

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

在31,000小时的数据上训练,涵盖1,130种语言,来自将语音技术扩展到1,000多种语言 [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.TextProcessor

Tacotron2TTS 流程中文本处理部分的接口

Tacotron2TTSBundle.Vocoder

Tacotron2TTS 流程中声码器部分的接口

使用 Tacotron2TTSBundle 的教程

Text-to-Speech with Tacotron2

使用 Tacotron2 进行文本转语音

使用 Tacotron2 进行文本转语音

预训练模型

TACOTRON2_WAVERNN_PHONE_LJSPEECH

基于音素的TTS流水线,使用 Tacotron2LJSpeech [Ito and Johnson, 2017] 上训练了1,500个周期,并且 WaveRNN vocoder 在 LJSpeech [Ito and Johnson, 2017] 的8位深度波形上训练了10,000个周期。

TACOTRON2_WAVERNN_CHAR_LJSPEECH

基于字符的 TTS 流水线,其中 Tacotron2LJSpeech [Ito and Johnson, 2017] 上训练了 1,500 个 epoch,而 WaveRNN 声码器在 LJSpeech [Ito and Johnson, 2017] 的 8 位深度波形上训练了 10,000 个 epoch。

TACOTRON2_GRIFFINLIM_PHONE_LJSPEECH

基于音素的TTS流水线,使用 Tacotron2LJSpeech [Ito and Johnson, 2017] 上训练了1,500个周期,并使用 GriffinLim 作为声码器。

TACOTRON2_GRIFFINLIM_CHAR_LJSPEECH

基于字符的TTS管道,使用Tacotron2LJSpeech[Ito and Johnson, 2017]上训练了1,500个周期,并使用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

使用 ConvTasNet [Luo and Mesgarani, 2019] 训练的预训练源分离流程,基于 Libri2Mix 数据集 [Cosentino et al., 2020]

HDEMUCS_HIGH_MUSDB_PLUS

预训练的音乐源分离流程,采用 Hybrid Demucs [Défossez, 2021],在 MUSDB-HQ 的训练集和测试集 [Rafii et al., 2019] 以及来自 Meta 内部数据库的额外 150 首专门制作的歌曲上进行训练。

HDEMUCS_HIGH_MUSDB

使用 Hybrid Demucs 预训练的音乐源分离流程 [Défossez, 2021],该模型在 MUSDB-HQ 的训练集上进行了训练 [Rafii et al., 2019]

Squim 目标

接口

SquimObjectiveBundle 定义了语音质量和可懂度测量(SQUIM)流程,该流程可以根据输入波形预测客观指标分数。

SquimObjectiveBundle

数据类,用于捆绑相关信息以使用预训练 SquimObjective 模型。

预训练模型

SQUIM_OBJECTIVE

SquimObjective 管道使用在 [Kumar et al., 2023] 中描述的方法,基于 DNS 2020 数据集 [Reddy et al., 2020] 进行训练。

Squim 主观

接口

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

SquimSubjectiveBundle

数据类,用于捆绑相关信息以使用预训练 SquimSubjective 模型。

预训练模型

SQUIM_SUBJECTIVE

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

文档

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

查看文档

教程

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

查看教程

资源

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

查看资源