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

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

数据类,用于捆绑组件,以便使用 RNN-T 模型执行自动语音识别(ASR,语音到文本)推理。 |
|
RNN-T pipeline 的特征提取部分的接口 |
|
RNN-T pipeline 的令牌处理器部分的接口 |
使用 RNNTBundle
的教程
预训练模型¶
基于 Emformer-RNNT 的 ASR pipeline,在 *LibriSpeech* 数据集 [Panayotov et al., 2015] 上预训练,能够执行流式和非流式推理。 |
wav2vec 2.0 / HuBERT / WavLM - SSL¶
接口¶
Wav2Vec2Bundle
实例化生成声学特征的模型,这些特征可用于下游推理和微调。

数据类,用于捆绑使用预训练 |
预训练模型¶
Wav2vec 2.0 模型(“base”架构),在来自 *LibriSpeech* 数据集 [Panayotov et al., 2015] 的 960 小时未标记音频(“train-clean-100”、“train-clean-360”和“train-other-500”的组合)上预训练,未进行微调。 |
|
Wav2vec 2.0 模型(“large”架构),在来自 *LibriSpeech* 数据集 [Panayotov et al., 2015] 的 960 小时未标记音频(“train-clean-100”、“train-clean-360”和“train-other-500”的组合)上预训练,未进行微调。 |
|
Wav2vec 2.0 模型(“large-lv60k”架构),在来自 *Libri-Light* 数据集 [Kahn et al., 2020] 的 60,000 小时未标记音频上预训练,未进行微调。 |
|
Wav2vec 2.0 模型(“base”架构),在来自多个数据集(*Multilingual LibriSpeech* [Pratap et al., 2020]、*CommonVoice* [Ardila et al., 2020] 和 *BABEL* [Gales et al., 2014])的 56,000 小时未标记音频上预训练,未进行微调。 |
|
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 种语言,未进行微调。 |
|
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 种语言,未进行微调。 |
|
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”架构),在来自 *LibriSpeech* 数据集 [Panayotov et al., 2015] 的 960 小时未标记音频(“train-clean-100”、“train-clean-360”和“train-other-500”的组合)上预训练,未进行微调。 |
|
HuBERT 模型(“large”架构),在来自 *Libri-Light* 数据集 [Kahn et al., 2020] 的 60,000 小时未标记音频上预训练,未进行微调。 |
|
HuBERT 模型(“extra large”架构),在来自 *Libri-Light* 数据集 [Kahn et al., 2020] 的 60,000 小时未标记音频上预训练,未进行微调。 |
|
WavLM Base 模型(“base”架构),在来自 *LibriSpeech* 数据集 [Panayotov et al., 2015] 的 960 小时未标记音频上预训练,未进行微调。 |
|
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 模型(“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。

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

数据类,用于捆绑关联信息以使用预训练的 |
|
分词器的接口 |
|
对齐器的接口 |
使用 Wav2Vec2FABundle
的教程
预训练模型¶
在来自 Scaling Speech Technology to 1,000+ Languages 的 1,130 种语言的 31K 小时数据上进行了训练 [Pratap et al., 2023]。 |
Tacotron2 文本到语音¶
Tacotron2TTSBundle
定义了文本到语音的流水线,由三个步骤组成:分词、频谱图生成和声码器。频谱图生成基于 Tacotron2
模型。

TextProcessor
可以是基于规则的分词(在字符的情况下),或者它可以是基于神经网络的 G2P 模型,该模型从输入文本生成音素序列。
类似地,Vocoder
可以是不带学习参数的算法,如 Griffin-Lim,或者是基于神经网络的模型,如 Waveglow。
接口¶
数据类,用于捆绑关联信息以使用预训练的 Tacotron2 和声码器。 |
|
Tacotron2TTS 流水线的文本处理部分的接口 |
|
Tacotron2TTS 流水线的声码器部分的接口 |
使用 Tacotron2TTSBundle
的教程
预训练模型¶
基于音素的 TTS 流水线,带有在 LJSpeech 上训练的 |
|
基于字符的 TTS 流水线,带有在 LJSpeech 上训练的 |
|
基于音素的 TTS 流水线,带有在 LJSpeech 上训练的 |
|
基于字符的 TTS 流水线,带有在 LJSpeech 上训练的 |
声源分离¶
接口¶
SourceSeparationBundle
实例化声源分离模型,该模型接受单声道音频并生成多声道音频。

数据类,用于捆绑组件以执行声源分离。 |
使用 SourceSeparationBundle
的教程
预训练模型¶
预训练的声源分离流水线,带有在 Libri2Mix 数据集 上训练的 ConvTasNet [Luo and Mesgarani, 2019] [Cosentino et al., 2020]。 |
|
预训练的音乐声源分离流水线,带有在 MUSDB-HQ 的训练集和测试集上训练的 Hybrid Demucs [Défossez, 2021] [Rafii et al., 2019] 以及来自 Meta 专门制作的内部数据库的额外 150 首歌曲。 |
|
预训练的音乐声源分离流水线,带有在 MUSDB-HQ 的训练集上训练的 Hybrid Demucs [Défossez, 2021] [Rafii et al., 2019]。 |
SQUIM 客观指标¶
接口¶
SquimObjectiveBundle
定义了语音质量和可懂度测量 (SQUIM) 流水线,该流水线可以根据输入波形预测客观指标分数。
数据类,用于捆绑关联信息以使用预训练的 |
预训练模型¶
SquimObjective 流水线,使用 [Kumar et al., 2023] 中描述的方法在 DNS 2020 数据集 上训练 [Reddy et al., 2020]。 |
SQUIM 主观指标¶
接口¶
SquimSubjectiveBundle
定义了语音质量和可懂度测量 (SQUIM) 流水线,该流水线可以根据输入波形预测主观指标分数。
数据类,用于捆绑关联信息以使用预训练的 |
预训练模型¶
SquimSubjective 流水线,按照 [Manocha and Kumar, 2022] 和 [Kumar et al., 2023] 中的描述在 BVCC 上训练 [Cooper and Yamagishi, 2021] 和 DAPS [Mysore, 2014] 数据集。 |