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
标签上的概率分布序列(以 logits 表示)。形状:(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 将在遍历一个中间层后停止计算。如果未给定,则返回所有中间层的输出。
- 返回:
- Tensors 列表
来自请求层的特征。每个 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 的相应模型对象构建 |