torchaudio.pipelines¶
torchaudio.pipelines
模块将预训练模型与支持函数和元数据打包到简单的 API 中,这些 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 管道标记处理器部分的接口 |
使用 RNNTBundle
的教程
预训练模型¶
基于 Emformer-RNNT 的 ASR 管道,在 LibriSpeech 数据集 [Panayotov 等, 2015] 上预训练,能够执行流式和非流式推理。 |
wav2vec 2.0 / HuBERT / WavLM - SSL¶
接口¶
Wav2Vec2Bundle
实例化了生成声学特征的模型,这些特征可用于下游推理和微调。

捆绑相关信息以使用预训练 |
预训练模型¶
Wav2vec 2.0 模型(“base”架构),在 LibriSpeech 数据集 [Panayotov 等, 2015] 的 960 小时未标记音频上预训练(“train-clean-100”、“train-clean-360”和“train-other-500”的组合),未微调。 |
|
Wav2vec 2.0 模型(“large”架构),在 LibriSpeech 数据集 [Panayotov 等, 2015] 的 960 小时未标记音频上预训练(“train-clean-100”、“train-clean-360”和“train-other-500”的组合),未微调。 |
|
Wav2vec 2.0 模型(“large-lv60k”架构),在 Libri-Light 数据集 [Kahn 等, 2020] 的 60,000 小时未标记音频上预训练,未微调。 |
|
Wav2vec 2.0 模型(“base”架构),在多个数据集(Multilingual LibriSpeech [Pratap 等, 2020]、CommonVoice [Ardila 等, 2020] 和 BABEL [Gales 等, 2014])的 56,000 小时未标记音频上预训练,未微调。 |
|
XLS-R 模型,拥有 3 亿个参数,在 128 种语言的多个数据集(Multilingual LibriSpeech [Pratap 等, 2020]、CommonVoice [Ardila 等, 2020]、VoxLingua107 [Valk 和 Alumäe, 2021]、BABEL [Gales 等, 2014] 和 VoxPopuli [Wang 等, 2021])的 436,000 小时未标记音频上预训练,未微调。 |
|
XLS-R 模型,拥有 10 亿个参数,在 128 种语言的多个数据集(Multilingual LibriSpeech [Pratap 等, 2020]、CommonVoice [Ardila 等, 2020]、VoxLingua107 [Valk 和 Alumäe, 2021]、BABEL [Gales 等, 2014] 和 VoxPopuli [Wang 等, 2021])的 436,000 小时未标记音频上预训练,未微调。 |
|
XLS-R 模型,拥有 20 亿个参数,在 128 种语言的多个数据集(Multilingual LibriSpeech [Pratap 等, 2020]、CommonVoice [Ardila 等, 2020]、VoxLingua107 [Valk 和 Alumäe, 2021]、BABEL [Gales 等, 2014] 和 VoxPopuli [Wang 等, 2021])的 436,000 小时未标记音频上预训练,未微调。 |
|
HuBERT 模型(“base”架构),在 LibriSpeech 数据集 [Panayotov 等, 2015] 的 960 小时未标记音频上预训练(“train-clean-100”、“train-clean-360”和“train-other-500”的组合),未微调。 |
|
HuBERT 模型(“large”架构),在 Libri-Light 数据集 [Kahn 等, 2020] 的 60,000 小时未标记音频上预训练,未微调。 |
|
HuBERT 模型(“extra large”架构),在 Libri-Light 数据集 [Kahn 等, 2020] 的 60,000 小时未标记音频上预训练,未微调。 |
|
WavLM Base 模型(“base”架构),在 LibriSpeech 数据集 [Panayotov 等, 2015] 的 960 小时未标记音频上预训练,未微调。 |
|
WavLM Base+ 模型(“base”架构),在 Libri-Light 数据集 [Kahn 等, 2020] 的 60,000 小时、GigaSpeech [Chen 等, 2021] 的 10,000 小时和 VoxPopuli [Wang 等, 2021] 的 24,000 小时未标记音频上预训练,未微调。 |
|
WavLM Large 模型(“large”架构),在 Libri-Light 数据集 [Kahn 等, 2020] 的 60,000 小时、GigaSpeech [Chen 等, 2021] 的 10,000 小时和 VoxPopuli [Wang 等, 2021] 的 24,000 小时未标记音频上预训练,未微调。 |
wav2vec 2.0 / HuBERT - 微调 ASR¶
接口¶
Wav2Vec2ASRBundle
实例化了在预定义标签上生成概率分布的模型,这些模型可用于 ASR。

