torchaudio.pipelines¶
The torchaudio.pipelines
模块将预训练模型与支持函数和元数据打包成简单的 API,以执行特定任务。
在使用预训练模型执行任务时,除了使用预训练权重实例化模型外,客户端代码还需要像训练期间那样构建用于特征提取和后处理的管道。这需要传递训练期间使用的信息,例如转换的类型及其参数(例如,采样率,FFT 单元的数量)。
为了使这些信息与预训练模型关联并易于访问,torchaudio.pipelines
模块使用了 Bundle 类概念,该类定义了一组用于实例化管道的 API 以及管道的接口。
下图对此进行了说明。

预训练模型和相关管道表示为 Bundle
的实例。同一 Bundle
的不同实例共享接口,但其实现不限于同一类型。例如,SourceSeparationBundle
定义了执行源分离的接口,但其实例 CONVTASNET_BASE_LIBRI2MIX
实例化了 ConvTasNet
模型,而 HDEMUCS_HIGH_MUSDB
实例化了 HDemucs
模型。尽管如此,由于它们共享相同的接口,因此使用方式是相同的。
注意
在底层,Bundle
的实现使用了来自其他 torchaudio
模块(如 torchaudio.models
和 torchaudio.transforms
)的组件,甚至第三方库(如 SentencPiece 和 DeepPhonemizer)的组件。但这些实现细节对库用户是抽象的。
RNN-T 流式/非流式 ASR¶
接口¶
RNNTBundle
定义了 ASR 管道,并包含三个步骤:特征提取、推理和解码。

