Transformers documentation

Wav2Vec2

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

and get access to the augmented documentation experience

to get started

Model ini dipublikasikan di HF papers pada 2020-06-20 dan disumbangkan ke Hugging Face Transformers pada 2021-02-02.

Wav2Vec2

FlashAttention SDPA

Ikhtisar

Model Wav2Vec2 diusulkan dalam wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations oleh Alexei Baevski, Henry Zhou, Abdelrahman Mohamed, Michael Auli.

Abstrak dari makalah tersebut adalah sebagai berikut:

Kami menunjukkan untuk pertama kalinya bahwa pembelajaran representasi yang kuat hanya dari audio ucapan, diikuti dengan fine-tuning pada ucapan yang ditranskripsikan, dapat melampaui metode semi-supervised terbaik sambil tetap lebih sederhana secara konseptual. wav2vec 2.0 mem-mask input ucapan di ruang laten dan menyelesaikan tugas kontras yang didefinisikan atas kuantisasi dari representasi laten yang dipelajari secara bersama-sama. Eksperimen menggunakan semua data berlabel dari Librispeech mencapai 1,8/3,3 WER pada set uji clean/other. Ketika jumlah data berlabel dikurangi menjadi satu jam, wav2vec 2.0 melampaui state of the art sebelumnya pada subset 100 jam sambil menggunakan 100 kali lebih sedikit data berlabel. Menggunakan hanya sepuluh menit data berlabel dan pre-training pada 53k jam data tanpa label masih mencapai 4,8/8,2 WER. Hal ini menunjukkan kelayakan pengenalan ucapan dengan jumlah data berlabel yang terbatas.

Model ini disumbangkan oleh patrickvonplaten.

Catatan: Meta (FAIR) merilis versi baru dari Wav2Vec2-BERT 2.0 - model ini telah dipretrain pada 4,5 juta jam audio. Kami sangat merekomendasikannya untuk tugas fine-tuning, misalnya sesuai dengan panduan ini.

Setel use_kernels=True di from_pretrained() untuk mengganti lapisan yang didukung dengan kernel yang dioptimalkan dari Hub. Lihat Memuat kernel untuk mempelajari lebih lanjut.

Tips penggunaan

  • Wav2Vec2 adalah model ucapan yang menerima array float yang sesuai dengan gelombang mentah dari sinyal ucapan.
  • Model Wav2Vec2 dilatih menggunakan connectionist temporal classification (CTC), sehingga output model harus didekode menggunakan Wav2Vec2CTCTokenizer.

Menggunakan Flash Attention 2

Flash Attention 2 adalah versi yang lebih cepat dan dioptimalkan dari model tersebut.

Instalasi

Pertama, periksa apakah perangkat keras Anda kompatibel dengan Flash Attention 2. Daftar perangkat keras yang kompatibel terbaru dapat ditemukan di dokumentasi resmi.

Selanjutnya, instal versi terbaru Flash Attention 2:

pip install -U flash-attn --no-build-isolation

Penggunaan

Untuk memuat model menggunakan Flash Attention 2, kita dapat melewatkan argumen attn_implementation="flash_attention_2" ke from_pretrained(). Kita juga akan memuat model dalam presisi setengah (misalnya torch.float16), karena hal ini menghasilkan degradasi kualitas audio yang nyaris tidak ada tetapi penggunaan memori yang jauh lebih rendah dan inferensi yang lebih cepat:

from transformers import Wav2Vec2Model


model = Wav2Vec2Model.from_pretrained("facebook/wav2vec2-large-960h-lv60-self", attn_implementation="flash_attention_2", device_map="auto")
...

Percepatan yang diharapkan

Berikut adalah diagram percepatan yang diharapkan, membandingkan waktu inferensi murni antara implementasi native di transformers untuk model facebook/wav2vec2-large-960h-lv60-self dan versi flash-attention-2 serta sdpa (scale-dot-product-attention). Kami menampilkan rata-rata percepatan yang diperoleh pada split validasi librispeech_asr clean:

Sumber daya

Berikut adalah daftar sumber resmi Hugging Face dan komunitas (ditandai dengan 🌎) untuk membantu Anda memulai dengan Wav2Vec2. Jika Anda tertarik untuk mengirimkan sumber agar disertakan di sini, silakan buka Pull Request dan kami akan meninjaunya! Sumber tersebut sebaiknya mendemonstrasikan sesuatu yang baru, bukan menduplikasi sumber yang sudah ada.

Audio Classification
Automatic Speech Recognition

🚀 Deploy

Wav2Vec2Config

kelas transformers.Wav2Vec2Config

< >

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

