Transformers documentation
Wav2Vec2
Bu model 2020-06-20 tarihinde HF papers'ta yayımlandı ve 2021-02-02 tarihinde Hugging Face Transformers'a katkıda bulunuldu.
Wav2Vec2
Genel Bakış
Wav2Vec2 modeli, Alexei Baevski, Henry Zhou, Abdelrahman Mohamed ve Michael Auli tarafından wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations makalesinde önerilmiştir.
Makalenin özeti aşağıdaki gibidir:
İlk kez, yalnızca konuşma sesinden güçlü temsiller öğrenmenin ardından transkriptli konuşma üzerinde ince ayar yapmanın, kavramsal olarak daha basit olmasına rağmen en iyi yarı denetimli yöntemleri geride bırakabildiğini gösteriyoruz. wav2vec 2.0, konuşma girdisini gizli uzayda maskeleyerek ve birlikte öğrenilen gizli temsillerin bir kuantizasyonu üzerinde tanımlanan bir kontrastif görevi çözüyor. Librispeech'in tüm etiketli verilerini kullanan deneyler, clean/other test kümelerinde 1.8/3.3 WER elde ediyor. Etiketli veri miktarı bir saate düşürüldüğünde, wav2vec 2.0, 100 kat daha az etiketli veri kullanarak 100 saatlik alt kümede önceki en iyi performansı geride bırakıyor. Sadece on dakika etiketli veri ve 53k saat etiketsiz veri üzerinde ön eğitim kullanılarak hâlâ 4.8/8.2 WER elde ediliyor. Bu, sınırlı miktarda etiketli veriyle konuşma tanımanın uygulanabilirliğini göstermektedir.
Bu model patrickvonplaten tarafından katkıda bulunmuştur.
Not: Meta (FAIR), Wav2Vec2-BERT 2.0'ın yeni bir sürümünü yayınladı - 4,5 milyon saatlik ses verisi üzerinde ön eğitilmiş durumda. Özellikle ince ayar görevleri için kullanmanızı, örneğin bu kılavuza uygun olarak, özellikle öneriyoruz.
from_pretrained() içinde
use_kernels=Truedeğerini ayarlayarak desteklenen katmanları Hub'daki optimize edilmiş çekirdeklerle değiştirin. Daha fazla bilgi için Çekirdekleri yükleme bölümüne bakın.
Kullanım ipuçları
- Wav2Vec2, ses sinyalinin ham dalga formuna karşılık gelen bir float dizisini kabul eden bir konuşma modelidir.
- Wav2Vec2 modeli, bağlantılı zaman sınıflandırması (CTC) kullanılarak eğitildiğinden, model çıktısının Wav2Vec2CTCTokenizer ile çözümlenmesi gerekir.
Flash Attention 2 Kullanımı
Flash Attention 2, modelin daha hızlı ve optimize edilmiş bir sürümüdür.
Kurulum
Öncelikle donanımınızın Flash Attention 2 ile uyumlu olup olmadığını kontrol edin. Uyumlu donanımların güncel listesi resmi belgelerde bulunabilir.
Ardından, Flash Attention 2'nin en son sürümünü kurun:
pip install -U flash-attn --no-build-isolation
Kullanım
Flash Attention 2 kullanarak bir model yüklemek için from_pretrained() fonksiyonuna attn_implementation="flash_attention_2" argümanını iletebiliriz. Ses kalitesinde neredeyse hiçbir düşüşe yol açmaması, bellek kullanımını önemli ölçüde azaltması ve çıkarımı hızlandırması nedeniyle modeli yarı hassasiyette (ör. torch.float16) da yükleyeceğiz:
from transformers import Wav2Vec2Model
model = Wav2Vec2Model.from_pretrained("facebook/wav2vec2-large-960h-lv60-self", attn_implementation="flash_attention_2", device_map="auto")
...Beklenen hızlanmalar
Aşağıda, facebook/wav2vec2-large-960h-lv60-self modelinin transformers içindeki yerel uygulaması ile flash-attention-2 ve sdpa (scale-dot-product-attention) sürümleri arasındaki saf çıkarım süresini karşılaştıran beklenen hızlanma diyagramı yer almaktadır. librispeech_asr clean doğrulama diliminde elde edilen ortalama hızlanmayı gösteriyoruz:

