Transformers documentation

WavLM

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Bu model 2021-10-26 tarihinde HF papers'ta yayımlanmış ve 2021-12-16 tarihinde Hugging Face Transformers'a katkıda bulunmuştur.

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 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 etmişken, diğer konuşma işleme görevleri için sınırlı bir keşif çabası gösterilmiştir. Konuşma sinyali, konuşmacı kimliği, paralinguistikler, sözlü 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özlü içerik modellemesine 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 benchmark'ında en iyi performansı elde etmekte ve çeşitli konuşma işleme görevlerinin temsilci benchmark'larında önemli iyileştirmeler sağlamaktadır.

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

Bu model patrickvonplaten tarafından katkıda bulunmuştur. Yazarların kodu burada 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 kullanın.
  • WavLM modeli, bağlantısal zamansal sınıflandırma (CTC) kullanılarak ince ayarlanabilir; bu nedenle model çıktısının Wav2Vec2CTCTokenizer kullanılarak çö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

WavLMConfig

sınıf transformers.WavLMConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 32hidden_size: int = 768num_hidden_layers: int = 12num_attention_heads: int = 12intermediate_size: int = 3072hidden_act: str = 'gelu'hidden_dropout: float | int = 0.1activation_dropout: float | int = 0.1attention_dropout: float | int = 0.1feat_proj_dropout: float | int = 0.0final_dropout: float | int = 0.1layerdrop: float | int = 0.1initializer_range: float = 0.02layer_norm_eps: float = 1e-05feat_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 = Falsenum_conv_pos_embeddings: int = 128num_conv_pos_embedding_groups: int = 16num_buckets: int = 320max_bucket_distance: int = 800do_stable_layer_norm: bool = Falseapply_spec_augment: bool = Truemask_time_prob: float | int = 0.05mask_time_length: int = 10mask_time_min_masks: int = 2mask_feature_prob: float | int = 0.0mask_feature_length: int = 10num_codevectors_per_group: int = 320num_codevector_groups: int = 2contrastive_logits_temperature: float = 0.1num_negatives: int = 100codevector_dim: int = 256proj_codevector_dim: int = 256diversity_loss_weight: float = 0.1ctc_loss_reduction: str = 'mean'ctc_zero_infinity: bool = Falseuse_weighted_layer_sum: bool = Falseclassifier_proj_size: int = 256tdnn_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 = 512num_ctc_classes: int = 80pad_token_id: int | None = 0bos_token_id: int | None = 1eos_token_id: int | list[int] | None = 2add_adapter: bool = Falseadapter_kernel_size: int = 3adapter_stride: int = 2num_adapter_layers: int = 3output_hidden_size: int | None = None )

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 çözücüdeki 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 temsillerinin 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, isteğe bağlı, varsayılan 0.0) — Özellik kodlayıcısının çıktısı için dropout olasılığı.
  • final_dropout (float, isteğe bağlı, varsayılan 0.1) — 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](bkz. https://huggingface.co/papers/1909.11556) bakın.
  • initializer_range (float, isteğe bağlı, 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, isteğe bağlı, varsayılan 1e-05) — Katman normalizasyon katmanları tarafından kullanılan epsilon.
  • feat_extract_norm (str, isteğe bağlı, varsayılan "group") — Özellik kodlayıcıdaki 1B sarmal katmanlara uygulanacak norm. Sadece ilk 1B sarmal katman için grup normalizasyonu olan "group" veya tüm 1B sarmal 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ı bir demet. conv_stride'nin 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üsyon katmanının çekirdek boyutunu tanımlayan tamsayı bir demet. conv_kernel'in uzunluğu, konvolüsyon katmanlarının sayısını belirler ve conv_dim'in uzunluğuyla eşleşmelidir.
  • conv_bias (bool, isteğe bağlı, varsayılan False) — 1D 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 kovadanın sayısı
  • max_bucket_distance (int, isteğe bağlı, varsayılan 800) — Maksimum sepet mesafesi
  • do_stable_layer_norm (bool, isteğe bağlı, varsayılan False) — Transformer kodlayıcısının stable layer norm mimarisinin uygulanıp uygulanmayacağı. do_stable_layer_norm is True, layer norm'un dikkat katmanından önce uygulanmasına karşılık gelirken, do_stable_layer_norm is False layer norm'un 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 uygulayıp uygulamayacağı. Referans için bkz. SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition.
  • mask_time_prob (float, isteğe bağlı, 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 maskelenir. 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, isteğe bağlı, varsayılan 2), — Zaman ekseninde, her zaman adımı için, mask_feature_prob değerinden bağımsız olarak üretilen, 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, isteğe bağlı, varsayılan 0.0) — Özellik ekseninde 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 ekseninde 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 maskelenecek 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üyorsa, 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 kodvektör kuantizasyonu için kodvektö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) — Kantize edilmiş özellik vektörlerinin boyutluluğu.
  • proj_codevector_dim (int, isteğe bağlı, varsayılan 256) — Hem kuantize hem de transformer özelliklerinin son projeksiyonunun boyutu.
  • diversity_loss_weight (int, isteğe bağlı, 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 indirgeme yöntemini belirtir. Yalnızca eğitim sırasında geçerlidir.
  • ctc_zero_infinity (bool, isteğe bağlı, varsayılan False) — torch.nn.CTCLoss için sonsuz kayıpları ve ilişkili gradyanları sıfırlayacak mı? Sonsuz kayıplar, girdilerin hedeflerle hizalanması için çok kısa olması durumunda ortaya çıkar. Yalnızca bir WavLMForCTC örneğinin eğitimiyle ilgilidir.
  • use_weighted_layer_sum (bool, isteğe bağlı, varsayılan False) — Öğrenilen ağırlıklarla katman çıktıları için ağırlıklı ortalama kullanılıp kullanılmayacağı. Yalnızca WavLMForSequenceClassification bir örneği kullanıldığında geçerlidir.
  • classifier_proj_size (int, isteğe bağlı, varsayılan 256) — Sınıflandırma için token ortalama havuzlamadan önceki projeksiyonun boyutluğ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] or list[int], isteğe bağlı, varsayılan (5, 3, 3, 1, 1)) — XVector modelinin TDNN modülündeki her 1D konvolüsyon katmanının çekirdek boyutunu tanımlayan tamsayılar dizisi. tdnn_kernel'in 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 genişleme (dilation) çarpanını tanımlayan tamsayı bir demet. tdnn_dilation'ın uzunluğu, tdnn_dim'ın 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 token'ları ve boş token) belirtir. Yalnızca UniSpeechForPreTraining ö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 bir konvolüsyonel ağ yığılmalı mı? SpeechEncoderDecoder modelleri için Wav2Vec2'yi ılık başlatmak (warm-start) için çok faydalı olabilir.
  • adapter_kernel_size (int, isteğe bağlı, varsayılan 3) — Adapter ağındaki konvolüsyon katmanlarının çekirdek boyutu. Yalnızca add_adapter is True ise geçerlidir.
  • adapter_stride (int, isteğe bağlı, varsayılan 2) — Adapter ağındaki konvolüsyon katmanlarının stride değeri. Yalnızca add_adapter is True ise geçerlidir.
  • num_adapter_layers (int, isteğe bağlı, varsayılan 3) — Adapter ağında kullanılacak konvolüsyon katmanlarının sayısı. Yalnızca add_adapter is True ise geçerlidir.
  • output_hidden_size (int, isteğe bağlı) — 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ılan değerlerle bir yapılandırma örneklendiğinde, microsoft/wavlm-base ile benzer bir yapılandırma elde edilir.

Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.

