# Wav2Vec2-Conformer

## Ikhtisar

Wav2Vec2-Conformer ditambahkan ke versi terbaru dari [fairseq S2T: Fast Speech-to-Text Modeling with fairseq](https://huggingface.co/papers/2010.05171) oleh Changhan Wang, Yun Tang, Xutai Ma, Anne Wu, Sravya Popuri, Dmytro Okhonko, Juan Pino.

Hasil resmi model dapat ditemukan di Tabel 3 dan Tabel 4 dari makalah tersebut.

Bobot Wav2Vec2-Conformer dirilis oleh tim Meta AI di dalam [library Fairseq](https://github.com/pytorch/fairseq/blob/main/examples/wav2vec/README.md#pre-trained-models).

Model ini disumbangkan oleh [patrickvonplaten](https://huggingface.co/patrickvonplaten). Kode aslinya dapat ditemukan [di sini](https://github.com/pytorch/fairseq/tree/main/examples/wav2vec).

Catatan: Meta (FAIR) merilis versi baru dari [Wav2Vec2-BERT 2.0](./wav2vec2-bert) - model ini telah dipretrain pada 4,5 juta jam audio. Kami sangat merekomendasikannya untuk tugas fine-tuning, misalnya sesuai dengan [panduan ini](https://huggingface.co/blog/fine-tune-w2v2-bert).

## Tips penggunaan

- Wav2Vec2-Conformer mengikuti arsitektur yang sama dengan Wav2Vec2, tetapi mengganti blok *Attention* dengan blok *Conformer* seperti yang diperkenalkan dalam [Conformer: Convolution-augmented Transformer for Speech Recognition](https://huggingface.co/papers/2005.08100).
- Untuk jumlah lapisan yang sama, Wav2Vec2-Conformer membutuhkan lebih banyak parameter daripada Wav2Vec2, tetapi juga menghasilkan
laju kesalahan kata yang lebih baik.
- Wav2Vec2-Conformer menggunakan tokenizer dan feature extractor yang sama dengan Wav2Vec2.
- Wav2Vec2-Conformer dapat menggunakan salah satu dari: tanpa relative position embeddings, position embeddings seperti Transformer-XL, atau rotary position embeddings, dengan mengatur `config.position_embeddings_type` yang benar.

## Sumber daya

- [Panduan tugas klasifikasi audio](../tasks/audio_classification)
- [Panduan tugas pengenalan ucapan otomatis](../tasks/asr)

## Wav2Vec2ConformerConfig[[transformers.Wav2Vec2ConformerConfig]]

#### transformers.Wav2Vec2ConformerConfig[[transformers.Wav2Vec2ConformerConfig]]

```python
transformers.Wav2Vec2ConformerConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, vocab_size: int | None = None, hidden_size: int = 768, num_hidden_layers: int = 12, num_attention_heads: int = 12, intermediate_size: int = 3072, hidden_act: str = 'gelu', hidden_dropout: float | int = 0.1, activation_dropout: float | int = 0.1, attention_dropout: float | int = 0.1, feat_proj_dropout: float | int = 0.0, feat_quantizer_dropout: float | int = 0.0, final_dropout: float | int = 0.1, layerdrop: float | int = 0.1, initializer_range: float = 0.02, layer_norm_eps: float = 1e-05, feat_extract_norm: str = 'group', feat_extract_activation: str = 'gelu', conv_dim: list[int] | tuple[int, ...] = (512, 512, 512, 512, 512, 512, 512), conv_stride: list[int] | tuple[int, ...] = (5, 2, 2, 2, 2, 2, 2), conv_kernel: list[int] | tuple[int, ...] = (10, 3, 3, 3, 3, 2, 2), conv_bias: bool = False, num_conv_pos_embeddings: int = 128, num_conv_pos_embedding_groups: int = 16, apply_spec_augment: bool = True, mask_time_prob: float | int = 0.05, mask_time_length: int = 10, mask_time_min_masks: int = 2, mask_feature_prob: float | int = 0.0, mask_feature_length: int = 10, mask_feature_min_masks: int = 0, num_codevectors_per_group: int = 320, num_codevector_groups: int = 2, contrastive_logits_temperature: float = 0.1, num_negatives: int = 100, codevector_dim: int = 256, proj_codevector_dim: int = 256, diversity_loss_weight: float = 0.1, ctc_loss_reduction: str = 'sum', ctc_zero_infinity: bool = False, use_weighted_layer_sum: bool = False, classifier_proj_size: int = 256, tdnn_dim: list[int] | tuple[int, ...] = (512, 512, 512, 512, 1500), tdnn_kernel: list[int] | tuple[int, ...] = (5, 3, 3, 1, 1), tdnn_dilation: list[int] | tuple[int, ...] = (1, 2, 3, 1, 1), xvector_output_dim: int = 512, pad_token_id: int | None = 0, bos_token_id: int | None = 1, eos_token_id: int | list[int] | None = 2, add_adapter: bool = False, adapter_kernel_size: int = 3, adapter_stride: int = 2, num_adapter_layers: int = 3, output_hidden_size: int | None = None, position_embeddings_type: str | None = 'relative', rotary_embedding_base: int = 10000, max_source_positions: int = 5000, conv_depthwise_kernel_size: int = 31, conformer_conv_dropout: float | int = 0.1)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wav2vec2_conformer/configuration_wav2vec2_conformer.py#L27)

**Parameter:**

vocab_size (`int`, *opsional*) : Ukuran kosakata model. Menentukan jumlah token berbeda yang dapat direpresentasikan oleh `input_ids`.

hidden_size (`int`, *opsional*, defaultnya `768`) : Dimensi dari representasi tersembunyi.

num_hidden_layers (`int`, *opsional*, defaultnya `12`) : Jumlah lapisan tersembunyi dalam decoder Transformer.

num_attention_heads (`int`, *opsional*, defaultnya `12`) : Jumlah kepala perhatian untuk setiap lapisan perhatian dalam decoder Transformer.

intermediate_size (`int`, *opsional*, defaultnya `3072`) : Dimensi dari representasi MLP.

hidden_act (`str`, *opsional*, defaultnya `gelu`) : Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, `"gelu"`, `"relu"`, `"silu"`, dan sebagainya.

hidden_dropout (`Union[float, int]`, *opsional*, defaultnya `0.1`) : Probabilitas dropout untuk semua lapisan fully connected di embeddings, encoder, dan pooler.

activation_dropout (`Union[float, int]`, *opsional*, defaultnya `0.1`) : Rasio dropout untuk aktivasi di dalam lapisan fully connected.

attention_dropout (`Union[float, int]`, *opsional*, defaultnya `0.1`) : Rasio dropout untuk probabilitas perhatian.

feat_proj_dropout (`float`, *opsional*, default 0.0) : Probabilitas dropout untuk output dari feature encoder.

feat_quantizer_dropout (`float`, *opsional*, default 0.0) : Probabilitas dropout untuk output dari feature encoder yang digunakan oleh quantizer.

final_dropout (`float`, *opsional*, default 0.1) : Probabilitas dropout untuk lapisan proyeksi akhir dari [Wav2Vec2ConformerForCTC](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerForCTC).

layerdrop (`Union[float, int]`, *opsional*, defaultnya `0.1`) : Probabilitas LayerDrop. Lihat [makalah LayerDrop](see https://huggingface.co/papers/1909.11556) untuk detail lebih lanjut.

initializer_range (`float`, *opsional*, defaultnya `0.02`) : Deviasi standar dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.

layer_norm_eps (`float`, *opsional*, defaultnya `1e-05`) : Epsilon yang digunakan oleh lapisan normalisasi lapisan.

feat_extract_norm (`str`, *opsional*, defaultnya `"group"`) : Normalisasi yang diterapkan pada lapisan konvolusional 1D di feature encoder. Salah satu dari `"group"` untuk normalisasi grup hanya pada lapisan konvolusional 1D pertama atau `"layer"` untuk normalisasi lapisan pada semua lapisan konvolusional 1D.

feat_extract_activation (`str, `optional`, defaults to `"gelu"`) : The non-linear activation function (function or string) in the 1D convolutional layers of the feature extractor. If string, `"gelu"`, `"relu"`, `"selu"` and `"gelu_new"` are supported.

conv_dim (`tuple[int]` atau `list[int]`, *opsional*, defaultnya `(512, 512, 512, 512, 512, 512, 512)`) : Tuple dari bilangan bulat yang mendefinisikan jumlah saluran input dan output dari setiap lapisan konvolusional 1D dalam feature encoder. Panjang dari *conv_dim* mendefinisikan jumlah lapisan konvolusional 1D.

conv_stride (`tuple[int]` atau `list[int]`, *opsional*, defaultnya `(5, 2, 2, 2, 2, 2, 2)`) : Tuple dari bilangan bulat yang mendefinisikan stride dari setiap lapisan konvolusional 1D dalam feature encoder. Panjang dari *conv_stride* mendefinisikan jumlah lapisan konvolusional dan harus sesuai dengan panjang dari *conv_dim*.

conv_kernel (`tuple[int]` atau `list[int]`, *opsional*, defaultnya `(10, 3, 3, 3, 3, 3, 3)`) : Tuple dari bilangan bulat yang mendefinisikan ukuran kernel dari setiap lapisan konvolusional 1D dalam encoder fitur. Panjang dari *conv_kernel* mendefinisikan jumlah lapisan konvolusional dan harus sesuai dengan panjang dari *conv_dim*.

conv_bias (`bool`, *opsional*, defaultnya `False`) : Apakah lapisan konvolusional 1D memiliki bias.

num_conv_pos_embeddings (`int`, *opsional*, default 128) : Jumlah embedding posisi konvolusional. Menentukan ukuran kernel dari lapisan embedding posisi konvolusional 1D.

num_conv_pos_embedding_groups (`int`, *opsional*, default 16) : Jumlah grup dari lapisan embedding posisional konvolusional 1D.

apply_spec_augment (`bool`, *opsional*, defaultnya `True`) : Apakah akan menerapkan augmentasi data *SpecAugment* pada output dari feature encoder. Untuk referensi, lihat [SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition](https://huggingface.co/papers/1904.08779).

mask_time_prob (`float`, *opsional*, default 0.05) : Persentase (antara 0 dan 1) dari semua vektor fitur sepanjang sumbu waktu yang akan dimasker. Prosedur masking menghasilkan ''mask_time_prob*len(time_axis)/mask_time_length'' mask independen di sepanjang sumbu tersebut. Jika beralasan dari probabilitas setiap vektor fitur untuk dipilih sebagai awal dari rentang vektor yang akan dimasker, *mask_time_prob* seharusnya `prob_vector_start*mask_time_length`. Perhatikan bahwa tumpang tindih dapat mengurangi persentase vektor yang sebenarnya dimasker. Ini hanya relevan jika `apply_spec_augment is True`.

mask_time_length (`int`, *opsional*, default 10) : Panjang rentang vektor sepanjang sumbu waktu.

mask_time_min_masks (`int`, *opsional*, default 2), : Jumlah minimum masker dengan panjang `mask_feature_length` yang dihasilkan sepanjang sumbu waktu, setiap langkah waktu, terlepas dari `mask_feature_prob`. Hanya relevan jika ''mask_time_prob*len(time_axis)/mask_time_length < mask_time_min_masks''

mask_feature_prob (`float`, *opsional*, default 0.0) : Persentase (antara 0 dan 1) dari semua vektor fitur di sepanjang sumbu fitur yang akan dimasker. Prosedur masking menghasilkan ''mask_feature_prob*len(feature_axis)/mask_time_length'' mask independen di sepanjang sumbu tersebut. Jika beralasan dari probabilitas setiap vektor fitur untuk dipilih sebagai awal dari rentang vektor yang akan dimasker, *mask_feature_prob* seharusnya `prob_vector_start*mask_feature_length`. Perhatikan bahwa tumpang tindih dapat mengurangi persentase vektor yang sebenarnya dimasker. Ini hanya relevan jika `apply_spec_augment is True`.

mask_feature_prob (`Union[float, int]`, *opsional*, defaultnya `0.0`) : Persentase (antara 0 dan 1) dari semua vektor fitur di sepanjang sumbu fitur yang akan dimasker. Prosedur masking menghasilkan `mask_feature_prob*len(feature_axis)/mask_time_length` mask independen di sepanjang sumbu. Jika beralasan dari probabilitas setiap vektor fitur untuk dipilih sebagai awal dari rentang vektor yang akan dimasker, *mask_feature_prob* seharusnya `prob_vector_start*mask_feature_length`. Perhatikan bahwa tumpang tindih dapat mengurangi persentase vektor yang sebenarnya dimasker. Ini hanya relevan jika `apply_spec_augment` adalah `True`.

mask_feature_length (`int`, *opsional*, default 10) : Panjang rentang vektor di sepanjang sumbu fitur.

mask_feature_min_masks (`int`, *opsional*, default 0), : Jumlah minimum masker dengan panjang `mask_feature_length` yang dihasilkan di sepanjang sumbu fitur, setiap langkah waktu, terlepas dari `mask_feature_prob`. Hanya relevan jika ''mask_feature_prob*len(feature_axis)/mask_feature_length < mask_feature_min_masks''

num_codevectors_per_group (`int`, *opsional*, default 320) : Jumlah entri dalam setiap codebook kuantisasi (grup).

num_codevectors_per_group (`int`, *opsional*, default 320) : Jumlah entri dalam setiap codebook kuantisasi (grup).

num_codevector_groups (`int`, *opsional*, defaultnya 2) : Jumlah grup codevector untuk kuantisasi codevector produk.

contrastive_logits_temperature (`float`, *opsional*, default 0.1) : Suhu *kappa* dalam kerugian kontras.

num_negatives (`int`, *opsional*, default 100) : Jumlah sampel negatif untuk kerugian kontras (contrastive loss).

codevector_dim (`int`, *opsional*, default 256) : Dimensi dari vektor fitur yang dikuantisasi.

proj_codevector_dim (`int`, *opsional*, default 256) : Dimensi dari proyeksi akhir dari fitur kuantisasi dan fitur transformer.

diversity_loss_weight (`int`, *opsional*, default 0.1) : Bobot komponen kerugian keragaman kodebook.

ctc_loss_reduction (`str`, *opsional*, defaultnya `sum`) : Menentukan reduksi yang diterapkan pada output dari `torch.nn.CTCLoss`. Hanya relevan saat pelatihan.

ctc_zero_infinity (`bool`, *opsional*, defaultnya `False`) : Apakah akan menolkan kerugian tak hingga dan gradien terkait dari `torch.nn.CTCLoss`. Kerugian tak hingga terutama terjadi ketika input terlalu pendek untuk diselaraskan dengan target. Hanya relevan saat melatih instance dari [Wav2Vec2ConformerForCTC](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerForCTC).

use_weighted_layer_sum (`bool`, *opsional*, defaultnya `False`) : Apakah akan menggunakan rata-rata berbobot dari output lapisan dengan bobot yang dipelajari. Hanya relevan saat menggunakan instance dari [Wav2Vec2ConformerForSequenceClassification](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerForSequenceClassification).

classifier_proj_size (`int`, *opsional*, default 256) : Dimensi proyeksi sebelum token mean-pooling untuk klasifikasi.

tdnn_dim (`tuple[int]` atau `list[int]`, *opsional*, defaultnya `(512, 512, 512, 512, 1500)`) : Tuple dari bilangan bulat yang mendefinisikan jumlah kanal output dari setiap lapisan konvolusional 1D dalam modul *TDNN* dari model *XVector*. Panjang dari *tdnn_dim* mendefinisikan jumlah lapisan *TDNN*.

tdnn_kernel (`tuple[int]` atau `list[int]`, *opsional*, defaultnya `(5, 3, 3, 1, 1)`) : Tuple dari bilangan bulat yang mendefinisikan ukuran kernel dari setiap lapisan konvolusional 1D dalam modul *TDNN* dari model *XVector*. Panjang *tdnn_kernel* harus sesuai dengan panjang *tdnn_dim*.

tdnn_dilation (`tuple[int]` atau `list[int]`, *opsional*, defaultnya `(1, 2, 3, 1, 1)`) : Tuple bilangan bulat yang mendefinisikan faktor dilatasi dari setiap lapisan konvolusional 1D dalam modul *TDNN* dari model *XVector*. Panjang *tdnn_dilation* harus sesuai dengan panjang *tdnn_dim*.

xvector_output_dim (`int`, *opsional*, default 512) : Dimensi dari vektor embedding *XVector*.

pad_token_id (`int`, *opsional*, defaultnya `0`) : ID token yang digunakan untuk padding dalam kosakata.

bos_token_id (`int`, *opsional*, defaultnya `1`) : Token id yang digunakan untuk awal-stream dalam kosakata.

eos_token_id (`Union[int, list[int]]`, *opsional*, defaultnya `2`) : Token id yang digunakan untuk end-of-stream dalam kosakata.

add_adapter (`bool`, *opsional*, defaultnya `False`) : Apakah jaringan konvolusional harus ditumpuk di atas Wav2Vec2Conformer Encoder. Hal ini dapat sangat berguna untuk memulai Wav2Vec2Conformer secara hangat untuk model SpeechEncoderDecoder.

adapter_kernel_size (`int`, *opsional*, default 3) : Ukuran kernel dari lapisan konvolusional dalam jaringan adapter. Hanya relevan jika `add_adapter is True`.

adapter_stride (`int`, *opsional*, defaultnya 2) : Stride dari lapisan konvolusional dalam jaringan adapter. Hanya relevan jika `add_adapter is True`.

num_adapter_layers (`int`, *opsional*, default 3) : Jumlah lapisan konvolusional yang harus digunakan dalam jaringan adapter. Hanya relevan jika `add_adapter is True`.

output_hidden_size (`int`, *opsional*) : Dimensi dari lapisan output encoder. Jika tidak didefinisikan, ini secara default menjadi *hidden-size*. Hanya relevan jika `add_adapter is True`.

position_embeddings_type (`str`, *opsional*, defaultnya `"relative"`) : Dapat ditentukan sebagai `relative` atau `rotary` untuk posisi embedding relatif atau rotasi, masing-masing. Jika dibiarkan `None`, tidak ada posisi embedding relatif yang diterapkan.

rotary_embedding_base (`int`, *opsional*, default 10000) : Jika `"rotary"` position embeddings digunakan, mendefinisikan ukuran basis embedding.

max_source_positions (`int`, *opsional*, defaultnya 5000) : jika `"relative"` position embeddings digunakan, mendefinisikan posisi input sumber maksimum.

conv_depthwise_kernel_size (`int`, *opsional*, default 31) : Ukuran kernel dari lapisan convolutional depthwise 1D dalam blok Conformer.

conformer_conv_dropout (`float`, *opsional*, default 0.1) : Probabilitas dropout untuk semua lapisan konvolusional dalam blok Conformer.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari Wav2Vec2 ConformerModel. Kelas ini digunakan untuk membuat instans model Wav2Vec2 Conformer sesuai dengan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari [facebook/wav2vec2-conformer-rel-pos-large](https://huggingface.co/facebook/wav2vec2-conformer-rel-pos-large)

Objek konfigurasi mewarisi dari [PreTrainedConfig](/docs/transformers/main/id/main_classes/configuration#transformers.PreTrainedConfig) dan dapat digunakan untuk mengontrol keluaran model. Baca dokumentasi dari [PreTrainedConfig](/docs/transformers/main/id/main_classes/configuration#transformers.PreTrainedConfig) untuk informasi lebih lanjut.

Contoh:

```python
>>> from transformers import Wav2Vec2ConformerConfig, Wav2Vec2ConformerModel

>>> # Initializing a Wav2Vec2Conformer facebook/wav2vec2-conformer-rel-pos-large style configuration
>>> configuration = Wav2Vec2ConformerConfig()

>>> # Initializing a model (with random weights) from the facebook/wav2vec2-conformer-rel-pos-large style configuration
>>> model = Wav2Vec2ConformerModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```

## Output spesifik Wav2Vec2Conformer[[transformers.models.wav2vec2_conformer.modeling_wav2vec2_conformer.Wav2Vec2ConformerForPreTrainingOutput]]

#### transformers.models.wav2vec2_conformer.modeling_wav2vec2_conformer.Wav2Vec2ConformerForPreTrainingOutput[[transformers.models.wav2vec2_conformer.modeling_wav2vec2_conformer.Wav2Vec2ConformerForPreTrainingOutput]]

```python
transformers.models.wav2vec2_conformer.modeling_wav2vec2_conformer.Wav2Vec2ConformerForPreTrainingOutput(loss: typing.Optional[torch.Tensor] = None, projected_states: typing.Optional[torch.Tensor] = None, projected_quantized_states: typing.Optional[torch.Tensor] = None, codevector_perplexity: typing.Optional[torch.Tensor] = None, hidden_states: tuple[torch.Tensor] | None = None, attentions: tuple[torch.Tensor] | None = None, contrastive_loss: typing.Optional[torch.Tensor] = None, diversity_loss: typing.Optional[torch.Tensor] = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wav2vec2_conformer/modeling_wav2vec2_conformer.py#L46)

**Parameter:**

loss (`*optional*`, dikembalikan saat `sample_negative_indices` diteruskan, `torch.Tensor` dengan bentuk `(1,)`) : Total loss sebagai jumlah dari contrastive loss (L_m) dan diversity loss (L_d) sebagaimana dinyatakan dalam [paper resmi](https://huggingface.co/papers/2006.11477).

projected_states (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, config.proj_codevector_dim)`) : Hidden-states dari model yang diproyeksikan ke *config.proj_codevector_dim* yang dapat digunakan untuk memprediksi state kuantisasi terproyeksi yang dimasker.

projected_quantized_states (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, config.proj_codevector_dim)`) : Vektor fitur terekstraksi yang dikuantisasi dan diproyeksikan ke *config.proj_codevector_dim*, yang mewakili vektor target positif untuk kerugian kontras (contrastive loss).

codevector_perplexity (`torch.Tensor` dengan bentuk `(1,)`) : Perplexity dari distribusi codevector, digunakan untuk mengukur keragaman codebook.

hidden_states (`tuple[torch.Tensor]`, *opsional*, dikembalikan ketika `output_hidden_states=True` dilewatkan atau ketika `config.output_hidden_states=True`) : Tuple dari `torch.Tensor` (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk `(batch_size, sequence_length, hidden_size)`. Hidden-states model pada output dari setiap lapisan ditambah output embedding awal yang opsional.

attentions (`tuple[torch.Tensor]`, *opsional*, dikembalikan ketika `output_attentions=True` dilewatkan atau ketika `config.output_attentions=True`) : Tuple dari `torch.Tensor` (satu untuk setiap layer) dengan bentuk `(batch_size, num_heads, sequence_length, sequence_length)`. Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala self-attention.

contrastive_loss (`*optional*`, dikembalikan ketika `sample_negative_indices` diberikan, `torch.Tensor` dengan bentuk `(1,)`) : Loss kontrastif (L_m) sebagaimana dinyatakan dalam [paper resmi](https://huggingface.co/papers/2006.11477).

diversity_loss (`*optional*`, returned when `sample_negative_indices` are passed, `torch.Tensor` of shape `(1,)`) : The diversity loss (L_d) as stated in the [official paper](https://huggingface.co/papers/2006.11477).

Jenis output dari [Wav2Vec2ConformerForPreTraining](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerForPreTraining), dengan hidden states dan attentions yang mungkin ada.

## Wav2Vec2ConformerModel[[transformers.Wav2Vec2ConformerModel]]

#### transformers.Wav2Vec2ConformerModel[[transformers.Wav2Vec2ConformerModel]]

```python
transformers.Wav2Vec2ConformerModel(config: Wav2Vec2ConformerConfig)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wav2vec2_conformer/modeling_wav2vec2_conformer.py#L1078)

**Parameter:**

config ([Wav2Vec2ConformerConfig](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerConfig)) : Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode [from_pretrained()](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel.from_pretrained) untuk memuat bobot model.

Model Wav2Vec2 Conformer polos yang menghasilkan hidden-states mentah tanpa head spesifik di atasnya.

Model ini mewarisi dari [PreTrainedModel](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka ini untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran input embeddings, memangkas heads, dll.)

Model ini juga merupakan subclass dari [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

#### forward[[transformers.Wav2Vec2ConformerModel.forward]]

```python
forward(input_values: typing.Optional[torch.Tensor], attention_mask: typing.Optional[torch.Tensor] = None, mask_time_indices: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wav2vec2_conformer/modeling_wav2vec2_conformer.py#L1149)

**Parameter:**

input_values (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Nilai float dari waveform ucapan mentah. Nilai dapat diperoleh dengan memuat file audio `.flac` atau `.wav` ke dalam array bertipe `list[float]`, `numpy.ndarray`, atau `torch.Tensor`, *misalnya* melalui pustaka torchcodec (`pip install torchcodec`) atau pustaka soundfile (`pip install soundfile`). Untuk menyiapkan array menjadi `input_values`, gunakan [AutoProcessor](/docs/transformers/main/id/model_doc/auto#transformers.AutoProcessor) untuk padding dan konversi menjadi tensor bertipe `torch.Tensor`. Lihat [Wav2Vec2Processor.__call__()](/docs/transformers/main/id/model_doc/wav2vec2#transformers.Wav2Vec2Processor.__call__) untuk detailnya.

attention_mask (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Mask untuk menghindari pelaksanaan attention pada indeks token padding. Nilai mask dipilih dalam `[0, 1]`:  - 1 untuk token yang **tidak di-mask**, - 0 untuk token yang **di-mask**.  [Apa itu attention masks?](../glossary#attention-mask)

mask_time_indices (`torch.BoolTensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Indeks untuk memasker fitur yang diekstrak untuk kerugian kontrastif. Saat dalam mode pelatihan, model belajar memprediksi fitur yang diekstrak dan dimasker dalam ruang *config.proj_codevector_dim*.

**Mengembalikan:** [Wav2Vec2BaseModelOutput](/docs/transformers/main/id/model_doc/wav2vec2#transformers.modeling_outputs.Wav2Vec2BaseModelOutput) atau `tuple(torch.Tensor)`

A [Wav2Vec2BaseModelOutput](/docs/transformers/main/id/model_doc/wav2vec2#transformers.modeling_outputs.Wav2Vec2BaseModelOutput) atau tuple dari `torch.Tensor` (jika `return_dict=False` diberikan atau ketika `config.return_dict=False`) yang terdiri dari berbagai elemen tergantung pada konfigurasi ([Wav2Vec2ConformerConfig](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerConfig)) dan input.

Metode forward dari [Wav2Vec2ConformerModel](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerModel) menimpa metode khusus `__call__`.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance `Module` setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

- **last_hidden_state** (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, hidden_size)`) -- Urutan hidden-states pada keluaran lapisan terakhir model.
- **extract_features** (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, conv_dim[-1])`) -- Urutan vektor fitur yang diekstrak dari lapisan konvolusional terakhir model.
- **hidden_states** (`tuple(torch.Tensor)`, *opsional*, dikembalikan saat `output_hidden_states=True` dilewatkan atau saat `config.output_hidden_states=True`) -- Tuple dari `torch.Tensor` (satu untuk output embeddings + satu untuk output setiap layer) dengan bentuk `(batch_size, sequence_length, hidden_size)`.

  Hidden-states model pada output setiap layer ditambah output embedding awal.
- **attentions** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_attentions=True` dilewatkan atau ketika `config.output_attentions=True`) -- Tuple dari `torch.Tensor` (satu untuk setiap layer) dengan bentuk `(batch_size, num_heads, sequence_length, sequence_length)`.

  Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala self-attention.

## Wav2Vec2ConformerForCTC[[transformers.Wav2Vec2ConformerForCTC]]

#### transformers.Wav2Vec2ConformerForCTC[[transformers.Wav2Vec2ConformerForCTC]]

```python
transformers.Wav2Vec2ConformerForCTC(config: Wav2Vec2ConformerConfig, target_lang: str | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wav2vec2_conformer/modeling_wav2vec2_conformer.py#L1403)

**Parameter:**

config ([Wav2Vec2ConformerConfig](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerConfig)) : Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode [from_pretrained()](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel.from_pretrained) untuk memuat bobot model.

target_lang (`str`, *opsional*) : ID bahasa dari bobot adapter. Bobot adapter disimpan dalam format adapter..safetensors atau adapter..bin. Hanya relevan saat menggunakan instance [UniSpeechSatForCTC](/docs/transformers/main/id/model_doc/unispeech-sat#transformers.UniSpeechSatForCTC) dengan adapter. Menggunakan 'eng' secara default.

Model Wav2Vec2Conformer dengan kepala `language modeling` di atasnya untuk Connectionist Temporal Classification (CTC).

Model ini mewarisi dari [PreTrainedModel](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka ini untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran input embeddings, memangkas heads, dll.)

Model ini juga merupakan subclass dari [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

#### forward[[transformers.Wav2Vec2ConformerForCTC.forward]]

```python
forward(input_values: typing.Optional[torch.Tensor], attention_mask: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wav2vec2_conformer/modeling_wav2vec2_conformer.py#L1440)

**Parameter:**

input_values (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Nilai float dari waveform ucapan mentah. Nilai dapat diperoleh dengan memuat file audio `.flac` atau `.wav` ke dalam array bertipe `list[float]`, `numpy.ndarray`, atau `torch.Tensor`, *misalnya* melalui pustaka torchcodec (`pip install torchcodec`) atau pustaka soundfile (`pip install soundfile`). Untuk menyiapkan array menjadi `input_values`, gunakan [AutoProcessor](/docs/transformers/main/id/model_doc/auto#transformers.AutoProcessor) untuk padding dan konversi menjadi tensor bertipe `torch.Tensor`. Lihat [Wav2Vec2Processor.__call__()](/docs/transformers/main/id/model_doc/wav2vec2#transformers.Wav2Vec2Processor.__call__) untuk detailnya.

attention_mask (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Mask untuk menghindari pelaksanaan attention pada indeks token padding. Nilai mask dipilih dalam `[0, 1]`:  - 1 untuk token yang **tidak di-mask**, - 0 untuk token yang **di-mask**.  [Apa itu attention masks?](../glossary#attention-mask)

labels (`torch.LongTensor` dengan bentuk `(batch_size, target_length)`, *opsional*) : Label untuk klasifikasi temporal koneksionis. Perhatikan bahwa `target_length` harus lebih kecil atau sama dengan panjang sekuens dari logit output. Indeks dipilih dalam `[-100, 0, ..., config.vocab_size - 1]`. Semua label yang disetel ke `-100` diabaikan (dipertahankan), loss hanya dihitung untuk label dalam `[0, ..., config.vocab_size - 1]`.

**Mengembalikan:** [CausalLMOutput](/docs/transformers/main/id/main_classes/output#transformers.modeling_outputs.CausalLMOutput) atau `tuple(torch.Tensor)`

A [CausalLMOutput](/docs/transformers/main/id/main_classes/output#transformers.modeling_outputs.CausalLMOutput) atau tuple dari `torch.Tensor` (jika `return_dict=False` diteruskan atau ketika `config.return_dict=False`) yang terdiri dari berbagai elemen tergantung pada konfigurasi ([Wav2Vec2ConformerConfig](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerConfig)) dan input.

Metode forward dari [Wav2Vec2ConformerForCTC](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerForCTC) menimpa metode khusus `__call__`.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance `Module` setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

- **loss** (`torch.Tensor` dengan bentuk `(1,)`, *opsional*, dikembalikan saat `labels` disediakan) -- Loss pemodelan bahasa (untuk prediksi token berikutnya).
- **logits** (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, config.vocab_size)`) -- Skor prediksi dari kepala pemodelan bahasa (skor untuk setiap token kosakata sebelum SoftMax).
- **hidden_states** (`tuple(torch.Tensor)`, *opsional*, dikembalikan saat `output_hidden_states=True` dilewatkan atau saat `config.output_hidden_states=True`) -- Tuple dari `torch.Tensor` (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk `(batch_size, sequence_length, hidden_size)`.

  Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
- **attentions** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_attentions=True` dilewatkan atau ketika `config.output_attentions=True`) -- Tuple dari `torch.Tensor` (satu untuk setiap layer) dengan bentuk `(batch_size, num_heads, sequence_length, sequence_length)`.

  Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala self-attention.

Contoh:

```python
>>> from transformers import AutoProcessor, Wav2Vec2ConformerForCTC
>>> from datasets import load_dataset
>>> import torch

>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> processor = AutoProcessor.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")
>>> model = Wav2Vec2ConformerForCTC.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")

>>> # audio file is decoded on the fly
>>> inputs = processor(dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")
>>> with torch.no_grad():
...     logits = model(**inputs).logits
>>> predicted_ids = torch.argmax(logits, dim=-1)

>>> # transcribe speech
>>> transcription = processor.batch_decode(predicted_ids)
>>> transcription[0]
...

>>> inputs["labels"] = processor(text=dataset[0]["text"], return_tensors="pt").input_ids

>>> # compute loss
>>> loss = model(**inputs).loss
>>> round(loss.item(), 2)
...
```

## Wav2Vec2ConformerForSequenceClassification[[transformers.Wav2Vec2ConformerForSequenceClassification]]

#### transformers.Wav2Vec2ConformerForSequenceClassification[[transformers.Wav2Vec2ConformerForSequenceClassification]]

```python
transformers.Wav2Vec2ConformerForSequenceClassification(config: Wav2Vec2ConformerConfig)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wav2vec2_conformer/modeling_wav2vec2_conformer.py#L1498)

**Parameter:**

config ([Wav2Vec2ConformerConfig](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerConfig)) : Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode [from_pretrained()](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel.from_pretrained) untuk memuat bobot model.

Model Wav2Vec2Conformer dengan kepala klasifikasi urutan di atasnya (lapisan linear di atas output yang dipooling) untuk tugas seperti SUPERB Keyword Spotting.

Model ini mewarisi dari [PreTrainedModel](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka ini untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran input embeddings, memangkas heads, dll.)

Model ini juga merupakan subclass dari [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

#### forward[[transformers.Wav2Vec2ConformerForSequenceClassification.forward]]

```python
forward(input_values: typing.Optional[torch.Tensor], attention_mask: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wav2vec2_conformer/modeling_wav2vec2_conformer.py#L1531)

**Parameter:**

input_values (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`) : Nilai float dari waveform ucapan mentah input. Nilai dapat diperoleh dengan memuat file audio `.flac` atau `.wav` ke dalam array bertipe `list[float]`, `numpy.ndarray`, atau `torch.Tensor`, *misalnya* melalui pustaka torchcodec (`pip install torchcodec`) atau pustaka soundfile (`pip install soundfile`). Untuk menyiapkan array menjadi `input_values`, gunakan [AutoProcessor](/docs/transformers/main/id/model_doc/auto#transformers.AutoProcessor) untuk padding dan konversi menjadi tensor bertipe `torch.Tensor`. Lihat `Wav2Vec2ConformerProcessor.__call__` untuk detailnya.

attention_mask (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Mask untuk menghindari pelaksanaan attention pada indeks token padding. Nilai mask dipilih dalam `[0, 1]`:  - 1 untuk token yang **tidak di-mask**, - 0 untuk token yang **di-mask**.  [Apa itu attention masks?](../glossary#attention-mask)

labels (`torch.LongTensor` dengan bentuk `(batch_size,)`, *opsional*) : Label untuk menghitung loss klasifikasi/regresi urutan. Indeks harus berada dalam `[0, ..., config.num_labels - 1]`. Jika `config.num_labels == 1`, loss regresi dihitung (Mean-Square loss). Jika `config.num_labels > 1`, loss klasifikasi dihitung (Cross-Entropy).

**Mengembalikan:** [SequenceClassifierOutput](/docs/transformers/main/id/main_classes/output#transformers.modeling_outputs.SequenceClassifierOutput) atau `tuple(torch.Tensor)`

[SequenceClassifierOutput](/docs/transformers/main/id/main_classes/output#transformers.modeling_outputs.SequenceClassifierOutput) atau tuple dari `torch.Tensor` (jika `return_dict=False` diteruskan atau ketika `config.return_dict=False`) yang terdiri dari berbagai elemen tergantung pada konfigurasi ([Wav2Vec2ConformerConfig](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerConfig)) dan input.

Metode forward dari [Wav2Vec2ConformerForSequenceClassification](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerForSequenceClassification) menimpa metode khusus `__call__`.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance `Module` setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

- **loss** (`torch.Tensor` dengan bentuk `(1,)`, *opsional*, dikembalikan saat `labels` disediakan) -- Loss klasifikasi (atau regresi jika config.num_labels==1).
- **logits** (`torch.Tensor` dengan bentuk `(batch_size, config.num_labels)`) -- Skor klasifikasi (atau regresi jika config.num_labels==1) (sebelum SoftMax).
- **hidden_states** (`tuple(torch.Tensor)`, *opsional*, dikembalikan saat `output_hidden_states=True` dilewatkan atau saat `config.output_hidden_states=True`) -- Tuple dari `torch.Tensor` (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk `(batch_size, sequence_length, hidden_size)`.

  Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
- **attentions** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_attentions=True` dilewatkan atau ketika `config.output_attentions=True`) -- Tuple dari `torch.Tensor` (satu untuk setiap layer) dengan bentuk `(batch_size, num_heads, sequence_length, sequence_length)`.

  Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala self-attention.

Contoh klasifikasi label tunggal:

```python
>>> import torch
>>> from transformers import AutoTokenizer, Wav2Vec2ConformerForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")
>>> model = Wav2Vec2ConformerForSequenceClassification.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_class_id = logits.argmax().item()
>>> model.config.id2label[predicted_class_id]
...

>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = Wav2Vec2ConformerForSequenceClassification.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large", num_labels=num_labels)

>>> labels = torch.tensor([1])
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...
```

Contoh klasifikasi multi-label:

```python
>>> import torch
>>> from transformers import AutoTokenizer, Wav2Vec2ConformerForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")
>>> model = Wav2Vec2ConformerForSequenceClassification.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large", problem_type="multi_label_classification")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_class_ids = torch.arange(0, logits.shape[-1])[torch.sigmoid(logits).squeeze(dim=0) > 0.5]

>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = Wav2Vec2ConformerForSequenceClassification.from_pretrained(
...     "facebook/wav2vec2-conformer-rel-pos-large", num_labels=num_labels, problem_type="multi_label_classification"
... )

>>> labels = torch.sum(
...     torch.nn.functional.one_hot(predicted_class_ids[None, :].clone(), num_classes=num_labels), dim=1
... ).to(torch.float)
>>> loss = model(**inputs, labels=labels).loss
```

## Wav2Vec2ConformerForAudioFrameClassification[[transformers.Wav2Vec2ConformerForAudioFrameClassification]]

#### transformers.Wav2Vec2ConformerForAudioFrameClassification[[transformers.Wav2Vec2ConformerForAudioFrameClassification]]

```python
transformers.Wav2Vec2ConformerForAudioFrameClassification(config: Wav2Vec2ConformerConfig)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wav2vec2_conformer/modeling_wav2vec2_conformer.py#L1591)

**Parameter:**

config ([Wav2Vec2ConformerConfig](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerConfig)) : Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode [from_pretrained()](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel.from_pretrained) untuk memuat bobot model.

Model Wav2Vec2 Conformer dengan kepala klasifikasi frame di atasnya untuk tugas seperti Speaker Diarization.

Model ini mewarisi dari [PreTrainedModel](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka ini untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran input embeddings, memangkas heads, dll.)

Model ini juga merupakan subclass dari [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

#### forward[[transformers.Wav2Vec2ConformerForAudioFrameClassification.forward]]

```python
forward(input_values: typing.Optional[torch.Tensor], attention_mask: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wav2vec2_conformer/modeling_wav2vec2_conformer.py#L1623)

**Parameter:**

input_values (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`) : Nilai float dari waveform ucapan mentah input. Nilai dapat diperoleh dengan memuat file audio `.flac` atau `.wav` ke dalam array bertipe `list[float]`, `numpy.ndarray`, atau `torch.Tensor`, *misalnya* melalui pustaka torchcodec (`pip install torchcodec`) atau pustaka soundfile (`pip install soundfile`). Untuk menyiapkan array menjadi `input_values`, gunakan [AutoProcessor](/docs/transformers/main/id/model_doc/auto#transformers.AutoProcessor) untuk padding dan konversi menjadi tensor bertipe `torch.Tensor`. Lihat `Wav2Vec2ConformerProcessor.__call__` untuk detailnya.

attention_mask (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Mask untuk menghindari pelaksanaan attention pada indeks token padding. Nilai mask dipilih dalam `[0, 1]`:  - 1 untuk token yang **tidak di-mask**, - 0 untuk token yang **di-mask**.  [Apa itu attention masks?](../glossary#attention-mask)

labels (`torch.LongTensor` dengan bentuk `(batch_size,)`, *opsional*) : Label untuk menghitung loss klasifikasi/regresi urutan. Indeks harus berada dalam `[0, ..., config.num_labels - 1]`. Jika `config.num_labels == 1`, loss regresi dihitung (Mean-Square loss). Jika `config.num_labels > 1`, loss klasifikasi dihitung (Cross-Entropy).

**Mengembalikan:** [TokenClassifierOutput](/docs/transformers/main/id/main_classes/output#transformers.modeling_outputs.TokenClassifierOutput) atau `tuple(torch.Tensor)`

Sebuah [TokenClassifierOutput](/docs/transformers/main/id/main_classes/output#transformers.modeling_outputs.TokenClassifierOutput) atau tuple dari `torch.Tensor` (jika `return_dict=False` diteruskan atau ketika `config.return_dict=False`) yang terdiri dari berbagai elemen tergantung pada konfigurasi ([Wav2Vec2ConformerConfig](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerConfig)) dan input.

Metode forward dari [Wav2Vec2ConformerForAudioFrameClassification](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerForAudioFrameClassification) menimpa metode khusus `__call__`.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance `Module` setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

- **loss** (`torch.Tensor` dengan bentuk `(1,)`, *opsional*, dikembalikan ketika `labels` disediakan) -- Loss klasifikasi.
- **logits** (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, config.num_labels)`) -- Skor klasifikasi (sebelum SoftMax).
- **hidden_states** (`tuple(torch.Tensor)`, *opsional*, dikembalikan saat `output_hidden_states=True` dilewatkan atau saat `config.output_hidden_states=True`) -- Tuple dari `torch.Tensor` (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk `(batch_size, sequence_length, hidden_size)`.

  Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
- **attentions** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_attentions=True` dilewatkan atau ketika `config.output_attentions=True`) -- Tuple dari `torch.Tensor` (satu untuk setiap layer) dengan bentuk `(batch_size, num_heads, sequence_length, sequence_length)`.

  Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala self-attention.

Contoh:

```python
>>> from transformers import AutoFeatureExtractor, Wav2Vec2ConformerForAudioFrameClassification
>>> from datasets import load_dataset
>>> import torch

>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> feature_extractor = AutoFeatureExtractor.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")
>>> model = Wav2Vec2ConformerForAudioFrameClassification.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")

>>> # audio file is decoded on the fly
>>> inputs = feature_extractor(dataset[0]["audio"]["array"], return_tensors="pt", sampling_rate=sampling_rate)
>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> probabilities = torch.sigmoid(logits[0])
>>> # labels is a one-hot array of shape (num_frames, num_speakers)
>>> labels = (probabilities > 0.5).long()
>>> labels[0].tolist()
...
```

## Wav2Vec2ConformerForXVector[[transformers.Wav2Vec2ConformerForXVector]]

#### transformers.Wav2Vec2ConformerForXVector[[transformers.Wav2Vec2ConformerForXVector]]

```python
transformers.Wav2Vec2ConformerForXVector(config: Wav2Vec2ConformerConfig)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wav2vec2_conformer/modeling_wav2vec2_conformer.py#L1737)

**Parameter:**

config ([Wav2Vec2ConformerConfig](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerConfig)) : Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode [from_pretrained()](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel.from_pretrained) untuk memuat bobot model.

Model Wav2Vec2Conformer dengan kepala ekstraksi fitur XVector di atasnya untuk tugas seperti Speaker Verification.

Model ini mewarisi dari [PreTrainedModel](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka ini untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran input embeddings, memangkas heads, dll.)

Model ini juga merupakan subclass dari [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

#### forward[[transformers.Wav2Vec2ConformerForXVector.forward]]

```python
forward(input_values: typing.Optional[torch.Tensor], attention_mask: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wav2vec2_conformer/modeling_wav2vec2_conformer.py#L1787)

**Parameter:**

input_values (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`) : Nilai float dari waveform ucapan mentah input. Nilai dapat diperoleh dengan memuat file audio `.flac` atau `.wav` ke dalam array bertipe `list[float]`, `numpy.ndarray`, atau `torch.Tensor`, *misalnya* melalui pustaka torchcodec (`pip install torchcodec`) atau pustaka soundfile (`pip install soundfile`). Untuk menyiapkan array menjadi `input_values`, gunakan [AutoProcessor](/docs/transformers/main/id/model_doc/auto#transformers.AutoProcessor) untuk padding dan konversi menjadi tensor bertipe `torch.Tensor`. Lihat `Wav2Vec2ConformerProcessor.__call__` untuk detailnya.

attention_mask (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Mask untuk menghindari pelaksanaan attention pada indeks token padding. Nilai mask dipilih dalam `[0, 1]`:  - 1 untuk token yang **tidak di-mask**, - 0 untuk token yang **di-mask**.  [Apa itu attention masks?](../glossary#attention-mask)

labels (`torch.LongTensor` dengan bentuk `(batch_size,)`, *opsional*) : Label untuk menghitung loss klasifikasi/regresi urutan. Indeks harus berada dalam `[0, ..., config.num_labels - 1]`. Jika `config.num_labels == 1`, loss regresi dihitung (Mean-Square loss). Jika `config.num_labels > 1`, loss klasifikasi dihitung (Cross-Entropy).

**Mengembalikan:** [XVectorOutput](/docs/transformers/main/id/main_classes/output#transformers.modeling_outputs.XVectorOutput) atau `tuple(torch.Tensor)`

[XVectorOutput](/docs/transformers/main/id/main_classes/output#transformers.modeling_outputs.XVectorOutput) atau tuple dari `torch.Tensor` (jika `return_dict=False` diteruskan atau ketika `config.return_dict=False`) yang terdiri dari berbagai elemen tergantung pada konfigurasi ([Wav2Vec2ConformerConfig](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerConfig)) dan input.

Metode forward dari [Wav2Vec2ConformerForXVector](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerForXVector) menimpa metode khusus `__call__`.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance `Module` setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

- **loss** (`torch.Tensor` dengan bentuk `(1,)`, *opsional*, dikembalikan ketika `labels` disediakan) -- Loss klasifikasi.
- **logits** (`torch.Tensor` dengan bentuk `(batch_size, config.xvector_output_dim)`) -- Hidden state klasifikasi sebelum AMSoftmax.
- **embeddings** (`torch.Tensor` dengan bentuk `(batch_size, config.xvector_output_dim)`) -- Embedding ucapan yang digunakan untuk pengambilan berbasis kemiripan vektor.
- **hidden_states** (`tuple(torch.Tensor)`, *opsional*, dikembalikan saat `output_hidden_states=True` dilewatkan atau saat `config.output_hidden_states=True`) -- Tuple dari `torch.Tensor` (satu untuk output embeddings + satu untuk output setiap layer) dengan bentuk `(batch_size, sequence_length, hidden_size)`.

  Hidden-states model pada output setiap layer ditambah output embedding awal.
- **attentions** (`tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_attentions=True` dilewatkan atau ketika `config.output_attentions=True`) -- Tuple dari `torch.Tensor` (satu untuk setiap layer) dengan bentuk `(batch_size, num_heads, sequence_length, sequence_length)`.

  Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala self-attention.

Contoh:

```python
>>> from transformers import AutoFeatureExtractor, Wav2Vec2ConformerForXVector
>>> from datasets import load_dataset
>>> import torch

>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> feature_extractor = AutoFeatureExtractor.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")
>>> model = Wav2Vec2ConformerForXVector.from_pretrained("facebook/wav2vec2-conformer-rel-pos-large")

>>> # audio file is decoded on the fly
>>> inputs = feature_extractor(
...     [d["array"] for d in dataset[:2]["audio"]], sampling_rate=sampling_rate, return_tensors="pt", padding=True
... )
>>> with torch.no_grad():
...     embeddings = model(**inputs).embeddings

>>> embeddings = torch.nn.functional.normalize(embeddings, dim=-1).cpu()

>>> # the resulting embeddings can be used for cosine similarity-based retrieval
>>> cosine_sim = torch.nn.CosineSimilarity(dim=-1)
>>> similarity = cosine_sim(embeddings[0], embeddings[1])
>>> threshold = 0.7  # the optimal threshold is dataset-dependent
>>> if similarity < threshold:
...     print("Speakers are not the same!")
>>> round(similarity.item(), 2)
...
```

## Wav2Vec2ConformerForPreTraining[[transformers.Wav2Vec2ConformerForPreTraining]]

#### transformers.Wav2Vec2ConformerForPreTraining[[transformers.Wav2Vec2ConformerForPreTraining]]

```python
transformers.Wav2Vec2ConformerForPreTraining(config: Wav2Vec2ConformerConfig)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wav2vec2_conformer/modeling_wav2vec2_conformer.py#L1200)

**Parameter:**

config ([Wav2Vec2ConformerConfig](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerConfig)) : Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode [from_pretrained()](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel.from_pretrained) untuk memuat bobot model.

Model Wav2Vec2Conformer dengan kuantizer dan head `VQ` di atasnya.

Model ini mewarisi dari [PreTrainedModel](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka ini untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran input embeddings, memangkas heads, dll.)

Model ini juga merupakan subclass dari [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

#### forward[[transformers.Wav2Vec2ConformerForPreTraining.forward]]

```python
forward(input_values: typing.Optional[torch.Tensor], attention_mask: typing.Optional[torch.Tensor] = None, mask_time_indices: typing.Optional[torch.BoolTensor] = None, sampled_negative_indices: typing.Optional[torch.BoolTensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wav2vec2_conformer/modeling_wav2vec2_conformer.py#L1248)

**Parameter:**

input_values (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Nilai float dari waveform ucapan mentah. Nilai dapat diperoleh dengan memuat file audio `.flac` atau `.wav` ke dalam array bertipe `list[float]`, `numpy.ndarray`, atau `torch.Tensor`, *misalnya* melalui pustaka torchcodec (`pip install torchcodec`) atau pustaka soundfile (`pip install soundfile`). Untuk menyiapkan array menjadi `input_values`, gunakan [AutoProcessor](/docs/transformers/main/id/model_doc/auto#transformers.AutoProcessor) untuk padding dan konversi menjadi tensor bertipe `torch.Tensor`. Lihat [Wav2Vec2Processor.__call__()](/docs/transformers/main/id/model_doc/wav2vec2#transformers.Wav2Vec2Processor.__call__) untuk detailnya.

attention_mask (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Mask untuk menghindari pelaksanaan attention pada indeks token padding. Nilai mask dipilih dalam `[0, 1]`:  - 1 untuk token yang **tidak di-mask**, - 0 untuk token yang **di-mask**.  [Apa itu attention masks?](../glossary#attention-mask)

mask_time_indices (`torch.BoolTensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Indeks untuk memasker fitur yang diekstrak untuk kerugian kontrastif. Saat dalam mode pelatihan, model belajar memprediksi fitur yang diekstrak dan dimasker dalam ruang *config.proj_codevector_dim*.

sampled_negative_indices (`torch.BoolTensor` dengan bentuk `(batch_size, sequence_length, num_negatives)`, *opsional*) : Indeks yang menunjukkan vektor target terkuantisasi mana yang digunakan sebagai vektor sampel negatif dalam kerugian kontras. Input yang diperlukan untuk pra-pelatihan.

**Mengembalikan:** [Wav2Vec2ConformerForPreTrainingOutput](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.models.wav2vec2_conformer.modeling_wav2vec2_conformer.Wav2Vec2ConformerForPreTrainingOutput) atau `tuple(torch.Tensor)`

Sebuah [Wav2Vec2ConformerForPreTrainingOutput](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.models.wav2vec2_conformer.modeling_wav2vec2_conformer.Wav2Vec2ConformerForPreTrainingOutput) atau tuple dari `torch.Tensor` (jika `return_dict=False` diteruskan atau ketika `config.return_dict=False`) yang terdiri dari berbagai elemen tergantung pada konfigurasi ([Wav2Vec2ConformerConfig](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerConfig)) dan input.

Metode forward dari [Wav2Vec2ConformerForPreTraining](/docs/transformers/main/id/model_doc/wav2vec2-conformer#transformers.Wav2Vec2ConformerForPreTraining) menimpa metode khusus `__call__`.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance `Module` setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

- **loss** (`*optional*`, dikembalikan saat `sample_negative_indices` diberikan, `torch.Tensor` dengan bentuk `(1,)`) -- Total loss sebagai jumlah dari contrastive loss (L_m) dan diversity loss (L_d) sebagaimana dinyatakan dalam [paper resmi](https://huggingface.co/papers/2006.11477).
- **projected_states** (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, config.proj_codevector_dim)`) -- Hidden-states dari model yang diproyeksikan ke *config.proj_codevector_dim* yang dapat digunakan untuk memprediksi state kuantisasi terproyeksi yang ter-mask.
- **projected_quantized_states** (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, config.proj_codevector_dim)`) -- Vektor fitur tereksstrak terkuantisasi yang diproyeksikan ke *config.proj_codevector_dim*, yang mewakili vektor target positif untuk kerugian kontras (contrastive loss).
- **codevector_perplexity** (`torch.Tensor` dengan bentuk `(1,)`) -- Perplexity dari distribusi codevector, digunakan untuk mengukur keragaman codebook.
- **hidden_states** (`tuple[torch.Tensor]`, *opsional*, dikembalikan ketika `output_hidden_states=True` dilewatkan atau ketika `config.output_hidden_states=True`) -- Tuple dari `torch.Tensor` (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk `(batch_size, sequence_length, hidden_size)`.

  Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
- **attentions** (`tuple[torch.Tensor]`, *opsional*, dikembalikan ketika `output_attentions=True` dilewatkan atau ketika `config.output_attentions=True`) -- Tuple dari `torch.Tensor` (satu untuk setiap layer) dengan bentuk `(batch_size, num_heads, sequence_length, sequence_length)`.

  Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala self-attention.
- **contrastive_loss** (`*optional*`, dikembalikan ketika `sample_negative_indices` diberikan, `torch.Tensor` dengan bentuk `(1,)`) -- Kehilangan kontras (L_m) sebagaimana dinyatakan dalam [makalah resmi](https://huggingface.co/papers/2006.11477).
- **diversity_loss** (`*optional*`, returned when `sample_negative_indices` are passed, `torch.Tensor` of shape `(1,)`) -- The diversity loss (L_d) as stated in the [official paper](https://huggingface.co/papers/2006.11477).

Contoh:

```python
>>> import torch
>>> from transformers import AutoFeatureExtractor, Wav2Vec2ConformerForPreTraining
>>> from transformers.models.wav2vec2_conformer.modeling_wav2vec2_conformer import _compute_mask_indices, _sample_negative_indices
>>> from datasets import load_dataset

>>> feature_extractor = AutoFeatureExtractor.from_pretrained("facebook/wav2vec2_conformer-base")
>>> model = Wav2Vec2ConformerForPreTraining.from_pretrained("facebook/wav2vec2_conformer-base")

>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> input_values = feature_extractor(ds[0]["audio"]["array"], return_tensors="pt").input_values  # Batch size 1

>>> # compute masked indices
>>> batch_size, raw_sequence_length = input_values.shape
>>> sequence_length = model._get_feat_extract_output_lengths(raw_sequence_length).item()
>>> mask_time_indices = _compute_mask_indices(
...     shape=(batch_size, sequence_length), mask_prob=0.2, mask_length=2
... )
>>> sampled_negative_indices = _sample_negative_indices(
...     features_shape=(batch_size, sequence_length),
...     num_negatives=model.config.num_negatives,
...     mask_time_indices=mask_time_indices,
... )
>>> mask_time_indices = torch.tensor(data=mask_time_indices, device=input_values.device, dtype=torch.long)
>>> sampled_negative_indices = torch.tensor(
...     data=sampled_negative_indices, device=input_values.device, dtype=torch.long
... )

>>> with torch.no_grad():
...     outputs = model(input_values, mask_time_indices=mask_time_indices)

>>> # compute cosine similarity between predicted (=projected_states) and target (=projected_quantized_states)
>>> cosine_sim = torch.cosine_similarity(outputs.projected_states, outputs.projected_quantized_states, dim=-1)

>>> # show that cosine similarity is much higher than random
>>> cosine_sim[mask_time_indices.to(torch.bool)].mean() > 0.5
tensor(True)

>>> # for contrastive loss training model should be put into train mode
>>> model = model.train()
>>> loss = model(
...     input_values, mask_time_indices=mask_time_indices, sampled_negative_indices=sampled_negative_indices
... ).loss
```

