Transformers documentation
VITS
Este modelo foi publicado em papers do HF em 2021-06-11 e contribuído para o Hugging Face Transformers em 2023-09-01.
VITS
VITS (Variational Inference with adversarial learning for end-to-end Text-to-Speech) é um modelo de síntese de fala de ponta a ponta que simplifica os sistemas tradicionais de texto para fala (TTS) em duas etapas. Sua singularidade reside na síntese direta de fala a partir do texto, utilizando inferência variacional, aprendizado adversarial e fluxos normalizadores para produzir fala natural e expressiva, com ritmos e entonações variados.
Você pode encontrar todos os checkpoints originais do VITS na organização AI at Meta.
Clique nos modelos VITS na barra lateral à direita para mais exemplos de como aplicar o VITS.
O exemplo abaixo demonstra como gerar texto com base em uma imagem usando Pipeline ou a classe 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())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)Observações
Defina uma semente para reprodutibilidade, pois o VITS sintetiza fala de forma não determinística.
Para idiomas com alfabetos não latinos (coreano, árabe, etc.), instale o pacote uroman para pré-processar os textos de entrada para o alfabeto latino. Você pode verificar se o tokenizer requer o uroman, conforme mostrado abaixo.
# pip install -U uroman from transformers import VitsTokenizer tokenizer = VitsTokenizer.from_pretrained("facebook/mms-tts-eng") print(tokenizer.is_uroman)Se o seu idioma requer uroman, o tokenizer aplica automaticamente isso aos textos de entrada.
VitsConfig
classe 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 )
Parâmetros
- vocab_size (
int, opcional, padrão38) — Tamanho do vocabulário do modelo. Define o número de tokens diferentes que podem ser representados pelosinput_ids. - hidden_size (
int, opcional, padrão192) — Dimensão das representações ocultas. - num_hidden_layers (
int, opcional, padrão6) — Número de camadas ocultas no decodificador do Transformer. - num_attention_heads (
int, opcional, padrão2) — Número de cabeças de atenção para cada camada de atenção no decodificador do Transformer. - window_size (
int, opcional, padrão 4) — Tamanho da janela para os embeddings posicionais relativos nas camadas de atenção do codificador Transformer. - use_bias (
bool, opcional, padrãoTrue) — Se deve usar viés nas camadas de projeção de chave, consulta e valor no codificador do Transformer. - ffn_dim (
int, opcional, padrão768) — Dimensão das representações do MLP. - layerdrop (
Union[float, int], opcional, padrão0.1) — A probabilidade do LayerDrop. Consulte o [artigo do LayerDrop](veja https://huggingface.co/papers/1909.11556) para mais detalhes. - ffn_kernel_size (
int, opcional, padrão 3) — Tamanho do kernel das camadas de convolução 1D usadas pela rede feed-forward no codificador do Transformer. - flow_size (
int, opcional, padrão 192) — Dimensão das camadas de fluxo. - spectrogram_bins (
int, opcional, padrão 513) — Número de bins de frequência no espectrograma de destino. - hidden_act (
str, opcional, padrãorelu) — A função de ativação não linear (função ou string) no decodificador. Por exemplo,"gelu","relu","silu", etc. - hidden_dropout (
Union[float, int], opcional, padrão0.1) — A probabilidade de dropout para todas as camadas totalmente conectadas nos embeddings, encoder e pooler. - attention_dropout (
Union[float, int], opcional, padrão0.1) — A taxa de dropout para as probabilidades de atenção. - activation_dropout (
Union[float, int], opcional, padrão0.1) — A taxa de dropout para as ativações dentro da camada totalmente conectada. - initializer_range (
float, opcional, padrão0.02) — O desvio padrão do truncated_normal_initializer para inicializar todas as matrizes de pesos. - layer_norm_eps (
float, opcional, padrão1e-05) — O epsilon usado pelas camadas de normalização de camada. - use_stochastic_duration_prediction (
bool, opcional, padrãoTrue) — Se deve usar o módulo de predição de duração estocástica ou o preditor de duração regular. - num_speakers (
int, opcional, padrão 1) — Número de falantes, caso este seja um modelo de múltiplos falantes. - speaker_embedding_size (
int, opcional, padrão 0) — Número de canais usados pelos embeddings de falante. É zero para modelos de falante único. - upsample_initial_channel (
int, opcional, padrão 512) — O número de canais de entrada para a rede de upsampling do HiFi-GAN. - upsample_rates (
tuple[int]oulist[int], opcional, padrão[8, 8, 2, 2]) — Uma tupla de inteiros que define o stride de cada camada de convolução 1D na rede de upsampling do HiFi-GAN. O comprimento deupsample_ratesdefine o número de camadas de convolução e deve corresponder ao comprimento deupsample_kernel_sizes. - upsample_kernel_sizes (
tuple[int]oulist[int], opcional, padrão[16, 16, 4, 4]) — Uma tupla de inteiros que define o tamanho do kernel de cada camada de convolução 1D na rede de upsampling do HiFi-GAN. O comprimento deupsample_kernel_sizesdefine o número de camadas de convolução e deve corresponder ao comprimento deupsample_rates. - resblock_kernel_sizes (
tuple[int]oulist[int], opcional, padrão[3, 7, 11]) — Uma tupla de inteiros que define os tamanhos dos kernels das camadas convolucionais 1D no módulo de fusão de múltiplos campos receptivos (MRF) do HiFi-GAN. - resblock_dilation_sizes (
tuple[tuple[int]]oulist[list[int]], opcional, padrão[[1, 3, 5], [1, 3, 5], [1, 3, 5]]) — Uma tupla aninhada de inteiros que define as taxas de dilatação das camadas de convolução 1D dilatadas no módulo de fusão de múltiplos campos receptivos (MRF) do HiFi-GAN. - leaky_relu_slope (
float, opcional, padrão 0.1) — O ângulo da inclinação negativa usada pela função de ativação leaky ReLU. - depth_separable_channels (
int, opcional, padrão 2) — Número de canais a serem usados em cada bloco depth-separable. - depth_separable_num_layers (
int, opcional, padrão 3) — Número de camadas convolucionais a serem usadas em cada bloco depth-separable. - duration_predictor_flow_bins (
int, opcional, padrão 10) — Número de canais a mapear usando a spline racional não restrita no modelo de preditor de duração. - duration_predictor_tail_bound (
float, opcional, padrão 5.0) — Valor do limite do bin de cauda ao calcular a spline racional não restrita no modelo do duration predictor. - duration_predictor_kernel_size (
int, opcional, padrão 3) — Tamanho do kernel das camadas de convolução 1D usadas no modelo de preditor de duração. - duration_predictor_dropout (
float, opcional, padrão 0,5) — A taxa de dropout para o modelo de preditor de duração. - duration_predictor_num_flows (
int, opcional, padrão 4) — Número de etapas de fluxo usadas pelo modelo de preditor de duração. - duration_predictor_filter_channels (
int, opcional, padrão 256) — Número de canais das camadas de convolução usadas no modelo de preditor de duração. - prior_encoder_num_flows (
int, opcional, padrão 4) — Número de estágios de fluxo usados pelo modelo de fluxo do codificador a priori. - prior_encoder_num_wavenet_layers (
int, opcional, padrão 4) — Número de camadas WaveNet usadas pelo modelo de fluxo do codificador a priori. - posterior_encoder_num_wavenet_layers (
int, opcional, padrão 16) — Número de camadas WaveNet usadas pelo modelo do codificador posterior. - wavenet_kernel_size (
int, opcional, padrão 5) — Tamanho do kernel das camadas de convolução 1D usadas no modelo WaveNet. - wavenet_dilation_rate (
int, opcional, padrão 1) — Taxas de dilatação das camadas convolucionais 1D dilatadas usadas no modelo WaveNet. - wavenet_dropout (
float, opcional, padrão 0.0) — A taxa de dropout para as camadas WaveNet. - speaking_rate (
float, opcional, padrão 1.0) — Taxa de fala. Valores maiores resultam em fala sintetizada mais rápida. - noise_scale (
float, opcional, padrão 0.667) — Quão aleatória é a previsão da fala. Valores maiores criam mais variação na fala prevista. - noise_scale_duration (
float, opcional, padrão 0.8) — Quão aleatória é a previsão da duração. Valores maiores criam mais variação nas durações previstas. - sampling_rate (
int, opcional, padrão16000) — A taxa de amostragem na qual os arquivos de áudio devem ser digitalizados, expressa em hertz (Hz). - pad_token_id (
int, opcional) — ID do token usado para preenchimento no vocabulário.
Esta é a classe de configuração para armazenar a configuração de um VitsModel. Ela é usada para instanciar um modelo Vits de acordo com os argumentos especificados, definindo a arquitetura do modelo. Instanciar uma configuração com os padrões resultará em uma configuração semelhante à do facebook/mms-tts-eng
Os objetos de configuração herdam de PreTrainedConfig e podem ser usados para controlar as saídas do modelo. Consulte a documentação de PreTrainedConfig para mais informações.
Exemplo:
>>> 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
classe transformers.VitsTokenizer
< source >( vocab_filepad_token = '<pad>'unk_token = '<unk>'language = Noneadd_blank = Truenormalize = Truephonemize = Trueis_uroman = False**kwargs )
Parâmetros
- vocab_file (
str) — Caminho para o arquivo de vocabulário. - language (
str, opcional) — Identificador de idioma. - add_blank (
bool, opcional, padrãoTrue) — Se deve inserir o token id 0 entre os outros tokens. - normalize (
bool, opcional, padrãoTrue) — Se normalizar o texto de entrada removendo todas as maiúsculas e pontuação. - phonemize (
bool, opcional, padrãoTrue) — Se deve converter o texto de entrada em fonemas. - is_uroman (
bool, opcional, padrãoFalse) — Indica se o Romanizadoruromanprecisa ser aplicado ao texto de entrada antes da tokenização.
Construa um tokenizador VITS. Também suporta MMS-TTS.
Este tokenizer herda de PreTrainedTokenizer, que contém a maioria dos métodos principais. Os usuários devem consultar essa superclasse para obter mais informações sobre esses métodos.
__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
Parâmetros
- text (
str,list[str],list[list[str]], opcional) — A sequência ou lote de sequências a ser codificada. Cada sequência pode ser uma string ou uma lista de strings (string pré-tokenizada). Se as sequências forem fornecidas como lista de strings (pré-tokenizadas), você deve definiris_split_into_words=True(para eliminar a ambiguidade com um lote de sequências). - text_pair (
str,list[str],list[list[str]], opcional) — A sequência ou lote de sequências a ser codificada. Cada sequência pode ser uma string ou uma lista de strings (string pré-tokenizada). Se as sequências forem fornecidas como lista de strings (pré-tokenizadas), você deve definiris_split_into_words=True(para eliminar a ambiguidade com um lote de sequências). - text_target (
str,list[str],list[list[str]], opcional) — A sequência ou lote de sequências a serem codificadas como textos de destino. Cada sequência pode ser uma string ou uma lista de strings (string pretokenizada). Se as sequências forem fornecidas como lista de strings (pretokenizadas), você deve definiris_split_into_words=True(para eliminar a ambiguidade com um lote de sequências). - text_pair_target (
str,list[str],list[list[str]], opcional) — A sequência ou lote de sequências a ser codificada como textos de destino. Cada sequência pode ser uma string ou uma lista de strings (string pretokenizada). Se as sequências forem fornecidas como lista de strings (pretokenizadas), você deve definiris_split_into_words=True(para eliminar a ambiguidade com um lote de sequências). - tokenizer_kwargs (
dict[str, Any], opcional) — Kwargs adicionais para passar ao tokenizer. Eles serão mesclados com os parâmetros explícitos e outros kwargs, com os parâmetros explícitos tendo precedência. - add_special_tokens (
bool, opcional, padrãoTrue) — Indica se tokens especiais devem ser adicionados ao codificar as sequências. Isso utiliza a função subjacentePretrainedTokenizerBase.build_inputs_with_special_tokens, que define quais tokens são adicionados automaticamente aos ids de entrada. Isso é útil se você deseja adicionar tokensbosoueosautomaticamente. - padding (
bool,strou PaddingStrategy, opcional, padrão éFalse) — Ativa e controla o padding. Aceita os seguintes valores:Trueou'longest': Preenche até a sequência mais longa do lote (ou não aplica preenchimento se apenas uma sequência for fornecida).'max_length': Preenche até o comprimento máximo especificado com o argumentomax_lengthou até o comprimento máximo aceitável de entrada para o modelo, caso esse argumento não seja fornecido.Falseou'do_not_pad'(padrão): Sem padding (ou seja, pode gerar um lote com sequências de comprimentos diferentes).
- truncation (
bool,strou TruncationStrategy, opcional, padrão éFalse) — Ativa e controla a truncagem. Aceita os seguintes valores:Trueou'longest_first': Trunca para um comprimento máximo especificado com o argumentomax_lengthou para o comprimento máximo aceitável de entrada para o modelo, caso esse argumento não seja fornecido. Isso trunca token por token, removendo um token da sequência mais longa do par, se um par de sequências (ou um lote de pares) for fornecido.'only_first': Trunca para o comprimento máximo especificado com o argumentomax_lengthou para o comprimento máximo aceitável de entrada do modelo, caso esse argumento não seja fornecido. Isso trunca apenas a primeira sequência de um par, se um par de sequências (ou um lote de pares) for fornecido.'only_second': Trunca para um comprimento máximo especificado com o argumentomax_lengthou para o comprimento máximo aceitável de entrada do modelo, caso esse argumento não seja fornecido. Isso trunca apenas a segunda sequência de um par, se um par de sequências (ou um lote de pares) for fornecido.Falseou'do_not_truncate'(padrão): Sem truncamento (ou seja, pode gerar um lote com comprimentos de sequência maiores que o tamanho máximo de entrada aceitável pelo modelo).
- max_length (
int, opcional) — Controla o comprimento máximo a ser usado por um dos parâmetros de truncamento/preenchimento.Se não for definido ou for definido como
None, isso usará o comprimento máximo predefinido do modelo, caso um dos parâmetros de truncamento/preenchimento exija um comprimento máximo. Se o modelo não tiver um comprimento máximo de entrada específico (como o XLNet), o truncamento/preenchimento para um comprimento máximo será desativado. - stride (
int, opcional, padrão 0) — Se definido como um número junto commax_length, os tokens excedentes retornados quandoreturn_overflowing_tokens=Trueconterão alguns tokens do final da sequência truncada retornada para fornecer alguma sobreposição entre as sequências truncadas e excedentes. O valor deste argumento define o número de tokens sobrepostos. - is_split_into_words (
bool, opcional, padrãoFalse) — Indica se a entrada já está pré-tokenizada (por exemplo, dividida em palavras). Se definido comoTrue, o tokenizer assume que a entrada já foi dividida em palavras (por exemplo, separando por espaços em branco) e a tokeniza. Isso é útil para NER ou classificação de tokens. - pad_to_multiple_of (
int, opcional) — Se definido, a sequência será preenchida até um múltiplo do valor fornecido. Exige quepaddingesteja ativado. Isso é especialmente útil para habilitar o uso de Tensor Cores em hardware NVIDIA com capacidade de computação>= 7.5(Volta). - padding_side (
str, opcional) — O lado em que o modelo deve ter o padding aplicado. Deve ser selecionado entre [‘right’, ‘left’]. O valor padrão é obtido do atributo de classe com o mesmo nome. - return_tensors (
strou TensorType, opcional) — Se definido, retornará tensors em vez de uma lista de inteiros do Python. Os valores aceitos são:'pt': Retorna objetostorch.Tensordo PyTorch.'np': Retorna objetosnp.ndarraydo Numpy.
- return_token_type_ids (
bool, opcional) — Se deve retornar os IDs de tipo de token. Se mantido o valor padrão, retornará os IDs de tipo de token de acordo com o padrão do tokenizer específico, definido peloreturn_outputsatributo. - return_attention_mask (
bool, opcional) — Se deve retornar a attention mask. Se mantido o valor padrão, a attention mask será retornada de acordo com o padrão do tokenizer específico, definido pelo atributoreturn_outputs. - return_overflowing_tokens (
bool, opcional, padrãoFalse) — Indica se as sequências de tokens excedentes devem ser retornadas. Se um par de sequências de ids de entrada (ou um lote de pares) for fornecido comtruncation_strategy = longest_firstouTrue, um erro será lançado em vez de retornar os tokens excedentes. - return_special_tokens_mask (
bool, opcional, padrãoFalse) — Indica se a máscara de tokens especiais deve ser retornada. - return_offsets_mapping (
bool, opcional, padrão éFalse) — Se deve ou não retornar(char_start, char_end)para cada token.Isso está disponível apenas em tokenizadores rápidos que herdam de PreTrainedTokenizerFast; se estiver usando o tokenizador em Python, este método lançará
NotImplementedError. - return_length (
bool, opcional, padrãoFalse) — Indica se as comprimentos das entradas codificadas devem ser retornados. - verbose (
bool, opcional, padrãoTrue) — Se deve ou não exibir mais informações e avisos. - **kwargs — passados para o método
self.tokenize()
Retorna
Um BatchEncoding com os seguintes campos:
-
input_ids — Lista de ids de tokens a serem fornecidos a um modelo.
-
token_type_ids — Lista de ids de tipo de token a serem fornecidos a um modelo (quando
return_token_type_ids=Trueou se “token_type_ids” estiver emself.model_input_names). -
attention_mask — Lista de índices que especifica quais tokens devem ser considerados pelo modelo (quando
return_attention_mask=Trueou se “attention_mask” estiver emself.model_input_names). -
overflowing_tokens — Lista de sequências de tokens excedentes (quando um
max_lengthé especificado ereturn_overflowing_tokens=True). -
num_truncated_tokens — Número de tokens truncados (quando um
max_lengthé especificado ereturn_overflowing_tokens=True). -
special_tokens_mask — Lista de 0s e 1s, em que 1 especifica tokens especiais adicionados e 0 especifica tokens regulares da sequência (quando
add_special_tokens=Trueereturn_special_tokens_mask=True). -
length — O comprimento das entradas (quando
return_length=True)
Método principal para tokenizar e preparar uma ou várias sequências ou um ou vários pares de sequências para o modelo.
VitsModel
classe transformers.VitsModel
< source >( config: VitsConfig )
Parâmetros
- config (VitsConfig) — Classe de configuração do modelo com todos os parâmetros do modelo. A inicialização com um arquivo de configuração não carrega os pesos associados ao modelo, apenas a configuração. Consulte o método from_pretrained() para carregar os pesos do modelo.
O modelo VITS completo, para síntese de fala a partir de texto.
Este modelo herda de PreTrainedModel. Consulte a documentação da classe pai para os métodos genéricos que a biblioteca implementa para todos os seus modelos (como download ou salvamento, redimensionamento dos embeddings de entrada, poda de cabeças, etc.)
Este modelo também é uma subclasse de torch.nn.Module do PyTorch. Use-o como um Módulo PyTorch regular e consulte a documentação do PyTorch para todos os assuntos relacionados ao uso geral e ao comportamento.
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)
Parâmetros
- input_ids (
torch.Tensorde formato(batch_size, sequence_length), opcional) — Índices dos tokens da sequência de entrada no vocabulário. O padding será ignorado por padrão.Os índices podem ser obtidos usando AutoTokenizer. Consulte PreTrainedTokenizer.encode() e PreTrainedTokenizer.call() para mais detalhes.
- attention_mask (
torch.Tensorde forma(batch_size, sequence_length), opcional) — Máscara para evitar a execução de atenção nos índices de tokens de preenchimento. Valores de máscara selecionados em[0, 1]:- 1 para tokens que não estão mascarados,
- 0 para tokens que estão mascarados.
- speaker_id (
int, opcional) — Qual incorporação de falante usar. Usado apenas para modelos de múltiplos falantes. - output_attentions (
bool, opcional) — Indica se os tensores de atenção de todas as camadas de atenção devem ser retornados. Consulteattentionsnos tensores retornados para mais detalhes. - output_hidden_states (
bool, opcional) — Indica se as hidden states de todas as camadas devem ser retornadas. Consultehidden_statesem tensors retornados para mais detalhes. - return_dict (
bool, opcional) — Indica se deve retornar um ModelOutput em vez de uma tupla simples. - labels (
torch.Tensorde forma(batch_size, config.spectrogram_bins, sequence_length), opcional) — Valores em ponto flutuante do espectrograma de referência. Os timesteps definidos como-100.0são ignorados (mascarados) para o cálculo da perda. - speaking_rate (
float, opcional) — Taxa de fala.
Retorna
VitsModelOutput ou tuple(torch.Tensor)
Uma VitsModelOutput ou uma tupla de
torch.Tensor (se return_dict=False for passado ou quando config.return_dict=False) contendo vários
elementos, dependendo da configuração (VitsConfig) e das entradas.
O método forward do VitsModel substitui o método especial __call__.
Embora a receita para a passagem direta precise ser definida dentro desta função, deve-se chamar a instância de
Moduleem seguida, em vez desta, pois a primeira cuida da execução das etapas de pré e pós-processamento, enquanto a segunda as ignora silenciosamente.
waveform (
torch.Tensorde forma(batch_size, sequence_length)) — A forma de onda de áudio final prevista pelo modelo.sequence_lengths (
torch.Tensorde forma(batch_size,)) — O comprimento, em amostras, de cada elemento do lotewaveform.spectrogram (
torch.Tensorde forma(batch_size, sequence_length, num_bins)) — O espectrograma log-mel previsto na saída do modelo de fluxo. Este espectrograma é passado para o modelo decodificador Hi-Fi GAN para obter a forma de onda de áudio final.hidden_states (
tuple[torch.Tensor], opcional, retornado quandooutput_hidden_states=Trueé passado ou quandoconfig.output_hidden_states=True) — Tupla detorch.Tensor(um para a saída dos embeddings, se o modelo tiver uma camada de embedding, + um para a saída de cada camada) de forma(batch_size, sequence_length, hidden_size).Estados ocultos do modelo na saída de cada camada, além das saídas opcionais do embedding inicial.
attentions (
tuple[torch.Tensor], opcional, retornado quandooutput_attentions=Trueé passado ou quandoconfig.output_attentions=True) — Tupla detorch.Tensor(um para cada camada) com forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atenção após o softmax de atenção, usados para calcular a média ponderada nos cabeçalhos de autoatenção.
Exemplo:
>>> 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])