捆绑相关信息以使用预训练 |
使用 Wav2Vec2ASRBundle
的教程
预训练模型¶
Wav2vec 2.0 模型(“base”架构,带有一个额外的线性模块),在 LibriSpeech 数据集 [Panayotov 等, 2015] 的 960 小时未标记音频上预训练(“train-clean-100”、“train-clean-360”和“train-other-500”的组合),并在 Libri-Light 数据集 [Kahn 等, 2020] 的 10 分钟转录音频(“train-10min”子集)上进行 ASR 微调。 |
|
Wav2vec 2.0 模型(“base”架构,带有一个额外的线性模块),在 LibriSpeech 数据集 [Panayotov 等, 2015] 的 960 小时未标记音频上预训练(“train-clean-100”、“train-clean-360”和“train-other-500”的组合),并在“train-clean-100”子集的 100 小时转录音频上进行 ASR 微调。 |
|
Wav2vec 2.0 模型(“base”架构,带有一个额外的线性模块),在 LibriSpeech 数据集 [Panayotov 等, 2015] 的 960 小时未标记音频上预训练(“train-clean-100”、“train-clean-360”和“train-other-500”的组合),并使用相应的转录文本在相同音频上进行 ASR 微调。 |
|
Wav2vec 2.0 模型(“large”架构,带有一个额外的线性模块),在 LibriSpeech 数据集 [Panayotov 等, 2015] 的 960 小时未标记音频上预训练(“train-clean-100”、“train-clean-360”和“train-other-500”的组合),并在 Libri-Light 数据集 [Kahn 等, 2020] 的 10 分钟转录音频(“train-10min”子集)上进行 ASR 微调。 |
|
Wav2vec 2.0 模型(“large”架构,带有一个额外的线性模块),在 LibriSpeech 数据集 [Panayotov 等, 2015] 的 960 小时未标记音频上预训练(“train-clean-100”、“train-clean-360”和“train-other-500”的组合),并在相同数据集的 100 小时转录音频(“train-clean-100”子集)上进行 ASR 微调。 |
|
Wav2vec 2.0 模型(“large”架构,带有一个额外的线性模块),在 LibriSpeech 数据集 [Panayotov 等, 2015] 的 960 小时未标记音频上预训练(“train-clean-100”、“train-clean-360”和“train-other-500”的组合),并使用相应的转录文本在相同音频上进行 ASR 微调。 |
|
Wav2vec 2.0 模型(“large-lv60k”架构,带有一个额外的线性模块),在 Libri-Light 数据集 [Kahn 等, 2020] 的 60,000 小时未标记音频上预训练,并在相同数据集的 10 分钟转录音频(“train-10min”子集)上进行 ASR 微调。 |
|
Wav2vec 2.0 模型(“large-lv60k”架构,带有一个额外的线性模块),在 Libri-Light 数据集 [Kahn 等, 2020] 的 60,000 小时未标记音频上预训练,并在 LibriSpeech 数据集 [Panayotov 等, 2015] 的 100 小时转录音频(“train-clean-100”子集)上进行 ASR 微调。 |
|
Wav2vec 2.0 模型(“large-lv60k”架构,带有一个额外的线性模块),在 Libri-Light [Kahn 等, 2020] 数据集的 60,000 小时未标记音频上预训练,并在 LibriSpeech 数据集 [Panayotov 等, 2015] 的 960 小时转录音频(“train-clean-100”、“train-clean-360”和“train-other-500”的组合)上进行 ASR 微调。 |
|
wav2vec 2.0 模型(“base”架构),在 VoxPopuli 数据集 [Wang 等, 2021] 的 10k 小时未标记音频(“10k”子集,包含 23 种语言)上预训练,并在“de”子集的 282 小时转录音频上进行 ASR 微调。 |
|
wav2vec 2.0 模型(“base”架构),在 VoxPopuli 数据集 [Wang 等, 2021] 的 10k 小时未标记音频(“10k”子集,包含 23 种语言)上预训练,并在“en”子集的 543 小时转录音频上进行 ASR 微调。 |
|
wav2vec 2.0 模型(“base”架构),在 VoxPopuli 数据集 [Wang 等, 2021] 的 10k 小时未标记音频(“10k”子集,包含 23 种语言)上预训练,并在“es”子集的 166 小时转录音频上进行 ASR 微调。 |
|
wav2vec 2.0 模型(“base”架构),在 VoxPopuli 数据集 [Wang 等, 2021] 的 10k 小时未标记音频(“10k”子集,包含 23 种语言)上预训练,并在“fr”子集的 211 小时转录音频上进行 ASR 微调。 |
|
wav2vec 2.0 模型(“base”架构),在 VoxPopuli 数据集 [Wang 等, 2021] 的 10k 小时未标记音频(“10k”子集,包含 23 种语言)上预训练,并在“it”子集的 91 小时转录音频上进行 ASR 微调。 |
|
HuBERT 模型(“large”架构),在 Libri-Light 数据集 [Kahn 等, 2020] 的 60,000 小时未标记音频上预训练,并在 LibriSpeech 数据集 [Panayotov 等, 2015] 的 960 小时转录音频(“train-clean-100”、“train-clean-360”和“train-other-500”的组合)上进行 ASR 微调。 |
|
HuBERT 模型(“extra large”架构),在 Libri-Light 数据集 [Kahn 等, 2020] 的 60,000 小时未标记音频上预训练,并在 LibriSpeech 数据集 [Panayotov 等, 2015] 的 960 小时转录音频(“train-clean-100”、“train-clean-360”和“train-other-500”的组合)上进行 ASR 微调。 |
wav2vec 2.0 / HuBERT - 强制对齐¶
接口¶
Wav2Vec2FABundle
捆绑了预训练模型及其相关字典。此外,它支持追加 star
标记维度。

