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 管線。
- 參數:
feature_extractor (torch.nn.Module) – 特徵提取器,用於從原始音訊 Tensor 提取特徵向量。
encoder (torch.nn.Module) – 編碼器,用於將音訊特徵轉換為標籤上的機率分佈序列(以負對數似然表示)。
aux (torch.nn.Module 或 None, optional) – 輔助模組。如果提供,則來自編碼器的輸出將傳遞給此模組。
- 使用
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
。
- Returns:
- Tensor
標籤上的機率分佈(以 logits 形式)序列。形狀:(batch, frames, num labels)。
- Tensor 或 None
如果提供了
lengths
參數,則返回形狀為 (batch, ) 的 Tensor。它指示輸出 Tensor 在時間軸上的有效長度。
- Return type:
(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 將在經過一個中間層後停止計算。如果未給定,則返回所有中間層的輸出。
- Returns:
- List of Tensors
來自請求圖層的特徵。每個 Tensor 的形狀為:(batch, time frame, feature dimension)
- Tensor 或 None
如果提供了
lengths
參數,則返回形狀為 (batch, ) 的 Tensor。它指示每個特徵 Tensor 在時間軸上的有效長度。
- Return type:
(List[Tensor], Optional[Tensor])
Factory Functions¶
構建自訂 |
|
從 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 的對應模型物件建立 |