# WavLM

## Genel Bakış

WavLM modeli, Sanyuan Chen, Chengyi Wang, Zhengyang Chen, Yu Wu, Shujie Liu, Zhuo Chen, Jinyu Li, Naoyuki Kanda, Takuya Yoshioka, Xiong Xiao, Jian Wu, Long Zhou, Shuo Ren, Yanmin Qian, Yao Qian, Jian Wu, Michael Zeng ve Furu Wei tarafından [WavLM: Large-Scale Self-Supervised Pre-Training for Full Stack Speech Processing](https://huggingface.co/papers/2110.13900) makalesinde önerilmiştir.

Makalenin özeti aşağıdaki gibidir:

*Özdenetimli öğrenme (SSL), konuşma tanıma alanında büyük başarılar elde ederken, diğer konuşma işleme görevleri için sınırlı bir keşif yapılmıştır. Konuşma sinyali, konuşmacı kimliği, paralinguistikler, söylenen içerik gibi çok yönlü bilgiler içerdiğinden, tüm konuşma görevleri için evrensel temsiller öğrenmek zordur. Bu makalede, tam yığın aşağı akış konuşma görevlerini çözmek için yeni bir önceden eğitilmiş model olan WavLM'yi öneriyoruz. WavLM, HuBERT çerçevesi üzerine inşa edilmiş olup hem söylenen içeriğin modellenmesine hem de konuşmacı kimliğinin korunmasına odaklanmaktadır. Öncelikle, tanıma görevlerindeki yeteneğini artırmak için Transformer yapısını kapılı göreli konum sapmasıyla donatıyoruz. Daha iyi konuşmacı ayrımı için, ek olarak üst üste binen cümlelerin denetimsiz olarak oluşturulduğu ve model eğitimi sırasında dahil edildiği bir cümle karıştırma eğitim stratejisi öneriyoruz. Son olarak, eğitim veri setini 60 bin saatten 94 bin saate ölçeklendiriyoruz. WavLM Large, SUPERB yığınında en iyi performansı elde etmekte ve çeşitli konuşma işleme görevlerinin temsilci yığınlarında önemli iyileştirmeler sağlamaktadır.*

İlgili kontrol noktaları https://huggingface.co/models?other=wavlm altında bulunabilir.

Bu model [patrickvonplaten](https://huggingface.co/patrickvonplaten) tarafından katkıda bulunmuştur. Yazarların kodu [burada](https://github.com/microsoft/unilm/tree/master/wavlm) bulunabilir.

## Kullanım ipuçları

- WavLM, ses sinyalinin ham dalga formuna karşılık gelen bir float dizisi kabul eden bir ses modelidir. Özellik çıkarımı için lütfen [Wav2Vec2Processor](/docs/transformers/main/tr/model_doc/wav2vec2#transformers.Wav2Vec2Processor) kullanın.
- WavLM modeli, bağlantısal zaman sınıflandırması (CTC) kullanılarak ince ayarlanabilir; bu nedenle model çıktısının [Wav2Vec2CTCTokenizer](/docs/transformers/main/tr/model_doc/wav2vec2#transformers.Wav2Vec2CTCTokenizer) ile çözümlenmesi gerekir.
- WavLM, konuşmacı doğrulama, konuşmacı tanıma ve konuşmacı ayrıştırma görevlerinde özellikle iyi performans gösterir.

## Kaynaklar

- [Ses sınıflandırma görevi kılavuzu](../tasks/audio_classification)
- [Otomatik konuşma tanıma görevi kılavuzu](../tasks/asr)

## WavLMConfig[[transformers.WavLMConfig]]

#### transformers.WavLMConfig[[transformers.WavLMConfig]]

```python
transformers.WavLMConfig(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 = 32, 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, 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, num_buckets: int = 320, max_bucket_distance: int = 800, do_stable_layer_norm: bool = False, 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, 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 = 'mean', 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, num_ctc_classes: int = 80, 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)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wavlm/configuration_wavlm.py#L27)

**Parametreler:**

vocab_size (`int`, *isteğe bağlı*, varsayılan `32`) : Modelin sözlük boyutu. `input_ids` tarafından temsil edilebilecek farklı token sayısını tanımlar.

hidden_size (`int`, *isteğe bağlı*, varsayılan `768`) : Gizli temsillerin boyutu.

num_hidden_layers (`int`, *isteğe bağlı*, varsayılan `12`) : Transformer decoder'ındaki gizli katman sayısı.

num_attention_heads (`int`, *isteğe bağlı*, varsayılan `12`) : Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı.

intermediate_size (`int`, *isteğe bağlı*, varsayılan `3072`) : MLP temsil boyutu.

hidden_act (`str`, *isteğe bağlı*, varsayılan `gelu`) : Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin, `"gelu"`, `"relu"`, `"silu"` vb.

hidden_dropout (`Union[float, int]`, *isteğe bağlı*, varsayılan `0.1`) : Gömme, kodlayıcı ve havuzlayıcıdaki tüm tam bağlı katmanlar için dropout olasılığı.

activation_dropout (`Union[float, int]`, *isteğe bağlı*, varsayılan `0.1`) : Tamamen bağlı katmandaki aktivasyonlar için dropout oranı.

attention_dropout (`Union[float, int]`, *isteğe bağlı*, varsayılan `0.1`) : Dikkat olasılıkları için dropout oranı.

feat_proj_dropout (`float`, *opsiyonel*, varsayılan 0.0) : Özellik kodlayıcısının çıktısı için dropout olasılığı.

final_dropout (`float`, *opsiyonel*, varsayılan 0.1) : [WavLMForCTC](/docs/transformers/main/tr/model_doc/wavlm#transformers.WavLMForCTC)'nin son projeksiyon katmanı için dropout olasılığı.

layerdrop (`Union[float, int]`, *isteğe bağlı*, varsayılan `0.1`) : LayerDrop olasılığı. Daha fazla ayrıntı için [LayerDrop makalesine](see https://huggingface.co/papers/1909.11556) bakın.

initializer_range (`float`, *opsiyonel*, varsayılan `0.02`) : Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.

layer_norm_eps (`float`, *opsiyonel*, varsayılan `1e-05`) : Katman normalizasyonu katmanları tarafından kullanılan epsilon.

feat_extract_norm (`str`, *isteğe bağlı*, varsayılan `"group"`) : Özellik kodlayıcıdaki 1B konvolüsyonel katmanlara uygulanacak norm. Sadece ilk 1B konvolüsyonel katman için grup normalizasyonu olan `"group"` veya tüm 1B konvolüsyonel katmanlar için katman normalizasyonu olan `"layer"` değerlerinden biri.

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]` veya `list[int]`, *isteğe bağlı*, varsayılan `(512, 512, 512, 512, 512, 512, 512)`) : Özellik kodlayıcıdaki her 1D konvolüsyon katmanının giriş ve çıkış kanal sayısını tanımlayan tamsayılardan oluşan bir demet. *conv_dim*'in uzunluğu, 1D konvolüsyon katmanlarının sayısını belirler.

conv_stride (`tuple[int]` veya `list[int]`, *isteğe bağlı*, varsayılan `(5, 2, 2, 2, 2, 2, 2)`) : Özellik kodlayıcıdaki her 1D konvolüsyon katmanının adımını (stride) tanımlayan tamsayılardan oluşan bir demet. *conv_stride*'un uzunluğu, konvolüsyon katmanlarının sayısını belirler ve *conv_dim*'in uzunluğuyla eşleşmelidir.

conv_kernel (`tuple[int]` veya `list[int]`, *isteğe bağlı*, varsayılan `(10, 3, 3, 3, 3, 3, 3)`) : Özellik kodlayıcıdaki her 1D konvolüsyonel katmanın çekirdek boyutunu tanımlayan tamsayılar dizisi. *conv_kernel*'ın uzunluğu, konvolüsyonel katmanların sayısını belirler ve *conv_dim*'ın uzunluğuyla eşleşmelidir.

conv_bias (`bool`, *isteğe bağlı*, varsayılan `False`) : 1B konvolüsyonel katmanların bir sapma (bias) içerip içermediğini belirtir.

num_conv_pos_embeddings (`int`, *isteğe bağlı*, varsayılan 128) : Konvolüsyonel konumsal gömme sayısı. 1D konvolüsyonel konumsal gömme katmanının çekirdek boyutunu tanımlar.

num_conv_pos_embedding_groups (`int`, *isteğe bağlı*, varsayılan 16) : 1D konvolüsyonel konumsal gömme katmanının grup sayısı.

num_buckets (`int`, *isteğe bağlı*, varsayılan 320) : Her dikkat katmanı için kullanılacak kovadaki sayı

max_bucket_distance (`int`, *isteğe bağlı*, varsayılan 800) : Maksimum varil mesafesi

do_stable_layer_norm (`bool`, *isteğe bağlı*, varsayılan `False`) : Transformer kodlayıcısının *kararlı* katman normu mimarisinin uygulanıp uygulanmayacağını belirtir. `do_stable_layer_norm is True`, katman normunun dikkat katmanından önce uygulanmasına karşılık gelirken, `do_stable_layer_norm is False` katman normunun dikkat katmanından sonra uygulanmasına karşılık gelir.

apply_spec_augment (`bool`, *isteğe bağlı*, varsayılan `True`) : Özellik kodlayıcısının çıktılarında *SpecAugment* veri artırma uygulamasının yapılıp yapılmayacağını belirtir. Referans için [SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition](https://huggingface.co/papers/1904.08779) makalesine bakınız.

mask_time_prob (`float`, *opsiyonel*, varsayılan 0.05) : Zaman ekseni boyunca her özellik vektörünün, maskelenecek vektör aralığının başlangıcı olarak seçilme olasılığı. Yaklaşık olarak `mask_time_prob * sequence_length // mask_time_length` özellik vektörü, zaman ekseni boyunca maskelenecektir. Bu, yalnızca `apply_spec_augment is True` ise geçerlidir.

mask_time_length (`int`, *isteğe bağlı*, varsayılan 10) : Zaman ekseni boyunca vektör aralığının uzunluğu.

mask_time_min_masks (`int`, *opsiyonel*, varsayılan 2), : `mask_feature_prob` değerinden bağımsız olarak, zaman ekseninde üretilen, her zaman adımında, `mask_feature_length` uzunluğundaki maskelerin minimum sayısı. Yalnızca ''mask_time_prob*len(time_axis)/mask_time_length < mask_time_min_masks'' durumu geçerliyse ilgili.

mask_feature_prob (`float`, *opsiyonel*, varsayılan 0.0) : Özellik ekseni boyunca her özellik vektörünün, maskelenecek vektör aralığının başlangıcı olarak seçilme olasılığı. Yaklaşık olarak `mask_time_prob * hidden_size // mask_time_length` özellik vektörü zaman ekseni boyunca maskelenecektir. Bu, yalnızca `apply_spec_augment is True` ise geçerlidir.

mask_feature_prob (`Union[float, int]`, *isteğe bağlı*, varsayılan `0.0`) : Özellik ekseni boyunca, maskelenmesi istenen tüm özellik vektörlerinin yüzdesi (0 ile 1 arasında). Maskeleme işlemi, eksen üzerinde `mask_feature_prob*len(feature_axis)/mask_time_length` bağımsız maske üretir. Maskelenecek vektör aralığının başlangıcı olarak seçilecek her özellik vektörünün olasılığından yola çıkarak akıl yürütülürse, *mask_feature_prob* değeri `prob_vector_start*mask_feature_length` olmalıdır. Dikkat edin, örtüşme, maskelenen vektörlerin gerçek yüzdesini azaltabilir. Bu, yalnızca `apply_spec_augment` değeri `True` ise geçerlidir.

mask_feature_length (`int`, *isteğe bağlı*, varsayılan 10) : Özellik ekseni boyunca vektör aralığının uzunluğu.

num_codevectors_per_group (`int`, *isteğe bağlı*, varsayılan 320) : Her kuantizasyon kod kitabındaki (gruptaki) giriş sayısı.

num_codevector_groups (`int`, *isteğe bağlı*, varsayılan 2) : Ürün kod vektörü kuantizasyonu için kod vektörü gruplarının sayısı.

contrastive_logits_temperature (`float`, *isteğe bağlı*, varsayılan 0.1) : Karşıtlık kaybındaki *kappa* sıcaklığı.

num_negatives (`int`, *isteğe bağlı*, varsayılan 100) : Karşıtlık kaybı için negatif örnek sayısı.

codevector_dim (`int`, *isteğe bağlı*, varsayılan 256) : Kuantize edilmiş özellik vektörlerinin boyutluluğu.

proj_codevector_dim (`int`, *isteğe bağlı*, varsayılan 256) : Hem kuantize hem de dönüştürücü özelliklerinin son projeksiyonunun boyutluluğu.

diversity_loss_weight (`int`, *opsiyonel*, varsayılan 0.1) : Kod kitabı çeşitlilik kaybı bileşeninin ağırlığı.

ctc_loss_reduction (`str`, *isteğe bağlı*, varsayılan `mean`) : `torch.nn.CTCLoss` çıktısına uygulanacak indirgemeyi belirtir. Yalnızca eğitim sırasında geçerlidir.

ctc_zero_infinity (`bool`, *isteğe bağlı*, varsayılan `False`) : `torch.nn.CTCLoss`'ün sonsuz kayıplarını ve ilişkili gradyanlarını sıfırlayıp sıfırlamayacağını belirtir. Sonsuz kayıplar, girdilerin hedeflerle hizalanmak için çok kısa olması durumunda ortaya çıkar. Yalnızca bir [WavLMForCTC](/docs/transformers/main/tr/model_doc/wavlm#transformers.WavLMForCTC) örneği eğitilirken geçerlidir.

use_weighted_layer_sum (`bool`, *isteğe bağlı*, varsayılan `False`) : Öğrenmiş ağırlıklara sahip katman çıktıları ağırlıklı ortalamasının kullanılıp kullanılmayacağını belirtir. Yalnızca [WavLMForSequenceClassification](/docs/transformers/main/tr/model_doc/wavlm#transformers.WavLMForSequenceClassification) bir örneği kullanıldığında geçerlidir.

classifier_proj_size (`int`, *opsiyonel*, varsayılan 256) : Sınıflandırma için token ortalama havuzlamadan önceki projeksiyonun boyutluluğu.

tdnn_dim (`tuple[int]` veya `list[int]`, *isteğe bağlı*, varsayılan `(512, 512, 512, 512, 1500)`) : *XVector* modelinin *TDNN* modülündeki her bir 1D konvolüsyon katmanının çıktı kanal sayısını tanımlayan tamsayılardan oluşan bir demet. *tdnn_dim*'in uzunluğu, *TDNN* katmanlarının sayısını belirler.

tdnn_kernel (`tuple[int]` veya `list[int]`, *isteğe bağlı*, varsayılan `(5, 3, 3, 1, 1)`) : *XVector* modelinin *TDNN* modülündeki her bir 1D konvolüsyon katmanının çekirdek boyutunu tanımlayan tamsayılar dizisi. *tdnn_kernel*'ın uzunluğu, *tdnn_dim*'in uzunluğuyla eşleşmelidir.

tdnn_dilation (`tuple[int]` veya `list[int]`, *isteğe bağlı*, varsayılan `(1, 2, 3, 1, 1)`) : *XVector* modelinin *TDNN* modülündeki her bir 1D konvolüsyon katmanının dilasyon çarpanını tanımlayan tamsayılar dizisi. *tdnn_dilation*'ın uzunluğu, *tdnn_dim*'in uzunluğuyla eşleşmelidir.

xvector_output_dim (`int`, *isteğe bağlı*, varsayılan 512) : *XVector* gömme vektörlerinin boyutluluğu.

num_ctc_classes (`int`, *isteğe bağlı*, varsayılan 80) : Fonem düzeyinde CTC kaybı için sınıf sayısını (fonem jetonları ve boş jeton) belirtir. Yalnızca [UniSpeechForPreTraining](/docs/transformers/main/tr/model_doc/unispeech#transformers.UniSpeechForPreTraining) bir örneği kullanıldığında geçerlidir.

pad_token_id (`int`, *isteğe bağlı*, varsayılan `0`) : Sözlükte dolgu için kullanılan token kimliği.

bos_token_id (`int`, *isteğe bağlı*, varsayılan `1`) : Sözlükte akış başlangıcı için kullanılan token kimliği.

eos_token_id (`Union[int, list[int]]`, *isteğe bağlı*, varsayılan `2`) : Sözlükte akış sonu için kullanılan token kimliği.

add_adapter (`bool`, *isteğe bağlı*, varsayılan `False`) : Wav2Vec2 Encoder'ın üzerine konvolüsyonel bir ağ yığılmalı mı? SpeechEncoderDecoder modelleri için Wav2Vec2'yi başlatmada (warm-start) çok faydalı olabilir.

adapter_kernel_size (`int`, *opsiyonel*, varsayılan 3) : Adaptör ağındaki konvolüsyon katmanlarının çekirdek boyutu. Yalnızca `add_adapter is True` ise geçerlidir.

adapter_stride (`int`, *opsiyonel*, varsayılan 2) : Adaptör ağındaki konvolüsyon katmanlarının adım boyutu. Yalnızca `add_adapter is True` ise geçerlidir.

num_adapter_layers (`int`, *opsiyonel*, varsayılan 3) : Adaptör ağında kullanılması gereken konvolüsyonel katman sayısı. Yalnızca `add_adapter is True` ise geçerlidir.

output_hidden_size (`int`, *opsiyonel*) : Kodlayıcı çıktı katmanının boyutluluğu. Tanımlanmamışsa, bu varsayılan olarak *hidden-size* değerini alır. Yalnızca `add_adapter is True` ise geçerlidir.

Bu, bir WavLMModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Wavlm modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılanlarla bir yapılandırma örneği oluşturmak, [microsoft/wavlm-base](https://huggingface.co/microsoft/wavlm-base) ile benzer bir yapılandırmaya yol açar.

Yapılandırma nesneleri [PreTrainedConfig](/docs/transformers/main/tr/main_classes/configuration#transformers.PreTrainedConfig) sınıfından türetilir ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için [PreTrainedConfig](/docs/transformers/main/tr/main_classes/configuration#transformers.PreTrainedConfig) belgesini okuyun.

Örnek:

```python

```

Örnek:

```python
>>> from transformers import WavLMConfig, WavLMModel

>>> # Initializing a WavLM facebook/wavlm-base-960h style configuration
>>> configuration = WavLMConfig()

>>> # Initializing a model (with random weights) from the facebook/wavlm-base-960h style configuration
>>> model = WavLMModel(configuration)

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

## WavLMModel[[transformers.WavLMModel]]

#### transformers.WavLMModel[[transformers.WavLMModel]]

```python
transformers.WavLMModel(config: WavLMConfig)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wavlm/modeling_wavlm.py#L949)

**Parametreler:**

config ([WavLMConfig](/docs/transformers/main/tr/model_doc/wavlm#transformers.WavLMConfig)) : Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için [from_pretrained()](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine bakın.

Üzerinde herhangi bir özel head olmadan ham hidden-states çıkaran çıplak Wavlm Model.

Bu model [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel) sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

#### forward[[transformers.WavLMModel.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'>)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wavlm/modeling_wavlm.py#L1023)

**Parametreler:**

input_values (`torch.Tensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Girdi ham ses dalgasının float değerleri. Değerler, bir `.flac` veya `.wav` ses dosyasını `list[float]` tipinde bir diziye, `numpy.ndarray` veya `torch.Tensor` içine yükleyerek elde edilebilir; *örneğin* torchcodec kütüphanesi (`pip install torchcodec`) veya soundfile kütüphanesi (`pip install soundfile`) aracılığıyla. Diziyi `input_values` için hazırlamak için, `torch.Tensor` tipinde bir tensöre dolgu ve dönüştürme amacıyla [AutoProcessor](/docs/transformers/main/tr/model_doc/auto#transformers.AutoProcessor) kullanılmalıdır. Ayrıntılar için [Wav2Vec2Processor.__call__()](/docs/transformers/main/tr/model_doc/wav2vec2#transformers.Wav2Vec2Processor.__call__) bölümüne bakın.

attention_mask (`torch.Tensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Dolgu (padding) token indekslerinde dikkat (attention) işleminin uygulanmamasını sağlayan maske. `[0, 1]` aralığında seçilen maske değerleri:  - **maske uygulanmayan** tokenlar için 1, - **maske uygulanan** tokenlar için 0.  [Dikkat maskeleri nelerdir?](../glossary#attention-mask)

mask_time_indices (`torch.BoolTensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Karşıtlı kayıp için çıkarılan özellikleri maskelemek üzere kullanılacak indeksler. Eğitim modundayken, model *config.proj_codevector_dim* uzayında maskelenmiş çıkarılan özellikleri tahmin etmeyi öğrenir.

**Dönüş:** [Wav2Vec2BaseModelOutput](/docs/transformers/main/tr/model_doc/wav2vec2#transformers.modeling_outputs.Wav2Vec2BaseModelOutput) veya `tuple(torch.Tensor)`

[Wav2Vec2BaseModelOutput](/docs/transformers/main/tr/model_doc/wav2vec2#transformers.modeling_outputs.Wav2Vec2BaseModelOutput) veya bir `torch.Tensor` demeti (eğer `return_dict=False` geçirildiyse veya `config.return_dict=False` ise), yapılandırma ([WavLMConfig](/docs/transformers/main/tr/model_doc/wavlm#transformers.WavLMConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[WavLMModel](/docs/transformers/main/tr/model_doc/wavlm#transformers.WavLMModel) forward metodu, `__call__` özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine `Module` örneğini çağırmak gerekir; çünkü ilki ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

- **last_hidden_state** (`torch.Tensor`, şekli `(batch_size, sequence_length, hidden_size)`) -- Modelin son katmanının çıktısındaki gizli durumlar dizisi.
- **extract_features** (`torch.Tensor`, şekli `(batch_size, sequence_length, conv_dim[-1])`) -- Modelin son konvolüsyon katmanından çıkarılan özellik vektörlerinin dizisi.
- **hidden_states** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_hidden_states=True` geçirildiğinde veya `config.output_hidden_states=True` olduğunda döndürülür) -- `torch.Tensor` (gömme çıktısı için bir tane + her katman çıktısı için bir tane) içeren, `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Her katmanın çıktısında modelin gizli durumları ve başlangıç gömme çıktıları.
- **attentions** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_attentions=True` geçirildiğinde veya `config.output_attentions=True` olduğunda döndürülür) -- `torch.Tensor` (her katman için bir tane) içeren bir tuple, şekli `(batch_size, num_heads, sequence_length, sequence_length)`.

  Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

## WavLMForCTC[[transformers.WavLMForCTC]]

#### transformers.WavLMForCTC[[transformers.WavLMForCTC]]

```python
transformers.WavLMForCTC(config: WavLMConfig, target_lang: str | None = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wavlm/modeling_wavlm.py#L1074)

**Parametreler:**

config ([WavLMConfig](/docs/transformers/main/tr/model_doc/wavlm#transformers.WavLMConfig)) : Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için [from_pretrained()](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine bakın.

target_lang (`str`, *isteğe bağlı*) : Adaptör ağırlıklarının dil kimliği. Adaptör ağırlıkları adapter..safetensors veya adapter..bin biçiminde saklanır. Sadece adaptörlerle bir [WavLMForCTC](/docs/transformers/main/tr/model_doc/wavlm#transformers.WavLMForCTC) örneği kullanıldığında geçerlidir. Varsayılan olarak 'eng' kullanılır.

Üzerinde Bağlantıcı Zaman Sınıflandırması (CTC) için `language modeling` kafası bulunan WavLM Modeli.

Bu model [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel) sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

#### forward[[transformers.WavLMForCTC.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'>)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wavlm/modeling_wavlm.py#L1143)

**Parametreler:**

input_values (`torch.Tensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Girdi ham ses dalgasının float değerleri. Değerler, bir `.flac` veya `.wav` ses dosyasını `list[float]` tipinde bir diziye, `numpy.ndarray` veya `torch.Tensor` içine yükleyerek elde edilebilir; *örneğin* torchcodec kütüphanesi (`pip install torchcodec`) veya soundfile kütüphanesi (`pip install soundfile`) aracılığıyla. Diziyi `input_values` için hazırlamak için, `torch.Tensor` tipinde bir tensöre dolgu ve dönüştürme amacıyla [AutoProcessor](/docs/transformers/main/tr/model_doc/auto#transformers.AutoProcessor) kullanılmalıdır. Ayrıntılar için [Wav2Vec2Processor.__call__()](/docs/transformers/main/tr/model_doc/wav2vec2#transformers.Wav2Vec2Processor.__call__) bölümüne bakın.

attention_mask (`torch.Tensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Dolgu (padding) token indekslerinde dikkat (attention) işleminin uygulanmamasını sağlayan maske. `[0, 1]` aralığında seçilen maske değerleri:  - **maske uygulanmayan** tokenlar için 1, - **maske uygulanan** tokenlar için 0.  [Dikkat maskeleri nelerdir?](../glossary#attention-mask)

labels (`torch.LongTensor`, şekli `(batch_size, target_length)`, *isteğe bağlı*) : Bağlantılı zaman sınıflandırması için etiketler. Not: `target_length`, çıktı logitlerinin dizi uzunluğundan küçük veya eşit olmalıdır. Endeksler `[-100, 0, ..., config.vocab_size - 1]` aralığından seçilir. `-100` olarak ayarlanan tüm etiketler yok sayılır (maske uygulanır), kayıp yalnızca `[0, ..., config.vocab_size - 1]` aralığındaki etiketler için hesaplanır.

**Dönüş:** [CausalLMOutput](/docs/transformers/main/tr/main_classes/output#transformers.modeling_outputs.CausalLMOutput) veya `tuple(torch.Tensor)`

[CausalLMOutput](/docs/transformers/main/tr/main_classes/output#transformers.modeling_outputs.CausalLMOutput) veya `torch.Tensor` bir demeti (`return_dict=False` geçirildiğinde veya `config.return_dict=False` olduğunda), yapılandırmaya ([WavLMConfig](/docs/transformers/main/tr/model_doc/wavlm#transformers.WavLMConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[WavLMForCTC](/docs/transformers/main/tr/model_doc/wavlm#transformers.WavLMForCTC) forward metodu, `__call__` özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine `Module` örneğini çağırmak gerekir; çünkü ilki ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

- **loss** (`torch.Tensor`, şekli `(1,)`, *isteğe bağlı*, `labels` sağlandığında döndürülür) -- Dil modelleme kaybı (sonraki token tahmini için).
- **logits** (`torch.Tensor`, şekli `(batch_size, sequence_length, config.vocab_size)`) -- Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar).
- **hidden_states** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_hidden_states=True` geçirildiğinde veya `config.output_hidden_states=True` olduğunda döndürülür) -- `torch.Tensor` (gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) içeren, `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
- **attentions** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_attentions=True` geçirildiğinde veya `config.output_attentions=True` olduğunda döndürülür) -- `torch.Tensor` (her katman için bir tane) içeren bir tuple, şekli `(batch_size, num_heads, sequence_length, sequence_length)`.

  Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Örnek:

```python
>>> from transformers import AutoProcessor, WavLMForCTC
>>> 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("microsoft/wavlm-base")
>>> model = WavLMForCTC.from_pretrained("microsoft/wavlm-base")

>>> # 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)
...
```

## WavLMForSequenceClassification[[transformers.WavLMForSequenceClassification]]

#### transformers.WavLMForSequenceClassification[[transformers.WavLMForSequenceClassification]]

```python
transformers.WavLMForSequenceClassification(config: WavLMConfig)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wavlm/modeling_wavlm.py#L1201)

**Parametreler:**

config ([WavLMConfig](/docs/transformers/main/tr/model_doc/wavlm#transformers.WavLMConfig)) : Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için [from_pretrained()](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine bakın.

Üstünde bir dizi sınıflandırma kafası (toplanmış çıktı üzerinde doğrusal bir katman) bulunan, SUPERB Anahtar Kelime Tespiti gibi görevler için kullanılan WavLM Modeli.

Bu model [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel) sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

#### forward[[transformers.WavLMForSequenceClassification.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'>)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wavlm/modeling_wavlm.py#L1234)

**Parametreler:**

input_values (`torch.Tensor`, şekli `(batch_size, sequence_length)`) : Girdi ham ses dalgasının float değerleri. Değerler, bir `.flac` veya `.wav` ses dosyasını `list[float]` tipinde bir diziye, `numpy.ndarray` veya `torch.Tensor` içine yükleyerek elde edilebilir, *örneğin* torchcodec kütüphanesi (`pip install torchcodec`) veya soundfile kütüphanesi (`pip install soundfile`) aracılığıyla. Diziyi `input_values` için hazırlamak için, [AutoProcessor](/docs/transformers/main/tr/model_doc/auto#transformers.AutoProcessor) dolguyu (padding) ve `torch.Tensor` tipinde bir tensöre dönüştürmeyi uygulamak üzere kullanılmalıdır. Ayrıntılar için `WavLMProcessor.__call__` bölümüne bakın.

attention_mask (`torch.Tensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Dolgu (padding) token indekslerinde dikkat (attention) işleminin uygulanmamasını sağlayan maske. `[0, 1]` aralığında seçilen maske değerleri:  - **maske uygulanmayan** tokenlar için 1, - **maske uygulanan** tokenlar için 0.  [Dikkat maskeleri nelerdir?](../glossary#attention-mask)

labels (`torch.LongTensor`, şekli `(batch_size,)`, *isteğe bağlı*) : Sınıflandırma/geri dönüş kaybını hesaplamak için etiketler. Endeksler `[0, ..., config.num_labels - 1]` aralığında olmalıdır. `config.num_labels == 1` ise bir geri dönüş kaybı (Ortalama Kare kaybı) hesaplanır, `config.num_labels > 1` ise bir sınıflandırma kaybı (Çapraz Entropi) hesaplanır.

**Dönüş:** [SequenceClassifierOutput](/docs/transformers/main/tr/main_classes/output#transformers.modeling_outputs.SequenceClassifierOutput) veya `tuple(torch.Tensor)`

[SequenceClassifierOutput](/docs/transformers/main/tr/main_classes/output#transformers.modeling_outputs.SequenceClassifierOutput) veya bir `torch.Tensor` demeti (eğer `return_dict=False` geçirildiyse veya `config.return_dict=False` ise), yapılandırmaya ([WavLMConfig](/docs/transformers/main/tr/model_doc/wavlm#transformers.WavLMConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[WavLMForSequenceClassification](/docs/transformers/main/tr/model_doc/wavlm#transformers.WavLMForSequenceClassification) forward metodu, `__call__` özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine `Module` örneğini çağırmak gerekir; çünkü ilki ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

- **loss** (`torch.Tensor`, şekli `(1,)`, *isteğe bağlı*, `labels` sağlandığında döndürülür) -- Sınıflandırma (config.num_labels==1 ise regresyon) kaybı.
- **logits** (`torch.Tensor`, şekli `(batch_size, config.num_labels)`) -- Sınıflandırma (veya config.num_labels==1 ise regresyon) puanları (SoftMax öncesi).
- **hidden_states** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_hidden_states=True` geçirildiğinde veya `config.output_hidden_states=True` olduğunda döndürülür) -- `torch.Tensor` (gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) içeren, `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
- **attentions** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_attentions=True` geçirildiğinde veya `config.output_attentions=True` olduğunda döndürülür) -- `torch.Tensor` (her katman için bir tane) içeren bir tuple, şekli `(batch_size, num_heads, sequence_length, sequence_length)`.

  Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Tek etiketli sınıflandırma örneği:

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

>>> tokenizer = AutoTokenizer.from_pretrained("microsoft/wavlm-base")
>>> model = WavLMForSequenceClassification.from_pretrained("microsoft/wavlm-base")

>>> 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 = WavLMForSequenceClassification.from_pretrained("microsoft/wavlm-base", num_labels=num_labels)

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

Çok etiketli sınıflandırma örneği:

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

>>> tokenizer = AutoTokenizer.from_pretrained("microsoft/wavlm-base")
>>> model = WavLMForSequenceClassification.from_pretrained("microsoft/wavlm-base", 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 = WavLMForSequenceClassification.from_pretrained(
...     "microsoft/wavlm-base", 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
```

## WavLMForAudioFrameClassification[[transformers.WavLMForAudioFrameClassification]]

#### transformers.WavLMForAudioFrameClassification[[transformers.WavLMForAudioFrameClassification]]

```python
transformers.WavLMForAudioFrameClassification(config: WavLMConfig)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wavlm/modeling_wavlm.py#L1294)

**Parametreler:**

config ([WavLMConfig](/docs/transformers/main/tr/model_doc/wavlm#transformers.WavLMConfig)) : Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için [from_pretrained()](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine bakın.

Konuşmacı Ayırt Etme gibi görevler için üstünde bir çerçeve sınıflandırma başlığı bulunan Wavlm Modeli.

Bu model [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel) sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

#### forward[[transformers.WavLMForAudioFrameClassification.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'>)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wavlm/modeling_wavlm.py#L1326)

**Parametreler:**

input_values (`torch.Tensor`, şekli `(batch_size, sequence_length)`) : Girdi ham ses dalgasının float değerleri. Değerler, bir `.flac` veya `.wav` ses dosyasını `list[float]` tipinde bir diziye, `numpy.ndarray` veya `torch.Tensor` içine yükleyerek elde edilebilir, *örneğin* torchcodec kütüphanesi (`pip install torchcodec`) veya soundfile kütüphanesi (`pip install soundfile`) aracılığıyla. Diziyi `input_values` için hazırlamak için, [AutoProcessor](/docs/transformers/main/tr/model_doc/auto#transformers.AutoProcessor) dolguyu (padding) ve `torch.Tensor` tipinde bir tensöre dönüştürmeyi uygulamak üzere kullanılmalıdır. Ayrıntılar için `WavLMProcessor.__call__` bölümüne bakın.

attention_mask (`torch.Tensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Dolgu (padding) token indekslerinde dikkat (attention) işleminin uygulanmamasını sağlayan maske. `[0, 1]` aralığında seçilen maske değerleri:  - **maske uygulanmayan** tokenlar için 1, - **maske uygulanan** tokenlar için 0.  [Dikkat maskeleri nelerdir?](../glossary#attention-mask)

labels (`torch.LongTensor`, şekli `(batch_size,)`, *isteğe bağlı*) : Sınıflandırma/geri dönüş kaybını hesaplamak için etiketler. Endeksler `[0, ..., config.num_labels - 1]` aralığında olmalıdır. `config.num_labels == 1` ise bir geri dönüş kaybı (Ortalama Kare kaybı) hesaplanır, `config.num_labels > 1` ise bir sınıflandırma kaybı (Çapraz Entropi) hesaplanır.

**Dönüş:** [TokenClassifierOutput](/docs/transformers/main/tr/main_classes/output#transformers.modeling_outputs.TokenClassifierOutput) veya `tuple(torch.Tensor)`

[TokenClassifierOutput](/docs/transformers/main/tr/main_classes/output#transformers.modeling_outputs.TokenClassifierOutput) veya bir `torch.Tensor` demeti (eğer `return_dict=False` geçirildiyse veya `config.return_dict=False` ise), yapılandırmaya ([WavLMConfig](/docs/transformers/main/tr/model_doc/wavlm#transformers.WavLMConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[WavLMForAudioFrameClassification](/docs/transformers/main/tr/model_doc/wavlm#transformers.WavLMForAudioFrameClassification) forward metodu, `__call__` özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine `Module` örneğini çağırmak gerekir; çünkü ilki ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

- **loss** (`torch.Tensor`, şekli `(1,)`, *isteğe bağlı*, `labels` sağlandığında döndürülür) -- Sınıflandırma kaybı.
- **logits** (`torch.Tensor`, şekli `(batch_size, sequence_length, config.num_labels)`) -- Sınıflandırma puanları (SoftMax öncesi).
- **hidden_states** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_hidden_states=True` geçirildiğinde veya `config.output_hidden_states=True` olduğunda döndürülür) -- `torch.Tensor` (gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) içeren, `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
- **attentions** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_attentions=True` geçirildiğinde veya `config.output_attentions=True` olduğunda döndürülür) -- `torch.Tensor` (her katman için bir tane) içeren bir tuple, şekli `(batch_size, num_heads, sequence_length, sequence_length)`.

  Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Örnek:

```python
>>> from transformers import AutoFeatureExtractor, WavLMForAudioFrameClassification
>>> 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("microsoft/wavlm-base")
>>> model = WavLMForAudioFrameClassification.from_pretrained("microsoft/wavlm-base")

>>> # 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()
...
```

## WavLMForXVector[[transformers.WavLMForXVector]]

#### transformers.WavLMForXVector[[transformers.WavLMForXVector]]

```python
transformers.WavLMForXVector(config: WavLMConfig)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wavlm/modeling_wavlm.py#L1417)

**Parametreler:**

config ([WavLMConfig](/docs/transformers/main/tr/model_doc/wavlm#transformers.WavLMConfig)) : Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için [from_pretrained()](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel.from_pretrained) yöntemine bakın.

Konuşmacı Doğrulama gibi görevler için üstünde XVector özellik çıkarma kafası bulunan WavLM Modeli.

Bu model [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.PreTrainedModel) sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden ayarlama, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

#### forward[[transformers.WavLMForXVector.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'>)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/models/wavlm/modeling_wavlm.py#L1467)

**Parametreler:**

input_values (`torch.Tensor`, şekli `(batch_size, sequence_length)`) : Girdi ham ses dalgasının float değerleri. Değerler, bir `.flac` veya `.wav` ses dosyasını `list[float]` tipinde bir diziye, `numpy.ndarray` veya `torch.Tensor` içine yükleyerek elde edilebilir, *örneğin* torchcodec kütüphanesi (`pip install torchcodec`) veya soundfile kütüphanesi (`pip install soundfile`) aracılığıyla. Diziyi `input_values` için hazırlamak için, [AutoProcessor](/docs/transformers/main/tr/model_doc/auto#transformers.AutoProcessor) dolguyu (padding) ve `torch.Tensor` tipinde bir tensöre dönüştürmeyi uygulamak üzere kullanılmalıdır. Ayrıntılar için `WavLMProcessor.__call__` bölümüne bakın.

attention_mask (`torch.Tensor`, şekli `(batch_size, sequence_length)`, *isteğe bağlı*) : Dolgu (padding) token indekslerinde dikkat (attention) işleminin uygulanmamasını sağlayan maske. `[0, 1]` aralığında seçilen maske değerleri:  - **maske uygulanmayan** tokenlar için 1, - **maske uygulanan** tokenlar için 0.  [Dikkat maskeleri nelerdir?](../glossary#attention-mask)

labels (`torch.LongTensor`, şekli `(batch_size,)`, *isteğe bağlı*) : Sınıflandırma/geri dönüş kaybını hesaplamak için etiketler. Endeksler `[0, ..., config.num_labels - 1]` aralığında olmalıdır. `config.num_labels == 1` ise bir geri dönüş kaybı (Ortalama Kare kaybı) hesaplanır, `config.num_labels > 1` ise bir sınıflandırma kaybı (Çapraz Entropi) hesaplanır.

**Dönüş:** [XVectorOutput](/docs/transformers/main/tr/main_classes/output#transformers.modeling_outputs.XVectorOutput) veya `tuple(torch.Tensor)`

[XVectorOutput](/docs/transformers/main/tr/main_classes/output#transformers.modeling_outputs.XVectorOutput) veya bir `torch.Tensor` demeti (eğer `return_dict=False` geçirildiyse veya `config.return_dict=False` ise), yapılandırmaya ([WavLMConfig](/docs/transformers/main/tr/model_doc/wavlm#transformers.WavLMConfig)) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

[WavLMForXVector](/docs/transformers/main/tr/model_doc/wavlm#transformers.WavLMForXVector) forward metodu, `__call__` özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine `Module` örneğini çağırmak gerekir; çünkü ilki ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

- **loss** (`torch.Tensor`, şekli `(1,)`, *isteğe bağlı*, `labels` sağlandığında döndürülür) -- Sınıflandırma kaybı.
- **logits** (`torch.Tensor`, şekli `(batch_size, config.xvector_output_dim)`) -- AMSoftmax öncesi sınıflandırma gizli durumları.
- **embeddings** (`torch.Tensor`, şekli `(batch_size, config.xvector_output_dim)`) -- Vektör benzerliğine dayalı geri getirme için kullanılan cümle gömme değerleri.
- **hidden_states** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_hidden_states=True` geçirildiğinde veya `config.output_hidden_states=True` olduğunda döndürülür) -- `torch.Tensor` (gömme çıktısı için bir tane + her katman çıktısı için bir tane) içeren, `(batch_size, sequence_length, hidden_size)` biçiminde bir demet.

  Her katmanın çıktısında modelin gizli durumları ve başlangıç gömme çıktıları.
- **attentions** (`tuple(torch.Tensor)`, *isteğe bağlı*, `output_attentions=True` geçirildiğinde veya `config.output_attentions=True` olduğunda döndürülür) -- `torch.Tensor` (her katman için bir tane) içeren bir tuple, şekli `(batch_size, num_heads, sequence_length, sequence_length)`.

  Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat kafalarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

Örnek:

```python
>>> from transformers import AutoFeatureExtractor, WavLMForXVector
>>> 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("microsoft/wavlm-base")
>>> model = WavLMForXVector.from_pretrained("microsoft/wavlm-base")

>>> # 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)
...
```

