torchaudio.pipelines 中¶
该模块将具有支持函数和元数据的预训练模型打包到为执行特定任务而量身定制的简单 API 中。torchaudio.pipelines
当使用预先训练的模型执行任务时,除了使用预先训练的权重实例化模型外,客户端代码还需要构建用于特征提取和后处理的管道,就像在训练期间一样。这需要携带训练期间使用的信息,例如转换类型及其参数(例如,采样率、FFT 箱的数量)。
为了使此信息与预先训练的模型相关联并易于访问,module 使用了 Bundle 类的概念,该类定义了一组 API 来实例化管道以及管道的接口。torchaudio.pipelines
下图对此进行了说明。
预先训练的模型和关联的管道表示为 .同一实例的不同实例共享接口,但它们的实现不受相同类型的限制。例如,定义用于执行源分离的接口,但其实例
实例化 while 的模型
实例化 的模型
。
尽管如此,由于它们共享相同的接口,因此用法是相同的。
Bundle
Bundle
注意
在后台,的实现使用来自其他模块的组件,例如 和
,甚至是第三方库,如 SentencPiece 和 DeepPhonemizer。但是这个实现细节对库用户来说是抽象出来的。
Bundle
torchaudio
RNN-T 流/非流 ASR¶
接口¶
RNNTBundle
定义 ASR 管道,包括三个步骤:特征提取、推理和去标记化。
将用于执行自动语音识别(ASR,语音转文本)推理的组件与 RNN-T 模型捆绑在一起的数据类。 |
|
RNN-T 流水线特征提取部分的接口 |
|
RNN-T 流水线的令牌处理器部分的接口 |
使用RNNTBundle
预训练模型¶
基于 Emformer-RNNT 的 ASR 管道,在 LibriSpeech 数据集 [Panayotov et al., 2015] 上进行预训练,能够执行流式和非流式推理。 |
wav2vec 2.0 / HuBERT / WavLM - SSL¶
接口¶
Wav2Vec2Bundle
实例化生成可用于下游推理和微调的声学特征的模型。
预训练模型¶
Wav2vec 2.0 模型(“基础”架构),根据 LibriSpeech 数据集 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360”和“train-other-500”的组合)中 960 小时的未标记音频进行预训练,未进行微调。 |
|
Wav2vec 2.0 模型(“大型”架构),使用 LibriSpeech 数据集 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360”和“train-other-500”的组合)中 960 小时的未标记音频进行预训练,未进行微调。 |
|
Wav2vec 2.0 模型(“large-lv60k”架构),使用 Libri-Light 数据集 [Kahn et al., 2020] 中 60,000 小时的未标记音频进行预训练,未进行微调。 |
|
Wav2vec 2.0 模型(“基础”架构),基于来自多个数据集(多语言 LibriSpeech [Pratap et al., 2020]、CommonVoice [Ardila et al., 2020] 和 BABEL [Gales et al., 2014])的 56000 小时未标记音频进行预训练,未进行微调。 |
|
具有 3 亿个参数的 XLS-R 模型,对来自多个数据集的 436,000 小时未标记音频进行预训练(多语言 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 种语言版本,未进行微调。 |
|
具有 10 亿个参数的 XLS-R 模型,在来自多个数据集的 436,000 小时未标记音频上进行预训练(多语言 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 种语言版本,未进行微调。 |
|
具有 20 亿个参数的 XLS-R 模型,在来自多个数据集的 436,000 小时未标记音频上进行预训练(多语言 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 模型(“基础”架构),根据 LibriSpeech 数据集 [Panayotov et al., 2015] 中的 960 小时未标记音频进行预训练(“train-clean-100”、“train-clean-360”和“train-other-500”的组合),未微调。 |
|
HuBERT 模型(“大型”架构),在 Libri-Light 数据集 [Kahn et al., 2020] 中 60,000 小时的未标记音频上进行了预训练,未进行微调。 |
|
HuBERT 模型(“超大”架构),使用 Libri-Light 数据集 [Kahn et al., 2020] 中 60,000 小时的未标记音频进行预训练,未进行微调。 |
|
WavLM 基础模型(“基础”架构),基于 LibriSpeech 数据集 [Panayotov et al., 2015] 中 960 小时的未标记音频进行预训练,未进行微调。 |
|
WavLM Base+ 模型(“基础”架构),在 60,000 小时的 Libri-Light 数据集 [Kahn et al., 2020]、10,000 小时的 GigaSpeech [Chen et al., 2021] 和 24,000 小时的 VoxPopuli [Wang et al., 2021] 上进行预训练,未进行微调。 |
|
WavLM 大型模型(“大型”架构),在 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 - 微调的 ASR¶
接口¶
Wav2Vec2ASRBundle
实例化在预定义标签上生成概率分布的模型,这些标签可用于 ASR。
使用Wav2Vec2ASRBundle
预训练模型¶
Wav2vec 2.0 模型(带有额外线性模块的“基础”架构),对 LibriSpeech 数据集 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360”和“train-other-500”的组合)中 960 小时的未标记音频进行了预训练,并在 Libri-Light 数据集 [Kahn et al., 2020](“train-10min”子集)的 10 分钟转录音频上针对 ASR 进行了微调。 |
|
Wav2vec 2.0 模型(带有额外线性模块的“基础”架构),对来自 LibriSpeech 数据集 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360”和“train-other-500”的组合)的 960 小时未标记音频进行了预训练,并在“train-clean-100”子集的 100 小时转录音频上针对 ASR 进行了微调。 |
|
Wav2vec 2.0 模型(带有额外线性模块的“基础”架构),对来自 LibriSpeech 数据集 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360”和“train-other-500”的组合)的 960 小时未标记音频进行了预训练,并针对具有相应转录本的相同音频的 ASR 进行了微调。 |
|
Wav2vec 2.0 模型(带有额外线性模块的“大型”架构),对 LibriSpeech 数据集 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360”和“train-other-500”的组合)中 960 小时的未标记音频进行了预训练,并在 Libri-Light 数据集 [Kahn et al., 2020](“train-10min”子集)的 10 分钟转录音频上针对 ASR 进行了微调。 |
|
Wav2vec 2.0 模型(带有额外线性模块的“大型”架构),对 LibriSpeech 数据集 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360”和“train-other-500”的组合)中的 960 小时未标记音频进行了预训练,并在来自同一数据集(“train-clean-100”子集)的 100 小时转录音频上针对 ASR 进行了微调。 |
|
Wav2vec 2.0 模型(带有额外线性模块的“大型”架构),对来自 LibriSpeech 数据集 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360”和“train-other-500”的组合)的 960 小时未标记音频进行了预训练,并针对具有相应转录的相同音频的 ASR 进行了微调。 |
|
Wav2vec 2.0 模型(“大型 lv60k”架构,带有额外的线性模块),使用 Libri-Light 数据集 [Kahn et al., 2020] 中 60,000 小时的未标记音频进行预训练,并在来自同一数据集的 10 分钟转录音频(“train-10min”子集)上针对 ASR 进行了微调。 |
|
Wav2vec 2.0 模型(“large-lv60k”架构,带有一个额外的线性模块),在 Libri-Light 数据集 [Kahn et al., 2020] 中 60,000 小时的未标记音频上进行了预训练,并在 LibriSpeech 数据集 [Panayotov et al., 2015](“train-clean-100”子集)中 100 小时的转录音频上进行了 ASR 微调。 |
|
Wav2vec 2.0 模型(“large-lv60k”架构,带有额外的线性模块),对 Libri-Light [Kahn et al., 2020] 数据集中 60,000 小时的未标记音频进行了预训练,并在 LibriSpeech 数据集 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360”和“train-other-500”的组合)中对 960 小时的转录音频进行了 ASR 微调。 |
|
wav2vec 2.0 模型(“基础”架构),对来自 VoxPopuli 数据集 [Wang et al., 2021](“10k”子集,由 23 种语言组成)的 10k 小时未标记音频进行预训练,并针对 “de” 子集的 282 小时转录音频的 ASR 进行了微调。 |
|
wav2vec 2.0 模型(“基础”架构),在 VoxPopuli 数据集 [Wang et al., 2021](“10k”子集,由 23 种语言组成)的 10k 小时未标记音频上进行预训练,并在“en”子集的 543 小时转录音频上针对 ASR 进行了微调。 |
|
wav2vec 2.0 模型(“基础”架构),对 VoxPopuli 数据集 [Wang et al., 2021](“10k”子集,由 23 种语言组成)的 10k 小时未标记音频进行了预训练,并针对 “es” 子集的 166 小时转录音频的 ASR 进行了微调。 |
|
wav2vec 2.0 模型(“基础”架构),对来自 VoxPopuli 数据集 [Wang et al., 2021](“10k”子集,由 23 种语言组成)的 10k 小时未标记音频进行了预训练,并针对来自“fr”子集的 211 小时转录音频的 ASR 进行了微调。 |
|
wav2vec 2.0 模型(“基础”架构),对来自 VoxPopuli 数据集 [Wang et al., 2021](“10k”子集,由 23 种语言组成)的 10k 小时未标记音频进行了预训练,并针对 ASR 对来自“it”子集的 91 小时转录音频进行了微调。 |
|
HuBERT 模型(“大型”架构),在 Libri-Light 数据集 [Kahn et al., 2020] 的 60,000 小时未标记音频上进行预训练,并在 LibriSpeech 数据集 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360”和“train-other-500”的组合)的 960 小时转录音频上针对 ASR 进行了微调。 |
|
HuBERT 模型(“超大”架构),在 Libri-Light 数据集 [Kahn et al., 2020] 中 60,000 小时的未标记音频上进行了预训练,并在 LibriSpeech 数据集 [Panayotov et al., 2015](“train-clean-100”、“train-clean-360”和“train-other-500”的组合)中对 960 小时的转录音频进行了 ASR 微调。 |
wav2vec 2.0 / HuBERT - 强制对齐¶
接口¶
Wav2Vec2FABundle
捆绑预先训练的模型及其关联的字典。此外,它还支持追加标记维度。star
分词器的接口 |
|
对准器的接口 |
使用Wav2Vec2FABundle
已训练模型¶
从将语音技术扩展到 1,000+ 种语言,以 1,130 种语言的 31K 小时数据进行训练 [Pratap et al., 2023]。 |
Tacotron2 文本转语音¶
Tacotron2TTSBundle
定义文本转语音管道,包括三个步骤:分词化、频谱图生成和声码器。频谱图的生成基于模型。
TextProcessor
在字符的情况下,可以是基于规则的标记化,也可以是基于 neural-netowrk 的 G2P 模型,从输入文本生成音素序列。
同样,可以是没有学习参数的算法,如 Griffin-Lim,或基于神经网络的模型,如 Waveglow。Vocoder
接口¶
捆绑相关信息以使用预训练的 Tacotron2 和声码器的数据类。 |
|
Tacotron2TTS 流水线的文本处理部分的接口 |
|
Tacotron2TTS 管道的声码器部分的接口 |
使用Tacotron2TTSBundle
预训练模型¶
基于音素的 TTS 管道, |
|
基于字符的 TTS 管道, |
|
基于音素的 TTS 管道, |
|
基于字符的 TTS 管道, |
源分离¶
接口¶
SourceSeparationBundle
实例化采用单声道音频并生成多声道音频的源分离模型。
捆绑组件以执行源分离的 Data类。 |
使用SourceSeparationBundle
预训练模型¶
使用 ConvTasNet 的预训练源分离管道 [Luo 和 Mesgarani,2019] 在 Libri2Mix 数据集 [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 物镜¶
接口¶
定义语音质量和清晰度测量 (SQUIM) 管道,该管道可以预测给定输入波形的客观指标分数。
预训练模型¶
SquimObjective 管道使用 DNS 2020 数据集 [Reddy et al., 2020] 上 [Kumar et al., 2023] 中描述的方法进行训练。 |
Squim 主观¶
接口¶
定义语音质量和清晰度测量 (SQUIM) 管道,该管道可以预测给定输入波形的主观指标分数。
预训练模型¶
SquimSubjective 管道按照 [Manocha 和 Kumar,2022] 和 [Kumar et al., 2023] 在 BVCC [Cooper 和 Yamagishi,2021] 和 DAPS [Mysore,2014] 数据集上的描述进行训练。 |