用于执行具有 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* 数据集上预训练了 960 小时的无标签音频 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360”和“train-other-500”的组合),未进行微调。 |
|
Wav2vec 2.0 模型(“large”架构),在 *LibriSpeech* 数据集上预训练了 960 小时的无标签音频 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360”和“train-other-500”的组合),未进行微调。 |
|
Wav2vec 2.0 模型(“large-lv60k”架构),在 *Libri-Light* 数据集上预训练了 60,000 小时的无标签音频 [Kahn et al., 2020],未进行微调。 |
|
Wav2vec 2.0 模型(“base”架构),在来自多个数据集的 56,000 小时无标签音频上预训练(*Multilingual LibriSpeech* [Pratap et al., 2020],*CommonVoice* [Ardila et al., 2020] 和 *BABEL* [Gales et al., 2014]),未进行微调。 |
|
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 种语言,未进行微调。 |
|
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* 数据集上预训练了 960 小时的无标签音频 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360”和“train-other-500”的组合),未进行微调。 |
|
HuBERT 模型(“large”架构),在 *Libri-Light* 数据集上预训练了 60,000 小时的无标签音频 [Kahn et al., 2020],未进行微调。 |
|
HuBERT 模型(“extra large”架构),在 *Libri-Light* 数据集上预训练了 60,000 小时的无标签音频 [Kahn et al., 2020],未进行微调。 |
|
WavLM Base 模型(“base”架构),在 *LibriSpeech* 数据集上预训练了 960 小时的无标签音频 [Panayotov et al., 2015],未进行微调。 |
|
WavLM Base+ 模型(“base”架构),在 *Libri-Light* 数据集上预训练了 60,000 小时 [Kahn et al., 2020],10,000 小时的 GigaSpeech [Chen et al., 2021],以及 24,000 小时的 *VoxPopuli* [Wang et al., 2021],未进行微调。 |
|
WavLM Large 模型(“large”架构),在 *Libri-Light* 数据集上预训练了 60,000 小时 [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* 数据集上预训练了 960 小时的无标签音频 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360”和“train-other-500”的组合),并在 *Libri-Light* 数据集的 10 分钟转录音频上为 ASR 进行了微调 [Kahn et al., 2020](“train-10min”子集)。 |
|
Wav2vec 2.0 模型(带额外线性模块的“base”架构),在 *LibriSpeech* 数据集上预训练了 960 小时的无标签音频 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360”和“train-other-500”的组合),并在该数据集的 100 小时转录音频(“train-clean-100”子集)上为 ASR 进行了微调。 |
|
Wav2vec 2.0 模型(带额外线性模块的“base”架构),在 *LibriSpeech* 数据集上预训练了 960 小时的无标签音频 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360”和“train-other-500”的组合),并在相同的音频和对应的转录本上为 ASR 进行了微调。 |
|
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”子集)。 |
|
Wav2vec 2.0 模型(带额外线性模块的“large”架构),在 *LibriSpeech* 数据集上预训练了 960 小时的无标签音频 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360”和“train-other-500”的组合),并在该数据集的 100 小时转录音频(“train-clean-100”子集)上为 ASR 进行了微调。 |
|
Wav2vec 2.0 模型(带额外线性模块的“large”架构),在 *LibriSpeech* 数据集上预训练了 960 小时的无标签音频 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360”和“train-other-500”的组合),并在相同的音频和对应的转录本上为 ASR 进行了微调。 |
|
Wav2vec 2.0 模型(带额外线性模块的“large-lv60k”架构),在 *Libri-Light* 数据集上预训练了 60,000 小时的无标签音频 [Kahn et al., 2020],并在该数据集的 10 分钟转录音频上为 ASR 进行了微调(“train-10min”子集)。 |
|
Wav2vec 2.0 模型(带额外线性模块的“large-lv60k”架构),在 *Libri-Light* 数据集上预训练了 60,000 小时的无标签音频 [Kahn et al., 2020],并在 *LibriSpeech* 数据集(“train-clean-100”子集)的 100 小时转录音频上为 ASR 进行了微调 [Panayotov et al., 2015]。 |
|
Wav2vec 2.0 模型(带额外线性模块的“large-lv60k”架构),在 *Libri-Light* [Kahn et al., 2020] 数据集上预训练了 60,000 小时的无标签音频,并在 *LibriSpeech* 数据集(“train-clean-100”、“train-clean-360”和“train-other-500”的组合)的 960 小时转录音频上为 ASR 进行了微调 [Panayotov et al., 2015]。 |
|
wav2vec 2.0 模型(“base”架构),在 *VoxPopuli* 数据集上预训练了 10k 小时的无标签音频 [Wang et al., 2021](“10k”子集,包含 23 种语言),并在“de”子集的 282 小时转录音频上为 ASR 进行了微调。 |
|
wav2vec 2.0 模型(“base”架构),在 *VoxPopuli* 数据集上预训练了 10k 小时的无标签音频 [Wang et al., 2021](“10k”子集,包含 23 种语言),并在“en”子集的 543 小时转录音频上为 ASR 进行了微调。 |
|
wav2vec 2.0 模型(“base”架构),在 *VoxPopuli* 数据集上预训练了 10k 小时的无标签音频 [Wang et al., 2021](“10k”子集,包含 23 种语言),并在“es”子集的 166 小时转录音频上为 ASR 进行了微调。 |
|
wav2vec 2.0 模型(“base”架构),在 *VoxPopuli* 数据集上预训练了 10k 小时的无标签音频 [Wang et al., 2021](“10k”子集,包含 23 种语言),并在“fr”子集的 211 小时转录音频上为 ASR 进行了微调。 |
|
wav2vec 2.0 模型(“base”架构),在 *VoxPopuli* 数据集上预训练了 10k 小时的无标签音频 [Wang et al., 2021](“10k”子集,包含 23 种语言),并在“it”子集的 91 小时转录音频上为 ASR 进行了微调。 |
|
HuBERT 模型(“large”架构),在 *Libri-Light* 数据集上预训练了 60,000 小时的无标签音频 [Kahn et al., 2020],并在 *LibriSpeech* 数据集(“train-clean-100”、“train-clean-360”和“train-other-500”的组合)的 960 小时转录音频上为 ASR 进行了微调 [Panayotov et al., 2015]。 |
|
HuBERT 模型(“extra large”架构),在 *Libri-Light* 数据集上预训练了 60,000 小时的无标签音频 [Kahn et al., 2020],并在 *LibriSpeech* 数据集(“train-clean-100”、“train-clean-360”和“train-other-500”的组合)的 960 小时转录音频上为 ASR 进行了微调 [Panayotov et al., 2015]。 |
wav2vec 2.0 / HuBERT - Forced Alignment¶
接口¶
Wav2Vec2FABundle
捆绑了预训练模型及其关联的词典。此外,它还支持附加 star
token 维度。