Parameter

  • vocab_size (int, opsional, default 32) — Ukuran kosakata model. Menentukan jumlah token berbeda yang dapat direpresentasikan oleh input_ids.
  • hidden_size (int, opsional, default 768) — Dimensi dari representasi tersembunyi.
  • num_hidden_layers (int, opsional, default 12) — Jumlah lapisan tersembunyi dalam decoder Transformer.
  • num_attention_heads (int, opsional, default 12) — Jumlah attention head untuk setiap lapisan attention di decoder Transformer.
  • intermediate_size (int, opsional, default 3072) — Dimensi representasi MLP.
  • hidden_act (str, opsional, defaultnya gelu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, "gelu", "relu", "silu", dan sebagainya.
  • hidden_dropout (Union[float, int], opsional, default 0.1) — Probabilitas dropout untuk semua lapisan fully connected di embeddings, encoder, dan pooler.
  • activation_dropout (Union[float, int], opsional, defaultnya 0.1) — Rasio dropout untuk aktivasi di dalam lapisan fully connected.
  • attention_dropout (Union[float, int], opsional, default 0.1) — Rasio dropout untuk probabilitas perhatian.
  • feat_proj_dropout (float, opsional, default 0.0) — Probabilitas dropout untuk output dari encoder fitur.
  • feat_quantizer_dropout (float, opsional, default 0.0) — Probabilitas dropout untuk output dari feature encoder yang digunakan oleh quantizer.
  • final_dropout (float, opsional, default 0.1) — Probabilitas dropout untuk lapisan proyeksi akhir dari Wav2Vec2ForCTC.
  • layerdrop (Union[float, int], opsional, default 0.1) — Probabilitas LayerDrop. Lihat [makalah LayerDrop](lihat https://huggingface.co/papers/1909.11556) untuk detail lebih lanjut.
  • initializer_range (float, opsional, defaultnya 0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.
  • layer_norm_eps (float, opsional, defaultnya 1e-05) — Epsilon yang digunakan oleh lapisan normalisasi lapisan.
  • feat_extract_norm (str, opsional, default "group") — Norm yang diterapkan pada lapisan konvolusional 1D di feature encoder. Salah satu dari "group" untuk group normalization hanya pada lapisan konvolusional 1D pertama atau "layer" untuk layer normalization pada semua lapisan konvolusional 1D.
  • feat_extract_activation (str, optional, defaults to “gelu”) -- The non-linear activation function (function or string) in the 1D convolutional layers of the feature extractor. If string, “gelu”, “relu”, “selu”and“gelu_new”` are supported.
  • conv_dim (tuple[int] atau list[int], opsional, default (512, 512, 512, 512, 512, 512, 512)) — Tuple dari bilangan bulat yang mendefinisikan jumlah saluran input dan output dari setiap lapisan konvolusional 1D dalam feature encoder. Panjang dari conv_dim mendefinisikan jumlah lapisan konvolusional 1D.
  • conv_stride (tuple[int] atau list[int], opsional, default (5, 2, 2, 2, 2, 2, 2)) — Tuple dari bilangan bulat yang mendefinisikan stride dari setiap lapisan konvolusi 1D dalam feature encoder. Panjang dari conv_stride menentukan jumlah lapisan konvolusi dan harus sesuai dengan panjang dari conv_dim.
  • conv_kernel (tuple[int] atau list[int], opsional, default (10, 3, 3, 3, 3, 3, 3)) — Tuple berisi bilangan bulat yang mendefinisikan ukuran kernel dari setiap lapisan konvolusi 1D dalam feature encoder. Panjang conv_kernel menentukan jumlah lapisan konvolusi dan harus sama dengan panjang conv_dim.
  • conv_bias (bool, opsional, defaultnya False) — Apakah lapisan konvolusional 1D memiliki bias.
  • num_conv_pos_embeddings (int, opsional, default 128) — Jumlah embedding posisi konvolusional. Menentukan ukuran kernel dari lapisan embedding posisi konvolusional 1D.
  • num_conv_pos_embedding_groups (int, opsional, default 16) — Jumlah grup dari lapisan embedding posisional konvolusional 1D.
  • do_stable_layer_norm (bool, opsional, default False) — Apakah akan menerapkan arsitektur layer norm stabil pada encoder Transformer. do_stable_layer_norm is True berarti menerapkan layer norm sebelum lapisan attention, sedangkan do_stable_layer_norm is False berarti menerapkan layer norm setelah lapisan attention.
  • apply_spec_augment (bool, opsional, default True) — Apakah akan menerapkan augmentasi data SpecAugment pada output dari feature encoder. Untuk referensi, lihat SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition.
  • 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 if apply_spec_augment is True`.
  • mask_time_length (int, opsional, default 10) — Panjang rentang vektor sepanjang sumbu waktu.
  • mask_time_min_masks (int, opsional, default 2), — Jumlah minimum masker dengan panjang mask_feature_length yang dihasilkan di sepanjang sumbu waktu, untuk setiap langkah waktu, tanpa memperhatikan mask_feature_prob. Hanya relevan jika ”mask_time_prob*len(time_axis)/mask_time_length < mask_time_min_masks”
  • 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 if apply_spec_augment is True`.
  • mask_feature_prob (Union[float, int], opsional, default 0.0) — Persentase (antara 0 dan 1) dari semua vektor fitur di sepanjang sumbu fitur yang akan di-mask. Prosedur masking menghasilkan mask_feature_prob*len(feature_axis)/mask_time_length mask independen di sepanjang sumbu tersebut. Jika beralasan dari probabilitas setiap vektor fitur untuk dipilih sebagai awal dari rentang vektor yang akan di-mask, mask_feature_prob seharusnya prob_vector_start*mask_feature_length. Perhatikan bahwa tumpang tindih dapat mengurangi persentase vektor yang di-mask secara aktual. Hal ini hanya relevan jika apply_spec_augment adalah True.
  • mask_feature_length (int, opsional, default 10) — Panjang rentang vektor di sepanjang sumbu fitur.
  • mask_feature_min_masks (int, opsional, default 0), — Jumlah minimum masker dengan panjang mask_feature_length yang dihasilkan di sepanjang sumbu fitur, setiap langkah waktu, terlepas dari mask_feature_prob. Hanya relevan jika ”mask_feature_prob*len(feature_axis)/mask_feature_length < mask_feature_min_masks”
  • num_codevectors_per_group (int, opsional, default 320) — Jumlah entri dalam setiap codebook kuantisasi (grup).
  • num_codevectors_per_group (int, opsional, default 320) — Jumlah entri dalam setiap codebook kuantisasi (grup).
  • num_codevector_groups (int, opsional, default 2) — Jumlah grup codevector untuk kuantisasi product codevector.
  • contrastive_logits_temperature (float, opsional, default 0.1) — Suhu kappa dalam kerugian kontras.
  • num_negatives (int, opsional, default 100) — Jumlah sampel negatif untuk kerugian kontras (contrastive loss).
  • codevector_dim (int, opsional, default 256) — Dimensi dari vektor fitur terkuantisasi.
  • proj_codevector_dim (int, opsional, default 256) — Dimensi dari proyeksi akhir untuk fitur kuantisasi maupun fitur transformer.
  • diversity_loss_weight (int, opsional, default 0.1) — Bobot komponen loss keragaman codebook.
  • ctc_loss_reduction (str, opsional, default "sum") — Menentukan reduksi yang diterapkan pada output dari torch.nn.CTCLoss. Hanya relevan saat melatih instans dari Wav2Vec2ForCTC.
  • ctc_zero_infinity (bool, opsional, default False) — Apakah akan menolkan (zero) kerugian tak hingga serta gradien terkait dari torch.nn.CTCLoss. Kerugian tak hingga terutama terjadi ketika input terlalu pendek untuk diselaraskan dengan target. Hanya relevan saat melatih instance dari Wav2Vec2ForCTC.
  • use_weighted_layer_sum (bool, opsional, default False) — Apakah akan menggunakan rata-rata tertimbang dari output layer dengan bobot yang dipelajari. Hanya relevan saat menggunakan instance dari Wav2Vec2ForSequenceClassification.
  • classifier_proj_size (int, opsional, default 256) — Dimensi proyeksi sebelum token mean-pooling untuk klasifikasi.
  • tdnn_dim (tuple[int] atau list[int], opsional, defaultnya (512, 512, 512, 512, 1500)) — Tuple dari bilangan bulat yang mendefinisikan jumlah saluran output dari setiap lapisan konvolusional 1D dalam modul TDNN dari model XVector. Panjang dari tdnn_dim mendefinisikan jumlah lapisan TDNN.
  • tdnn_kernel (tuple[int] atau list[int], opsional, defaultnya (5, 3, 3, 1, 1)) — Tuple dari bilangan bulat yang mendefinisikan ukuran kernel dari setiap lapisan konvolusional 1D dalam modul TDNN dari model XVector. Panjang dari tdnn_kernel harus sesuai dengan panjang dari tdnn_dim.
  • tdnn_dilation (tuple[int] atau list[int], opsional, defaultnya (1, 2, 3, 1, 1)) — Tuple dari bilangan bulat yang mendefinisikan faktor dilatasi dari setiap lapisan konvolusional 1D dalam modul TDNN dari model XVector. Panjang tdnn_dilation harus sesuai dengan panjang tdnn_dim.
  • xvector_output_dim (int, opsional, default 512) — Dimensi dari vektor embedding XVector.
  • pad_token_id (int, opsional, default 0) — ID token yang digunakan untuk padding dalam kosakata.
  • bos_token_id (int, opsional, default 1) — ID token yang digunakan untuk awal aliran (beginning-of-stream) dalam kosakata.
  • eos_token_id (Union[int, list[int]], opsional, default 2) — ID token yang digunakan untuk end-of-stream dalam kosakata.
  • add_adapter (bool, opsional, default False) — Apakah jaringan konvolusional harus ditumpuk di atas Wav2Vec2 Encoder. Hal ini dapat sangat berguna untuk warm-starting Wav2Vec2 untuk model SpeechEncoderDecoder.
  • adapter_kernel_size (int, opsional, default 3) — Ukuran kernel dari lapisan konvolusional dalam jaringan adapter. Hanya relevan jika add_adapter is True.
  • adapter_stride (int, opsional, default 2) — Stride dari lapisan konvolusional dalam jaringan adapter. Hanya relevan jika add_adapter is True.
  • num_adapter_layers (int, opsional, default 3) — Jumlah lapisan konvolusional yang harus digunakan dalam jaringan adapter. Hanya relevan jika add_adapter is True.
  • output_hidden_size (int, opsional) — Dimensi dari lapisan output encoder. Jika tidak didefinisikan, nilai defaultnya adalah hidden-size. Hanya relevan jika add_adapter is True.
  • adapter_attn_dim (int, opsional) — Dimensi dari bobot adapter attention yang akan digunakan di setiap blok attention. Contoh model yang menggunakan adapter attention adalah facebook/mms-1b-all.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari Wav2Vec2Model. Kelas ini digunakan untuk membuat instans model Wav2Vec2 berdasarkan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari facebook/wav2vec2-base-960h

Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.

Contoh:

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

Wav2Vec2CTCTokenizer

kelas transformers.Wav2Vec2CTCTokenizer

< >

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

Parameter

  • vocab_file (str) — File yang berisi kosakata.
  • bos_token (str, opsional, default "<s>") — Token awal kalimat.
  • eos_token (str, opsional, default "</s>") — Token akhir kalimat.
  • unk_token (str, opsional, default "<unk>") — Token yang tidak diketahui. Token yang tidak ada dalam kosakata tidak dapat dikonversi menjadi ID dan akan diset sebagai token ini sebagai gantinya.
  • pad_token (str, opsional, defaultnya "<pad>") — Token yang digunakan untuk padding, misalnya saat membatching urutan dengan panjang yang berbeda.
  • word_delimiter_token (str, opsional, default "|") — Token yang digunakan untuk menentukan akhir dari sebuah kata.
  • do_lower_case (bool, opsional, default False) — Apakah menerima input huruf kecil dan mengubah output menjadi huruf kecil saat decoding.
  • target_lang (str, opsional) — Bahasa target yang harus diset secara default oleh tokenizer. target_lang harus didefinisikan untuk kosakata bersarang multibahasa seperti facebook/mms-1b-all.
  • **kwargs — Argumen kata kunci tambahan yang diteruskan ke PreTrainedTokenizer

Membangun tokenizer Wav2Vec2CTC.

Tokenizer ini mewarisi dari PreTrainedTokenizer yang berisi beberapa metode utama. Pengguna harus merujuk ke kelas induk untuk informasi lebih lanjut mengenai metode-metode tersebut.

__call__

< >

( 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

Parameter

  • text (str, list[str], list[list[str]], opsional) — Sequens atau batch dari sequens yang akan dienkod. Setiap sequens dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika sequens diberikan sebagai daftar string (pretokenized), Anda harus mengatur is_split_into_words=True (untuk menghilangkan ambiguitas dengan batch dari sequens).
  • text_pair (str, list[str], list[list[str]], opsional) — Urutan atau batch dari urutan yang akan dienkod. Setiap urutan dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika urutan diberikan sebagai daftar string (pretokenized), Anda harus mengatur is_split_into_words=True (untuk menghilangkan ambiguitas dengan batch dari urutan).
  • text_target (str, list[str], list[list[str]], opsional) — Sequens atau batch sequens yang akan dikodekan sebagai teks target. Setiap sequens dapat berupa string atau daftar string (string pretokenized). Jika sequens diberikan sebagai daftar string (pretokenized), Anda harus mengatur is_split_into_words=True (untuk menghilangkan ambiguitas dengan batch sequens).
  • text_pair_target (str, list[str], list[list[str]], opsional) — Urutan atau batch urutan yang akan dikodekan sebagai teks target. Setiap urutan dapat berupa string atau daftar string (string pretokenized). Jika urutan diberikan sebagai daftar string (pretokenized), Anda harus mengatur is_split_into_words=True (untuk menghilangkan ambiguitas dengan batch urutan).
  • tokenizer_kwargs (dict[str, Any], opsional) — Kwargs tambahan untuk diteruskan ke tokenizer. Kwargs ini akan digabungkan dengan parameter eksplisit dan kwargs lainnya, dengan parameter eksplisit memiliki prioritas lebih tinggi.
  • add_special_tokens (bool, opsional, default True) — Apakah akan menambahkan token khusus saat meng-encode urutan. Ini akan menggunakan fungsi PretrainedTokenizerBase.build_inputs_with_special_tokens yang mendasarinya, yang mendefinisikan token mana yang ditambahkan secara otomatis ke input ids. Ini berguna jika Anda ingin menambahkan token bos atau eos secara otomatis.
  • padding (bool, str atau PaddingStrategy, opsional, defaultnya False) — Mengaktifkan dan mengontrol padding. Menerima nilai-nilai berikut:
    • True atau 'longest': Pad hingga urutan terpanjang dalam batch (atau tanpa padding jika hanya satu urutan yang diberikan).
    • 'max_length': Pad hingga panjang maksimum yang ditentukan dengan argumen max_length atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan.
    • False atau 'do_not_pad' (default): Tidak ada padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda).
  • truncation (bool, str atau TruncationStrategy, opsional, defaultnya False) — Mengaktifkan dan mengontrol pemotongan. Menerima nilai-nilai berikut:
    • True atau 'longest_first': Memotong hingga panjang maksimum yang ditentukan dengan argumen max_length atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini akan memotong per token, dengan menghapus satu token dari urutan terpanjang dalam pasangan jika sepasang urutan (atau batch pasangan) diberikan.
    • 'only_first': Potong hingga panjang maksimum yang ditentukan dengan argumen max_length atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini hanya akan memotong urutan pertama dari sebuah pasangan jika sepasang urutan (atau batch dari pasangan) diberikan.
    • 'only_second': Potong hingga panjang maksimum yang ditentukan dengan argumen max_length atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan. Ini hanya akan memotong urutan kedua dari sebuah pasangan jika sepasang urutan (atau batch dari pasangan) diberikan.
    • False atau 'do_not_truncate' (default): Tidak ada pemotongan (yaitu, dapat menghasilkan batch dengan panjang sekuens yang lebih besar dari ukuran input maksimum yang diizinkan model).
  • max_length (int, opsional) — Mengontrol panjang maksimum yang digunakan oleh salah satu parameter truncation/padding.

    Jika tidak disetel atau disetel ke None, ini akan menggunakan panjang maksimum model yang telah didefinisikan sebelumnya jika panjang maksimum diperlukan oleh salah satu parameter truncation/padding. Jika model tidak memiliki panjang input maksimum yang spesifik (seperti XLNet), truncation/padding ke panjang maksimum akan dinonaktifkan.

  • stride (int, opsional, default 0) — Jika diatur ke sebuah angka bersama dengan max_length, token yang meluap yang dikembalikan saat return_overflowing_tokens=True akan berisi beberapa token dari akhir urutan terpotong yang dikembalikan untuk menyediakan beberapa tumpang tindih antara urutan terpotong dan urutan yang meluap. Nilai argumen ini menentukan jumlah token yang tumpang tindih.
  • is_split_into_words (bool, opsional, default False) — Apakah input sudah di-pre-tokenisasi (misalnya, dipecah menjadi kata). Jika disetel ke True, tokenizer mengasumsikan input sudah dipecah menjadi kata (misalnya, dengan memisahkannya berdasarkan spasi) yang akan ditokenisasi. Ini berguna untuk NER atau klasifikasi token.
  • pad_to_multiple_of (int, opsional) — Jika diset, akan melakukan padding pada urutan hingga menjadi kelipatan dari nilai yang diberikan. Memerlukan padding untuk diaktifkan. Ini sangat berguna untuk memungkinkan penggunaan Tensor Cores pada perangkat keras NVIDIA dengan kemampuan komputasi >= 7.5 (Volta).
  • padding_side (str, opsional) — Sisi tempat model harus menerapkan padding. Harus dipilih antara [‘right’, ‘left’]. Nilai default diambil dari atribut kelas dengan nama yang sama.
  • return_tensors (str atau TensorType, opsional) — Jika diset, akan mengembalikan tensor alih-alih daftar integer Python. Nilai yang dapat diterima adalah:
    • 'pt': Mengembalikan objek PyTorch torch.Tensor.
    • 'np': Mengembalikan objek Numpy np.ndarray.
  • return_token_type_ids (bool, opsional) — Apakah akan mengembalikan token type ID. Jika dibiarkan pada nilai default, akan mengembalikan token type ID sesuai dengan default tokenizer tertentu, yang ditentukan oleh return_outputs atribut.

    Apa itu token type ID?

  • return_attention_mask (bool, opsional) — Apakah akan mengembalikan attention mask. Jika dibiarkan pada nilai default, akan mengembalikan attention mask sesuai dengan default tokenizer tertentu, yang didefinisikan oleh return_outputs atribut.

    Apa itu attention mask?

  • return_overflowing_tokens (bool, opsional, default False) — Apakah akan mengembalikan urutan token yang meluap. Jika sepasang urutan id input (atau batch dari pasangan) diberikan dengan truncation_strategy = longest_first atau True, error akan dilemparkan alih-alih mengembalikan token yang meluap.
  • return_special_tokens_mask (bool, opsional, default False) — Apakah akan mengembalikan informasi mask token khusus.
  • return_offsets_mapping (bool, opsional, defaultnya False) — Apakah akan mengembalikan (char_start, char_end) untuk setiap token.

    Ini hanya tersedia pada fast tokenizer yang mewarisi dari PreTrainedTokenizerFast, jika menggunakan tokenizer Python, metode ini akan memicu NotImplementedError.

  • return_length (bool, opsional, default False) — Apakah akan mengembalikan panjang dari input yang dikodekan.
  • verbose (bool, opsional, defaultnya True) — Apakah akan mencetak lebih banyak informasi dan peringatan.
  • **kwargs — diteruskan ke metode self.tokenize()

Mengembalikan

BatchEncoding

BatchEncoding dengan bidang berikut:

  • input_ids — Daftar id token yang akan diberikan ke model.

    Apa itu input ID?

  • token_type_ids — Daftar token type id yang akan diberikan ke model (ketika return_token_type_ids=True atau jika “token_type_ids” ada di self.model_input_names).

    Apa itu token type ID?

  • attention_mask — Daftar indeks yang menentukan token mana yang harus diperhatikan oleh model (ketika return_attention_mask=True atau jika “attention_mask” ada di self.model_input_names).

    Apa itu attention mask?

  • overflowing_tokens — Daftar sekuens token yang meluap (ketika max_length ditentukan dan return_overflowing_tokens=True).

  • num_truncated_tokens — Jumlah token yang dipangkas (ketika max_length ditentukan dan return_overflowing_tokens=True).

  • special_tokens_mask — Daftar angka 0 dan 1, di mana 1 menandakan token khusus yang ditambahkan dan 0 menandakan token urutan reguler (ketika add_special_tokens=True dan return_special_tokens_mask=True).

  • length — Panjang dari input (ketika return_length=True)

Metode utama untuk melakukan tokenisasi dan persiapan satu atau beberapa urutan atau satu atau beberapa pasangan urutan untuk model.

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None )

decode

< >

( 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

Parameter

  • token_ids (Union[int, list[int], np.ndarray, torch.Tensor]) — Daftar id input yang telah ditokenisasi. Dapat diperoleh menggunakan metode __call__.
  • skip_special_tokens (bool, opsional, defaultnya False) — Apakah token khusus akan dihapus saat decoding.
  • clean_up_tokenization_spaces (bool, opsional) — Apakah akan membersihkan spasi tokenisasi atau tidak.
  • output_char_offsets (bool, opsional, defaultnya False) — Apakah akan mengoutput offset karakter atau tidak. Offset karakter dapat digunakan bersama dengan laju sampling dan laju downsampling model untuk menghitung stempel waktu dari karakter yang ditranskripsi.

    Silakan lihat contoh di bawah ini untuk lebih memahami cara memanfaatkan output_char_offsets.

  • output_word_offsets (bool, opsional, defaultnya False) — Apakah akan mengoutput offset kata atau tidak. Offset kata dapat digunakan bersama dengan laju sampling dan laju downsampling model untuk menghitung stempel waktu dari kata-kata yang ditranskripsi.

    Silakan lihat contoh di bawah ini untuk lebih memahami cara memanfaatkan output_word_offsets.

  • kwargs (argumen kata kunci tambahan, opsional) — Akan diteruskan ke metode decode spesifik model yang mendasarinya.

Mengembalikan

str atau Wav2Vec2CTCTokenizerOutput

Daftar kalimat yang telah didekodekan. Akan berupa Wav2Vec2CTCTokenizerOutput ketika output_char_offsets == True atau output_word_offsets == True.

Mengonversi urutan id dalam string, menggunakan tokenizer dan kosakata dengan opsi untuk menghapus token khusus dan merapikan spasi tokenisasi.

Mirip dengan melakukan self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids)).

Contoh:

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

< >

( 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

Parameter

  • sequences (Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — Daftar id input yang telah ditokenisasi. Dapat diperoleh menggunakan metode __call__.
  • skip_special_tokens (bool, opsional, defaultnya False) — Apakah token khusus akan dihapus saat decoding.
  • clean_up_tokenization_spaces (bool, opsional) — Apakah akan membersihkan spasi tokenisasi atau tidak.
  • output_char_offsets (bool, opsional, defaultnya False) — Apakah akan mengoutput offset karakter atau tidak. Offset karakter dapat digunakan bersama dengan laju sampling dan laju downsampling model untuk menghitung stempel waktu dari karakter yang ditranskripsi.

    Silakan lihat Contoh decode() untuk memahami lebih baik cara memanfaatkan output_char_offsets. batch_decode() bekerja dengan cara yang sama untuk output yang di-batch.

  • output_word_offsets (bool, opsional, defaultnya False) — Apakah akan mengoutputkan offset kata atau tidak. Offset kata dapat digunakan bersama dengan laju sampling dan laju downsampling model untuk menghitung stempel waktu dari kata-kata yang ditranskripsi. Silakan lihat Contoh decode() untuk lebih memahami cara memanfaatkan output_word_offsets. batch_decode() bekerja dengan cara yang sama untuk output berbatch.

    Silakan lihat Contoh decode() untuk lebih memahami cara memanfaatkan output_word_offsets. batch_decode() bekerja dengan cara yang sama untuk output yang di-batch.

  • kwargs (argumen kata kunci tambahan, opsional) — Akan diteruskan ke metode decode spesifik model yang mendasarinya.

Mengembalikan

list[str] atau Wav2Vec2CTCTokenizerOutput

Daftar kalimat yang telah didekodekan. Akan berupa Wav2Vec2CTCTokenizerOutput ketika output_char_offsets == True atau output_word_offsets == True.

Konversi daftar dari daftar id token menjadi daftar string dengan memanggil decode.

set_target_lang

< >

( target_lang: str )

Atur bahasa target dari kamus multi-bahasa bersarang

Wav2Vec2FeatureExtractor

kelas transformers.Wav2Vec2FeatureExtractor

< >

( feature_size = 1sampling_rate = 16000padding_value = 0.0return_attention_mask = Falsedo_normalize = True**kwargs )

Parameter

  • feature_size (int, opsional, default 1) — Dimensi fitur dari fitur yang diekstrak.
  • sampling_rate (int, opsional, default 16000) — Laju sampling di mana file audio harus didigitalisasi, dinyatakan dalam hertz (Hz).
  • padding_value (float, opsional, default 0.0) — Nilai yang digunakan untuk mengisi nilai padding.
  • do_normalize (bool, opsional, default True) — Apakah akan menormalisasi input menjadi nol-rata-rata dan varians-satuan. Normalisasi dapat membantu meningkatkan kinerja secara signifikan untuk beberapa model, misalnya, wav2vec2-lv60.
  • return_attention_mask (bool, opsional, defaultnya False) — Apakah panggilan() seharusnya mengembalikan attention_mask.

    Model Wav2Vec2 yang telah mengatur config.feat_extract_norm == "group", seperti wav2vec2-base, tidak dilatih menggunakan attention_mask. Untuk model seperti itu, input_values cukup di-pad dengan 0 dan tidak perlu melewati attention_mask.

    Untuk model Wav2Vec2 yang telah mengatur config.feat_extract_norm == "layer", seperti wav2vec2-lv60, attention_mask harus dilewatkan untuk inferensi batched.

Membangun ekstraktor fitur Wav2Vec2.

Feature extractor ini mewarisi dari SequenceFeatureExtractor yang berisi sebagian besar metode utama. Pengguna harus merujuk ke superclass ini untuk informasi lebih lanjut mengenai metode-metode tersebut.

__call__

< >

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

Parameter

  • raw_speech (np.ndarray, list[float], list[np.ndarray], list[list[float]]) — Sequens atau batch dari sequens yang akan di-pad. Setiap sequens dapat berupa array numpy, daftar nilai float, daftar array numpy, atau daftar dari daftar nilai float. Harus berupa audio mono channel, bukan stereo, yaitu satu float per timestep.
  • padding (bool, str atau PaddingStrategy, opsional, defaultnya False) — Pilih strategi untuk melakukan padding pada urutan yang dikembalikan (sesuai sisi padding dan indeks padding model) di antara:
    • True atau 'longest': Pad hingga urutan terpanjang dalam batch (atau tanpa padding jika hanya satu urutan yang diberikan).
    • 'max_length': Pad hingga panjang maksimum yang ditentukan dengan argumen max_length atau hingga panjang input maksimum yang dapat diterima oleh model jika argumen tersebut tidak diberikan.
    • False atau 'do_not_pad' (default): Tidak ada padding (yaitu, dapat menghasilkan batch dengan urutan yang panjangnya berbeda).
  • max_length (int, opsional) — Panjang maksimum dari daftar yang dikembalikan dan secara opsional panjang padding (lihat di atas).
  • truncation (bool) — Mengaktifkan pemotongan untuk memotong urutan input yang lebih panjang dari max_length menjadi max_length.
  • pad_to_multiple_of (int, opsional) — Jika diset, akan melakukan padding pada urutan hingga menjadi kelipatan dari nilai yang diberikan.

    Ini sangat berguna untuk memungkinkan penggunaan Tensor Cores pada perangkat keras NVIDIA dengan compute capability >= 7.5 (Volta), atau pada TPU yang diuntungkan dari panjang sekuens yang merupakan kelipatan 128.

  • return_attention_mask (bool, opsional) — Apakah akan mengembalikan attention mask. Jika dibiarkan pada nilai default, attention mask akan dikembalikan sesuai dengan default feature_extractor yang bersangkutan.

    Apa itu attention mask?

    Model Wav2Vec2 yang telah mengatur config.feat_extract_norm == "group", seperti wav2vec2-base, tidak dilatih menggunakan attention_mask. Untuk model semacam itu, input_values cukup di-*pad* dengan 0 dan attention_mask tidak perlu diteruskan.

    Untuk model Wav2Vec2 yang telah mengatur config.feat_extract_norm == "layer", seperti wav2vec2-lv60, attention_mask harus dilewatkan untuk inferensi batched.

  • return_tensors (str atau TensorType, opsional) — Jika diset, akan mengembalikan tensor alih-alih daftar integer Python. Nilai yang dapat diterima adalah:
    • 'pt': Mengembalikan objek PyTorch torch.Tensor.
    • 'np': Mengembalikan objek Numpy np.ndarray.
  • sampling_rate (int, opsional) — Laju sampling di mana input raw_speech disampelkan. Sangat disarankan untuk meneruskan sampling_rate pada panggilan forward untuk mencegah kesalahan yang tidak terdeteksi.
  • padding_value (float, opsional, default 0.0) —

Metode utama untuk melakukan featurisasi dan persiapan satu atau beberapa sekuens untuk model.

Wav2Vec2Processor

kelas transformers.Wav2Vec2Processor

< >

( feature_extractortokenizer )

Parameter

  • feature_extractor (Wav2Vec2FeatureExtractor) — Feature extractor adalah input yang wajib.
  • tokenizer (Wav2Vec2CTCTokenizer) — Tokenizer adalah input yang wajib.

Membangun Wav2Vec2Processor yang membungkus feature extractor dan tokenizer menjadi satu processor.

Wav2Vec2Processor menyediakan semua fungsionalitas dari Wav2Vec2FeatureExtractor dan Wav2Vec2CTCTokenizer. Lihat ~Wav2Vec2FeatureExtractor dan ~Wav2Vec2CTCTokenizer untuk informasi lebih lanjut.

__call__

< >

( 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'> )

Parameter

  • audio (Union[numpy.ndarray, torch.Tensor, list[numpy.ndarray], list[torch.Tensor]], opsional) — Audio atau batch audio yang akan disiapkan. Setiap audio dapat berupa array NumPy atau tensor PyTorch. Jika berupa array NumPy/tensor PyTorch, setiap audio harus memiliki bentuk (C, T), di mana C adalah jumlah channel, dan T adalah panjang sampel dari audio tersebut.
  • text (Union[str, list[str]], opsional) — Urutan atau batch dari urutan yang akan dikodekan. Setiap urutan dapat berupa string atau daftar string (string yang sudah dipretokenisasi). Jika Anda memasukkan input yang sudah dipretokenisasi, atur is_split_into_words=True untuk menghindari ambiguitas dengan input batch.
  • return_tensors (str atau TensorType, opsional) — Jika diset, akan mengembalikan tensor dari framework tertentu. Nilai yang dapat diterima adalah:
    • 'pt': Mengembalikan objek PyTorch torch.Tensor.
    • 'np': Mengembalikan objek NumPy np.ndarray.
  • **kwargs (ProcessingKwargs, opsional) — Opsi pemrosesan tambahan untuk setiap modalitas (teks, gambar, video, audio). Parameter spesifik model tercantum di atas; lihat kelas TypedDict untuk daftar lengkap argumen yang didukung.

pad

< >

( *args**kwargs )

Parameter

  • input_features — Ketika argumen pertama berupa kamus yang berisi batch tensor, atau argumen input_features hadir, argumen tersebut diteruskan ke Wav2Vec2FeatureExtractor.pad().
  • labels — Ketika argumen label hadir, argumen tersebut diteruskan ke PreTrainedTokenizer.pad().

Metode ini beroperasi pada batch fitur yang diekstraksi dan/atau teks yang ditokenisasi. Metode ini meneruskan semua argumen ke Wav2Vec2FeatureExtractor.pad() dan/atau PreTrainedTokenizer.pad() tergantung pada modalitas input, lalu mengembalikan output dari keduanya. Jika kedua modalitas diberikan, Wav2Vec2FeatureExtractor.pad() dan PreTrainedTokenizer.pad() akan dipanggil.

from_pretrained

< >

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

Parameter

  • pretrained_model_name_or_path (str atau os.PathLike) — Ini bisa berupa:
    • sebuah string, model id dari feature_extractor pretrained yang dihosting di dalam repo model di huggingface.co.
    • path ke direktori yang berisi file feature extractor yang disimpan menggunakan metode save_pretrained(), misalnya ./my_model_directory/.
    • path ke file JSON feature extractor yang disimpan file, misalnya ./my_model_directory/preprocessor_config.json.
  • **kwargs — Argumen kata kunci tambahan yang diteruskan ke from_pretrained() dan ~tokenization_utils_base.PreTrainedTokenizer.from_pretrained.

Instansiasi prosesor yang terkait dengan model pretrained.

Metode kelas ini hanya memanggil metode from_pretrained() dari feature extractor, ImageProcessingMixin dari image processor, dan ~tokenization_utils_base.PreTrainedTokenizer.from_pretrained dari tokenizer. Silakan merujuk ke docstring dari metode-metode di atas untuk informasi lebih lanjut.

save_pretrained

< >

( save_directorypush_to_hub: bool = False**kwargs )

Parameter

  • save_directory (str atau os.PathLike) — Direktori tempat file JSON feature extractor dan file tokenizer akan disimpan (direktori akan dibuat jika belum ada).
  • push_to_hub (bool, opsional, default False) — Apakah model Anda akan didorong ke Hugging Face model hub setelah disimpan. Anda dapat menentukan repository yang ingin Anda tuju dengan repo_id (defaultnya adalah nama save_directory di namespace Anda).
  • kwargs (dict[str, Any], opsional) — Argumen kata kunci tambahan yang diteruskan ke metode push_to_hub().

Menyimpan atribut prosesor ini (feature extractor, tokenizer…) ke dalam direktori yang ditentukan sehingga dapat dimuat ulang menggunakan metode from_pretrained().

Metode kelas ini hanya memanggil save_pretrained() dan save_pretrained(). Silakan merujuk ke docstring dari metode di atas untuk informasi lebih lanjut.

batch_decode

< >

( *args**kwargs )

Metode ini meneruskan semua argumennya ke batch_decode() dari PreTrainedTokenizer. Silakan merujuk ke docstring metode ini untuk informasi lebih lanjut.

decode

< >

( *args**kwargs )

Metode ini meneruskan semua argumennya ke decode() dari PreTrainedTokenizer. Silakan lihat docstring dari metode ini untuk informasi lebih lanjut.

Wav2Vec2ProcessorWithLM

kelas transformers.Wav2Vec2ProcessorWithLM

< >

( feature_extractor: FeatureExtractionMixintokenizer: PreTrainedTokenizerBasedecoder: BeamSearchDecoderCTC )

Parameter

  • feature_extractor (feature_extractor_class) — Feature extractor adalah input yang wajib.
  • tokenizer (tokenizer_class) — Tokenizer adalah input yang wajib.
  • decoder (BeamSearchDecoderCTC) — Sebuah instance dari pyctcdecode.BeamSearchDecoderCTC. Decoder merupakan input yang wajib diisi.

Membangun Wav2Vec2ProcessorWithLM yang membungkus feature extractor dan tokenizer menjadi satu processor.

Wav2Vec2ProcessorWithLM menyediakan semua fungsionalitas dari feature_extractor_class dan tokenizer_class. Lihat ~feature_extractor_class dan ~tokenizer_class untuk informasi lebih lanjut.

__call__

< >

( *args**kwargs )

Parameter

  • return_tensors (str atau TensorType, opsional) — Jika diset, akan mengembalikan tensor dari framework tertentu. Nilai yang dapat diterima adalah:
    • 'pt': Mengembalikan objek PyTorch torch.Tensor.
    • 'np': Mengembalikan objek NumPy np.ndarray.

pad

< >

( *args**kwargs )

Saat digunakan dalam mode normal, metode ini meneruskan semua argumennya ke ~FeatureExtractionMixin.pad dari feature extractor dan mengembalikan output-nya. Jika digunakan dalam konteks ~Wav2Vec2ProcessorWithLM.as_target_processor, metode ini meneruskan semua argumennya ke pad() dari Wav2Vec2CTCTokenizer. Silakan merujuk ke docstring dari dua metode di atas untuk informasi lebih lanjut.

from_pretrained

< >

( pretrained_model_name_or_path**kwargs )

Parameter

  • pretrained_model_name_or_path (str atau os.PathLike) — Ini bisa berupa:
    • sebuah string, model id dari feature_extractor pretrained yang dihosting di dalam repo model di huggingface.co.
    • path ke direktori yang berisi file feature extractor yang disimpan menggunakan metode save_pretrained(), misalnya ./my_model_directory/.
    • path ke file JSON feature extractor yang disimpan file, misalnya ./my_model_directory/preprocessor_config.json.
  • **kwargs — Argumen kata kunci tambahan yang diteruskan ke SequenceFeatureExtractor dan PreTrainedTokenizer

Instansiasi Wav2Vec2ProcessorWithLM dari prosesor Wav2Vec2 yang telah dilatih sebelumnya.

Metode kelas ini hanya memanggil from_pretrained() dari feature extractor, from_pretrained() dari Wav2Vec2CTCTokenizer, dan pyctcdecode.BeamSearchDecoderCTC.load_from_hf_hub.

Silakan merujuk pada docstring dari metode-metode di atas untuk informasi lebih lanjut.

save_pretrained

< >

( save_directory )

batch_decode

< >

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

Parameter

  • logits (np.ndarray) — Vektor output logits dari model yang mewakili log probabilitas untuk setiap token.
  • pool (multiprocessing.Pool, opsional) — Pool yang dikelola pengguna secara opsional. Jika tidak diatur, pool akan dibuat dan ditutup secara otomatis. Pool harus diinstansiasi setelah Wav2Vec2ProcessorWithLM. Jika tidak, LM tidak akan tersedia untuk sub-proses pool.

    Saat ini, hanya pool yang dibuat dengan konteks ‘fork’ yang dapat digunakan. Jika pool ‘spawn’ diberikan, pool tersebut akan diabaikan dan decoding sekuensial akan digunakan sebagai gantinya.

  • num_processes (int, opsional) — Jika pool tidak diset, jumlah proses yang digunakan untuk paralelisasi fungsi. Secara default, nilainya adalah jumlah CPU yang tersedia.
  • beam_width (int, opsional) — Jumlah maksimum beam pada setiap langkah dalam decoding. Defaultnya adalah DEFAULT_BEAM_WIDTH dari pyctcdecode.
  • beam_prune_logp (int, opsional) — Beam yang jauh lebih buruk dari beam terbaik akan dipangkas. Nilai defaultnya adalah DEFAULT_PRUNE_LOGP dari pyctcdecode.
  • token_min_logp (int, opsional) — Token dengan logp di bawah nilai ini akan dilewati kecuali jika merupakan argmax dari frame. Nilainya secara default mengikuti DEFAULT_MIN_TOKEN_LOGP dari pyctcdecode.
  • hotwords (list[str], opsional) — Daftar kata dengan tingkat kepentingan tambahan, dapat berupa OOV untuk LM
  • hotword_weight (int, opsional) — Faktor bobot untuk tingkat kepentingan hotword. Nilai defaultnya adalah DEFAULT_HOTWORD_WEIGHT dari pyctcdecode.
  • alpha (float, opsional) — Bobot untuk model bahasa selama fusi dangkal
  • beta (float, opsional) — Bobot untuk penyesuaian skor panjang selama penilaian
  • unk_score_offset (float, opsional) — Jumlah offset skor log untuk token yang tidak dikenal
  • lm_score_boundary (bool, opsional) — Apakah kenlm harus menghormati batas saat melakukan penilaian
  • output_word_offsets (bool, opsional, default False) — Apakah akan mengoutput offset kata atau tidak. Offset kata dapat digunakan bersama dengan laju sampling dan laju downsampling model untuk menghitung stempel waktu dari kata-kata yang ditranskripsi.
  • n_best (int, opsional, defaultnya 1) — Jumlah hipotesis terbaik yang akan dikembalikan. Jika n_best lebih besar dari 1, nilai yang dikembalikan untuk text akan berupa daftar dari daftar string, logit_score akan berupa daftar dari daftar float, dan lm_score akan berupa daftar dari daftar float, di mana panjang daftar luar akan sesuai dengan ukuran batch dan panjang daftar dalam akan sesuai dengan jumlah hipotesis yang dikembalikan. Nilai ini harus >= 1.

    Silakan lihat Contoh decode() untuk lebih memahami cara memanfaatkan output_word_offsets. batch_decode() bekerja dengan cara yang sama untuk output yang di-batch.

Batch decode output logits menjadi transkripsi audio dengan dukungan model bahasa.

Fungsi ini memanfaatkan multiprocessing dari Python. Saat ini, multiprocessing hanya tersedia pada sistem Unix (lihat masalah ini).

Jika Anda melakukan decoding beberapa batch, pertimbangkan untuk membuat Pool dan meneruskannya ke batch_decode. Jika tidak, batch_decode akan sangat lambat karena akan membuat Pool baru untuk setiap pemanggilan. Lihat contoh penggunaan di bawah.

Contoh: Lihat Mendekode beberapa audio.

decode

< >

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

Parameter

  • logits (np.ndarray) — Vektor output logits dari model yang mewakili log probabilitas untuk setiap token.
  • beam_width (int, opsional) — Jumlah maksimum beam pada setiap langkah dalam decoding. Defaultnya adalah DEFAULT_BEAM_WIDTH dari pyctcdecode.
  • beam_prune_logp (int, opsional) — Ambang batas untuk memangkas beam dengan log-probs yang kurang dari best_beam_logp + beam_prune_logp. Nilainya harus <= 0. Secara default menggunakan DEFAULT_PRUNE_LOGP dari pyctcdecode.
  • token_min_logp (int, opsional) — Token dengan log-prob di bawah token_min_logp akan dilewati kecuali token tersebut memiliki log-prob maksimum untuk sebuah utterance. Nilainya secara default adalah DEFAULT_MIN_TOKEN_LOGP dari pyctcdecode.
  • hotwords (list[str], opsional) — Daftar kata dengan tingkat kepentingan ekstra yang mungkin tidak ada dalam kosakata LM, misalnya [“huggingface”]
  • hotword_weight (int, opsional) — Pengali bobot yang meningkatkan skor hotword. Nilainya secara default adalah DEFAULT_HOTWORD_WEIGHT dari pyctcdecode.
  • alpha (float, opsional) — Bobot untuk model bahasa selama fusi dangkal
  • beta (float, opsional) — Bobot untuk penyesuaian skor panjang selama penilaian
  • unk_score_offset (float, opsional) — Jumlah offset skor log untuk token yang tidak dikenal
  • lm_score_boundary (bool, opsional) — Apakah kenlm harus menghormati batas saat melakukan penilaian
  • output_word_offsets (bool, opsional, default False) — Apakah akan mengoutput offset kata atau tidak. Offset kata dapat digunakan bersama dengan laju sampling dan laju downsampling model untuk menghitung stempel waktu dari kata-kata yang ditranskripsi.
  • n_best (int, opsional, defaultnya 1) — Jumlah hipotesis terbaik yang akan dikembalikan. Jika n_best lebih besar dari 1, nilai yang dikembalikan untuk text akan berupa daftar string, logit_score akan berupa daftar float, dan lm_score akan berupa daftar float, di mana panjang daftar-daftar ini akan sesuai dengan jumlah hipotesis yang dikembalikan. Nilai ini harus >= 1.

    Silakan lihat contoh di bawah ini untuk lebih memahami cara memanfaatkan output_word_offsets.

Dekode output logits menjadi transkripsi audio dengan dukungan model bahasa.

Contoh:

>>> # 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}]

Mendekode beberapa audio

Jika Anda berencana untuk mendekode beberapa batch audio, sebaiknya pertimbangkan untuk menggunakan batch_decode() dan meneruskan multiprocessing.Pool yang sudah diinstansiasi. Jika tidak, kinerja batch_decode() akan lebih lambat daripada memanggil decode() untuk setiap audio secara individual, karena secara internal menginstansiasi Pool baru untuk setiap pemanggilan. Lihat contoh di bawah:

# 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"]

Output khusus Wav2Vec2

kelas transformers.models.wav2vec2_with_lm.processing_wav2vec2_with_lm.Wav2Vec2DecoderWithLMOutput

< >

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

Parameter

  • text (list of str or str) — Logits yang didekodekan dalam bentuk teks. Biasanya berupa transkripsi ucapan.
  • logit_score (list of float atau float) — Skor logit total dari beam yang terkait dengan teks yang dihasilkan.
  • lm_score (list of float) — Fused lm_score dari beam yang terkait dengan teks yang dihasilkan.
  • word_offsets (list of list[dict[str, Union[int, str]]] atau list[dict[str, Union[int, str]]]) — Offset dari kata-kata yang didekode. Jika dikombinasikan dengan sampling rate dan laju downsampling model, offset kata dapat digunakan untuk menghitung stempel waktu untuk setiap kata.

Jenis output dari Wav2Vec2DecoderWithLM, dengan transkripsi.

kelas transformers.modeling_outputs.Wav2Vec2BaseModelOutput

< >

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

Parameter

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

    Hidden-states model pada output setiap layer ditambah output embedding awal.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan ketika output_attentions=True dilewatkan atau ketika config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

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

Kelas dasar untuk model yang telah dilatih dengan tujuan kerugian Wav2Vec2.

kelas transformers.models.wav2vec2.modeling_wav2vec2.Wav2Vec2ForPreTrainingOutput

< >

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

Parameter

  • loss (*optional*, returned when sample_negative_indices are passed, torch.Tensor of shape (1,)) — Total loss sebagai jumlah dari contrastive loss (L_m) dan diversity loss (L_d) sebagaimana dinyatakan dalam paper resmi.
  • projected_states (torch.Tensor dengan bentuk (batch_size, sequence_length, config.proj_codevector_dim)) — Hidden-states dari model yang diproyeksikan ke config.proj_codevector_dim yang dapat digunakan untuk memprediksi projected quantized states yang ter-mask.
  • projected_quantized_states (torch.Tensor dengan bentuk (batch_size, sequence_length, config.proj_codevector_dim)) — Vektor fitur tereksstraksi yang terkuantisasi dan diproyeksikan ke config.proj_codevector_dim, yang mewakili vektor target positif untuk kerugian kontras (contrastive loss).
  • codevector_perplexity (torch.Tensor dengan bentuk (1,)) — Perplexity dari distribusi codevector, digunakan untuk mengukur keragaman codebook.
  • hidden_states (tuple[torch.Tensor], opsional, dikembalikan ketika output_hidden_states=True dilewatkan atau ketika config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output embeddings, jika model memiliki lapisan embedding, + satu untuk output setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple[torch.Tensor], opsional, dikembalikan ketika output_attentions=True dilewatkan atau ketika config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

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

  • contrastive_loss (*optional*, dikembalikan saat sample_negative_indices diberikan, torch.Tensor dengan bentuk (1,)) — Loss kontrastif (L_m) sebagaimana dinyatakan dalam paper resmi.
  • diversity_loss (*optional*, returned when sample_negative_indices are passed, torch.Tensor of shape (1,)) — The diversity loss (L_d) as stated in the official paper.

Jenis output dari Wav2Vec2ForPreTraining, dengan potensi hidden states dan attentions.

Wav2Vec2Model

kelas transformers.Wav2Vec2Model

< >

( config: Wav2Vec2Config )

Parameter

  • config (Wav2Vec2Config) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

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

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

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

Parameter

  • input_values (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Nilai float dari waveform ucapan mentah input. Nilai dapat diperoleh dengan memuat file audio .flac atau .wav ke dalam array bertipe list[float], numpy.ndarray atau torch.Tensor, misalnya melalui pustaka torchcodec (pip install torchcodec) atau pustaka soundfile (pip install soundfile). Untuk menyiapkan array menjadi input_values, gunakan AutoProcessor untuk padding dan konversi menjadi tensor bertipe torch.Tensor. Lihat Wav2Vec2Processor.call() untuk detailnya.
  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

  • mask_time_indices (torch.BoolTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks untuk mem-mask fitur yang diekstrak untuk contrastive loss. Saat dalam mode pelatihan, model belajar memprediksi fitur yang diekstrak dan di-mask dalam ruang config.proj_codevector_dim.

Mengembalikan

Wav2Vec2BaseModelOutput atau tuple(torch.Tensor)

Sebuah Wav2Vec2BaseModelOutput atau tuple dari torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (Wav2Vec2Config) dan input.

Metode forward dari Wav2Vec2Model menimpa metode khusus __call__.

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

  • last_hidden_state (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.

  • extract_features (torch.Tensor dengan bentuk (batch_size, sequence_length, conv_dim[-1])) — Urutan vektor fitur yang diekstrak dari lapisan konvolusional terakhir model.

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output embeddings + satu untuk output setiap layer) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

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

Wav2Vec2ForCTC

kelas transformers.Wav2Vec2ForCTC

< >

( config: Wav2Vec2Configtarget_lang: str | None = None )

Parameter

  • config (Wav2Vec2Config) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
  • target_lang (str, opsional) — ID bahasa dari bobot adapter. Bobot adapter disimpan dalam format adapter..safetensors atau adapter..bin. Hanya relevan saat menggunakan instance Wav2Vec2ForCTC dengan adapter. Menggunakan ‘eng’ secara default.

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

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

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

Parameter

  • input_values (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Nilai float dari waveform ucapan mentah input. Nilai dapat diperoleh dengan memuat file audio .flac atau .wav ke dalam array bertipe list[float], numpy.ndarray atau torch.Tensor, misalnya melalui pustaka torchcodec (pip install torchcodec) atau pustaka soundfile (pip install soundfile). Untuk menyiapkan array menjadi input_values, gunakan AutoProcessor untuk padding dan konversi menjadi tensor bertipe torch.Tensor. Lihat Wav2Vec2Processor.call() untuk detailnya.
  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

  • labels (torch.LongTensor dengan bentuk (batch_size, target_length), opsional) — Label untuk connectionist temporal classification. Perhatikan bahwa target_length harus lebih kecil atau sama dengan panjang sekuens dari output logits. Indeks dipilih dalam [-100, 0, ..., config.vocab_size - 1]. Semua label yang disetel ke -100 diabaikan (diberi mask), loss hanya dihitung untuk label dalam [0, ..., config.vocab_size - 1].

Mengembalikan

CausalLMOutput atau tuple(torch.Tensor)

A CausalLMOutput atau tuple dari torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (Wav2Vec2Config) dan input.

Metode forward dari Wav2Vec2ForCTC menimpa metode khusus __call__.

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

  • loss (torch.Tensor dengan bentuk (1,), opsional, dikembalikan saat labels disediakan) — Loss pemodelan bahasa (untuk prediksi token berikutnya).

  • logits (torch.Tensor dengan bentuk (batch_size, sequence_length, config.vocab_size)) — Skor prediksi dari kepala pemodelan bahasa (skor untuk setiap token kosakata sebelum SoftMax).

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

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

Contoh:

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

< >

( target_lang: strforce_load = True**kwargs )

Parameter

  • target_lang (str) — Harus berupa id bahasa dari bobot adapter yang sudah ada. Bobot adapter disimpan dalam format adapter..safetensors atau adapter..bin
  • force_load (bool, default True) — Apakah bobot akan dimuat meskipun target_lang cocok dengan self.target_lang.
  • cache_dir (Union[str, os.PathLike], opsional) — Path ke direktori tempat konfigurasi model pretrained yang diunduh harus di-cache jika cache standar tidak digunakan.
  • force_download (bool, opsional, default False) — Apakah akan memaksa (mengunduh ulang) bobot model dan file konfigurasi, menimpa versi yang sudah di-cache jika ada.
  • proxies (dict[str, str], opsional) — Kamus server proxy yang digunakan berdasarkan protokol atau endpoint, misalnya {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Proxy digunakan pada setiap permintaan.
  • local_files_only(bool, opsional, defaultnya False) — Apakah hanya melihat file lokal (yaitu, tidak mencoba mengunduh model).
  • token (str atau bool, opsional) — Token yang digunakan sebagai otorisasi bearer HTTP untuk file jarak jauh. Jika True, atau tidak ditentukan, akan menggunakan token yang dihasilkan saat menjalankan hf auth login (disimpan di ~/.huggingface).
  • revision (str, opsional, default ke "main") — Versi model spesifik yang akan digunakan. Bisa berupa nama branch, nama tag, atau commit id, karena kami menggunakan sistem berbasis git untuk menyimpan model dan artefak lainnya di huggingface.co, jadi revision bisa berupa identifikasi apa pun yang diizinkan oleh git.

    Untuk menguji pull request yang Anda buat di Hub, Anda dapat meneruskan revision="refs/pr/<pr_number>".

  • mirror (str, optional) — Mirror source to accelerate downloads in China. If you are from China and have an accessibility problem, you can set this option to resolve it. Note that we do not guarantee the timeliness or safety. Please refer to the mirror site for more information.

Muat model adapter bahasa dari model adapter yang telah dilatih sebelumnya.

Aktifkan “offline-mode” khusus untuk menggunakan metode ini di lingkungan yang terisolasi oleh firewall.

Contoh:

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

kelas transformers.Wav2Vec2ForSequenceClassification

< >

( config: Wav2Vec2Config )

Parameter

  • config (Wav2Vec2Config) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

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

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

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

Parameter

  • input_values (torch.Tensor dengan bentuk (batch_size, sequence_length)) — Nilai float dari waveform ucapan mentah input. Nilai dapat diperoleh dengan memuat file audio .flac atau .wav ke dalam array bertipe list[float], numpy.ndarray atau torch.Tensor, misalnya melalui pustaka torchcodec (pip install torchcodec) atau pustaka soundfile (pip install soundfile). Untuk menyiapkan array menjadi input_values, gunakan AutoProcessor untuk padding dan konversi menjadi tensor bertipe torch.Tensor. Lihat Wav2Vec2Processor.call() untuk detailnya.
  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

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

Mengembalikan

SequenceClassifierOutput atau tuple(torch.Tensor)

Sebuah SequenceClassifierOutput atau tuple dari torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (Wav2Vec2Config) dan input.

Metode forward dari Wav2Vec2ForSequenceClassification menimpa metode khusus __call__.

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

  • loss (torch.Tensor dengan bentuk (1,), opsional, dikembalikan saat labels disediakan) — Loss klasifikasi (atau regresi jika config.num_labels==1).

  • logits (torch.Tensor dengan bentuk (batch_size, config.num_labels)) — Skor klasifikasi (atau regresi jika config.num_labels==1) (sebelum SoftMax).

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

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

Contoh klasifikasi label tunggal:

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

Contoh klasifikasi multi-label:

>>> 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).loss

Wav2Vec2ForAudioFrameClassification

kelas transformers.Wav2Vec2ForAudioFrameClassification

< >

( config: Wav2Vec2Config )

Parameter

  • config (Wav2Vec2Config) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

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

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

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

Parameter

  • input_values (torch.Tensor dengan bentuk (batch_size, sequence_length)) — Nilai float dari waveform ucapan mentah input. Nilai dapat diperoleh dengan memuat file audio .flac atau .wav ke dalam array bertipe list[float], numpy.ndarray, atau torch.Tensor, misalnya melalui pustaka torchcodec (pip install torchcodec) atau pustaka soundfile (pip install soundfile). Untuk menyiapkan array menjadi input_values, gunakan AutoProcessor untuk padding dan konversi menjadi tensor bertipe torch.Tensor. Lihat Wav2Vec2Processor.call() untuk detailnya.
  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

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

Mengembalikan

TokenClassifierOutput atau tuple(torch.Tensor)

Sebuah TokenClassifierOutput atau tuple dari torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (Wav2Vec2Config) dan input.

Metode forward dari Wav2Vec2ForAudioFrameClassification menimpa metode khusus __call__.

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

  • loss (torch.Tensor dengan bentuk (1,), opsional, dikembalikan saat labels disediakan) — Loss klasifikasi.

  • logits (torch.Tensor dengan bentuk (batch_size, sequence_length, config.num_labels)) — Skor klasifikasi (sebelum SoftMax).

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

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

Contoh:

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

kelas transformers.Wav2Vec2ForXVector

< >

( config: Wav2Vec2Config )

Parameter

  • config (Wav2Vec2Config) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Model Wav2Vec2 dengan kepala ekstraksi fitur XVector di atasnya untuk tugas seperti Verifikasi Pembicara.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

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

Parameter

  • input_values (torch.Tensor dengan bentuk (batch_size, sequence_length)) — Nilai float dari waveform ucapan mentah input. Nilai dapat diperoleh dengan memuat file audio .flac atau .wav ke dalam array bertipe list[float], numpy.ndarray atau torch.Tensor, misalnya melalui pustaka torchcodec (pip install torchcodec) atau pustaka soundfile (pip install soundfile). Untuk menyiapkan array menjadi input_values, gunakan AutoProcessor untuk padding dan konversi menjadi tensor bertipe torch.Tensor. Lihat Wav2Vec2Processor.call() untuk detailnya.
  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

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

Mengembalikan

XVectorOutput atau tuple(torch.Tensor)

Sebuah XVectorOutput atau tuple dari torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (Wav2Vec2Config) dan input.

Metode forward dari Wav2Vec2ForXVector menimpa metode khusus __call__.

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

  • loss (torch.Tensor dengan bentuk (1,), opsional, dikembalikan saat labels disediakan) — Loss klasifikasi.

  • logits (torch.Tensor dengan bentuk (batch_size, config.xvector_output_dim)) — Hidden state klasifikasi sebelum AMSoftmax.

  • embeddings (torch.Tensor dengan bentuk (batch_size, config.xvector_output_dim)) — Embedding ucapan yang digunakan untuk pengambilan berbasis kemiripan vektor.

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output embeddings + satu untuk output setiap layer) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

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

Contoh:

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

kelas transformers.Wav2Vec2ForPreTraining

< >

( config: Wav2Vec2Config )

Parameter

  • config (Wav2Vec2Config) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Model Wav2Vec2 dengan kuantizer dan head VQ di atasnya.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

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

Parameter

  • input_values (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Nilai float dari waveform ucapan mentah input. Nilai dapat diperoleh dengan memuat file audio .flac atau .wav ke dalam array bertipe list[float], numpy.ndarray atau torch.Tensor, misalnya melalui pustaka torchcodec (pip install torchcodec) atau pustaka soundfile (pip install soundfile). Untuk menyiapkan array menjadi input_values, gunakan AutoProcessor untuk padding dan konversi menjadi tensor bertipe torch.Tensor. Lihat Wav2Vec2Processor.call() untuk detailnya.
  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

  • mask_time_indices (torch.BoolTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks untuk mem-mask fitur yang diekstrak untuk contrastive loss. Saat dalam mode pelatihan, model belajar memprediksi fitur yang diekstrak dan di-mask dalam ruang config.proj_codevector_dim.
  • sampled_negative_indices (torch.BoolTensor dengan bentuk (batch_size, sequence_length, num_negatives), opsional) — Indeks yang menunjukkan vektor target terkuantisasi mana yang digunakan sebagai vektor sampel negatif dalam kerugian kontras. Input yang diperlukan untuk pra-pelatihan.

Mengembalikan

Wav2Vec2ForPreTrainingOutput atau tuple(torch.Tensor)

A Wav2Vec2ForPreTrainingOutput atau tuple dari torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (Wav2Vec2Config) dan input.

Metode forward dari Wav2Vec2ForPreTraining menimpa metode khusus __call__.

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

  • loss (*optional*, dikembalikan saat sample_negative_indices diberikan, torch.Tensor dengan bentuk (1,)) — Total loss sebagai penjumlahan dari contrastive loss (L_m) dan diversity loss (L_d) sebagaimana dinyatakan dalam paper resmi.

  • projected_states (torch.Tensor dengan bentuk (batch_size, sequence_length, config.proj_codevector_dim)) — Hidden-states dari model yang diproyeksikan ke config.proj_codevector_dim yang dapat digunakan untuk memprediksi state kuantisasi terproyeksi yang ter-mask.

  • projected_quantized_states (torch.Tensor dengan bentuk (batch_size, sequence_length, config.proj_codevector_dim)) — Vektor fitur tereksstraksi yang terkuantisasi dan diproyeksikan ke config.proj_codevector_dim, yang mewakili vektor target positif untuk kerugian kontras (contrastive loss).

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

  • hidden_states (tuple[torch.Tensor], opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple[torch.Tensor], opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

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

  • contrastive_loss (*optional*, dikembalikan ketika sample_negative_indices diberikan, torch.Tensor dengan bentuk (1,)) — Loss kontrastif (L_m) sebagaimana dinyatakan dalam paper resmi.

  • diversity_loss (*optional*, dikembalikan saat sample_negative_indices diberikan, torch.Tensor dengan bentuk (1,)) — Keragaman loss (L_d) sebagaimana dinyatakan dalam paper resmi.

Contoh:

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