Transformers documentation

VITS

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
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 2021-06-11 dan disumbangkan ke Hugging Face Transformers pada 2023-09-01.

VITS

VITS (Variational Inference with adversarial learning for end-to-end Text-to-Speech) adalah model sintesis ucapan end-to-end yang menyederhanakan sistem text-to-speech (TTS) dua tahap tradisional. Keunikannya terletak pada kemampuannya mensintesis ucapan langsung dari teks menggunakan variational inference, adversarial learning, dan normalizing flows untuk menghasilkan ucapan yang natural dan ekspresif dengan ritme serta intonasi yang beragam.

Anda dapat menemukan semua checkpoint VITS asli di bawah organisasi AI at Meta.

Klik model VITS di bilah sisi kanan untuk melihat lebih banyak contoh cara menerapkan VITS.

Contoh di bawah ini menunjukkan cara menghasilkan teks berdasarkan gambar dengan Pipeline atau kelas AutoModel.

Pipeline
AutoModel
from scipy.io.wavfile import write

from transformers import pipeline, set_seed


set_seed(555)

pipe = pipeline(
    task="text-to-speech",
    model="facebook/mms-tts-eng",
    device=0
)

speech = pipe("Hello, my dog is cute")

# Extract audio data and sampling rate
audio_data = speech["audio"]
sampling_rate = speech["sampling_rate"]

# Save as WAV file
write("hello.wav", sampling_rate, audio_data.squeeze())

Catatan

  • Atur seed untuk reproduktibilitas karena VITS mensintesis ucapan secara non-deterministik.

  • Untuk bahasa dengan alfabet non-Romawi (Korea, Arab, dll.), instal paket uroman untuk memproses pra-tekst input ke alfabet Romawi. Anda dapat memeriksa apakah tokenizer memerlukan uroman seperti yang ditunjukkan di bawah ini.

    # pip install -U uroman
    from transformers import VitsTokenizer
    
    tokenizer = VitsTokenizer.from_pretrained("facebook/mms-tts-eng")
    print(tokenizer.is_uroman)

    Jika bahasa Anda memerlukan uroman, tokenizer secara otomatis menerapkannya ke input teks.

VitsConfig

kelas transformers.VitsConfig

< >

( 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 = 38hidden_size: int = 192num_hidden_layers: int = 6num_attention_heads: int = 2window_size: int = 4use_bias: bool = Trueffn_dim: int = 768layerdrop: float | int = 0.1ffn_kernel_size: int = 3flow_size: int = 192spectrogram_bins: int = 513hidden_act: str = 'relu'hidden_dropout: float | int = 0.1attention_dropout: float | int = 0.1activation_dropout: float | int = 0.1initializer_range: float = 0.02layer_norm_eps: float = 1e-05use_stochastic_duration_prediction: bool = Truenum_speakers: int = 1speaker_embedding_size: int = 0upsample_initial_channel: int = 512upsample_rates: list[int] | tuple[int, ...] = (8, 8, 2, 2)upsample_kernel_sizes: list[int] | tuple[int, ...] = (16, 16, 4, 4)resblock_kernel_sizes: list[int] | tuple[int, ...] = (3, 7, 11)resblock_dilation_sizes: list | tuple = ((1, 3, 5), (1, 3, 5), (1, 3, 5))leaky_relu_slope: float = 0.1depth_separable_channels: int = 2depth_separable_num_layers: int = 3duration_predictor_flow_bins: int = 10duration_predictor_tail_bound: float = 5.0duration_predictor_kernel_size: int = 3duration_predictor_dropout: float | int = 0.5duration_predictor_num_flows: int = 4duration_predictor_filter_channels: int = 256prior_encoder_num_flows: int = 4prior_encoder_num_wavenet_layers: int = 4posterior_encoder_num_wavenet_layers: int = 16wavenet_kernel_size: int = 5wavenet_dilation_rate: int = 1wavenet_dropout: float | int = 0.0speaking_rate: float | int = 1.0noise_scale: float = 0.667noise_scale_duration: float = 0.8sampling_rate: int = 16000pad_token_id: int | None = None )