Örnek:

Örnek:

>>> 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

sınıf transformers.WavLMModel

< >

( config: WavLMConfig )

Parametreler

  • config (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() yöntemine bakın.

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

Bu model 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 boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch 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

< >

( input_values: typing.Optional[torch.Tensor]attention_mask: typing.Optional[torch.Tensor] = Nonemask_time_indices: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Wav2Vec2BaseModelOutput or tuple(torch.Tensor)

Parametreler

  • input_values (torch.Tensor, şekli (batch_size, sequence_length), isteğe bağlı) — Giriş ham ses dalgasının ondalık sayı değerleri. Değerler, bir .flac veya .wav ses dosyasını list[float] türünde bir diziye, numpy.ndarray veya torch.Tensor içine yükleyerek elde edilebilir; örneğin örneğin torchcodec kütüphanesi (pip install torchcodec) veya soundfile kütüphanesi (pip install soundfile) üzerinden. Diziyi input_values için hazırlamak için, torch.Tensor türünde bir tensöre dönüştürme ve dolgu (padding) işlemleri için AutoProcessor kullanılmalıdır. Ayrıntılar için Wav2Vec2Processor.call() bölümüne bakın.
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • 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üş değeri

Wav2Vec2BaseModelOutput veya tuple(torch.Tensor)

Bir Wav2Vec2BaseModelOutput veya bir torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (WavLMConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

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ü önceki, ö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ının çıkarılmış ö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 bir tuple, şekli (batch_size, sequence_length, hidden_size).

    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 (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

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

WavLMForCTC

sınıf transformers.WavLMForCTC

< >

( config: WavLMConfigtarget_lang: str | None = None )

Parametreler

  • config (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() yöntemine bakın.
  • target_lang (str, isteğe bağlı) — Adapter ağırlıklarının dil kimliği. Adapter ağırlıkları adapter..safetensors veya adapter..bin biçiminde saklanır. Sadece adapter'larla bir 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 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 boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch 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

< >

( input_values: typing.Optional[torch.Tensor]attention_mask: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutput or tuple(torch.Tensor)

Parametreler

  • input_values (torch.Tensor, şekli (batch_size, sequence_length), isteğe bağlı) — Giriş ham ses dalgasının ondalık sayı değerleri. Değerler, bir .flac veya .wav ses dosyasını list[float] türünde bir diziye, numpy.ndarray veya torch.Tensor içine yükleyerek elde edilebilir; örneğin örneğin torchcodec kütüphanesi (pip install torchcodec) veya soundfile kütüphanesi (pip install soundfile) üzerinden. Diziyi input_values için hazırlamak için, torch.Tensor türünde bir tensöre dönüştürme ve dolgu (padding) işlemleri için AutoProcessor kullanılmalıdır. Ayrıntılar için Wav2Vec2Processor.call() bölümüne bakın.
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • 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. İndeksler [-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üş değeri

CausalLMOutput veya tuple(torch.Tensor)

Bir CausalLMOutput veya torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (WavLMConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

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ü önceki, ö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 (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer 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 (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

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

Örnek:

>>> 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

sınıf transformers.WavLMForSequenceClassification

< >

( config: WavLMConfig )

Parametreler

  • config (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() yöntemine bakın.

Üzerinde bir dizi sınıflandırma başlığı (toplanmış çıktı üzerinde doğrusal bir katman) bulunan, SUPERB Keyword Spotting gibi görevler için kullanılan WavLM Modeli.

Bu model 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 boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch 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

< >

( input_values: typing.Optional[torch.Tensor]attention_mask: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → SequenceClassifierOutput or tuple(torch.Tensor)

Parametreler

  • input_values (torch.Tensor, şekli (batch_size, sequence_length)) — Giriş ham ses dalgasının ondalık sayı değerleri. Değerler, bir .flac veya .wav ses dosyasını list[float] türünde 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, dolgu ve torch.Tensor türünde bir tensöre dönüştürme işlemleri için AutoProcessor kullanılmalıdır. Ayrıntılar için WavLMProcessor.__call__ bölümüne bakın.
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • 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üş değeri

SequenceClassifierOutput veya tuple(torch.Tensor)

Bir SequenceClassifierOutput veya torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırma (WavLMConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

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ü önceki, ö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 (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer 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 (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

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

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

>>> 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:

>>> 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

sınıf transformers.WavLMForAudioFrameClassification

< >

( config: WavLMConfig )

Parametreler

  • config (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() 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 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 boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch 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

< >

( input_values: typing.Optional[torch.Tensor]attention_mask: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → TokenClassifierOutput or tuple(torch.Tensor)

Parametreler

  • input_values (torch.Tensor, şekli (batch_size, sequence_length)) — Giriş ham ses dalgasının ondalık sayı değerleri. Değerler, bir .flac veya .wav ses dosyasını list[float] türünde 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, dolgu ve torch.Tensor türünde bir tensöre dönüştürme işlemleri için AutoProcessor kullanılmalıdır. Ayrıntılar için WavLMProcessor.__call__ bölümüne bakın.
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • 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üş değeri

TokenClassifierOutput veya tuple(torch.Tensor)

Bir TokenClassifierOutput veya torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırma (WavLMConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

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ü önceki, ö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 (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer 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 (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

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

Örnek:

>>> 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

sınıf transformers.WavLMForXVector

< >

( config: WavLMConfig )

Parametreler

  • config (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() 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 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 boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch 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

< >

( input_values: typing.Optional[torch.Tensor]attention_mask: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → XVectorOutput or tuple(torch.Tensor)

Parametreler

  • input_values (torch.Tensor, şekli (batch_size, sequence_length)) — Giriş ham ses dalgasının ondalık sayı değerleri. Değerler, bir .flac veya .wav ses dosyasını list[float] türünde 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, dolgu ve torch.Tensor türünde bir tensöre dönüştürme işlemleri için AutoProcessor kullanılmalıdır. Ayrıntılar için WavLMProcessor.__call__ bölümüne bakın.
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • 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üş değeri

XVectorOutput veya tuple(torch.Tensor)

XVectorOutput veya bir torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (WavLMConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

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ü önceki, ö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 bir tuple, şekli (batch_size, sequence_length, hidden_size).

    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 (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

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

Örnek:

>>> 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)
...
Update on GitHub