用于使用预训练的 |
|
Tokenizer 接口 |
|
Aligner 接口 |
使用 Wav2Vec2FABundle
的教程
预训练模型¶
在 *Scaling Speech Technology to 1,000+ Languages* [Pratap et al., 2023] 的 1,130 种语言中训练了 31K 小时的数据。 |
Tacotron2 文本转语音¶
Tacotron2TTSBundle
定义了文本转语音管道,并包含三个步骤:tokenization、spectrogram generation 和 vocoder。spectrogram generation 基于 Tacotron2
模型。

TextProcessor
在字符情况下可以是基于规则的 tokenization,也可以是基于神经网络的 G2P 模型,该模型从输入文本生成音素序列。
同样,Vocoder
可以是无学习参数的算法,例如 Griffin-Lim,也可以是基于神经网络的模型,例如 Waveglow。
接口¶
用于使用预训练的 Tacotron2 和 vocoder 的数据类。 |
|
Tacotron2TTS 管道的文本处理部分接口 |
|
Tacotron2TTS 管道的 vocoder 部分接口 |
使用 Tacotron2TTSBundle
的教程
预训练模型¶
基于音素的 TTS 管道,使用在 *LJSpeech* 上训练了 1,500 个 epoch 的 |
|
基于字符的 TTS 管道,使用在 *LJSpeech* 上训练了 1,500 个 epoch 的 |
|
基于音素的 TTS 管道,使用在 *LJSpeech* 上训练了 1,500 个 epoch 的 |
|
基于字符的 TTS 管道,使用在 *LJSpeech* 上训练了 1,500 个 epoch 的 |
源分离¶
接口¶
SourceSeparationBundle
实例化源分离模型,这些模型接受单通道音频并生成多通道音频。

用于执行源分离的组件的数据类。 |
使用 SourceSeparationBundle
的教程
预训练模型¶
预训练的源分离管道,使用在 *Libri2Mix dataset* 上训练的 *ConvTasNet* [Luo and Mesgarani, 2019] [Cosentino et al., 2020]。 |
|
预训练的音乐源分离管道,使用 *Hybrid Demucs* [Défossez, 2021],该模型在 MUSDB-HQ [Rafii et al., 2019] 的训练集和测试集以及 Meta 公司专门制作的 150 首额外歌曲上进行了训练。 |
|
预训练的音乐源分离管道,使用 *Hybrid Demucs* [Défossez, 2021],该模型在 MUSDB-HQ [Rafii et al., 2019] 的训练集上进行了训练。 |
Squim 客观指标¶
接口¶
SquimObjectiveBundle
定义了语音质量和可懂度测量 (SQUIM) 管道,该管道可以根据输入波形预测 **客观** 指标分数。
用于使用预训练的 |
预训练模型¶
SquimObjective 管道,使用 *DNS 2020 Dataset* [Kumar et al., 2023] [Reddy et al., 2020] 上描述的方法训练,如 [Kumar et al., 2023] 所述。 |
Squim 主观指标¶
接口¶
SquimSubjectiveBundle
定义了语音质量和可懂度测量 (SQUIM) 管道,该管道可以根据输入波形预测 **主观** 指标分数。
用于使用预训练的 |
预训练模型¶
SquimSubjective 管道,根据 [Manocha and Kumar, 2022] 和 [Kumar et al., 2023] 中所述的方法,在 *BVCC* [Cooper and Yamagishi, 2021] 和 *DAPS* [Mysore, 2014] 数据集上训练。 |