Parameter

  • vocab_size (int, opsional, default 38) — Ukuran kosakata model. Menentukan jumlah token berbeda yang dapat direpresentasikan oleh input_ids.
  • hidden_size (int, opsional, default 192) — Dimensi dari representasi tersembunyi.
  • num_hidden_layers (int, opsional, default 6) — Jumlah lapisan tersembunyi dalam decoder Transformer.
  • num_attention_heads (int, opsional, default 2) — Jumlah attention head untuk setiap lapisan attention di decoder Transformer.
  • window_size (int, opsional, default 4) — Ukuran jendela untuk embedding posisi relatif pada lapisan perhatian dari encoder Transformer.
  • use_bias (bool, opsional, default True) — Apakah akan menggunakan bias pada lapisan proyeksi key, query, dan value di encoder Transformer.
  • ffn_dim (int, opsional, default 768) — Dimensi dari representasi MLP.
  • layerdrop (Union[float, int], opsional, default 0.1) — Probabilitas LayerDrop. Lihat [makalah LayerDrop](lihat https://huggingface.co/papers/1909.11556) untuk detail lebih lanjut.
  • ffn_kernel_size (int, opsional, default 3) — Ukuran kernel dari lapisan konvolusi 1D yang digunakan oleh jaringan feed-forward dalam encoder Transformer.
  • flow_size (int, opsional, default 192) — Dimensi dari lapisan flow.
  • spectrogram_bins (int, opsional, default 513) — Jumlah bin frekuensi pada spektrogram target.
  • hidden_act (str, opsional, defaultnya relu) — 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.
  • attention_dropout (Union[float, int], opsional, default 0.1) — Rasio dropout untuk probabilitas perhatian.
  • activation_dropout (Union[float, int], opsional, defaultnya 0.1) — Rasio dropout untuk aktivasi di dalam lapisan fully connected.
  • 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.
  • use_stochastic_duration_prediction (bool, opsional, default True) — Apakah akan menggunakan modul prediksi durasi stokastik atau prediktor durasi reguler.
  • num_speakers (int, opsional, default 1) — Jumlah pembicara jika ini adalah model multi-pembicara.
  • speaker_embedding_size (int, opsional, default 0) — Jumlah channel yang digunakan oleh speaker embeddings. Nilainya nol untuk model single-speaker.
  • upsample_initial_channel (int, opsional, default 512) — Jumlah channel input ke jaringan upsampling HiFi-GAN.
  • upsample_rates (tuple[int] atau list[int], opsional, default [8, 8, 2, 2]) — Tuple bilangan bulat yang mendefinisikan stride dari setiap lapisan konvolusi 1D dalam jaringan upsampling HiFi-GAN. Panjang upsample_rates menentukan jumlah lapisan konvolusi dan harus sesuai dengan panjang upsample_kernel_sizes.
  • upsample_kernel_sizes (tuple[int] atau list[int], opsional, default [16, 16, 4, 4]) — Tuple dari bilangan bulat yang mendefinisikan ukuran kernel dari setiap lapisan konvolusi 1D dalam jaringan upsampling HiFi-GAN. Panjang dari upsample_kernel_sizes mendefinisikan jumlah lapisan konvolusi dan harus sesuai dengan panjang dari upsample_rates.
  • resblock_kernel_sizes (tuple[int] atau list[int], opsional, default [3, 7, 11]) — Tuple dari bilangan bulat yang mendefinisikan ukuran kernel dari lapisan konvolusi 1D dalam modul multi-receptive field fusion (MRF) HiFi-GAN.
  • resblock_dilation_sizes (tuple[tuple[int]] atau list[list[int]], opsional, default [[1, 3, 5], [1, 3, 5], [1, 3, 5]]) — Tuple bersarang berisi integer yang mendefinisikan laju dilatasi dari lapisan konvolusi 1D berdilatasi dalam modul multi-receptive field fusion (MRF) HiFi-GAN.
  • leaky_relu_slope (float, opsional, default 0.1) — Sudut kemiringan negatif yang digunakan oleh aktivasi leaky ReLU.
  • depth_separable_channels (int, opsional, default 2) — Jumlah channel yang digunakan di setiap blok depth-separable.
  • depth_separable_num_layers (int, opsional, default 3) — Jumlah lapisan konvolusi yang digunakan di setiap blok depth-separable.
  • duration_predictor_flow_bins (int, opsional, default 10) — Jumlah channel yang dipetakan menggunakan unonstrained rational spline pada model duration predictor.
  • duration_predictor_tail_bound (float, opsional, default 5.0) — Nilai batas bin ekor saat menghitung spline rasional tak terbatas pada model duration predictor.
  • duration_predictor_kernel_size (int, opsional, default 3) — Ukuran kernel dari lapisan konvolusi 1D yang digunakan dalam model duration predictor.
  • duration_predictor_dropout (float, opsional, default 0.5) — Rasio dropout untuk model duration predictor.
  • duration_predictor_num_flows (int, opsional, default 4) — Jumlah tahap flow yang digunakan oleh model duration predictor.
  • duration_predictor_filter_channels (int, opsional, default 256) — Jumlah channel untuk lapisan konvolusi yang digunakan dalam model duration predictor.
  • prior_encoder_num_flows (int, opsional, default 4) — Jumlah tahap flow yang digunakan oleh model flow prior encoder.
  • prior_encoder_num_wavenet_layers (int, opsional, default 4) — Jumlah lapisan WaveNet yang digunakan oleh model alur prior encoder.
  • posterior_encoder_num_wavenet_layers (int, opsional, default 16) — Jumlah lapisan WaveNet yang digunakan oleh model posterior encoder.
  • wavenet_kernel_size (int, opsional, default 5) — Ukuran kernel dari lapisan konvolusi 1D yang digunakan dalam model WaveNet.
  • wavenet_dilation_rate (int, opsional, default 1) — Laju dilasi untuk lapisan konvolusi 1D yang terdilasi yang digunakan dalam model WaveNet.
  • wavenet_dropout (float, opsional, default 0.0) — Rasio dropout untuk lapisan WaveNet.
  • speaking_rate (float, opsional, default 1.0) — Kecepatan bicara. Nilai yang lebih besar menghasilkan suara sintesis yang lebih cepat.
  • noise_scale (float, opsional, default 0,667) — Seberapa acak prediksi ucapan. Nilai yang lebih besar menghasilkan variasi yang lebih besar pada ucapan yang diprediksi.
  • noise_scale_duration (float, opsional, default 0.8) — Seberapa acak prediksi durasi. Nilai yang lebih besar menghasilkan variasi lebih besar pada durasi yang diprediksi.
  • sampling_rate (int, opsional, default 16000) — Laju sampling di mana file audio harus didigitalisasi, dinyatakan dalam hertz (Hz).
  • pad_token_id (int, opsional) — ID token yang digunakan untuk padding dalam kosakata.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari VitsModel. Kelas ini digunakan untuk membuat instans model Vits berdasarkan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai default akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari facebook/mms-tts-eng

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

Contoh:

>>> from transformers import VitsModel, VitsConfig

>>> # Initializing a "facebook/mms-tts-eng" style configuration
>>> configuration = VitsConfig()

>>> # Initializing a model (with random weights) from the "facebook/mms-tts-eng" style configuration
>>> model = VitsModel(configuration)

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

VitsTokenizer

kelas transformers.VitsTokenizer

< >

( vocab_filepad_token = '<pad>'unk_token = '<unk>'language = Noneadd_blank = Truenormalize = Truephonemize = Trueis_uroman = False**kwargs )

Parameter

  • vocab_file (str) — Path ke file kosakata.
  • language (str, opsional) — Pengenal bahasa.
  • add_blank (bool, opsional, default True) — Apakah akan menyisipkan token id 0 di antara token lainnya.
  • normalize (bool, opsional, default True) — Apakah akan menormalisasi teks input dengan menghapus semua kapitalisasi dan tanda baca.
  • phonemize (bool, opsional, default True) — Apakah teks input akan dikonversi menjadi fonem.
  • is_uroman (bool, opsional, default False) — Apakah Romanizer uroman perlu diterapkan pada teks input sebelum proses tokenisasi.

Membangun tokenizer VITS. Mendukung juga MMS-TTS.

Tokenizer ini mewarisi dari PreTrainedTokenizer yang berisi sebagian besar metode utama. Pengguna harus merujuk ke superclass ini 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 )