捆绑相关信息以使用预训练 |
|
分词器的接口 |
|
对齐器的接口 |
使用 Wav2Vec2FABundle
的教程
预训练模型¶
在 Scaling Speech Technology to 1,000+ Languages [Pratap 等, 2023] 中包含的 1,130 种语言的 31K 小时数据上训练。 |
Tacotron2 文本到语音¶
Tacotron2TTSBundle
定义了文本到语音管道,包括三个步骤:分词、声谱图生成和声码器。声谱图生成基于 Tacotron2
模型。

TextProcessor
对于字符可以是基于规则的分词,或者它可以是基于神经网络的 G2P 模型,从输入文本生成音素序列。
同样,Vocoder
可以是没有学习参数的算法,如 Griffin-Lim,或者是一个基于神经网络的模型,如 Waveglow。
接口¶
捆绑相关信息以使用预训练 Tacotron2 和声码器的数据类。 |
|
Tacotron2TTS 管道文本处理部分的接口 |
|
Tacotron2TTS 管道声码器部分的接口 |
使用 Tacotron2TTSBundle
的教程
预训练模型¶
基于音素的 TTS 管道,使用在 LJSpeech [Ito 和 Johnson, 2017] 上训练 1,500 轮次的 |
|
基于字符的 TTS 管道,使用在 LJSpeech [Ito 和 Johnson, 2017] 上训练 1,500 轮次的 |
|
基于音素的 TTS 管道,使用在 LJSpeech [Ito 和 Johnson, 2017] 上训练 1,500 轮次的 |
|
基于字符的 TTS 管道,使用在 LJSpeech [Ito 和 Johnson, 2017] 上训练 1,500 轮次的 |
音源分离¶
接口¶
SourceSeparationBundle
实例化了音源分离模型,这些模型接受单声道音频并生成多声道音频。

捆绑用于执行音源分离的组件的数据类。 |
使用 SourceSeparationBundle
的教程
预训练模型¶
预训练的音源分离管道,使用在 Libri2Mix 数据集 [Cosentino 等, 2020] 上训练的 ConvTasNet [Luo 和 Mesgarani, 2019]。 |
|
预训练的音乐音源分离管道,使用在 MUSDB-HQ [Rafii 等, 2019] 的训练集和测试集以及 Meta 专门生产的内部数据库中的额外 150 首歌曲上训练的 Hybrid Demucs [Défossez, 2021]。 |
|
预训练的音乐音源分离管道,使用在 MUSDB-HQ [Rafii 等, 2019] 训练集上训练的 Hybrid Demucs [Défossez, 2021]。 |
Squim 客观度量¶
接口¶
SquimObjectiveBundle
定义了语音质量和可懂度测量 (SQUIM) 管道,该管道可以预测给定输入波形的客观度量分数。
捆绑相关信息以使用预训练 |
预训练模型¶
SquimObjective 管道使用 [Kumar 等, 2023] 中描述的方法在 DNS 2020 数据集 [Reddy 等, 2020] 上训练。 |
Squim 主观度量¶
接口¶
SquimSubjectiveBundle
定义了语音质量和可懂度测量 (SQUIM) 管道,该管道可以预测给定输入波形的主观度量分数。
捆绑相关信息以使用预训练 |
预训练模型¶
SquimSubjective 管道的训练方法参见 [Manocha 和 Kumar, 2022] 和 [Kumar 等, 2023],在 BVCC [Cooper 和 Yamagishi, 2021] 和 DAPS [Mysore, 2014] 数据集上进行。 |