Transformers documentation
VITS
Bu model 2021-06-11 tarihinde HF papers'ta yayımlanmış ve 2023-09-01 tarihinde Hugging Face Transformers'a katkıda bulunmuştur.
VITS
VITS (Variational Inference with adversarial learning for end-to-end Text-to-Speech), geleneksel iki aşamalı metin-konuşma (TTS) sistemlerini basitleştiren uçtan uca bir konuşma sentez modelidir. Varyasyonel çıkarım, adversarial öğrenme ve normalizing flows kullanarak metinden doğrudan konuşma sentezlemesi yapmasıyla benzersizdir; bu sayede çeşitli ritim ve tonlamalara sahip, doğal ve ifade gücü yüksek konuşma üretir.
Tüm orijinal VITS checkpoint dosyalarını AI at Meta kuruluşu altında bulabilirsiniz.
VITS modellerini uygulamaya ilişkin daha fazla örnek için sağ kenar çubuğundaki VITS modellerine tıklayın.
Aşağıdaki örnek, Pipeline veya AutoModel sınıfı kullanılarak bir görüntüye dayalı metin üretmenin nasıl yapılacağını göstermektedir.
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())import scipy
import torch
from IPython.display import Audio
from transformers import AutoTokenizer, VitsModel, set_seed
tokenizer = AutoTokenizer.from_pretrained("facebook/mms-tts-eng")
model = VitsModel.from_pretrained("facebook/mms-tts-eng", device_map="auto")
inputs = tokenizer("Hello, my dog is cute", return_tensors="pt").to(model.device)
set_seed(555)
with torch.no_grad():
outputs = model(**inputs)
waveform = outputs.waveform[0]
scipy.io.wavfile.write("hello.wav", rate=model.config.sampling_rate, data=waveform)
# display in Colab notebook
Audio(waveform, rate=model.config.sampling_rate)Notlar
VITS konuşmayı deterministik olmayan bir şekilde sentezlediği için, tekrarlanabilirlik için bir tohum (seed) ayarlayın.
Roma alfabesi dışındaki alfabelere sahip diller (Korece, Arapça vb.) için metin girdilerini Roma alfabesine dönüştürmek üzere uroman paketini yükleyin. Aşağıda gösterildiği gibi, tokenizer'ın uroman gerekip gerektirmediğini kontrol edebilirsiniz.
# pip install -U uroman from transformers import VitsTokenizer tokenizer = VitsTokenizer.from_pretrained("facebook/mms-tts-eng") print(tokenizer.is_uroman)Diliniz uroman gerektiriyorsa, tokenizer bunu metin girdilerine otomatik olarak uygular.
VitsConfig
sınıf transformers.VitsConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 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 )
Parametreler
- vocab_size (
int, isteğe bağlı, varsayılan38) — Modelin sözlük boyutu.input_idsile temsil edilebilecek farklı token sayısını belirler. - hidden_size (
int, isteğe bağlı, varsayılan192) — Gizli temsillerin boyutu. - num_hidden_layers (
int, isteğe bağlı, varsayılan6) — Transformer çözücüdeki gizli katman sayısı. - num_attention_heads (
int, isteğe bağlı, varsayılan2) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı. - window_size (
int, isteğe bağlı, varsayılan 4) — Transformer kodlayıcısının dikkat katmanlarındaki göreli konumsal gömme (embedding) için pencere boyutu. - use_bias (
bool, isteğe bağlı, varsayılanTrue) — Transformer kodlayıcısında anahtar, sorgu ve değer projeksiyon katmanlarında sapma (bias) kullanılıp kullanılmayacağı. - ffn_dim (
int, isteğe bağlı, varsayılan768) — MLP temsillerinin boyutu. - layerdrop (
Union[float, int], isteğe bağlı, varsayılan0.1) — LayerDrop olasılığı. Daha fazla ayrıntı için [LayerDrop makalesine](bkz. https://huggingface.co/papers/1909.11556) bakın. - ffn_kernel_size (
int, isteğe bağlı, varsayılan 3) — Transformer kodlayıcısında ileri beslemeli ağ tarafından kullanılan 1B konvolüsyon katmanlarının çekirdek boyutu. - flow_size (
int, isteğe bağlı, varsayılan 192) — Akış katmanlarının boyutluluğu. - spectrogram_bins (
int, isteğe bağlı, varsayılan 513) — Hedef spektrogramdaki frekans kutusu sayısı. - hidden_act (
str, isteğe bağlı, varsayılanrelu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin,"gelu","relu","silu"vb. - hidden_dropout (
Union[float, int], isteğe bağlı, varsayılan0.1) — Gömme, kodlayıcı ve havuzlayıcıdaki tüm tam bağlı katmanlar için dropout olasılığı. - attention_dropout (
Union[float, int], isteğe bağlı, varsayılan0.1) — Dikkat olasılıkları için dropout oranı. - activation_dropout (
Union[float, int], isteğe bağlı, varsayılan0.1) — Tamamen bağlı katmandaki aktivasyonlar için dropout oranı. - initializer_range (
float, isteğe bağlı, varsayılan0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması. - layer_norm_eps (
float, isteğe bağlı, varsayılan1e-05) — Katman normalizasyon katmanları tarafından kullanılan epsilon. - use_stochastic_duration_prediction (
bool, isteğe bağlı, varsayılanTrue) — Stokastik süre tahmin modülünün yoksa normal süre tahmincisinin kullanılıp kullanılmayacağını belirtir. - num_speakers (
int, isteğe bağlı, varsayılan 1) — Bu çok konuşmacılı bir modelse konuşmacı sayısı. - speaker_embedding_size (
int, isteğe bağlı, varsayılan 0) — Konuşmacı gömme (embedding) tarafından kullanılan kanal sayısı. Tek konuşmacılı modellerde sıfırdır. - upsample_initial_channel (
int, isteğe bağlı, varsayılan 512) — HiFi-GAN örnekleme artırma ağına giren giriş kanalı sayısı. - upsample_rates (
tuple[int]veyalist[int], isteğe bağlı, varsayılan[8, 8, 2, 2]) — HiFi-GAN örnekleme artırma (upsampling) ağındaki her 1D konvolüsyonel katmanın stride değerini tanımlayan tamsayı bir demet.upsample_ratesuzunluğu, konvolüsyonel katman sayısını belirler veupsample_kernel_sizesuzunluğuyla eşleşmelidir. - upsample_kernel_sizes (
tuple[int]veyalist[int], isteğe bağlı, varsayılan[16, 16, 4, 4]) — HiFi-GAN örnekleme artırma (upsampling) ağındaki her 1D konvolüsyonel katman için çekirdek boyutunu tanımlayan tamsayılar dizisi.upsample_kernel_sizes'in uzunluğu konvolüsyonel katman sayısını belirler veupsample_rates'in uzunluğuyla eşleşmelidir. - resblock_kernel_sizes (
tuple[int]veyalist[int], isteğe bağlı, varsayılan[3, 7, 11]) — HiFi-GAN çoklu algılama alanı füzyonu (MRF) modülündeki 1D konvolüsyon katmanlarının çekirdek boyutlarını tanımlayan tamsayılar dizisi. - resblock_dilation_sizes (
tuple[tuple[int]]veyalist[list[int]], isteğe bağlı, varsayılan[[1, 3, 5], [1, 3, 5], [1, 3, 5]]) — HiFi-GAN çoklu algılama alanı füzyonu (MRF) modülündeki seyreltilmiş 1D konvolüsyonlu katmanların seyreltme oranlarını tanımlayan iç içe geçmiş bir tamsayı tuple'ı. - leaky_relu_slope (
float, isteğe bağlı, varsayılan 0.1) — Leaky ReLU aktivasyonunun kullandığı negatif eğimin açısı. - depth_separable_channels (
int, isteğe bağlı, varsayılan 2) — Her derinlik-ayrılabilir blokta kullanılacak kanal sayısı. - depth_separable_num_layers (
int, isteğe bağlı, varsayılan 3) — Her derinlik ayrılabilir blokta kullanılacak konvolüsyon katmanlarının sayısı. - duration_predictor_flow_bins (
int, isteğe bağlı, varsayılan 10) — Süre tahmin edici modelde kısıtsız rasyonel spline kullanılarak eşlenecek kanal sayısı. - duration_predictor_tail_bound (
float, isteğe bağlı, varsayılan 5.0) — Süre tahmincisi modelinde kısıtsız rasyonel spline hesaplanırken kuyruk sınırlarının değeri. - duration_predictor_kernel_size (
int, isteğe bağlı, varsayılan 3) — Süre tahminci modelinde kullanılan 1B konvolüsyon katmanlarının çekirdek boyutu. - duration_predictor_dropout (
float, isteğe bağlı, varsayılan 0.5) — Süre tahmincisi modeli için dropout oranı. - duration_predictor_num_flows (
int, isteğe bağlı, varsayılan 4) — Süre tahmincisi modelinin kullandığı akış aşaması sayısı. - duration_predictor_filter_channels (
int, isteğe bağlı, varsayılan 256) — Süre tahminci modelinde kullanılan konvolüsyon katmanları için kanal sayısı. - prior_encoder_num_flows (
int, isteğe bağlı, varsayılan 4) — Önceden kodlayıcı akış modeli tarafından kullanılan akış aşamalarının sayısı. - prior_encoder_num_wavenet_layers (
int, isteğe bağlı, varsayılan 4) — Önceden kodlayıcı akış modeli tarafından kullanılan WaveNet katmanlarının sayısı. - posterior_encoder_num_wavenet_layers (
int, isteğe bağlı, varsayılan 16) — Posterior encoder modelinin kullandığı WaveNet katmanlarının sayısı. - wavenet_kernel_size (
int, isteğe bağlı, varsayılan 5) — WaveNet modelinde kullanılan 1D konvolüsyon katmanlarının çekirdek boyutu. - wavenet_dilation_rate (
int, isteğe bağlı, varsayılan 1) — WaveNet modelinde kullanılan seyreltilmiş 1D konvolüsyonel katmanların seyreltme oranları. - wavenet_dropout (
float, opsiyonel, varsayılan 0.0) — WaveNet katmanları için dropout oranı. - speaking_rate (
float, isteğe bağlı, varsayılan 1.0) — Konuşma hızı. Daha büyük değerler, daha hızlı sentezlenmiş ses verir. - noise_scale (
float, isteğe bağlı, varsayılan 0.667) — Konuşma tahmininin ne kadar rastgele olduğunu belirler. Daha büyük değerler, tahmin edilen konuşmada daha fazla çeşitlilik oluşturur. - noise_scale_duration (
float, isteğe bağlı, varsayılan 0.8) — Süre tahmininin ne kadar rastgele olduğu. Daha büyük değerler, tahmin edilen sürelerde daha fazla çeşitlilik oluşturur. - sampling_rate (
int, isteğe bağlı, varsayılan16000) — Ses dosyalarının dijitalleştirilmesi gereken örnekleme hızı, hertz (Hz) cinsinden ifade edilir. - pad_token_id (
int, isteğe bağlı) — Sözlükte dolgu için kullanılan token kimliği.
Bu, bir VitsModel'in yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Vits modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneği oluşturmak, facebook/mms-tts-eng modelinin yapılandırmasına benzer bir yapılandırma elde edilmesini sağlar.
Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.
Örnek:
>>> from transformers import 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.configVitsTokenizer
sınıf transformers.VitsTokenizer
< source >( vocab_filepad_token = '<pad>'unk_token = '<unk>'language = Noneadd_blank = Truenormalize = Truephonemize = Trueis_uroman = False**kwargs )
Parametreler
- vocab_file (
str) — Sözlük dosyasının yolu. - language (
str, isteğe bağlı) — Dil tanımlayıcısı. - add_blank (
bool, isteğe bağlı, varsayılanTrue) — Diğer token'ların arasına token kimliği 0'ın eklenip eklenmeyeceğini belirtir. - normalize (
bool, isteğe bağlı, varsayılanTrue) — Giriş metnini tüm büyük/küçük harf ayrımını ve noktalama işaretlerini kaldırarak normalize edip etmeyeceğini belirtir. - phonemize (
bool, isteğe bağlı, varsayılanTrue) — Girdi metninin fonemlere dönüştürülüp dönüştürülmeyeceğini belirtir. - is_uroman (
bool, isteğe bağlı, varsayılanFalse) — Tokenize işleminden önce girdi metnineuromanRomanizer'ın uygulanıp uygulanmayacağı.
VITS tokenizer'ı oluşturun. Ayrıca MMS-TTS'yi de destekler.
Bu tokenizer, ana yöntemlerin çoğunu içeren PreTrainedTokenizer sınıfından devralır. Kullanıcıların bu yöntemler hakkında daha fazla bilgi için bu üst sınıfa başvurması gerekir.
__call__
< source >( text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0is_split_into_words: bool = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = Truetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → BatchEncoding
Parametreler
- text (
str,list[str],list[list[str]], isteğe bağlı) — Kodlanacak dizi veya dizi grubu. Her dizi bir metin veya metin listesi (önceden tokenize edilmiş metin) olabilir. Diziler metin listesi olarak (önceden tokenize edilmiş) sağlanıyorsa,is_split_into_words=Truedeğerini ayarlamalısınız (dizi grubu ile karışıklığı önlemek için). - text_pair (
str,list[str],list[list[str]], isteğe bağlı) — Kodlanacak dizi veya dizi grubu. Her dizi bir metin veya metin listesi (önceden tokenize edilmiş metin) olabilir. Diziler metin listesi olarak (önceden tokenize edilmiş) sağlanıyorsa,is_split_into_words=Truedeğerini ayarlamalısınız (dizi grubu ile belirsizliği gidermek için). - text_target (
str,list[str],list[list[str]], isteğe bağlı) — Hedef metin olarak kodlanacak dizi veya dizi grubu. Her dizi bir dize veya dize listesi (önceden tokenize edilmiş dize) olabilir. Diziler dize listesi (önceden tokenize edilmiş) olarak sağlanıyorsa,is_split_into_words=Truedeğerini ayarlamanız gerekir (dizi grubu ile belirsizliği gidermek için). - text_pair_target (
str,list[str],list[list[str]], isteğe bağlı) — Hedef metinler olarak kodlanacak dizi veya dizi partisi. Her dizi bir dize veya dize listesi (önceden tokenize edilmiş dize) olabilir. Diziler dize listesi (önceden tokenize edilmiş) olarak sağlanıyorsa,is_split_into_words=Truedeğerini ayarlamanız gerekir (dizi partisiyle olan belirsizliği gidermek için). - tokenizer_kwargs (
dict[str, Any], isteğe bağlı) — Tokenizöre iletilecek ek kwargs. Bunlar, açık parametreler ve diğer kwargs ile birleştirilir; açık parametreler önceliklidir. - add_special_tokens (
bool, isteğe bağlı, varsayılanTrue) — Dizileri kodlarken özel token eklenip eklenmeyeceğini belirtir. Bu, girdi kimliklerine otomatik olarak hangi tokenların ekleneceğini tanımlayan alttakiPretrainedTokenizerBase.build_inputs_with_special_tokensişlevini kullanır.bosveyaeostokenlarını otomatik olarak eklemek istiyorsanız bu işe yarar. - padding (
bool,strveya PaddingStrategy, isteğe bağlı, varsayılan olarakFalse) — Dolgu işlemini etkinleştirir ve kontrol eder. Aşağıdaki değerleri kabul eder:Trueveya'longest': Toplu işlemdeki en uzun dizinin uzunluğuna kadar dolgu yapılır (yalnızca tek bir dizi sağlanırsa dolgu yapılmaz).'max_length':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kadar doldurur.Falseveya'do_not_pad'(varsayılan): Dolgu yok (yani, farklı uzunluklarda diziler içeren bir parti çıktı olarak üretilebilir).
- truncation (
bool,strveya TruncationStrategy, isteğe bağlı, varsayılan olarakFalse) — Kesmeyi (truncation) etkinleştirir ve kontrol eder. Aşağıdaki değerleri kabul eder:Trueveya'longest_first':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kısaltılır. Bu işlem, token bazında kısaltma yapar; bir çift dizi (veya çift dizilerden oluşan bir batch) sağlandığında, çiftteki en uzun diziden bir token kaldırılır.'only_first':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum giriş uzunluğuna kısaltır. Bir çift dizi (veya çiftlerin bir partisi) sağlandığında, yalnızca çiftin ilk dizisini kısaltır.'only_second':max_lengthargümanı ile belirtilen maksimum uzunluğa veya bu argüman sağlanmadıysa modelin kabul edebileceği maksimum girdi uzunluğuna kısaltılır. Bu, bir dizi çifti (veya çiftlerin bir partisi) sağlandığında yalnızca çiftin ikinci dizisini kısaltır.Falseveya'do_not_truncate'(varsayılan): Kesme yapılmaz (yani, modelin kabul edebileceği maksimum giriş boyutundan daha uzun dizi uzunluklarına sahip bir çıktı partisi üretilebilir).
- max_length (
int, isteğe bağlı) — Bir kesme/doldurma parametresi tarafından kullanılacak maksimum uzunluğu kontrol eder.Eğer ayarlanmazsa veya
Noneolarak ayarlanırsa, kırpma/dolgu parametrelerinden biri tarafından bir maksimum uzunluk gerekiyorsa, bu, önceden tanımlanmış modelin maksimum uzunluğunu kullanır. Modelin belirli bir maksimum giriş uzunluğu yoksa (XLNet gibi), maksimum uzunluğa kırpma/dolgu devre dışı bırakılır. - stride (
int, isteğe bağlı, varsayılan 0) —max_lengthile birlikte bir sayıya ayarlanırsa,return_overflowing_tokens=Trueolduğunda döndürülen taşan jetonlar, kısaltılmış ve taşan diziler arasında bazı örtüşme sağlamak için kısaltılmış dizinin sonundan bazı jetonları içerir. Bu argümanın değeri, örtüşen jeton sayısını tanımlar. - is_split_into_words (
bool, isteğe bağlı, varsayılanFalse) — Girdinin zaten önceden tokenize edilip edilmediğini (örneğin, kelimelere ayrılmış olup olmadığını) belirtir.Trueolarak ayarlanırsa, tokenizer, girdinin zaten kelimelere ayrılmış olduğunu (örneğin, boşluklara göre bölünerek) ve bunları tokenize edeceğini varsayar. Bu, NER veya token sınıflandırma için faydalıdır. - pad_to_multiple_of (
int, isteğe bağlı) — Belirlenirse, diziyi verilen değerin katına kadar doldurur. Bunun içinpaddingetkinleştirilmelidir. Bu, hesaplama yeteneği>= 7.5(Volta) olan NVIDIA donanımlarında Tensor Çekirdeklerinin kullanımını etkinleştirmek için özellikle faydalıdır. - padding_side (
str, isteğe bağlı) — Modelin padding uygulanması gereken tarafı. [‘right’, ‘left’] arasından seçilmelidir. Varsayılan değer, aynı ada sahip sınıf özelliğinden seçilir. - return_tensors (
strveya TensorType, isteğe bağlı) — Belirlenirse, Python tamsayı listesi yerine tensörler döndürülür. Kabul edilen değerler şunlardır:'pt': PyTorchtorch.Tensornesnelerini döndürür.'np': Numpynp.ndarraynesnelerini döndürür.
- return_token_type_ids (
bool, isteğe bağlı) — Token type ID'lerinin döndürülüp döndürülmeyeceğini belirtir. Varsayılan bırakılırsa, ilgili tokenizer'ın varsayılanına göre token type ID'lerini döndürür; bu,return_outputsözniteliği tarafından tanımlanır. - return_attention_mask (
bool, isteğe bağlı) — Dikkat maskesinin (attention mask) döndürülüp döndürülmeyeceğini belirtir. Varsayılan bırakılırsa, ilgili tokenizer'ın varsayılanına göre dikkat maskesini döndürür; bu,return_outputsözniteliği ile tanımlanır. - return_overflowing_tokens (
bool, isteğe bağlı, varsayılanFalse) — Taşan token dizilerinin döndürülüp döndürülmeyeceği. Girdi kimlikleri çiftlerinden (veya çiftlerden oluşan bir partiden)truncation_strategy = longest_firstveyaTrueile sağlanırsa, taşan tokenlar döndürülmek yerine bir hata oluşturulur. - return_special_tokens_mask (
bool, isteğe bağlı, varsayılanFalse) — Özel jeton maskesi bilgisinin döndürülüp döndürülmemesi. - return_offsets_mapping (
bool, isteğe bağlı, varsayılan olarakFalse) — Her token için(char_start, char_end)dönüp döndürmeyeceğini belirtir.Bu özellik yalnızca PreTrainedTokenizerFast sınıfından türeyen hızlı tokenizörlerde kullanılabilir; Python tokenizörü kullanılırsa bu yöntem
NotImplementedErrorhatası fırlatır. - return_length (
bool, isteğe bağlı, varsayılanFalse) — Kodlanmış girdilerin uzunluklarının döndürülüp döndürülmeyeceği. - verbose (
bool, isteğe bağlı, varsayılanTrue) — Daha fazla bilgi ve uyarı basılıp basılmayacağı. - **kwargs —
self.tokenize()yöntemine iletilir
Dönüş değeri
Aşağıdaki alanlara sahip bir BatchEncoding:
-
input_ids — Bir modele verilecek token kimliklerinin listesi.
-
token_type_ids — Bir modele verilecek token türü kimlikleri listesi (
return_token_type_ids=Trueolduğunda veya “token_type_ids”,self.model_input_namesiçinde olduğunda). -
attention_mask — Modelin hangi jetonlara dikkat etmesi gerektiğini belirleyen indeks listesi (
return_attention_mask=Trueolduğunda veyaself.model_input_namesiçinde “attention_mask” varsa). -
overflowing_tokens — Taşan token dizileri listesi (
max_lengthbelirtildiğinde vereturn_overflowing_tokens=Trueolduğunda). -
num_truncated_tokens — Kırpılan token sayısı (
max_lengthbelirtildiğinde vereturn_overflowing_tokens=Trueolduğunda). -
special_tokens_mask — 0 ve 1'lerden oluşan liste; 1 eklenen özel tokenları, 0 ise normal dizi tokenlarını belirtir (
add_special_tokens=Truevereturn_special_tokens_mask=Trueolduğunda). -
length — Girdilerin uzunluğu (
return_length=Trueolduğunda)
Bir veya birden fazla diziyi veya bir veya birden fazla dizi çiftini belirteçlere ayırmak ve model için hazırlamak için ana yöntem.
VitsModel
sınıf transformers.VitsModel
< source >( config: VitsConfig )
Parametreler
- config (VitsConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Ses sentezi için tam VITS modeli.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( input_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)
Parametreler
- input_ids (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- speaker_id (
int, isteğe bağlı) — Hangi konuşmacı gömme (embedding) kullanılacağı. Yalnızca çoklu konuşmacılı modellerde kullanılır. - output_attentions (
bool, isteğe bağlı) — Tüm dikkat katmanlarının dikkat tensörlerinin döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındakiattentionsbölümüne bakın. - output_hidden_states (
bool, isteğe bağlı) — Tüm katmanların gizli durumlarının (hidden states) döndürülüp döndürülmeyeceğini belirtir. Daha fazla ayrıntı için döndürülen tensörler altındakihidden_statesbölümüne bakın. - return_dict (
bool, isteğe bağlı) — Düz bir tuple yerine ModelOutput döndürülecek mi? - labels (
torch.Tensor, şekli(batch_size, config.spectrogram_bins, sequence_length), isteğe bağlı) — Hedef spektrogramun kayan nokta değerleri. Kayıp (loss) hesabında-100.0olarak ayarlanan zaman adımları yok sayılır (maskelenir). - speaking_rate (
float, isteğe bağlı) — Konuşma hızı.
Dönüş değeri
VitsModelOutput veya tuple(torch.Tensor)
VitsModelOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırma (VitsConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
VitsModel forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
waveform (
torch.Tensor, şekli(batch_size, sequence_length)) — Modelin tahmin ettiği nihai ses dalgası.sequence_lengths (
torch.Tensor, şekli(batch_size,)) —waveformgrubundaki her bir ögenin örnek cinsinden uzunluğu.spectrogram (
torch.Tensor, şekli(batch_size, sequence_length, num_bins)) — Akış modelinin çıktısında tahmin edilen log-mel spektrogramı. Bu spektrogram, nihai ses dalgası formunu elde etmek için Hi-Fi GAN kodlayıcı modeline iletilir.hidden_states (
tuple[torch.Tensor], isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple[torch.Tensor], isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnek:
>>> 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])