Wav2Vec2Model¶
- class torchaudio.models.Wav2Vec2Model(feature_extractor: Module, encoder: Module, aux: Optional[Module] = None)[source]¶
在 wav2vec 2.0 [Baevski et al., 2020] 中使用的声学模型。
注意
要构建此模型,请使用其中一个工厂函数。
另请参阅
torchaudio.pipelines.Wav2Vec2Bundle
: 预训练模型(未微调)torchaudio.pipelines.Wav2Vec2ASRBundle
: 使用预训练模型的 ASR Pipeline。
- 参数:
feature_extractor (torch.nn.Module) – 从原始音频 Tensor 中提取特征向量的特征提取器。
encoder (torch.nn.Module) – 将音频特征转换为标签概率分布序列(负对数似然)的编码器。
aux (torch.nn.Module 或 None, 可选) – 辅助模块。如果提供,编码器的输出将传递给此模块。
- 使用
Wav2Vec2Model
的教程
方法¶
forward¶
- Wav2Vec2Model.forward(waveforms: Tensor, lengths: Optional[Tensor] = None) Tuple[Tensor, Optional[Tensor]] [source]¶
计算标签的概率分布序列。
- 参数:
waveforms (Tensor) – 形状为 (batch, frames) 的音频张量。
lengths (Tensor 或 None, 可选) – 指示批次中每个音频的有效长度。形状:(batch, )。当
waveforms
包含不同时长的音频时,通过提供lengths
参数,模型将计算相应的有效输出长度并在 Transformer 注意力层应用适当的掩码。如果为None
,则假定waveforms
中的所有音频都具有有效长度。默认值:None
。
- 返回:
- Tensor
标签的概率分布序列(logit)。形状:(batch, frames, num labels)。
- Tensor 或 None
如果提供了
lengths
参数,则返回一个形状为 (batch, ) 的 Tensor。它指示输出 Tensor 在时间轴上的有效长度。
- 返回类型:
(Tensor, Optional[Tensor])
extract_features¶
- Wav2Vec2Model.extract_features(waveforms: Tensor, lengths: Optional[Tensor] = None, num_layers: Optional[int] = None) Tuple[List[Tensor], Optional[Tensor]] [source]¶
从原始波形中提取特征向量
这返回编码器中 Transformer 块中间层的输出列表。
- 参数:
waveforms (Tensor) – 形状为 (batch, frames) 的音频张量。
lengths (Tensor 或 None, 可选) – 指示批次中每个音频的有效长度。形状:(batch, )。当
waveforms
包含不同时长的音频时,通过提供lengths
参数,模型将计算相应的有效输出长度并在 Transformer 注意力层应用适当的掩码。如果为None
,则假定整个音频波形长度均有效。num_layers (int 或 None, 可选) – 如果提供,限制通过的中间层数量。提供 1 将在通过一个中间层后停止计算。如果未提供,则返回所有中间层的输出。
- 返回:
- Tensor 列表
来自所请求层的特征。每个 Tensor 的形状为:(batch, time frame, feature dimension)
- Tensor 或 None
如果提供了
lengths
参数,则返回一个形状为 (batch, ) 的 Tensor。它指示每个特征 Tensor 在时间轴上的有效长度。
- 返回类型:
(List[Tensor], Optional[Tensor])
工厂函数¶
构建自定义 |
|
从 wav2vec 2.0 [Baevski et al., 2020] 构建“base” |
|
从 wav2vec 2.0 [Baevski et al., 2020] 构建“large” |
|
从 wav2vec 2.0 [Baevski et al., 2020] 构建“large lv-60k” |
|
构建具有 3 亿参数的 XLS-R 模型 [Babu et al., 2021]。 |
|
构建具有 10 亿参数的 XLS-R 模型 [Babu et al., 2021]。 |
|
构建具有 20 亿参数的 XLS-R 模型 [Babu et al., 2021]。 |
|
从 HuBERT [Hsu et al., 2021] 构建“base” |
|
从 HuBERT [Hsu et al., 2021] 构建“large” |
|
从 HuBERT [Hsu et al., 2021] 构建“extra large” |
|
构建自定义 WaveLM 模型 [Chen et al., 2022]。 |
|
构建“base” WaveLM 模型 [Chen et al., 2022]。 |
|
构建“large” WaveLM 模型 [Chen et al., 2022]。 |
原型工厂函数¶
构建自定义 Emformer HuBERT 模型。 |
|
构建具有 20 个 Emformer 层的 Emformer HuBERT 模型。 |
|
构建自定义 Conformer Wav2Vec2Model |
|
从 Conformer-Based Slef-Supervised Learning for Non-Speech Audio Tasks [Srivastava et al., 2022] 构建具有“small”架构的 Conformer Wav2Vec2 模型 |
实用函数¶
从 fairseq 的相应模型对象构建 |
|
从 Transformers 的相应模型对象构建 |