Kaynaklar
Wav2Vec2 ile başlamanıza yardımcı olmak için resmi Hugging Face ve topluluk (🌎 ile belirtilen) kaynaklarının bir listesi. Burada yer alacak bir kaynak göndermek isterseniz, bir Pull Request açmaktan çekinmeyin; inceleyeceğiz! Kaynağın, mevcut bir kaynağı tekrarlamak yerine ideal olarak yeni bir şey göstermesi beklenir.
- Önceden eğitilmiş bir Wav2Vec2 modelini duygu sınıflandırması için nasıl kullanacağınızı gösteren bir defter. 🌎
- Wav2Vec2ForCTC, bu defter tarafından desteklenmektedir.
- Ses sınıflandırma görevi kılavuzu
- 🤗 Transformers'ta n-gram'larla Wav2Vec2'yi güçlendirmeye dair bir blog yazısı.
- 🤗 Transformers ile İngilizce ASR için Wav2Vec2'yi ince ayarlamayı anlatan bir blog yazısı.
- 🤗 Transformers ile Çok Dilli ASR için XLS-R'ın ince ayarına dair bir blog yazısı.
- Herhangi bir videodan sesleri Wav2Vec2 ile transkript ederek YouTube altyazıları oluşturma konusunda bir defter. 🌎
- Wav2Vec2ForCTC, İngilizce bir konuşma tanıma modelini nasıl ince ayarlayacağınız ve herhangi bir dilde konuşma tanıma modelini nasıl ince ayarlayacağınız konularını ele alan defterlerle desteklenmektedir.
- Otomatik konuşma tanıma görevi kılavuzu
🚀 Dağıt
- Hugging Face'in Transformers ve Amazon SageMaker ile Otomatik Konuşma Tanıma için Wav2Vec2'nin nasıl dağıtılacağına dair bir blog yazısı.
Wav2Vec2Config
sınıf transformers.Wav2Vec2Config
< source >( 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 | None = 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.0feat_quantizer_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 = 16do_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 = 10mask_feature_min_masks: int = 0num_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 = 'sum'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 = 512pad_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 = Noneadapter_attn_dim: int | None = None )
Parametreler
- vocab_size (
int, isteğe bağlı, varsayılan32) — Modelin sözlük boyutu.input_idstarafından temsil edilebilecek farklı token sayısını tanımlar. - hidden_size (
int, isteğe bağlı, varsayılan768) — Gizli temsillerin boyutu. - num_hidden_layers (
int, isteğe bağlı, varsayılan12) — Transformer çözücüdeki gizli katman sayısı. - num_attention_heads (
int, isteğe bağlı, varsayılan12) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı. - intermediate_size (
int, isteğe bağlı, varsayılan3072) — MLP temsillerinin boyutu. - hidden_act (
str, isteğe bağlı, varsayılangelu) — Çö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ılan0.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ılan0.1) — Tamamen bağlı katmandaki aktivasyonlar için dropout oranı. - attention_dropout (
Union[float, int], isteğe bağlı, varsayılan0.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ığı. - feat_quantizer_dropout (
float, opsiyonel, varsayılan 0.0) — Kuantizatör tarafından kullanılan özellik kodlayıcısının çıktısı için dropout olasılığı. - final_dropout (
float, isteğe bağlı, varsayılan 0.1) — Wav2Vec2ForCTC'nin son projeksiyon katmanı için dropout olasılığı. - layerdrop (
Union[float, int], isteğe bağlı, varsayılan0.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ılan0.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ılan1e-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]veyalist[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]veyalist[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]veyalist[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ılanFalse) — 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ı. - do_stable_layer_norm (
bool, isteğe bağlı, varsayılanFalse) — 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 Falselayer norm'un dikkat katmanından sonra uygulanmasına karşılık gelir. - apply_spec_augment (
bool, isteğe bağlı, varsayılanTrue) — Ö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, optional, defaults to 0.05) — Percentage (between 0 and 1) of all feature vectors along the time axis which will be masked. The masking procedure generates ”mask_time_problen(time_axis)/mask_time_length” independent masks over the axis. If reasoning from the probability of each feature vector to be chosen as the start of the vector span to be masked, mask_time_prob should be `prob_vector_startmask_time_length. Note that overlap may decrease the actual percentage of masked vectors. This is only relevant ifapply_spec_augment is True`. - 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_probdeğerinden bağımsız olarak üretilen,mask_feature_lengthuzunluğ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, optional, defaults to 0.0) — Percentage (between 0 and 1) of all feature vectors along the feature axis which will be masked. The masking procedure generates ”mask_feature_problen(feature_axis)/mask_time_length” independent masks over the axis. If reasoning from the probability of each feature vector to be chosen as the start of the vector span to be masked, mask_feature_prob should be `prob_vector_startmask_feature_length. Note that overlap may decrease the actual percentage of masked vectors. This is only relevant ifapply_spec_augment is True`. - mask_feature_prob (
Union[float, int], isteğe bağlı, varsayılan0.0) — Özellik ekseni boyunca maskelenecek tüm özellik vektörlerinin yüzdesi (0 ile 1 arasında). Maskeleme işlemi, eksen üzerindemask_feature_prob*len(feature_axis)/mask_time_lengthbağı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ğeriprob_vector_start*mask_feature_lengtholmalıdır. Dikkat edin, örtüşme, maskelenen vektörlerin gerçek yüzdesini azaltabilir. Bu, yalnızcaapply_spec_augmentdeğeriTrueise geçerlidir. - mask_feature_length (
int, isteğe bağlı, varsayılan 10) — Özellik ekseni boyunca vektör aralığının uzunluğu. - mask_feature_min_masks (
int, isteğe bağlı, varsayılan 0), — Her zaman adımında,mask_feature_probdeğerinden bağımsız olarak, özellik ekseni boyunca üretilenmask_feature_lengthuzunluğundaki maskelerin minimum sayısı. Yalnızca ”mask_feature_prob*len(feature_axis)/mask_feature_length < mask_feature_min_masks” koşulu sağlandığında geçerlidir. - num_codevectors_per_group (
int, isteğe bağlı, varsayılan 320) — Her kuantizasyon kod kitabındaki (gruptaki) giriş sayısı. - 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"sum") —torch.nn.CTCLossçıktısına uygulanacak indirgemeyi belirtir. Yalnızca bir Wav2Vec2ForCTC örneğinin eğitimi sırasında geçerlidir. - ctc_zero_infinity (
bool, isteğe bağlı, varsayılanFalse) —torch.nn.CTCLossiçin sonsuz kayıpları ve ilişkili gradyanları sıfırlayıp sıfırlamayacağı. Sonsuz kayıplar, girdilerin hedeflerle hizalanmak için çok kısa olması durumunda ortaya çıkar. Yalnızca bir Wav2Vec2ForCTC örneğinin eğitimi sırasında geçerlidir. - use_weighted_layer_sum (
bool, isteğe bağlı, varsayılanFalse) — Öğrenilen ağırlıklarla katman çıktıları için ağırlıklı ortalama kullanılıp kullanılmayacağı. Yalnızca Wav2Vec2ForSequenceClassification 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]veyalist[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]orlist[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]veyalist[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. - pad_token_id (
int, isteğe bağlı, varsayılan0) — Sözlükte dolgu için kullanılan token kimliği. - bos_token_id (
int, isteğe bağlı, varsayılan1) — 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ılan2) — Sözlükte akış sonu için kullanılan token kimliği. - add_adapter (
bool, isteğe bağlı, varsayılanFalse) — 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ızcaadd_adapter is Trueise geçerlidir. - adapter_stride (
int, isteğe bağlı, varsayılan 2) — Adapter ağındaki konvolüsyon katmanlarının stride değeri. Yalnızcaadd_adapter is Trueise 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ızcaadd_adapter is Trueise 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ızcaadd_adapter is Trueise geçerlidir. - adapter_attn_dim (
int, isteğe bağlı) — Her dikkat bloğunda kullanılacak dikkat adaptör ağırlıklarının boyutu. Dikkat adaptörleri kullanan bir model örneği facebook/mms-1b-all'dür.
Bu, bir Wav2Vec2Model yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Wav2Vec2 modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneği oluşturmak, facebook/wav2vec2-base-960h modelinin yapılandırmasına benzer bir yapılandırma elde etmenizi sağlar.
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:
>>> from transformers import Wav2Vec2Config, Wav2Vec2Model
>>> # Initializing a Wav2Vec2 facebook/wav2vec2-base-960h style configuration
>>> configuration = Wav2Vec2Config()
>>> # Initializing a model (with random weights) from the facebook/wav2vec2-base-960h style configuration
>>> model = Wav2Vec2Model(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configWav2Vec2CTCTokenizer
sınıf transformers.Wav2Vec2CTCTokenizer
< source >( vocab_filebos_token = '<s>'eos_token = '</s>'unk_token = '<unk>'pad_token = '<pad>'word_delimiter_token = '|'replace_word_delimiter_char = ' 'do_lower_case = Falsetarget_lang = None**kwargs )
Parametreler
- vocab_file (
str) — Sözlüğü içeren dosya. - bos_token (
str, isteğe bağlı, varsayılan"<s>") — Cümle başlangıç belirteci. - eos_token (
str, isteğe bağlı, varsayılan"</s>") — Cümle sonu belirteci. - unk_token (
str, isteğe bağlı, varsayılan"<unk>") — Bilinmeyen token. Sözlükte yer almayan bir token, bir kimliğe dönüştürülemez ve bunun yerine bu token olarak ayarlanır. - pad_token (
str, isteğe bağlı, varsayılan"<pad>") — Doldurma için kullanılan jeton, örneğin farklı uzunluklardaki dizileri toplu işleme (batching) sırasında. - word_delimiter_token (
str, isteğe bağlı, varsayılan"|") — Bir kelimenin sonunu tanımlamak için kullanılan belirteç. - do_lower_case (
bool, isteğe bağlı, varsayılanFalse) — Çözümleme sırasında küçük harfli girdiyi kabul edip çıktıyı küçük harfe çevirip çevirmeyeceğini belirtir. - target_lang (
str, isteğe bağlı) — Tokenizörün varsayılan olarak ayarlaması gereken hedef dil. Çok dilli, iç içe geçmiş sözlükler içintarget_langtanımlanmalıdır, örneğin facebook/mms-1b-all. - **kwargs — PreTrainedTokenizer sınıfına iletilen ek anahtar kelime argümanları
Bir Wav2Vec2CTC tokenizer'ı oluşturur.
Bu tokenizer, bazı ana yöntemleri içeren PreTrainedTokenizer sınıfından devralır. Kullanıcıların bu tür yöntemlerle ilgili daha fazla bilgi için üst sınıfa başvurması gerekir.
__call__
< source >( text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0is_split_into_words: bool = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = Truetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → BatchEncoding
Parametreler
- text (
str,list[str],list[list[str]], isteğe bağlı) — Kodlanacak dizi veya dizi grubu. Her dizi bir metin veya metin listesi (önceden tokenize edilmiş metin) olabilir. Diziler metin listesi olarak (önceden tokenize edilmiş) sağlanıyorsa,is_split_into_words=Truedeğerini ayarlamalısınız (dizi grubu ile karışıklığı önlemek için). - text_pair (
str,list[str],list[list[str]], isteğe bağlı) — Kodlanacak dizi veya dizi grubu. Her dizi bir metin veya metin listesi (önceden tokenize edilmiş metin) olabilir. Diziler metin listesi olarak (önceden tokenize edilmiş) sağlanıyorsa,is_split_into_words=Truedeğerini ayarlamalısınız (dizi grubu ile belirsizliği gidermek için). - text_target (
str,list[str],list[list[str]], isteğe bağlı) — Hedef metin olarak kodlanacak dizi veya dizi grubu. Her dizi bir dize veya dize listesi (önceden tokenize edilmiş dize) olabilir. Diziler dize listesi (önceden tokenize edilmiş) olarak sağlanıyorsa,is_split_into_words=Truedeğerini ayarlamanız gerekir (dizi grubu ile belirsizliği gidermek için). - text_pair_target (
str,list[str],list[list[str]], isteğe bağlı) — Hedef metinler olarak kodlanacak dizi veya dizi partisi. Her dizi bir dize veya dize listesi (önceden tokenize edilmiş dize) olabilir. Diziler dize listesi (önceden tokenize edilmiş) olarak sağlanıyorsa,is_split_into_words=Truedeğerini ayarlamanız gerekir (dizi partisiyle olan belirsizliği gidermek için). - tokenizer_kwargs (
dict[str, Any], isteğe bağlı) — Tokenizöre iletilecek ek kwargs. Bunlar, açık parametreler ve diğer kwargs ile birleştirilir; açık parametreler önceliklidir. - add_special_tokens (
bool, isteğe bağlı, varsayılanTrue) — Dizileri kodlarken özel token eklenip eklenmeyeceğini belirtir. Bu, girdi kimliklerine otomatik olarak hangi tokenların ekleneceğini tanımlayan alttakiPretrainedTokenizerBase.build_inputs_with_special_tokensişlevini kullanır.bosveyaeostokenlarını otomatik olarak eklemek istiyorsanız bu işe yarar. - padding (
bool,strveya PaddingStrategy, isteğe bağlı, varsayılan olarakFalse) — Dolgu işlemini etkinleştirir ve kontrol eder. Aşağıdaki değerleri kabul eder:Trueveya'longest': Toplu işlemdeki en uzun dizinin uzunluğuna kadar dolgu yapılır (yalnızca tek bir dizi sağlanırsa dolgu yapılmaz).'max_length':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kadar doldurur.Falseveya'do_not_pad'(varsayılan): Dolgu yok (yani, farklı uzunluklarda diziler içeren bir parti çıktı olarak üretilebilir).
- truncation (
bool,strveya TruncationStrategy, isteğe bağlı, varsayılan olarakFalse) — Kesmeyi (truncation) etkinleştirir ve kontrol eder. Aşağıdaki değerleri kabul eder:Trueveya'longest_first':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kısaltılır. Bu işlem, token bazında kısaltma yapar; bir çift dizi (veya çift dizilerden oluşan bir batch) sağlandığında, çiftteki en uzun diziden bir token kaldırılır.'only_first':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kısaltır. Bir çift dizi (veya çiftlerin bir partisi) sağlandığında, yalnızca çiftin ilk dizisini kısaltır.'only_second':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum girdi uzunluğuna kısaltılır. Bu, bir dizi çifti (veya çiftlerin bir partisi) sağlandığında yalnızca çiftin ikinci dizisini kısaltır.Falseveya'do_not_truncate'(varsayılan): Kesme yapılmaz (yani, modelin kabul edebileceği maksimum giriş boyutundan daha uzun dizi uzunluklarına sahip bir çıktı partisi üretilebilir).
- max_length (
int, isteğe bağlı) — Bir kesme/doldurma parametresi tarafından kullanılacak maksimum uzunluğu kontrol eder.Eğer ayarlanmazsa veya
Noneolarak ayarlanırsa, kırpma/dolgu parametrelerinden biri tarafından bir maksimum uzunluk gerekiyorsa, bu, önceden tanımlanmış modelin maksimum uzunluğunu kullanır. Modelin belirli bir maksimum giriş uzunluğu yoksa (XLNet gibi), maksimum uzunluğa kırpma/dolgu devre dışı bırakılır. - stride (
int, isteğe bağlı, varsayılan 0) —max_lengthile birlikte bir sayıya ayarlanırsa,return_overflowing_tokens=Trueolduğunda döndürülen taşan jetonlar, kısaltılmış ve taşan diziler arasında bazı örtüşme sağlamak için kısaltılmış dizinin sonundan bazı jetonları içerir. Bu argümanın değeri, örtüşen jeton sayısını tanımlar. - is_split_into_words (
bool, isteğe bağlı, varsayılanFalse) — Girdinin zaten önceden tokenize edilip edilmediğini (örneğin, kelimelere ayrılmış olup olmadığını) belirtir.Trueolarak ayarlanırsa, tokenizer, girdinin zaten kelimelere ayrılmış olduğunu (örneğin, boşluklara göre bölünerek) ve bunları tokenize edeceğini varsayar. Bu, NER veya token sınıflandırma için faydalıdır. - pad_to_multiple_of (
int, isteğe bağlı) — Belirlenirse, diziyi verilen değerin katına kadar doldurur. Bunun içinpaddingetkinleştirilmelidir. Bu, hesaplama yeteneği>= 7.5(Volta) olan NVIDIA donanımlarında Tensor Çekirdeklerinin kullanımını etkinleştirmek için özellikle faydalıdır. - padding_side (
str, isteğe bağlı) — Modelin padding uygulanması gereken tarafı. [‘right’, ‘left’] arasından seçilmelidir. Varsayılan değer, aynı ada sahip sınıf özelliğinden seçilir. - return_tensors (
strveya TensorType, isteğe bağlı) — Belirlenirse, Python tamsayı listesi yerine tensörler döndürülür. Kabul edilen değerler şunlardır:'pt': PyTorchtorch.Tensornesnelerini döndürür.'np': Numpynp.ndarraynesnelerini döndürür.
- return_token_type_ids (
bool, isteğe bağlı) — Token type ID'lerinin döndürülüp döndürülmeyeceğini belirtir. Varsayılan bırakılırsa, ilgili tokenizer'ın varsayılanına göre token type ID'lerini döndürür; bu,return_outputsözniteliği tarafından tanımlanır. - return_attention_mask (
bool, isteğe bağlı) — Dikkat maskesinin (attention mask) döndürülüp döndürülmeyeceğini belirtir. Varsayılan bırakılırsa, ilgili tokenizer'ın varsayılanına göre dikkat maskesini döndürür; bu,return_outputsözniteliği ile tanımlanır. - return_overflowing_tokens (
bool, isteğe bağlı, varsayılanFalse) — Taşan token dizilerinin döndürülüp döndürülmeyeceği. Girdi kimlikleri çiftlerinden (veya çiftlerden oluşan bir partiden)truncation_strategy = longest_firstveyaTrueile sağlanırsa, taşan tokenlar döndürülmek yerine bir hata oluşturulur. - return_special_tokens_mask (
bool, isteğe bağlı, varsayılanFalse) — Özel jeton maskesi bilgisinin döndürülüp döndürülmemesi. - return_offsets_mapping (
bool, isteğe bağlı, varsayılan olarakFalse) — Her token için(char_start, char_end)dönüp döndürmeyeceğini belirtir.Bu özellik yalnızca PreTrainedTokenizerFast sınıfından türeyen hızlı tokenizörlerde kullanılabilir; Python tokenizörü kullanılırsa bu yöntem
NotImplementedErrorhatası fırlatır. - return_length (
bool, isteğe bağlı, varsayılanFalse) — Kodlanmış girdilerin uzunluklarının döndürülüp döndürülmeyeceği. - verbose (
bool, isteğe bağlı, varsayılanTrue) — Daha fazla bilgi ve uyarı basılıp basılmayacağı. - **kwargs —
self.tokenize()yöntemine iletilir
Dönüş değeri
Aşağıdaki alanlara sahip bir BatchEncoding:
-
input_ids — Bir modele verilecek token kimliklerinin listesi.
-
token_type_ids — Bir modele verilecek token türü kimlikleri listesi (
return_token_type_ids=Trueolduğunda veya “token_type_ids”,self.model_input_namesiçinde olduğunda). -
attention_mask — Modelin hangi jetonlara dikkat etmesi gerektiğini belirleyen indeks listesi (
return_attention_mask=Trueolduğunda veyaself.model_input_namesiçinde “attention_mask” varsa). -
overflowing_tokens — Taşan token dizileri listesi (
max_lengthbelirtildiğinde vereturn_overflowing_tokens=Trueolduğunda). -
num_truncated_tokens — Kırpılan token sayısı (
max_lengthbelirtildiğinde vereturn_overflowing_tokens=Trueolduğunda). -
special_tokens_mask — 0 ve 1'lerden oluşan liste; 1 eklenen özel tokenları, 0 ise normal dizi tokenlarını belirtir (
add_special_tokens=Truevereturn_special_tokens_mask=Trueolduğunda). -
length — Girdilerin uzunluğu (
return_length=Trueolduğunda)
Bir veya birden fazla diziyi veya bir veya birden fazla dizi çiftini belirteçlere ayırmak ve model için hazırlamak için ana yöntem.
decode
< source >( token_ids: typing.Union[int, list[int], numpy.ndarray, ForwardRef('torch.Tensor')]skip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = Noneoutput_char_offsets: bool = Falseoutput_word_offsets: bool = False**kwargs ) → str or Wav2Vec2CTCTokenizerOutput
Parametreler
- token_ids (
Union[int, list[int], np.ndarray, torch.Tensor]) — Tokenize edilmiş girdi kimliklerinin listesi.__call__yöntemi kullanılarak elde edilebilir. - skip_special_tokens (
bool, isteğe bağlı, varsayılanFalse) — Çözümleme sırasında özel tokenların kaldırılıp kaldırılmayacağı. - clean_up_tokenization_spaces (
bool, isteğe bağlı) — Tokenizasyon boşluklarının temizlenip temizlenmeyeceğini belirtir. - output_char_offsets (
bool, isteğe bağlı, varsayılan olarakFalse) — Karakter ofsetlerinin (offset) çıktı olarak verilip verilmeyeceğini belirler. Karakter ofsetleri, örneklem hızı ve model indirgeme hızı (downsampling rate) ile birlikte kullanılarak transkribe edilen karakterlerin zaman damgalarını hesaplamak için kullanılabilir.output_char_offsets'in nasıl kullanılacağını daha iyi anlayabilmek için aşağıdaki örneğe göz atın. - output_word_offsets (
bool, isteğe bağlı, varsayılan olarakFalse) — Kelime ofsetlerinin (word offsets) çıktı olarak verilip verilmeyeceğini belirler. Kelime ofsetleri, örneklem hızı (sampling rate) ve model indirgeme hızı (model downsampling rate) ile birlikte kullanılarak transkribe edilen kelimelerin zaman damgalarının hesaplanmasında kullanılabilir.output_word_offsets'in nasıl kullanılacağını daha iyi anlamak için aşağıdaki örneğe göz atın. - kwargs (ek anahtar kelime argümanları, isteğe bağlı) — Altta yatan modele özgü decode yöntemine aktarılacaktır.
Dönüş değeri
str veya Wav2Vec2CTCTokenizerOutput
Çözümlenmiş cümlelerin listesi. output_char_offsets == True veya output_word_offsets == True olduğunda Wav2Vec2CTCTokenizerOutput olur.
Özel tokenları kaldırma ve tokenizasyon boşluklarını temizleme seçenekleriyle, tokenizer ve sözlük kullanarak bir dizgedeki kimlik dizisini dönüştürür.
self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids)) işlemine benzer.
Örnek:
>>> # Let's see how to retrieve time steps for a model
>>> from transformers import AutoTokenizer, AutoFeatureExtractor, AutoModelForCTC
>>> from datasets import load_dataset
>>> import datasets
>>> import torch
>>> # import model, feature extractor, tokenizer
>>> model = AutoModelForCTC.from_pretrained("facebook/wav2vec2-base-960h")
>>> tokenizer = AutoTokenizer.from_pretrained("facebook/wav2vec2-base-960h")
>>> feature_extractor = AutoFeatureExtractor.from_pretrained("facebook/wav2vec2-base-960h")
>>> # load first sample of English common_voice
>>> dataset = load_dataset("mozilla-foundation/common_voice_11_0", "en", split="train", streaming=True)
>>> dataset = dataset.cast_column("audio", datasets.Audio(sampling_rate=16_000))
>>> dataset_iter = iter(dataset)
>>> sample = next(dataset_iter)
>>> # forward sample through model to get greedily predicted transcription ids
>>> input_values = feature_extractor(sample["audio"]["array"], return_tensors="pt").input_values
>>> logits = model(input_values).logits[0]
>>> pred_ids = torch.argmax(logits, axis=-1)
>>> # retrieve word stamps (analogous commands for `output_char_offsets`)
>>> outputs = tokenizer.decode(pred_ids, output_word_offsets=True)
>>> # compute `time_offset` in seconds as product of downsampling ratio and sampling_rate
>>> time_offset = model.config.inputs_to_logits_ratio / feature_extractor.sampling_rate
>>> word_offsets = [
... {
... "word": d["word"],
... "start_time": round(d["start_offset"] * time_offset, 2),
... "end_time": round(d["end_offset"] * time_offset, 2),
... }
... for d in outputs.word_offsets
... ]
>>> # compare word offsets with audio `en_train_0/common_voice_en_19121553.mp3` online on the dataset viewer:
>>> # https://huggingface.co/datasets/mozilla-foundation/common_voice_11_0/viewer/en
>>> word_offsets[:3]
[{'word': 'THE', 'start_time': 0.7, 'end_time': 0.78}, {'word': 'TRICK', 'start_time': 0.88, 'end_time': 1.08}, {'word': 'APPEARS', 'start_time': 1.2, 'end_time': 1.64}]batch_decode
< source >( sequences: typing.Union[list[int], list[list[int]], numpy.ndarray, ForwardRef('torch.Tensor')]skip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = Noneoutput_char_offsets: bool = Falseoutput_word_offsets: bool = False**kwargs ) → list[str] or Wav2Vec2CTCTokenizerOutput
Parametreler
- sequences (
Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — Tokenize edilmiş girdi kimliklerinin listesi.__call__yöntemi kullanılarak elde edilebilir. - skip_special_tokens (
bool, isteğe bağlı, varsayılanFalse) — Çözümleme sırasında özel tokenların kaldırılıp kaldırılmayacağı. - clean_up_tokenization_spaces (
bool, isteğe bağlı) — Tokenizasyon boşluklarının temizlenip temizlenmeyeceğini belirtir. - output_char_offsets (
bool, isteğe bağlı, varsayılan olarakFalse) — Karakter ofsetlerinin yazdırılıp yazdırılmayacağını belirtir. Karakter ofsetleri, örneklem hızı ve model indirgeme hızı ile birlikte kullanılarak transkribe edilen karakterlerin zaman damgalarını hesaplamak için kullanılabilir.output_char_offsets'in nasıl kullanılacağını daha iyi anlamak için decode() örneğine göz atın. batch_decode(), toplu çıktı ile aynı şekilde çalışır. - output_word_offsets (
bool, isteğe bağlı, varsayılan olarakFalse) — Kelime ofsetlerinin (word offsets) çıktı olarak verilip verilmeyeceğini belirtir. Kelime ofsetleri, örneklem hızı (sampling rate) ve model indirgeme hızı (model downsampling rate) ile birlikte kullanılarak transkribe edilen kelimelerin zaman damgalarını hesaplamak için kullanılabilir.output_word_offsets'in nasıl kullanılacağını daha iyi anlamak için decode() örneğine göz atın. batch_decode(), toplu çıktı ile aynı şekilde çalışır. - kwargs (ek anahtar kelime argümanları, isteğe bağlı) — Altta yatan modele özgü decode yöntemine aktarılacaktır.
Dönüş değeri
list[str] veya Wav2Vec2CTCTokenizerOutput
Çözümlenmiş cümlelerin listesi. output_char_offsets == True veya output_word_offsets == True olduğunda Wav2Vec2CTCTokenizerOutput olur.
decode çağrısı yaparak token kimlikleri içeren listelerin listesini, dizelerin listesine dönüştürün.
İç içe çok dilli bir sözlüğün hedef dilini ayarlayın
Wav2Vec2FeatureExtractor
sınıf transformers.Wav2Vec2FeatureExtractor
< source >( feature_size = 1sampling_rate = 16000padding_value = 0.0return_attention_mask = Falsedo_normalize = True**kwargs )
Parametreler
- feature_size (
int, isteğe bağlı, varsayılan 1) — Çıkarılan özelliklerin boyutu. - sampling_rate (
int, isteğe bağlı, varsayılan 16000) — Ses dosyalarının dijitalleştirilmesi gereken örnekleme hızı, hertz (Hz) cinsinden ifade edilir. - padding_value (
float, isteğe bağlı, varsayılan 0.0) — Doldurma değerlerini doldurmak için kullanılan değer. - do_normalize (
bool, isteğe bağlı, varsayılanTrue) — Girdinin sıfır ortalama ve birim varyans normalize edilip edilmeyeceğini belirtir. Normalizasyon, bazı modellerde performansın önemli ölçüde iyileşmesine yardımcı olabilir, ör., wav2vec2-lv60. - return_attention_mask (
bool, isteğe bağlı, varsayılan olarakFalse) — geri döndürülüp döndürülmeyeceği çağrısı() döndürmelidir. config.feat_extract_norm == "group" olarak ayarlanmış wav2vec2-base gibi Wav2Vec2 modelleri, attention_mask kullanılarak eğitilmemiştir. Bu tür modellerde input_values yalnızca 0 ile doldurulmalı ve attention_mask geçirilmemelidir. config.feat_extract_norm == "layer" olarak ayarlanmış wav2vec2-lv60 gibi Wav2Vec2 modellerinde, toplu çıkarım için attention_mask geçirilmelidir.attention_mask.config.feat_extract_norm == "group"olarak ayarlanmış wav2vec2-base gibi Wav2Vec2 modelleri,attention_maskkullanılarak egitilmemistir. Bu modeller icininput_valuesdegisikligi yapilmadan 0 ile doldurulmalidir veattention_maskgecirilmemelidir.config.feat_extract_norm == "layer"olarak ayarlanmış wav2vec2-lv60 gibi Wav2Vec2 modelleri için toplu çıkarım (batched inference) sırasındaattention_maskparametresinin iletilmesi gerekir.
Bir Wav2Vec2 özellik çıkarıcı oluşturur.
Bu özellik çıkarıcı, ana yöntemlerin çoğunu içeren SequenceFeatureExtractor sınıfından devralır. Kullanıcıların bu yöntemler hakkında daha fazla bilgi için bu üst sınıfa başvurması gerekir.
__call__
< source >( raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]]padding: bool | str | transformers.utils.generic.PaddingStrategy = Falsemax_length: int | None = Nonetruncation: bool = Falsepad_to_multiple_of: int | None = Nonereturn_attention_mask: bool | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonesampling_rate: int | None = None**kwargs )
Parametreler
- raw_speech (
np.ndarray,list[float],list[np.ndarray],list[list[float]]) — Doldurulacak (padding) dizi veya dizi grubu. Her dizi, bir numpy dizisi, bir float değerleri listesi, bir numpy dizileri listesi veya float değerleri listeleri listesi olabilir. Tek kanallı (mono) ses olmalı, stereo değil; yani her zaman adımı için tek bir float değer içermelidir. - padding (
bool,strveya PaddingStrategy, isteğe bağlı, varsayılan olarakFalse) — Dönen dizilere dolgu uygulanacak stratejiyi seçin (modelin dolgu yönüne ve dolgu indeksine göre):Trueveya'longest': Toplu işlemdeki en uzun dizinin uzunluğuna kadar dolgu yapılır (yalnızca tek bir dizi sağlandıysa dolgu yapılmaz).'max_length':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kadar doldurur.Falseveya'do_not_pad'(varsayılan): Dolgu yok (yani, farklı uzunluklarda diziler içeren bir parti çıktı olarak üretilebilir).
- max_length (
int, isteğe bağlı) — Döndürülen listenin ve isteğe bağlı dolgu uzunluğunun (bkz. yukarı) maksimum uzunluğu. - truncation (
bool) — max_length'den uzun olan girdi dizilerini max_length değerine kısaltmak için kesme işlemini etkinleştirir. - pad_to_multiple_of (
int, isteğe bağlı) — Belirlenirse, diziyi verilen değerin katına kadar doldurur.Bu, hesaplama yeteneği
>= 7.5(Volta) olan NVIDIA donanımlarında Tensor Core kullanımını etkinleştirmek veya 128'in katları olan dizi uzunluklarından faydalanan TPU'lar için özellikle faydalıdır. - return_attention_mask (
bool, isteğe bağlı) — Dikkat maskesinin (attention mask) döndürülüp döndürülmeyeceğini belirtir. Varsayılan bırakılırsa, ilgili feature_extractor'ın varsayılanına göre dikkat maskesi döndürülür.config.feat_extract_norm == "group"olarak ayarlanmış wav2vec2-base gibi Wav2Vec2 modelleri,attention_maskkullanılarak egitilmemistir. Bu modeller icininput_valuesdegisikligi yapilmadan 0 ile doldurulmalidir veattention_maskiletmemelidir.config.feat_extract_norm == "layer"olarak ayarlanmış wav2vec2-lv60 gibi Wav2Vec2 modelleri için toplu çıkarım (batched inference) sırasındaattention_maskparametresinin geçirilmesi gerekir. - return_tensors (
strveya TensorType, isteğe bağlı) — Belirlenirse, Python tamsayı listesi yerine tensörler döndürülür. Kabul edilen değerler şunlardır:'pt': PyTorchtorch.Tensornesnelerini döndürür.'np': Numpynp.ndarraynesnelerini döndürür.
- sampling_rate (
int, isteğe bağlı) —raw_speechgirdisinin örneklenmiş olduğu örneklem hızı. Sessiz hataları önlemek için ileri çağrıdasampling_ratedeğerinin geçirilmesi şiddetle önerilir. - padding_value (
float, isteğe bağlı, varsayılan 0.0) —
Bir veya birden fazla diziyi model için özelliklendirmek ve hazırlamak için ana yöntem.
Wav2Vec2Processor
sınıf transformers.Wav2Vec2Processor
< source >( feature_extractortokenizer )
Bir özellik çıkarıcıyı ve bir belirteçleyiciyi tek bir işlemciye saran bir Wav2Vec2Processor oluşturur.
Wav2Vec2Processor, Wav2Vec2FeatureExtractor ve Wav2Vec2CTCTokenizer sınıflarının tüm işlevlerini sunar. Daha fazla bilgi için ~Wav2Vec2FeatureExtractor ve ~Wav2Vec2CTCTokenizer sınıflarına bakın.
__call__
< source >( audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), list[numpy.ndarray], list['torch.Tensor'], NoneType] = Nonetext: str | list[str] | None = None**kwargs: *<class 'transformers.models.wav2vec2.processing_wav2vec2.Wav2Vec2ProcessorKwargs'> )
Parametreler
- audio (
Union[numpy.ndarray, torch.Tensor, list[numpy.ndarray], list[torch.Tensor]], isteğe bağlı) — Hazırlanacak ses veya ses partisi. Her ses, bir NumPy dizisi veya PyTorch tensörü olabilir. NumPy dizisi/PyTorch tensörü durumunda, her sesin şekli (C, T) olmalıdır; burada C kanal sayısı, T ise sesin örnek uzunluğudur. - text (
Union[str, list[str]], isteğe bağlı) — Kodlanacak dizi veya dizi grubu. Her dizi bir metin veya metin listesi (önceden tokenize edilmiş metin) olabilir. Önceden tokenize edilmiş bir girdi geçirirseniz, gruplu girdilerle karışıklığı önlemek içinis_split_into_words=Truedeğerini ayarlayın. - return_tensors (
strveya TensorType, isteğe bağlı) — Belirlenirse, belirli bir çerçeveye ait tensörler döndürülür. Kabul edilen değerler şunlardır:'pt': PyTorchtorch.Tensornesnelerini döndürür.'np': NumPynp.ndarraynesnelerini döndürür.
- **kwargs (ProcessingKwargs, isteğe bağlı) — Her modalite (metin, görüntüler, videolar, ses) için ek işleme seçenekleri. Modelle ilgili parametreler yukarıda listelenmiştir; desteklenen argümanların tam listesi için TypedDict sınıfına bakın.
pad
< source >( *args**kwargs )
Parametreler
- input_features —
İlk argüman, bir gergilik (tensor) grubu içeren bir sözlük olduğunda veya
input_featuresargümanı mevcut olduğunda, bu argüman Wav2Vec2FeatureExtractor.pad() yöntemine iletilir. - labels —
labelargümanı mevcut olduğunda, PreTrainedTokenizer.pad() fonksiyonuna iletilir.
Bu yöntem, çıkarılan özelliklerin ve/veya tokenize edilmiş metnin toplu verileri üzerinde çalışır. Girdi modalitesine bağlı olarak tüm argümanları Wav2Vec2FeatureExtractor.pad() ve/veya PreTrainedTokenizer.pad() işlevlerine iletir ve bu işlevlerin çıktılarındır. Her iki modalite de geçirilirse Wav2Vec2FeatureExtractor.pad() ve PreTrainedTokenizer.pad() işlevleri çağrılır.
from_pretrained
< source >( pretrained_model_name_or_path: str | os.PathLikecache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'**kwargs )
Parametreler
- pretrained_model_name_or_path (
strveyaos.PathLike) — Bunlardan biri olabilir:- bir dize, huggingface.co'daki bir model deposunda barındırılan ön eğitilmiş bir feature_extractor'ın model kimliği.
- save_pretrained() yöntemi kullanılarak kaydedilmiş bir özellik çıkarıcı dosyası içeren bir dizinin yolunu, örneğin
./my_model_directory/. - kaydedilmiş bir özellik çıkarıcı JSON dosyasına giden bir yol, örneğin
./my_model_directory/preprocessor_config.json.
- **kwargs —
Hem from_pretrained() hem de
~tokenization_utils_base.PreTrainedTokenizer.from_pretrainedfonksiyonlarına iletilen ek anahtar kelime argümanları.
Önceden eğitilmiş bir modelle ilişkili bir işlemci örnekleyin.
Bu sınıf metodu, yalnızca özellik çıkarıcının from_pretrained(), görüntü işleyicinin ImageProcessingMixin ve belirteçleştiricinin
~tokenization_utils_base.PreTrainedTokenizer.from_pretrainedmetotlarını çağırır. Daha fazla bilgi için yukarıdaki metotların dokümantasyon dizelerine (docstring) başvurun.
save_pretrained
< source >( save_directorypush_to_hub: bool = False**kwargs )
Parametreler
- save_directory (
strveyaos.PathLike) — Özellik çıkarıcısının JSON dosyasının ve tokenizer dosyalarının kaydedileceği dizin (dizin mevcut değilse oluşturulur). - push_to_hub (
bool, isteğe bağlı, varsayılanFalse) — Modelinizi kaydettikten sonra Hugging Face model hub'ına gönderip göndermeyeceğinizi belirtir. Göndermek istediğiniz depoyurepo_idile belirtebilirsiniz (varsayılan olarak ad alanınızdakisave_directoryadını kullanır). - kwargs (
dict[str, Any], isteğe bağlı) — push_to_hub() yöntemine iletilen ek anahtar kelime argümanları.
Bu işleyicinin (özellik çıkarıcı, sınıflandırıcı…) özniteliklerini, from_pretrained() yöntemiyle yeniden yüklenebilmesi için belirtilen dizinde kaydeder.
Bu sınıf metodu yalnızca save_pretrained() ve save_pretrained() çağrılarını yapar. Daha fazla bilgi için yukarıdaki metodların dokümantasyon dizelerine (docstring) başvurun.
Bu yöntem, tüm argümanlarını PreTrainedTokenizer'ın batch_decode() yöntemine iletir. Daha fazla bilgi için bu yöntemin docstring'ine başvurun.
Bu yöntem, tüm argümanlarını PreTrainedTokenizer'ın decode() yöntemine iletir. Daha fazla bilgi için bu yöntemin docstring'ine başvurun.
Wav2Vec2ProcessorWithLM
sınıf transformers.Wav2Vec2ProcessorWithLM
< source >( feature_extractor: FeatureExtractionMixintokenizer: PreTrainedTokenizerBasedecoder: BeamSearchDecoderCTC )
Bir özellik çıkarıcıyı ve bir belirteçleyiciyi tek bir işlemciye saran bir Wav2Vec2ProcessorWithLM oluşturur.
Wav2Vec2ProcessorWithLM, feature_extractor_class ve tokenizer_class sınıflarının tüm işlevlerini sunar. Daha fazla bilgi için ~feature_extractor_class ve ~tokenizer_class belgelerini inceleyin.
__call__
< source >( *args**kwargs )
Parametreler
- return_tensors (
strveya TensorType, isteğe bağlı) — Belirlenirse, belirli bir çerçeveye ait tensörler döndürülür. Kabul edilen değerler şunlardır:'pt': PyTorchtorch.Tensornesnelerini döndürür.'np': NumPynp.ndarraynesnelerini döndürür.
Normal modda kullanıldığında bu yöntem, tüm argümanlarını özellik çıkarıcının ~FeatureExtractionMixin.pad yöntemine iletir ve çıktısını döndürür. ~Wav2Vec2ProcessorWithLM.as_target_processor bağlamında kullanıldığında bu yöntem, tüm argümanlarını Wav2Vec2CTCTokenizer'ın pad() yöntemine iletir. Daha fazla bilgi için yukarıdaki iki yöntemin docstring'ine başvurun.
from_pretrained
< source >( pretrained_model_name_or_path**kwargs )
Parametreler
- pretrained_model_name_or_path (
strveyaos.PathLike) — Bunlardan biri olabilir:- bir dize, huggingface.co'daki bir model deposunda barındırılan ön eğitilmiş bir feature_extractor'ın model kimliği.
- save_pretrained() yöntemi kullanılarak kaydedilmiş bir özellik çıkarıcı dosyası içeren bir dizinin yolunu, örneğin
./my_model_directory/. - kaydedilmiş bir özellik çıkarıcı JSON dosyasına giden bir yol, örneğin
./my_model_directory/preprocessor_config.json.
- **kwargs — Hem SequenceFeatureExtractor'a hem de PreTrainedTokenizer'a iletilen ek anahtar kelime argümanları
Önceden eğitilmiş bir Wav2Vec2 işlemcisinden Wav2Vec2ProcessorWithLM örneği oluşturun.
Bu sınıf metodu, yalnızca özellik çıkarıcının from_pretrained(), Wav2Vec2CTCTokenizer'ın from_pretrained() ve
pyctcdecode.BeamSearchDecoderCTC.load_from_hf_hubçağrılarını yapar.Daha fazla bilgi için yukarıdaki yöntemlerin docstring'lerine başvurun.
batch_decode
< source >( logits: ndarraypool: multiprocessing.pool.Pool | None = Nonenum_processes: int | None = Nonebeam_width: int | None = Nonebeam_prune_logp: float | None = Nonetoken_min_logp: float | None = Nonehotwords: collections.abc.Iterable[str] | None = Nonehotword_weight: float | None = Nonealpha: float | None = Nonebeta: float | None = Noneunk_score_offset: float | None = Nonelm_score_boundary: bool | None = Noneoutput_word_offsets: bool = Falsen_best: int = 1 )
Parametreler
- logits (
np.ndarray) — Modelin, her token için log olasılıkları temsil eden logits çıktı vektörü. - pool (
multiprocessing.Pool, isteğe bağlı) — İsteğe bağlı, kullanıcı tarafından yönetilen bir havuz. Ayarlanmazsa, bir havuz otomatik olarak oluşturulur ve kapatılır. Havuz sonrasındaWav2Vec2ProcessorWithLM. oluşturulmalıdır. Aksi takdirde LM, havuzun alt süreçleri tarafından kullanılamaz.Şu anda yalnızca ‘fork’ bağlamıyla oluşturulan havuzlar kullanılabilir. ‘spawn’ havuzu geçirilirse, bu havuz yok sayılır ve bunun yerine ardışık çözümleme kullanılır.
- num_processes (
int, isteğe bağlı) —poolayarlanmadıysa, fonksiyonun paralelleştirileceği işlemci sayısı. Varsayılan olarak kullanılabilir CPU sayısına eşittir. - beam_width (
int, isteğe bağlı) — Çözümleme sırasında her adımdaki maksimum ışın sayısı. Varsayılan olarak pyctcdecode'ün DEFAULT_BEAM_WIDTH değerini kullanır. - beam_prune_logp (
int, isteğe bağlı) — En iyi beam'den çok daha kötü olan beam'ler budanır. Varsayılan olarak pyctcdecode'ün DEFAULT_PRUNE_LOGP değerini kullanır. - token_min_logp (
int, isteğe bağlı) — Bu logp değerinin altındaki tokenlar, kare argmax'i olmadıkça atlanır. Varsayılan olarak pyctcdecode'ün DEFAULT_MIN_TOKEN_LOGP değerini kullanır. - hotwords (
list[str], isteğe bağlı) — LM için OOV olabilecek, ek önem taşıyan kelimelerin listesi - hotword_weight (
int, isteğe bağlı) — Hotword önemine uygulanan ağırlık çarpanı. Varsayılan olarak pyctcdecode'ün DEFAULT_HOTWORD_WEIGHT değerini kullanır. - alpha (
float, isteğe bağlı) — Yüzeysel füzyon sırasında dil modeli için ağırlık - beta (
float, isteğe bağlı) — Puanlama sırasında uzunluk puanı ayarlaması için ağırlık - unk_score_offset (
float, isteğe bağlı) — Bilinmeyen tokenlar için log puan ofseti miktarı - lm_score_boundary (
bool, isteğe bağlı) — kenlm'in puanlama sırasında sınırlara uyup uymayacağı - output_word_offsets (
bool, isteğe bağlı, varsayılanFalse) — Kelime ofsetlerinin çıktı olarak verilip verilmeyeceğini belirtir. Kelime ofsetleri, örneklem hızı ve model indirgeme hızı ile birlikte kullanılarak transkribe edilen kelimelerin zaman damgalarını hesaplamak için kullanılabilir. - n_best (
int, isteğe bağlı, varsayılan olarak1) — Döndürülecek en iyi hipotez sayısı. Eğern_best1'den büyükse, döndürülentextdizelerden oluşan dizilerin bir listesi olacak,logit_scoreondalıklı sayılardan oluşan dizilerin bir listesi olacak velm_scoreondalıklı sayılardan oluşan dizilerin bir listesi olacak; burada dış listenin uzunluğu batch boyutuna, iç listenin uzunluğu ise döndürülen hipotez sayısına karşılık gelir. Değer >= 1 olmalıdır.output_word_offsets'in nasıl kullanılacağını daha iyi anlamak için decode() örneğine göz atın. batch_decode(), toplu çıktı ile aynı şekilde çalışır.
Dil modeli desteğiyle toplu olarak çözümleme çıktı logitlerini ses transkripsiyonuna dönüştürün.
Bu fonksiyon Python'ın multiprocessing özelliğini kullanır. Şu anda multiprocessing yalnızca Unix sistemlerinde kullanılabilir (bu issue'a bakınız).
Birden çok batch çözüyorsanız, bir
Poololuşturupbatch_decodefonksiyonuna iletmeyi düşünün. Aksi takdirde, her çağrı için taze birPoololuşturulacağındanbatch_decodeçok yavaş olacaktır. Kullanım örneği aşağıdadır.
Örnek: Birden fazla sesin çözümlenmesi bölümüne bakın.
decode
< source >( logits: ndarraybeam_width: int | None = Nonebeam_prune_logp: float | None = Nonetoken_min_logp: float | None = Nonehotwords: collections.abc.Iterable[str] | None = Nonehotword_weight: float | None = Nonealpha: float | None = Nonebeta: float | None = Noneunk_score_offset: float | None = Nonelm_score_boundary: bool | None = Noneoutput_word_offsets: bool = Falsen_best: int = 1 )
Parametreler
- logits (
np.ndarray) — Modelin, her token için log olasılıkları temsil eden logits çıktı vektörü. - beam_width (
int, isteğe bağlı) — Çözümleme sırasında her adımdaki maksimum ışın sayısı. Varsayılan olarak pyctcdecode'ün DEFAULT_BEAM_WIDTH değerini kullanır. - beam_prune_logp (
int, isteğe bağlı) — En iyi beam'in log-olasılık değerinden (best_beam_logp + beam_prune_logp) daha düşük log-olasılıklara sahip beam'leri elemek için kullanılan bir eşik değeridir. Değer <= 0 olmalıdır. Varsayılan olarak pyctcdecode'ün DEFAULT_PRUNE_LOGP değerini kullanır. - token_min_logp (
int, isteğe bağlı) — log-prob değeri token_min_logp'nin altında olan tokenlar, bir ifadenin en yüksek log-prob değerine sahip olmadıkça atlanır. Varsayılan olarak pyctcdecode'ün DEFAULT_MIN_TOKEN_LOGP değerini kullanır. - hotwords (
list[str], isteğe bağlı) — LM sözlüğünde bulunmayan, ek önem taşıyan kelimelerin listesi, örn. [“huggingface”] - hotword_weight (
int, isteğe bağlı) — Hotword puanlarını artıran ağırlık çarpanı. Varsayılan olarak pyctcdecode'ün DEFAULT_HOTWORD_WEIGHT değerini kullanır. - alpha (
float, isteğe bağlı) — Yüzeysel füzyon sırasında dil modeli için ağırlık - beta (
float, isteğe bağlı) — Puanlama sırasında uzunluk puanı ayarlaması için ağırlık - unk_score_offset (
float, isteğe bağlı) — Bilinmeyen tokenlar için log puan ofseti miktarı - lm_score_boundary (
bool, isteğe bağlı) — kenlm'in puanlama sırasında sınırlara uyup uymayacağı - output_word_offsets (
bool, isteğe bağlı, varsayılanFalse) — Kelime ofsetlerinin çıktı olarak verilip verilmeyeceğini belirtir. Kelime ofsetleri, örneklem hızı ve model indirgeme hızı ile birlikte kullanılarak transkribe edilen kelimelerin zaman damgalarını hesaplamak için kullanılabilir. - n_best (
int, isteğe bağlı, varsayılan olarak1) — Döndürülecek en iyi hipotez sayısı.n_best1'den büyükse, döndürülentextbir dize listesi,logit_scorebir float listesi velm_scorebir float listesi olur; bu listelerin uzunlukları döndürülen hipotez sayısına karşılık gelir. Değer 1'den büyük veya eşit olmalıdır.output_word_offsets'in nasıl kullanılacağını daha iyi anlamak için aşağıdaki örneğe göz atın.
Dil modeli desteğiyle çıktı logitlerini ses transkripsiyonuna dönüştürün.
Örnek:
>>> # Let's see how to retrieve time steps for a model
>>> from transformers import AutoTokenizer, AutoProcessor, AutoModelForCTC
>>> from datasets import load_dataset
>>> import datasets
>>> import torch
>>> # import model, feature extractor, tokenizer
>>> model = AutoModelForCTC.from_pretrained("patrickvonplaten/wav2vec2-base-100h-with-lm")
>>> processor = AutoProcessor.from_pretrained("patrickvonplaten/wav2vec2-base-100h-with-lm")
>>> # load first sample of English common_voice
>>> dataset = load_dataset("mozilla-foundation/common_voice_11_0", "en", split="train", streaming=True)
>>> dataset = dataset.cast_column("audio", datasets.Audio(sampling_rate=16_000))
>>> dataset_iter = iter(dataset)
>>> sample = next(dataset_iter)
>>> # forward sample through model to get greedily predicted transcription ids
>>> input_values = processor(sample["audio"]["array"], return_tensors="pt").input_values
>>> with torch.no_grad():
... logits = model(input_values).logits[0].cpu().numpy()
>>> # retrieve word stamps (analogous commands for `output_char_offsets`)
>>> outputs = processor.decode(logits, output_word_offsets=True)
>>> # compute `time_offset` in seconds as product of downsampling ratio and sampling_rate
>>> time_offset = model.config.inputs_to_logits_ratio / processor.feature_extractor.sampling_rate
>>> word_offsets = [
... {
... "word": d["word"],
... "start_time": round(d["start_offset"] * time_offset, 2),
... "end_time": round(d["end_offset"] * time_offset, 2),
... }
... for d in outputs.word_offsets
... ]
>>> # compare word offsets with audio `en_train_0/common_voice_en_19121553.mp3` online on the dataset viewer:
>>> # https://huggingface.co/datasets/mozilla-foundation/common_voice_11_0/viewer/en
>>> word_offsets[:4]
[{'word': 'THE', 'start_time': 0.68, 'end_time': 0.78}, {'word': 'TRACK', 'start_time': 0.88, 'end_time': 1.1}, {'word': 'APPEARS', 'start_time': 1.18, 'end_time': 1.66}, {'word': 'ON', 'start_time': 1.86, 'end_time': 1.92}]Birden fazla sesin çözümlenmesi
Birden çok ses partisini çözmeyi planlıyorsanız, batch_decode() kullanmayı ve örneklenmiş bir multiprocessing.Pool nesnesi geçirmeyi düşünmelisiniz.
Aksi takdirde, batch_decode() performansı, her çağrıda yeni bir Pool örneği oluşturduğu için, her ses için ayrı ayrı decode() çağrılmasından daha yavaş olacaktır. Aşağıdaki örneğe bakın:
# Let's see how to use a user-managed pool for batch decoding multiple audios
from multiprocessing import get_context
import datasets
import torch
from datasets import load_dataset
from transformers import AutoModelForCTC, AutoProcessor
# import model, feature extractor, tokenizer
model = AutoModelForCTC.from_pretrained("patrickvonplaten/wav2vec2-base-100h-with-lm", device_map="auto")
processor = AutoProcessor.from_pretrained("patrickvonplaten/wav2vec2-base-100h-with-lm")
# load example dataset
dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
dataset = dataset.cast_column("audio", datasets.Audio(sampling_rate=16_000))
def map_to_array(example):
example["speech"] = example["audio"]["array"]
return example
# prepare speech data for batch inference
dataset = dataset.map(map_to_array, remove_columns=["audio"])
def map_to_pred(batch, pool):
inputs = processor(batch["speech"], sampling_rate=16_000, padding=True, return_tensors="pt").to(model.device)
inputs = {k: v.to(model.device) for k, v in inputs.items()}
with torch.no_grad():
logits = model(**inputs).logits
transcription = processor.batch_decode(logits.cpu().numpy(), pool).text
batch["transcription"] = transcription
return batch
# note: pool should be instantiated *after* `Wav2Vec2ProcessorWithLM`.
# otherwise, the LM won't be available to the pool's sub-processes
# select number of processes and batch_size based on number of CPU cores available and on dataset size
with get_context("fork").Pool(processes=2) as pool:
result = dataset.map(
map_to_pred, batched=True, batch_size=2, fn_kwargs={"pool": pool}, remove_columns=["speech"]
)
result["transcription"][:2]
['MISTER QUILTER IS THE APOSTLE OF THE MIDDLE CLASSES AND WE ARE GLAD TO WELCOME HIS GOSPEL', "NOR IS MISTER COULTER'S MANNER LESS INTERESTING THAN HIS MATTER"]Wav2Vec2'ye özgü çıktılar
sınıf transformers.models.wav2vec2_with_lm.processing_wav2vec2_with_lm.Wav2Vec2DecoderWithLMOutput
< source >( text: list[list[str]] | list[str] | strlogit_score: list[list[float]] | list[float] | float = Nonelm_score: list[list[float]] | list[float] | float = Noneword_offsets: list[list[list[dict[str, int | str]]]] | list[list[dict[str, int | str]]] | list[dict[str, int | str]] = None )
Parametreler
- text (
strveyastrlistesi) — Metinden çözümlenmiş logits. Genellikle konuşma transkripsiyonu. - logit_score (
floatlistesi veyafloat) — Üretilen metinle ilişkili ışınların toplam logit puanı. - lm_score (
floatlistesi) — Üretilen metinle ilişkili beam'lerin birleştirilmiş lm_score değerleri. - word_offsets (list of
list[dict[str, Union[int, str]]]orlist[dict[str, Union[int, str]]]) — Çözümlenen kelimelerin ofsetleri. Örnekleme hızı ve modelin örneklem azaltma hızı ile birlikte kullanıldığında kelime ofsetleri, her kelime için zaman damgalarının hesaplanmasında kullanılabilir.
Transkripsiyon içeren Wav2Vec2DecoderWithLM çıktı türü.
sınıf transformers.modeling_outputs.Wav2Vec2BaseModelOutput
< source >( last_hidden_state: typing.Optional[torch.Tensor] = Noneextract_features: typing.Optional[torch.Tensor] = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )
Parametreler
- 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örleri dizisi. - hidden_states (
tuple(torch.Tensor), isteğe bağlı, geri döndürülüroutput_hidden_states=Truegeçildiğinde veyaconfig.output_hidden_states=True) — şu türden bir demet:torch.Tensor(gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) ve ş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ı, geri döndürülüroutput_attentions=Truegeçildiğinde veyaconfig.output_attentions=True) — şu türden bir demettorch.Tensor(şeklinde, her katman için bir adet)(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.
Wav2Vec2 kayıp hedefiyle eğitilmiş modeller için temel sınıf.
sınıf transformers.models.wav2vec2.modeling_wav2vec2.Wav2Vec2ForPreTrainingOutput
< source >( loss: typing.Optional[torch.Tensor] = Noneprojected_states: typing.Optional[torch.Tensor] = Noneprojected_quantized_states: typing.Optional[torch.Tensor] = Nonecodevector_perplexity: typing.Optional[torch.Tensor] = Nonehidden_states: tuple[torch.Tensor] | None = Noneattentions: tuple[torch.Tensor] | None = Nonecontrastive_loss: typing.Optional[torch.Tensor] = Nonediversity_loss: typing.Optional[torch.Tensor] = None )
Parametreler
- loss (
*optional*, returned whensample_negative_indicesare passed,torch.Tensorof shape(1,)) — Total loss as the sum of the contrastive loss (L_m) and the diversity loss (L_d) as stated in the official paper. - projected_states (
torch.Tensor, şekli(batch_size, sequence_length, config.proj_codevector_dim)) — Maskelenmiş projeksiyonlu kuantize durumları tahmin etmek için kullanılabilen, config.proj_codevector_dim boyutuna projekte edilmiş modelin gizli durumları. - projected_quantized_states (
torch.Tensor, şekli(batch_size, sequence_length, config.proj_codevector_dim)) — Karşıtlı kayıp için pozitif hedef vektörleri temsil eden, config.proj_codevector_dim boyutuna yansıtılmış kuantize edilmiş çıkarılmış özellik vektörleri. - codevector_perplexity (
torch.Tensor, şekli(1,)) — Kod kitabı çeşitliliğini ölçmek için kullanılan kodvektörü dağılımının perplexity değeri. - hidden_states (
tuple[torch.Tensor], isteğe bağlı, geri döndürülüroutput_hidden_states=Truegeçildiğinde veyaconfig.output_hidden_states=True) — şu türden bir demet: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) ve şekli(batch_size, sequence_length, hidden_size).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ı, geri döndürülüroutput_attentions=Truegeçildiğinde veyaconfig.output_attentions=True) — şu türden bir demet:torch.Tensor(şeklinde, her katman için bir adet(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.
- contrastive_loss (
*optional*, returned whensample_negative_indicesare passed,torch.Tensorof shape(1,)) — The contrastive loss (L_m) as stated in the official paper. - diversity_loss (
*optional*,sample_negative_indicesiletildiğinde döndürülür,torch.Tensortipi, şekli(1,)) — resmi makalede belirtildiği üzere çeşitlilik kaybı (L_d).
Wav2Vec2ForPreTraining'in çıktı türü, olası gizli durumlar ve dikkatler içerir.
Wav2Vec2Model
sınıf transformers.Wav2Vec2Model
< source >( config: Wav2Vec2Config )
Parametreler
- config (Wav2Vec2Config) — 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 başlık olmadan ham gizli durumları (hidden-states) üreten çıplak Wav2Vec2 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
< source >( 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.flacveya.wavses dosyasınılist[float]türünde bir diziye,numpy.ndarrayveyatorch.Tensoriç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. Diziyiinput_valuesiçin hazırlamak için,torch.Tensortü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.
- 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 (Wav2Vec2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Wav2Vec2Model 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=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğ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=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğ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.
Wav2Vec2ForCTC
sınıf transformers.Wav2Vec2ForCTC
< source >( config: Wav2Vec2Configtarget_lang: str | None = None )
Parametreler
- config (Wav2Vec2Config) — 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ı) — 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 Wav2Vec2ForCTC ö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 Wav2Vec2 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
< source >( 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.flacveya.wavses dosyasınılist[float]türünde bir diziye,numpy.ndarrayveyatorch.Tensoriç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. Diziyiinput_valuesiçin hazırlamak için,torch.Tensortü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.
- 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.-100olarak 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 return_dict=False geçirildiğinde ya da config.return_dict=False olduğunda torch.Tensor bir demeti; yapılandırma (Wav2Vec2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Wav2Vec2ForCTC 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ı,labelssağ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=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğ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=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğ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, Wav2Vec2ForCTC
>>> from datasets import load_dataset
>>> import torch
>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate
>>> processor = AutoProcessor.from_pretrained("facebook/wav2vec2-base-960h")
>>> model = Wav2Vec2ForCTC.from_pretrained("facebook/wav2vec2-base-960h")
>>> # 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)
...load_adapter
< source >( target_lang: strforce_load = True**kwargs )
Parametreler
- target_lang (
str) — Mevcut bir adaptör ağırlığının dil kimliği olmalıdır. Adaptör ağırlıkları adapter..safetensors veya adapter. biçiminde saklanır..bin - force_load (
bool, varsayılanTrue) —target_lang,self.target_langile eşleşse bile ağırlıkların yüklenip yüklenmeyeceğini belirtir. - cache_dir (
Union[str, os.PathLike], isteğe bağlı) — Standart önbellek kullanılmayacaksa, indirilen önceden eğitilmiş model yapılandırmasının önbelleğe alınacağı dizinin yolu. - force_download (
bool, isteğe bağlı, varsayılanFalse) — Model ağırlıklarının ve yapılandırma dosyalarının (yeniden) indirilmesinin zorlanıp zorlanmayacağını belirler; önbellekteki sürümler varsa bunların üzerine yazar. - proxies (
dict[str, str], isteğe bağlı) — Protokole veya uç noktaya göre kullanılacak vekil sunucuların sözlüğü, örn.{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Vekiller her istekte kullanılır. - local_files_only(
bool, isteğe bağlı, varsayılanFalse) — Yalnızca yerel dosyalara bakılacak mı (yani modelin indirilmeye çalışılmayacağı). - token (
strveyabool, isteğe bağlı) — Uzak dosyalar için HTTP bearer yetkilendirmesi olarak kullanılacak jeton.Trueise veya belirtilmezse,hf auth loginçalıştırıldığında oluşturulan jeton (~/.huggingfaceiçinde saklanır) kullanılır. - revision (
str, isteğe bağlı, varsayılan olarak"main") — Kullanılacak belirli model sürümü. huggingface.co üzerinde modelleri ve diğer artefaktları depolamak için git tabanlı bir sistem kullandığımız için bir dal adı, etiket adı veya commit kimliği olabilir, bu nedenlerevisiongit tarafından izin verilen herhangi bir tanımlayıcı olabilir.Hub'da oluşturduğunuz bir çekme isteğini test etmek için
revision="refs/pr/<pr_number>"parametresini iletebilirsiniz. - mirror (
str, isteğe bağlı) — İndirmeleri Çin'de hızlandırmak için ayna kaynağı. Çin'den geliyorsanız ve erişim sorunu yaşıyorsanız, bu sorunu çözmek için bu seçeneği ayarlayabilirsiniz. Zamanında veya güvenli çalışmayı garanti etmiyoruz. Daha fazla bilgi için lütfen ayna sitesine başvurun.
Önceden eğitilmiş bir adaptör modelinden bir dil adaptör modeli yükleyin.
Bu yöntemi, duvarlı bir ortamda kullanmak için özel “offline-mode” modunu etkinleştirin.
Örnekler:
>>> from transformers import Wav2Vec2ForCTC, AutoProcessor
>>> ckpt = "facebook/mms-1b-all"
>>> processor = AutoProcessor.from_pretrained(ckpt)
>>> model = Wav2Vec2ForCTC.from_pretrained(ckpt, target_lang="eng")
>>> # set specific language
>>> processor.tokenizer.set_target_lang("spa")
>>> model.load_adapter("spa")Wav2Vec2ForSequenceClassification
sınıf transformers.Wav2Vec2ForSequenceClassification
< source >( config: Wav2Vec2Config )
Parametreler
- config (Wav2Vec2Config) — 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.
Üstünde 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 Wav2Vec2 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
< source >( 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.flacveya.wavses dosyasınılist[float]türünde bir diziye,numpy.ndarrayveyatorch.Tensoriç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. Diziyiinput_valuesiçin hazırlamak için, dolgu vetorch.Tensortüründe bir tensöre dönüştürme 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.
- 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 == 1ise bir geri dönüş kaybı (Ortalama Kare kaybı) hesaplanır,config.num_labels > 1ise 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 (Wav2Vec2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Wav2Vec2ForSequenceClassification 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ı,labelssağ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=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğ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=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğ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, Wav2Vec2ForSequenceClassification
>>> tokenizer = AutoTokenizer.from_pretrained("facebook/wav2vec2-base-960h")
>>> model = Wav2Vec2ForSequenceClassification.from_pretrained("facebook/wav2vec2-base-960h")
>>> 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 = Wav2Vec2ForSequenceClassification.from_pretrained("facebook/wav2vec2-base-960h", 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, Wav2Vec2ForSequenceClassification
>>> tokenizer = AutoTokenizer.from_pretrained("facebook/wav2vec2-base-960h")
>>> model = Wav2Vec2ForSequenceClassification.from_pretrained("facebook/wav2vec2-base-960h", 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 = Wav2Vec2ForSequenceClassification.from_pretrained(
... "facebook/wav2vec2-base-960h", 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).lossWav2Vec2ForAudioFrameClassification
sınıf transformers.Wav2Vec2ForAudioFrameClassification
< source >( config: Wav2Vec2Config )
Parametreler
- config (Wav2Vec2Config) — 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 Wav2Vec2 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
< source >( 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.flacveya.wavses dosyasınılist[float]türünde bir diziye,numpy.ndarrayveyatorch.Tensoriç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. Diziyiinput_valuesiçin hazırlamak için, dolgu vetorch.Tensortüründe bir tensöre dönüştürme 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.
- 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 == 1ise bir geri dönüş kaybı (Ortalama Kare kaybı) hesaplanır,config.num_labels > 1ise 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 (Wav2Vec2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Wav2Vec2ForAudioFrameClassification 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ı,labelssağ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=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğ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=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğ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, Wav2Vec2ForAudioFrameClassification
>>> from datasets import load_dataset
>>> import torch
>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate
>>> feature_extractor = AutoFeatureExtractor.from_pretrained("facebook/wav2vec2-base-960h")
>>> model = Wav2Vec2ForAudioFrameClassification.from_pretrained("facebook/wav2vec2-base-960h")
>>> # 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()
...Wav2Vec2ForXVector
sınıf transformers.Wav2Vec2ForXVector
< source >( config: Wav2Vec2Config )
Parametreler
- config (Wav2Vec2Config) — 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 Wav2Vec2 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
< source >( 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.flacveya.wavses dosyasınılist[float]türünde bir diziye,numpy.ndarrayveyatorch.Tensoriç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. Diziyiinput_valuesiçin hazırlamak için, dolgu vetorch.Tensortüründe bir tensöre dönüştürme 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.
- 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 == 1ise bir geri dönüş kaybı (Ortalama Kare kaybı) hesaplanır,config.num_labels > 1ise 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 (Wav2Vec2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Wav2Vec2ForXVector 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ı,labelssağ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=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğ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=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğ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, Wav2Vec2ForXVector
>>> from datasets import load_dataset
>>> import torch
>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate
>>> feature_extractor = AutoFeatureExtractor.from_pretrained("facebook/wav2vec2-base-960h")
>>> model = Wav2Vec2ForXVector.from_pretrained("facebook/wav2vec2-base-960h")
>>> # 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)
...Wav2Vec2ForPreTraining
sınıf transformers.Wav2Vec2ForPreTraining
< source >( config: Wav2Vec2Config )
Parametreler
- config (Wav2Vec2Config) — 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 kuantizatör ve VQ başlığı bulunan Wav2Vec2 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
< source >( input_values: typing.Optional[torch.Tensor]attention_mask: typing.Optional[torch.Tensor] = Nonemask_time_indices: typing.Optional[torch.BoolTensor] = Nonesampled_negative_indices: typing.Optional[torch.BoolTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Wav2Vec2ForPreTrainingOutput 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.flacveya.wavses dosyasınılist[float]türünde bir diziye,numpy.ndarrayveyatorch.Tensoriç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. Diziyiinput_valuesiçin hazırlamak için,torch.Tensortü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.
- 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. - sampled_negative_indices (
torch.BoolTensor, şekli(batch_size, sequence_length, num_negatives), isteğe bağlı) — Kontrastif kayıpta negatif örneklenmiş vektör olarak kullanılan kuantize hedef vektörlerin hangileri olduğunu gösteren indeksler. Ön eğitim için zorunlu girdi.
Dönüş değeri
Wav2Vec2ForPreTrainingOutput veya tuple(torch.Tensor)
A Wav2Vec2ForPreTrainingOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (Wav2Vec2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Wav2Vec2ForPreTraining 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 (
*optional*,sample_negative_indicesgeçirildiğinde döndürülür,(1,)biçimindetorch.Tensor) — resmi makalede belirtildiği üzere, kontrastif kayıp (L_m) ile çeşitlilik kaybının (L_d) toplamı olarak toplam kayıp.projected_states (
torch.Tensor, şekli(batch_size, sequence_length, config.proj_codevector_dim)) — Maskelenmiş projeksiyonlu kuantize durumları tahmin etmek için kullanılabilen, config.proj_codevector_dim boyutuna projekte edilmiş modelin gizli durumları.projected_quantized_states (
torch.Tensor, şekli(batch_size, sequence_length, config.proj_codevector_dim)) — Karşıtlı kayıp için pozitif hedef vektörleri temsil eden, config.proj_codevector_dim boyutuna yansıtılmış kuantize edilmiş çıkarılmış özellik vektörleri.codevector_perplexity (
torch.Tensor, şekli(1,)) — Kod kitabının çeşitliliğini ölçmek için kullanılan codevector dağılımının perplexity değeri.hidden_states (
tuple[torch.Tensor], isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğ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=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğ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.
contrastive_loss (
*optional*,sample_negative_indicesgeçirildiğinde döndürülür,(1,)biçimindetorch.Tensor) — resmi makalede belirtildiği gibi kontrastif kayıp (L_m).diversity_loss (
*optional*,sample_negative_indicesgeçirildiğinde döndürülür,(1,)biçimindetorch.Tensor) — resmi makalede belirtildiği üzere çeşitlilik kaybı (L_d).
Örnek:
>>> import torch
>>> from transformers import AutoFeatureExtractor, Wav2Vec2ForPreTraining
>>> from transformers.models.wav2vec2.modeling_wav2vec2 import _compute_mask_indices, _sample_negative_indices
>>> from datasets import load_dataset
>>> feature_extractor = AutoFeatureExtractor.from_pretrained("facebook/wav2vec2-base")
>>> model = Wav2Vec2ForPreTraining.from_pretrained("facebook/wav2vec2-base")
>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> input_values = feature_extractor(ds[0]["audio"]["array"], return_tensors="pt").input_values # Batch size 1
>>> # compute masked indices
>>> batch_size, raw_sequence_length = input_values.shape
>>> sequence_length = model._get_feat_extract_output_lengths(raw_sequence_length).item()
>>> mask_time_indices = _compute_mask_indices(
... shape=(batch_size, sequence_length), mask_prob=0.2, mask_length=2
... )
>>> sampled_negative_indices = _sample_negative_indices(
... features_shape=(batch_size, sequence_length),
... num_negatives=model.config.num_negatives,
... mask_time_indices=mask_time_indices,
... )
>>> mask_time_indices = torch.tensor(data=mask_time_indices, device=input_values.device, dtype=torch.long)
>>> sampled_negative_indices = torch.tensor(
... data=sampled_negative_indices, device=input_values.device, dtype=torch.long
... )
>>> with torch.no_grad():
... outputs = model(input_values, mask_time_indices=mask_time_indices)
>>> # compute cosine similarity between predicted (=projected_states) and target (=projected_quantized_states)
>>> cosine_sim = torch.cosine_similarity(outputs.projected_states, outputs.projected_quantized_states, dim=-1)
>>> # show that cosine similarity is much higher than random
>>> cosine_sim[mask_time_indices.to(torch.bool)].mean() > 0.5
tensor(True)
>>> # for contrastive loss training model should be put into train mode
>>> model = model.train()
>>> loss = model(
... input_values, mask_time_indices=mask_time_indices, sampled_negative_indices=sampled_negative_indices
... ).loss