VitsModel

kelas transformers.VitsModel

< >

( config: VitsConfig )

Parameter

  • config (VitsConfig) — 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 VITS lengkap, untuk sintesis teks-ke-bicara.

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_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonespeaker_id: int | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = Nonelabels: typing.Optional[torch.Tensor] = Nonespeaking_rate: float | None = None**kwargs ) → VitsModelOutput or tuple(torch.Tensor)

Parameter

  • input_ids (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.

    Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.

    Apa itu input ID?

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

  • speaker_id (int, opsional) — Embedding pembicara mana yang akan digunakan. Hanya digunakan untuk model multispeaker.
  • output_attentions (bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihat attentions di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • output_hidden_states (bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihat hidden_states di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • return_dict (bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.
  • labels (torch.Tensor dengan bentuk (batch_size, config.spectrogram_bins, sequence_length), opsional) — Nilai float dari target spectrogram. Timesteps yang diset ke -100.0 akan diabaikan (diberi mask) untuk perhitungan loss.
  • speaking_rate (float, opsional) — Kecepatan bicara.

Mengembalikan

VitsModelOutput atau tuple(torch.Tensor)

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

Metode forward dari VitsModel 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.

  • waveform (torch.Tensor dengan bentuk (batch_size, sequence_length)) — Gelombang audio akhir yang diprediksi oleh model.

  • sequence_lengths (torch.Tensor dengan bentuk (batch_size,)) — Panjang dalam sampel untuk setiap elemen dalam batch waveform.

  • spectrogram (torch.Tensor dengan bentuk (batch_size, sequence_length, num_bins)) — Spekrogram log-mel yang diprediksi pada keluaran model flow. Spekrogram ini diteruskan ke model decoder Hi-Fi GAN untuk mendapatkan waveform audio akhir.

  • 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 VitsTokenizer, VitsModel, set_seed
>>> import torch

>>> tokenizer = VitsTokenizer.from_pretrained("facebook/mms-tts-eng")
>>> model = VitsModel.from_pretrained("facebook/mms-tts-eng")

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

>>> set_seed(555)  # make deterministic

>>> with torch.no_grad():
...     outputs = model(inputs["input_ids"])
>>> outputs.waveform.shape
torch.Size([1, 45824])
Update on GitHub