Transformers documentation
SpeechT5
Este modelo foi publicado no HF papers em 2021-10-14 e contribuído para o Hugging Face Transformers em 2023-02-03.
SpeechT5
Visão geral
O modelo SpeechT5 foi proposto em SpeechT5: Unified-Modal Encoder-Decoder Pre-Training for Spoken Language Processing por Junyi Ao, Rui Wang, Long Zhou, Chengyi Wang, Shuo Ren, Yu Wu, Shujie Liu, Tom Ko, Qing Li, Yu Zhang, Zhihua Wei, Yao Qian, Jinyu Li, Furu Wei.
O resumo do artigo é o seguinte:
Inspirados pelo sucesso do T5 (Text-To-Text Transfer Transformer) em modelos pré-treinados de processamento de linguagem natural, propomos o framework unificado de modalidade SpeechT5, que explora o pré-treinamento encoder-decoder para aprendizado de representações auto-supervisionadas de fala/texto. O framework SpeechT5 consiste em uma rede encoder-decoder compartilhada e seis redes pré/pós específicas de modalidade (fala/texto). Após o pré-processamento da entrada de fala/texto por meio das redes pré, a rede encoder-decoder compartilhada modela a transformação sequência-para-sequência, e, em seguida, as redes pós geram a saída na modalidade de fala/texto com base na saída do decoder. Aproveitando dados de fala e texto não rotulados em larga escala, pré-treinamos o SpeechT5 para aprender uma representação unificada de modalidade, com o objetivo de melhorar a capacidade de modelagem tanto para fala quanto para texto. Para alinhar as informações textuais e de fala neste espaço semântico unificado, propomos uma abordagem de quantização vetorial entre modalidades que mistura aleatoriamente estados de fala/texto com unidades latentes como interface entre o encoder e o decoder. Avaliações extensas demonstram a superioridade do framework SpeechT5 proposto em uma ampla variedade de tarefas de processamento de linguagem falada, incluindo reconhecimento automático de fala, síntese de fala, tradução de fala, conversão de voz, aprimoramento de fala e identificação de falante.
Este modelo foi contribuído por Matthijs. O código original pode ser encontrado aqui.
Defina
use_kernels=Trueem from_pretrained() para substituir camadas compatíveis por kernels otimizados do Hub. Consulte Carregando kernels para saber mais.
SpeechT5Config
classe transformers.SpeechT5Config
< 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 = 0id2label: 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 = Noneis_encoder_decoder: bool = Truevocab_size: int = 81hidden_size: int = 768encoder_layers: int = 12encoder_attention_heads: int = 12encoder_ffn_dim: int = 3072encoder_layerdrop: float | int = 0.1decoder_layers: int = 6decoder_ffn_dim: int = 3072decoder_attention_heads: int = 12decoder_layerdrop: float | int = 0.1hidden_act: str = 'gelu'positional_dropout: float | int = 0.1hidden_dropout: float | int = 0.1attention_dropout: float | int = 0.1activation_dropout: float | int = 0.1initializer_range: float = 0.02layer_norm_eps: float = 1e-05scale_embedding: bool = Falsefeat_extract_norm: str = 'group'feat_proj_dropout: float | int = 0.0feat_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 = 16apply_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 = 0pad_token_id: int | None = 1bos_token_id: int | None = 0eos_token_id: int | list[int] | None = 2decoder_start_token_id: int | None = 2num_mel_bins: int = 80speech_decoder_prenet_layers: int = 2speech_decoder_prenet_units: int = 256speech_decoder_prenet_dropout: float | int = 0.5speaker_embedding_dim: int = 512speech_decoder_postnet_layers: int = 5speech_decoder_postnet_units: int = 256speech_decoder_postnet_kernel: int = 5speech_decoder_postnet_dropout: float | int = 0.5reduction_factor: int = 2max_speech_positions: int = 4000max_text_positions: int = 450encoder_max_relative_position: int = 160use_guided_attention_loss: bool = Trueguided_attention_loss_num_heads: int = 2guided_attention_loss_sigma: float = 0.4guided_attention_loss_scale: float = 10.0use_cache: bool = Truetie_word_embeddings: bool = True )
Parâmetros
- is_encoder_decoder (
bool, opcional, padrãoTrue) — Indica se o modelo é usado como encoder/decoder ou não. - vocab_size (
int, opcional, padrão81) — Tamanho do vocabulário do modelo. Define o número de tokens diferentes que podem ser representados pelosinput_ids. - hidden_size (
int, opcional, padrão768) — Dimensão das representações ocultas. - encoder_layers (
int, opcional, padrão12) — Número de camadas ocultas no codificador do Transformer. Usará o mesmo valor denum_layersse não for definido. - encoder_attention_heads (
int, opcional, padrão12) — Número de cabeças de atenção para cada camada de atenção no codificador do Transformer. - encoder_ffn_dim (
int, opcional, padrão3072) — Dimensão da camada “intermediária” (frequentemente chamada de feed-forward) no encoder. - encoder_layerdrop (
Union[float, int], opcional, padrão0.1) — A probabilidade de LayerDrop para o encoder. Consulte o [artigo do LayerDrop](veja https://huggingface.co/papers/1909.11556) para mais detalhes. - decoder_layers (
int, opcional, padrão6) — Número de camadas ocultas no decodificador do Transformer. Usará o mesmo valor denum_layersse não for definido. - decoder_ffn_dim (
int, opcional, padrão3072) — Dimensão da camada “intermediária” (frequentemente chamada de feed-forward) no decoder. - decoder_attention_heads (
int, opcional, padrão12) — Número de cabeças de atenção para cada camada de atenção no decodificador do Transformer. - decoder_layerdrop (
Union[float, int], opcional, padrão0.1) — A probabilidade de LayerDrop para o decoder. Consulte o [artigo do LayerDrop](veja https://huggingface.co/papers/1909.11556) para mais detalhes. - hidden_act (
str, opcional, padrãogelu) — A função de ativação não linear (função ou string) no decodificador. Por exemplo,"gelu","relu","silu", etc. - positional_dropout (
float, opcional, padrão 0.1) — A probabilidade de dropout para as camadas de codificação de posição do texto. - 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. - scale_embedding (
bool, opcional, padrãoFalse) — Se as embeddings devem ser escalonadas dividindo por sqrt(d_model). - feat_extract_norm (
str, opcional, padrão"group") — A normalização a ser aplicada às camadas convolucionais 1D na pré-rede do codificador de fala. Pode ser"group"para normalização de grupo apenas na primeira camada convolucional 1D ou"layer"para normalização de camada em todas as camadas convolucionais 1D. - feat_proj_dropout (
float, opcional, padrão 0.0) — A probabilidade de dropout para a saída da pré-rede do codificador de fala. - 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]oulist[int], opcional, padrão(512, 512, 512, 512, 512, 512, 512)) — Uma tupla de inteiros que define o número de canais de entrada e saída de cada camada convolucional 1D na pré-rede do codificador de fala. O comprimento de conv_dim define o número de camadas convolucionais 1D. - conv_stride (
tuple[int]oulist[int], opcional, padrão(5, 2, 2, 2, 2, 2, 2)) — Uma tupla de inteiros que define o stride de cada camada convolucional 1D na pré-rede do codificador de fala. O tamanho de conv_stride define o número de camadas convolucionais e deve corresponder ao tamanho de conv_dim. - conv_kernel (
tuple[int]oulist[int], opcional, padrão(10, 3, 3, 3, 3, 3, 3)) — Uma tupla de inteiros que define o tamanho do kernel de cada camada convolucional 1D na pré-rede do codificador de fala. O comprimento de conv_kernel define o número de camadas convolucionais e deve corresponder ao comprimento de conv_dim. - conv_bias (
bool, opcional, padrãoFalse) — Indica se as camadas de convolução 1D possuem viés. - num_conv_pos_embeddings (
int, opcional, padrão 128) — Número de embeddings posicionais convolucionais. Define o tamanho do kernel da camada de embeddings posicionais convolucionais 1D. - num_conv_pos_embedding_groups (
int, opcional, padrão 16) — Número de grupos da camada de embeddings posicionais convolucionais 1D. - apply_spec_augment (
bool, opcional, padrãoTrue) — Indica se a ampliação de dados SpecAugment deve ser aplicada às saídas da pré-rede do codificador de fala. Para referência, veja SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition. - mask_time_prob (
float, optional, defaults to 0.05) — Percentage (between 0 and 1) of all feature vectors along the time axis which will be masked. The masking procedure generates ”mask_time_problen(time_axis)/mask_time_length” independent masks over the axis. If reasoning from the probability of each feature vector to be chosen as the start of the vector span to be masked, mask_time_prob should be `prob_vector_startmask_time_length. Note that overlap may decrease the actual percentage of masked vectors. This is only relevant ifapply_spec_augment is True`. - mask_time_length (
int, opcional, padrão 10) — Comprimento da extensão do vetor ao longo do eixo do tempo. - mask_time_min_masks (
int, opcional, padrão 2), — O número mínimo de máscaras de comprimentomask_feature_lengthgeradas ao longo do eixo do tempo, em cada passo de tempo, independentemente demask_feature_prob. Relevante apenas se ”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 ifapply_spec_augment is True`. - mask_feature_prob (
Union[float, int], opcional, padrão0.0) — Porcentagem (entre 0 e 1) de todos os vetores de recursos ao longo do eixo de recursos que serão mascarados. O procedimento de mascaramento geramask_feature_prob*len(feature_axis)/mask_time_lengthmáscaras independentes sobre o eixo. Se o raciocínio for feito a partir da probabilidade de cada vetor de recurso ser escolhido como o início do espano de vetores a ser mascarado, mask_feature_prob deve serprob_vector_start*mask_feature_length. Observe que a sobreposição pode diminuir a porcentagem real de vetores mascarados. Isso é relevante apenas seapply_spec_augmentforTrue. - mask_feature_length (
int, opcional, padrão 10) — Comprimento da extensão do vetor ao longo do eixo de recursos. - mask_feature_min_masks (
int, opcional, padrão 0), — O número mínimo de máscaras de comprimentomask_feature_lengthgeradas ao longo do eixo de recursos, a cada passo de tempo, independentemente demask_feature_prob. Relevante apenas se ”mask_feature_prob*len(feature_axis)/mask_feature_length < mask_feature_min_masks” - num_mel_bins (
int, opcional, padrão 80) — Número de recursos mel usados por recurso de entrada. Utilizado pela pré-rede do decodificador de fala. Deve corresponder ao valor usado na classe SpeechT5Processor. - pad_token_id (
int, opcional, padrão1) — ID do token usado para preenchimento no vocabulário. - bos_token_id (
int, opcional, padrão0) — ID do token usado para o início do fluxo no vocabulário. - eos_token_id (
Union[int, list[int]], opcional, padrão2) — ID do token usado para o fim do fluxo no vocabulário. - decoder_start_token_id (
int, opcional, padrão2) — Se um modelo encoder-decoder inicia a decodificação com um token diferente debos, o id desse token. - num_mel_bins (
int, opcional, padrão80) — Número de recursos mel usados por quadro de entrada. Deve corresponder ao valor usado na classeAutoFeatureExtractor. - speech_decoder_prenet_layers (
int, opcional, padrão 2) — Número de camadas na pré-rede do decodificador de fala. - speech_decoder_prenet_units (
int, opcional, padrão 256) — Dimensão das camadas na pre-net do decodificador de fala. - speech_decoder_prenet_dropout (
float, opcional, padrão 0.5) — A probabilidade de dropout para as camadas da pré-rede do decodificador de fala. - speaker_embedding_dim (
int, opcional, padrão 512) — Dimensão dos vetores de incorporação XVector. - speech_decoder_postnet_layers (
int, opcional, padrão 5) — Número de camadas na pós-rede do decodificador de fala. - speech_decoder_postnet_units (
int, opcional, padrão 256) — Dimensão das camadas na pós-rede do decodificador de fala. - speech_decoder_postnet_kernel (
int, opcional, padrão 5) — Número de canais de filtro de convolução na pós-rede do decodificador de fala. - speech_decoder_postnet_dropout (
float, opcional, padrão 0,5) — A probabilidade de dropout para as camadas da pós-rede do decodificador de fala. - reduction_factor (
int, opcional, padrão 2) — Fator de redução do comprimento do espectrograma para as entradas do decodificador de fala. - max_speech_positions (
int, opcional, padrão 4000) — O comprimento máximo da sequência de recursos de fala com o qual este modelo pode ser utilizado. - max_text_positions (
int, opcional, padrão 450) — O comprimento máximo da sequência de recursos de texto com os quais este modelo pode ser utilizado. - encoder_max_relative_position (
int, opcional, padrão 160) — Distância máxima para o embedding de posição relativa no encoder. - use_guided_attention_loss (
bool, opcional, padrãoTrue) — Se deve aplicar a perda de atenção guiada durante o treinamento do modelo TTS. - guided_attention_loss_num_heads (
int, opcional, padrão 2) — Número de cabeças de atenção às quais a perda de atenção guiada será aplicada. Use -1 para aplicar essa perda a todas as cabeças de atenção. - guided_attention_loss_sigma (
float, opcional, padrão 0.4) — Desvio padrão para a perda de atenção guiada. - guided_attention_loss_scale (
float, opcional, padrão 10.0) — Coeficiente de escala para a perda de atenção guiada (também conhecido como lambda). - use_cache (
bool, opcional, padrãoTrue) — Se o modelo deve ou não retornar as últimas chaves/valores de atenção (não usado por todos os modelos). Relevante apenas seconfig.is_decoder=Trueou quando o modelo for um modelo generativo somente decodificador. - tie_word_embeddings (
bool, opcional, padrãoTrue) — Se deve vincular as embeddings de pesos de acordo com o mapeamentotied_weights_keysdo modelo.
Esta é a classe de configuração para armazenar a configuração de um SpeechT5Model. Ela é usada para instanciar um modelo Speecht5 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 microsoft/speecht5_asr
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 SpeechT5Model, SpeechT5Config
>>> # Initializing a "microsoft/speecht5_asr" style configuration
>>> configuration = SpeechT5Config()
>>> # Initializing a model (with random weights) from the "microsoft/speecht5_asr" style configuration
>>> model = SpeechT5Model(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configSpeechT5HifiGanConfig
classe transformers.SpeechT5HifiGanConfig
< 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 = Nonemodel_in_dim: int = 80sampling_rate: int = 16000upsample_initial_channel: int = 512upsample_rates: list[int] | tuple[int, ...] = (4, 4, 4, 4)upsample_kernel_sizes: list[int] | tuple[int, ...] = (8, 8, 8, 8)resblock_kernel_sizes: list[int] | tuple[int, ...] = (3, 7, 11)resblock_dilation_sizes: list | tuple = ((1, 3, 5), (1, 3, 5), (1, 3, 5))initializer_range: float = 0.01leaky_relu_slope: float = 0.1normalize_before: bool = True )
Parâmetros
- model_in_dim (
int, opcional, padrão 80) — O número de bins de frequência no espectrograma log-mel de entrada. - sampling_rate (
int, opcional, padrão16000) — A taxa de amostragem na qual os arquivos de áudio devem ser digitalizados, expressa em hertz (Hz). - upsample_initial_channel (
int, opcional, padrão 512) — O número de canais de entrada para a rede de upsampling. - upsample_rates (
tuple[int]oulist[int], opcional, padrão[4, 4, 4, 4]) — Uma tupla de inteiros que define o stride de cada camada de convolução 1D na rede de upsampling. O tamanho de upsample_rates define o número de camadas de convolução e deve corresponder ao tamanho de upsample_kernel_sizes. - upsample_kernel_sizes (
tuple[int]oulist[int], opcional, padrão[8, 8, 8, 8]) — Uma tupla de inteiros que define o tamanho do kernel de cada camada convolucional 1D na rede de upsampling. O tamanho de upsample_kernel_sizes define o número de camadas convolucionais e deve corresponder ao tamanho de upsample_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). - 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 dilataadas no módulo de fusão de múltiplos campos receptivos (MRF). - initializer_range (
float, opcional, padrão0.01) — O desvio padrão do truncated_normal_initializer para inicializar todas as matrizes de pesos. - leaky_relu_slope (
float, opcional, padrão 0.1) — O ângulo da inclinação negativa usada pela função de ativação leaky ReLU. - normalize_before (
bool, opcional, padrãoTrue) — Indica se a espectrograma deve ser normalizada antes da vocodificação, utilizando a média e a variância aprendidas pelo vocoder.
Esta é a classe de configuração para armazenar a configuração de um SpeechT5Model. Ela é usada para instanciar um modelo Speecht5 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 microsoft/speecht5_asr
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 SpeechT5HifiGan, SpeechT5HifiGanConfig
>>> # Initializing a "microsoft/speecht5_hifigan" style configuration
>>> configuration = SpeechT5HifiGanConfig()
>>> # Initializing a model (with random weights) from the "microsoft/speecht5_hifigan" style configuration
>>> model = SpeechT5HifiGan(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configSpeechT5Tokenizer
classe transformers.SpeechT5Tokenizer
< source >( vocab_filebos_token = '<s>'eos_token = '</s>'unk_token = '<unk>'pad_token = '<pad>'normalize = Falsesp_model_kwargs: dict[str, typing.Any] | None = None**kwargs )
Parâmetros
- vocab_file (
str) — arquivo SentencePiece (geralmente com a extensão .spm) que contém o vocabulário necessário para instanciar um tokenizador. - bos_token (
str, opcional, padrão"<s>") — O token de início de sequência. - eos_token (
str, opcional, padrão"</s>") — O token de fim de sequência. - unk_token (
str, opcional, padrão"<unk>") — O token desconhecido. Um token que não está no vocabulário não pode ser convertido em um ID e é definido como este token em vez disso. - pad_token (
str, opcional, padrão"<pad>") — O token usado para preenchimento, por exemplo, ao agrupar sequências de comprimentos diferentes. - normalize (
bool, opcional, padrãoFalse) — Se as quantidades numéricas no texto devem ser convertidas para suas equivalentes em inglês por extenso. - sp_model_kwargs (
dict, opcional) — Será passado para oSentencePieceProcessor.__init__()método. O wrapper em Python para SentencePiece pode ser usado, entre outras coisas, para definir:-
enable_sampling: Ativa a regularização de subpalavras. -
nbest_size: Parâmetros de amostragem para unigramas. Inválido para BPE-Dropout.nbest_size = {0,1}: Nenhuma amostragem é realizada.nbest_size > 1: amostra dos resultados do nbest_size.nbest_size < 0: assume que nbest_size é infinito e amostra de todas as hipóteses (lattice) usando o algoritmo de filtragem para frente e amostragem para trás (forward-filtering-and-backward-sampling).
-
alpha: Parâmetro de suavização para amostragem de unigramas e probabilidade de dropout para operações de mesclagem no BPE-dropout.
-
- sp_model (
SentencePieceProcessor) — O processador SentencePiece usado em todas as conversões (string, tokens e IDs).
Construa um tokenizer SpeechT5. Baseado em SentencePiece.
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.
save_vocabulary
< source >( save_directory: strfilename_prefix: str | None = None ) → tuple(str)
Salve o vocabulário sentencepiece (copie o arquivo original) para um diretório.
decode
< source >( token_ids: int | list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = False**kwargs ) → Union[str, list[str]]
Parâmetros
- token_ids (
Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]) — Uma única sequência ou um lote (lista de sequências) de ids de entrada tokenizados. Pode ser obtido usando o método__call__. - skip_special_tokens (
bool, opcional, padrãoFalse) — Indica se os tokens especiais devem ser removidos durante a decodificação. - kwargs (argumentos de palavra-chave adicionais, opcional) — Serão passados para o método de decodificação específico do modelo subjacente.
Retorna
Union[str, list[str]]
A string decodificada para uma única sequência, ou uma lista de strings decodificadas para um lote de sequências.
Converte uma sequência de ids em uma string, ou uma lista de sequências em uma lista de strings, usando o tokenizer e o vocabulário, com opções para remover tokens especiais e limpar espaços de tokenização.
Semelhante a executar self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids)).
batch_decode
< source >( sequences: list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = None**kwargs ) → list[str]
Parâmetros
- sequences (
Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — Lista de ids de entrada tokenizados. Pode ser obtida usando o método__call__. - skip_special_tokens (
bool, opcional, padrãoFalse) — Indica se os tokens especiais devem ser removidos durante a decodificação. - clean_up_tokenization_spaces (
bool, opcional) — Indica se os espaços de tokenização devem ser limpos. Se forNone, o valor padrão seráself.clean_up_tokenization_spaces. - kwargs (argumentos de palavra-chave adicionais, opcional) — Serão passados para o método de decodificação específico do modelo subjacente.
Retorna
list[str]
A lista de frases decodificadas.
Converta uma lista de listas de ids de tokens em uma lista de strings chamando decode.
Este método é fornecido para compatibilidade reversa. O método decode agora processa entradas em lote nativamente,
então você pode usar decode diretamente em vez de batch_decode.
SpeechT5FeatureExtractor
classe transformers.SpeechT5FeatureExtractor
< source >( feature_size: int = 1sampling_rate: int = 16000padding_value: float = 0.0do_normalize: bool = Falsenum_mel_bins: int = 80hop_length: int = 16win_length: int = 64win_function: str = 'hann_window'fmin: float = 80fmax: float = 7600mel_floor: float = 1e-10return_attention_mask: bool = True**kwargs )
Parâmetros
- feature_size (
int, opcional, padrão 1) — A dimensão dos recursos das características extraídas. - sampling_rate (
int, opcional, padrão 16000) — A taxa de amostragem na qual os arquivos de áudio devem ser digitalizados, expressa em hertz (Hz). - padding_value (
float, opcional, padrão 0.0) — O valor usado para preencher os valores de padding. - do_normalize (
bool, opcional, padrãoFalse) — Indica se a entrada deve ser normalizada com média zero e variância unitária. A normalização pode ajudar a melhorar significativamente o desempenho de alguns modelos. - num_mel_bins (
int, opcional, padrão 80) — O número de bins de frequência mel nos recursos do espectrograma extraído. - hop_length (
int, opcional, padrão 16) — Número de ms entre as janelas. Também chamado de “shift” em muitos artigos. - win_length (
int, opcional, padrão 64) — Número de ms por janela. - win_function (
str, opcional, padrão"hann_window") — Nome da função de janela usada para janelamento, deve ser acessível viatorch.{win_function} - fmin (
float, opcional, padrão 80) — Frequência mel mínima em Hz. - fmax (
float, opcional, padrão 7600) — Frequência mel máxima em Hz. - mel_floor (
float, opcional, padrão 1e-10) — Valor mínimo dos bancos de frequência mel. - return_attention_mask (
bool, opcional, padrãoTrue) — Se call() deve retornarattention_maskou não.
Constrói um extrator de recursos do SpeechT5.
Esta classe pode pré-processar um sinal de fala bruto, normalizando-o (opcionalmente) para média zero e variância unitária, para uso pela prenet do codificador de fala do SpeechT5.
Esta classe também pode extrair recursos de banco de filtros log-mel a partir de fala bruta, para uso pelo prenet do decodificador de fala do SpeechT5.
Este extrator de características herda de SequenceFeatureExtractor, 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 >( audio: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]] | None = Noneaudio_target: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]] | None = Nonepadding: 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 )
Parâmetros
- audio (
np.ndarray,list[float],list[np.ndarray],list[list[float]], opcional) — A sequência ou lote de sequências a serem processadas. Cada sequência pode ser um array numpy, uma lista de valores float, uma lista de arrays numpy ou uma lista de listas de valores float. Isso gera recursos de forma de onda. Deve ser áudio de canal mono, não estéreo, ou seja, um único float por passo de tempo. - audio_target (
np.ndarray,list[float],list[np.ndarray],list[list[float]], opcional) — A sequência ou lote de sequências a serem processadas como alvos. Cada sequência pode ser um array numpy, uma lista de valores float, uma lista de arrays numpy ou uma lista de listas de valores float. Isso gera recursos de espectrograma log-mel. - padding (
bool,strou PaddingStrategy, opcional, padrão éFalse) — Selecione uma estratégia para aplicar padding às sequências retornadas (de acordo com o lado de padding e o índice de padding do modelo) entre: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).
- max_length (
int, opcional) — Comprimento máximo da lista retornada e, opcionalmente, o comprimento do padding (veja acima). - truncation (
bool) — Ativa a truncagem para cortar sequências de entrada com comprimento maior que max_length para max_length. - pad_to_multiple_of (
int, opcional) — Se definido, a sequência será preenchida até um múltiplo do valor fornecido.Isso é especialmente útil para habilitar o uso de Tensor Cores em hardware NVIDIA com capacidade de computação
>= 7.5(Volta), ou em TPUs, que se beneficiam de ter comprimentos de sequência que sejam múltiplos de 128. - 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 específico do feature_extractor. - 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.
- sampling_rate (
int, opcional) — A taxa de amostragem na qual a entradaaudioouaudio_targetfoi amostrada. É fortemente recomendado passarsampling_ratena chamada de forward para evitar erros silenciosos.
Método principal para criar recursos e preparar uma ou várias sequências para o modelo.
Passe um valor para audio para extrair recursos de forma de onda. Passe um valor para audio_target para extrair recursos de espectrograma log-mel.
SpeechT5Processor
classe transformers.SpeechT5Processor
< source >( feature_extractortokenizer )
Constrói um SpeechT5Processor que encapsula um extrator de recursos e um tokenizador em um único processador.
SpeechT5Processor oferece todas as funcionalidades de SpeechT5FeatureExtractor e SpeechT5Tokenizer. Consulte ~SpeechT5FeatureExtractor e ~SpeechT5Tokenizer para mais informações.
__call__
< source >( *args**kwargs )
Parâmetros
- return_tensors (
strou TensorType, opcional) — Se definido, retornará tensors de um framework específico. Os valores aceitos são:'pt': Retorna objetostorch.Tensordo PyTorch.'np': Retorna objetosnp.ndarraydo NumPy.
Agrupar as entradas de áudio e texto, bem como seus alvos, em um lote com preenchimento.
As entradas de áudio são preenchidas pelo pad() do SpeechT5FeatureExtractor. As entradas de texto são preenchidas pelo pad() do SpeechT5Tokenizer.
As combinações de entrada válidas são:
- apenas
input_ids - apenas
input_values - apenas
labels, seja espectrogramas log-mel ou tokens de texto input_idse espectrograma log-mellabelsinput_valuese rótulos de textolabels
Consulte a docstring dos dois métodos acima para obter mais informações.
from_pretrained
< source >( pretrained_model_name_or_path: str | os.PathLikecache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'**kwargs )
Parâmetros
- pretrained_model_name_or_path (
strouos.PathLike) — Pode ser:- uma string, o model id de um feature_extractor pré-treinado hospedado em um repositório de modelos no huggingface.co.
- um caminho para um diretório contendo um arquivo de extrator de recursos salvo usando o método
save_pretrained(), por exemplo,
./my_model_directory/. - um caminho para um arquivo JSON de extrator de recursos salvo file, por exemplo,
./my_model_directory/preprocessor_config.json.
- **kwargs —
Argumentos de palavra-chave adicionais passados para
from_pretrained() e
~tokenization_utils_base.PreTrainedTokenizer.from_pretrained.
Instancie um processador associado a um modelo pré-treinado.
Este método de classe simplesmente chama o método from_pretrained() do extrator de recursos, o método ImageProcessingMixin do processador de imagem e o método
~tokenization_utils_base.PreTrainedTokenizer.from_pretraineddo tokenizador. Consulte as docstrings dos métodos acima para mais informações.
save_pretrained
< source >( save_directorypush_to_hub: bool = False**kwargs )
Parâmetros
- save_directory (
strouos.PathLike) — Diretório onde o arquivo JSON do extrator de recursos e os arquivos do tokenizer serão salvos (o diretório será criado se não existir). - push_to_hub (
bool, opcional, padrãoFalse) — Indica se o modelo deve ser enviado para o Hugging Face model hub após ser salvo. Você pode especificar o repositório de destino comrepo_id(por padrão, será usado o nome desave_directoryno seu namespace). - kwargs (
dict[str, Any], opcional) — Argumentos de palavra-chave adicionais passados ao método push_to_hub().
Salva os atributos deste processador (extrator de recursos, tokenizador…) no diretório especificado para que ele possa ser recarregado usando o método from_pretrained().
Este método de classe simplesmente chama save_pretrained() e save_pretrained(). Consulte as docstrings dos métodos acima para mais informações.
Este método encaminha todos os seus argumentos para o batch_decode() do PreTrainedTokenizer. Consulte a docstring deste método para obter mais informações.
Este método encaminha todos os seus argumentos para o decode() do PreTrainedTokenizer. Consulte a docstring deste método para obter mais informações.
SpeechT5Model
classe transformers.SpeechT5Model
< source >( config: SpeechT5Configencoder: typing.Optional[torch.nn.Module] = Nonedecoder: typing.Optional[torch.nn.Module] = None )
Parâmetros
- config (SpeechT5Config) — 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.
- encoder (
PreTrainedModel, opcional) — O modelo de codificador a ser utilizado. - decoder (
PreTrainedModel, opcional) — O modelo de decodificador a ser utilizado.
O modelo Encoder-Decoder SpeechT5 básico, que produz estados ocultos brutos sem nenhuma pré- ou pós-rede específica.
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_values: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonedecoder_input_values: typing.Optional[torch.Tensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneuse_cache: bool | None = Nonespeaker_embeddings: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → Seq2SeqModelOutput or tuple(torch.Tensor)
Parâmetros
- input_values (
torch.Tensorde forma(batch_size, sequence_length)) — Dependendo do codificador utilizado, osinput_valuessão: valores flutuantes da forma de onda bruta da fala de entrada, ou índices dos tokens da sequência de entrada no vocabulário, ou estados ocultos. - attention_mask (
torch.LongTensorde 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.
- decoder_input_values (
torch.Tensorde forma(batch_size, target_sequence_length), opcional) — Dependendo do decodificador utilizado, osdecoder_input_valuessão: valores flutuantes de recursos de filtro log-mel extraídos da forma de onda de fala bruta, ou índices de tokens da sequência de entrada do decodificador no vocabulário, ou estados ocultos. - decoder_attention_mask (
torch.LongTensorde forma(batch_size, target_sequence_length), opcional) — Comportamento padrão: gera um tensor que ignora tokens de padding emdecoder_input_values. A máscara causal também será usada por padrão. Se você quiser alterar o comportamento de padding, leia SpeechT5Decoder._prepare_decoder_attention_mask e modifique conforme necessário. Veja o diagrama 1 no paper para mais informações sobre a estratégia padrão.Se você deseja alterar o comportamento de padding, deve ler
SpeechT5Decoder._prepare_decoder_attention_maske modificar conforme suas necessidades. Consulte o diagrama 1 em o paper para mais informações sobre a estratégia padrão. - encoder_outputs (
tuple[tuple[torch.Tensor]], opcional) — A tupla consiste em (last_hidden_state, opcional:hidden_states, opcional:attentions)last_hidden_statede forma(batch_size, sequence_length, hidden_size), opcional) é uma sequência de hidden-states na saída da última camada do encoder. Usado na cross-attention do decoder. - past_key_values (
~cache_utils.Cache, opcional) — Estados ocultos pré-computados (chaves e valores nos blocos de autoatenção e nos blocos de atenção cruzada) que podem ser usados para acelerar a decodificação sequencial. Isso geralmente consiste nopast_key_valuesretornado pelo modelo em uma etapa anterior da decodificação, quandouse_cache=Trueouconfig.use_cache=True.Apenas uma instância de Cache é permitida como entrada, consulte nosso guia de cache de kv. Se nenhum
past_key_valuesfor passado, DynamicCache será inicializado por padrão.O modelo sairá no mesmo formato de cache que é fornecido como entrada.
Se
past_key_valuesforem usados, espera-se que o usuário insira apenas osinput_idsnão processados (aqueles que não têm seus estados de chave e valor passados fornecidos a este modelo) com a forma(batch_size, unprocessed_length), em vez de todos osinput_idscom a forma(batch_size, sequence_length). - use_cache (
bool, opcional) — Se definido comoTrue, os estados de chave-valorpast_key_valuessão retornados e podem ser usados para acelerar a decodificação (vejapast_key_values). - speaker_embeddings (
torch.Tensorde forma(batch_size, config.speaker_embedding_dim), opcional) — Tensor contendo os embeddings de falante. - 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.
Retorna
Seq2SeqModelOutput ou tuple(torch.Tensor)
Um Seq2SeqModelOutput 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 (SpeechT5Config) e das entradas.
O método forward do SpeechT5Model 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.
last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size)) — Sequência de estados ocultos na saída da última camada do decodificador do modelo.Se
past_key_valuesfor usado, apenas o último hidden-state das sequências, com forma(batch_size, 1, hidden_size), é retornado.past_key_values (
EncoderDecoderCache, opcional, retornado quandouse_cache=Trueé passado ou quandoconfig.use_cache=True) — Trata-se de uma instância de EncoderDecoderCache. Para mais detalhes, consulte nosso guia de cache kv.Contém estados ocultos pré-computados (chaves e valores nos blocos de autoatenção e nos blocos de atenção cruzada) que podem ser usados (veja a entrada
past_key_values) para acelerar a decodificação sequencial.decoder_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 decodificador na saída de cada camada, além das saídas opcionais do embedding inicial.
decoder_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 do decodificador, após o softmax de atenção, usados para calcular a média ponderada nas cabeças de autoatenção.
cross_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 da camada de atenção cruzada do decodificador, após o softmax de atenção, usados para calcular a média ponderada nas cabeças de atenção cruzada.
encoder_last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Sequência de estados ocultos na saída da última camada do codificador do modelo.encoder_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 codificador na saída de cada camada, além das saídas opcionais do embedding inicial.
encoder_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 do codificador, após o softmax de atenção, usados para calcular a média ponderada nas cabeças de autoatenção.
SpeechT5ForSpeechToText
classe transformers.SpeechT5ForSpeechToText
< source >( config: SpeechT5Config )
Parâmetros
- config (SpeechT5Config) — 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.
Modelo SpeechT5 com um codificador de fala e um decodificador 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_values: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneuse_cache: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = Nonelabels: typing.Optional[torch.LongTensor] = None**kwargs ) → Seq2SeqLMOutput or tuple(torch.Tensor)
Parâmetros
- input_values (
torch.Tensorde forma(batch_size, sequence_length)) — Valores em ponto flutuante da forma de onda bruta de fala de entrada. Os valores podem ser obtidos carregando um arquivo de áudio .flac ou .wav em um array do tipolist[float], umnumpy.ndarrayou umtorch.Tensor, por exemplo, por meio da biblioteca torchcodec (pip install torchcodec) ou da biblioteca soundfile (pip install soundfile). Para preparar o array parainput_values, o SpeechT5Processor deve ser usado para padding e conversão em um tensor do tipotorch.Tensor. Consulte SpeechT5Processor.call() para mais detalhes. - attention_mask (
torch.LongTensorde 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.
- decoder_input_ids (
torch.LongTensorde forma(batch_size, target_sequence_length), opcional) — Índices dos tokens da sequência de entrada do decodificador no vocabulário. Os índices podem ser obtidos usando SpeechT5Tokenizer. Consulte PreTrainedTokenizer.encode() e PreTrainedTokenizer.call() para mais detalhes. O que são IDs de entrada do decodificador? O SpeechT5 usa o eos_token_id como token inicial para a geração de decoder_input_ids. Se past_key_values for usado, opcionalmente, apenas os últimos decoder_input_ids precisam ser inseridos (veja past_key_values).Os índices podem ser obtidos usando SpeechT5Tokenizer. Consulte PreTrainedTokenizer.encode() e PreTrainedTokenizer.call() para mais detalhes.
O que são IDs de entrada do decodificador?
O SpeechT5 usa o
eos_token_idcomo o token inicial para a geração dedecoder_input_ids. Sepast_key_valuesfor usado, opcionalmente apenas o últimodecoder_input_idsprecisa ser inserido (vejapast_key_values). - decoder_attention_mask (
torch.LongTensorde forma(batch_size, target_sequence_length), opcional) — Comportamento padrão: gera um tensor que ignora tokens de padding emdecoder_input_values. A máscara causal também será usada por padrão. Se você quiser alterar o comportamento de padding, leia SpeechT5Decoder._prepare_decoder_attention_mask e modifique conforme necessário. Veja o diagrama 1 no paper para mais informações sobre a estratégia padrão.Se você deseja alterar o comportamento de padding, deve ler
SpeechT5Decoder._prepare_decoder_attention_maske modificar conforme suas necessidades. Consulte o diagrama 1 em o paper para mais informações sobre a estratégia padrão. - encoder_outputs (
tuple[tuple[torch.Tensor]], opcional) — A tupla consiste em (last_hidden_state, opcional:hidden_states, opcional:attentions)last_hidden_statede forma(batch_size, sequence_length, hidden_size), opcional) é uma sequência de hidden-states na saída da última camada do encoder. Usado na cross-attention do decoder. - past_key_values (
~cache_utils.Cache, opcional) — Estados ocultos pré-computados (chaves e valores nos blocos de autoatenção e nos blocos de atenção cruzada) que podem ser usados para acelerar a decodificação sequencial. Isso geralmente consiste nopast_key_valuesretornado pelo modelo em uma etapa anterior da decodificação, quandouse_cache=Trueouconfig.use_cache=True.Apenas uma instância de Cache é permitida como entrada, consulte nosso guia de cache de kv. Se nenhum
past_key_valuesfor passado, DynamicCache será inicializado por padrão.O modelo sairá no mesmo formato de cache que é fornecido como entrada.
Se
past_key_valuesforem usados, espera-se que o usuário insira apenas osinput_idsnão processados (aqueles que não têm seus estados de chave e valor passados fornecidos a este modelo) com a forma(batch_size, unprocessed_length), em vez de todos osinput_idscom a forma(batch_size, sequence_length). - use_cache (
bool, opcional) — Se definido comoTrue, os estados de chave-valorpast_key_valuessão retornados e podem ser usados para acelerar a decodificação (vejapast_key_values). - 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.LongTensorde forma(batch_size, sequence_length), opcional) — Rótulos para calcular a perda de modelagem de linguagem. Os índices devem estar em[0, ..., config.vocab_size]ou -100 (veja oinput_idsdocstring). Tokens com índices definidos como-100são ignorados (mascarados); a perda é calculada apenas para os tokens com rótulos em[0, ..., config.vocab_size].Os índices de rótulos podem ser obtidos usando SpeechT5Tokenizer. Consulte PreTrainedTokenizer.encode() e PreTrainedTokenizer.call() para mais detalhes.
Retorna
Seq2SeqLMOutput ou tuple(torch.Tensor)
Um Seq2SeqLMOutput 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 (SpeechT5Config) e das entradas.
O método forward de SpeechT5ForSpeechToText 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.
loss (
torch.Tensorde forma(1,), opcional, retornado quandolabelsé fornecido) — Perda de modelagem de linguagem.logits (
torch.Tensorde forma(batch_size, sequence_length, config.vocab_size)) — Pontuações de previsão da cabeça de modelagem de linguagem (pontuações para cada token do vocabulário antes do SoftMax).past_key_values (
EncoderDecoderCache, opcional, retornado quandouse_cache=Trueé passado ou quandoconfig.use_cache=True) — Trata-se de uma instância de EncoderDecoderCache. Para mais detalhes, consulte nosso guia de cache kv.Contém estados ocultos pré-computados (chaves e valores nos blocos de autoatenção e nos blocos de atenção cruzada) que podem ser usados (veja a entrada
past_key_values) para acelerar a decodificação sequencial.decoder_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 decodificador na saída de cada camada, além das saídas do embedding inicial.
decoder_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 do decodificador, após o softmax de atenção, usados para calcular a média ponderada nas cabeças de autoatenção.
cross_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 da camada de atenção cruzada do decodificador, após o softmax de atenção, usados para calcular a média ponderada nas cabeças de atenção cruzada.
encoder_last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Sequência de estados ocultos na saída da última camada do codificador do modelo.encoder_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 codificador na saída de cada camada, além das saídas do embedding inicial.
encoder_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 do codificador, após o softmax de atenção, usados para calcular a média ponderada nas cabeças de autoatenção.
Exemplo:
>>> from transformers import SpeechT5Processor, SpeechT5ForSpeechToText
>>> from datasets import load_dataset
>>> dataset = load_dataset(
... "hf-internal-testing/librispeech_asr_demo", "clean", split="validation"
... ) # doctest: +IGNORE_RESULT
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate
>>> processor = SpeechT5Processor.from_pretrained("microsoft/speecht5_asr")
>>> model = SpeechT5ForSpeechToText.from_pretrained("microsoft/speecht5_asr")
>>> # audio file is decoded on the fly
>>> inputs = processor(audio=dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")
>>> predicted_ids = model.generate(**inputs, max_length=100)
>>> # transcribe speech
>>> transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)
>>> transcription[0]
'mister quilter is the apostle of the middle classes and we are glad to welcome his gospel'SpeechT5ForTextToSpeech
classe transformers.SpeechT5ForTextToSpeech
< source >( config: SpeechT5Config )
Parâmetros
- config (SpeechT5Config) — 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.
Modelo SpeechT5 com um codificador de texto e um decodificador de fala.
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.LongTensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonedecoder_input_values: typing.Optional[torch.Tensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneuse_cache: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = Nonespeaker_embeddings: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Nonestop_labels: typing.Optional[torch.Tensor] = None**kwargs ) → Seq2SeqSpectrogramOutput or tuple(torch.Tensor)
Parâmetros
- input_ids (
torch.LongTensorde forma(batch_size, sequence_length)) — Índices dos tokens da sequência de entrada no vocabulário. Os índices podem ser obtidos usando o SpeechT5Tokenizer. Consulte encode() e call() para mais detalhes. O que são IDs de entrada?Os índices podem ser obtidos usando SpeechT5Tokenizer. Consulte encode() e call() para mais detalhes.
- attention_mask (
torch.LongTensorde 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.
- decoder_input_values (
torch.Tensorde forma(batch_size, sequence_length, config.num_mel_bins)) — Valores em ponto flutuante do espectrograma mel de entrada.O SpeechT5 usa um espectro totalmente nulo como token inicial para a geração de
decoder_input_values. Sepast_key_valuesfor usado, opcionalmente apenas o últimodecoder_input_valuesprecisa ser inserido (vejapast_key_values). - decoder_attention_mask (
torch.LongTensorde forma(batch_size, target_sequence_length), opcional) — Comportamento padrão: gera um tensor que ignora tokens de padding emdecoder_input_values. A máscara causal também será usada por padrão. Se você quiser alterar o comportamento de padding, leia SpeechT5Decoder._prepare_decoder_attention_mask e modifique conforme necessário. Veja o diagrama 1 no paper para mais informações sobre a estratégia padrão.Se você deseja alterar o comportamento de padding, deve ler
SpeechT5Decoder._prepare_decoder_attention_maske modificar conforme suas necessidades. Consulte o diagrama 1 em o paper para mais informações sobre a estratégia padrão. - encoder_outputs (
tuple[tuple[torch.Tensor]], opcional) — A tupla consiste em (last_hidden_state, opcional:hidden_states, opcional:attentions)last_hidden_statede forma(batch_size, sequence_length, hidden_size), opcional) é uma sequência de hidden-states na saída da última camada do encoder. Usado na cross-attention do decoder. - past_key_values (
~cache_utils.Cache, opcional) — Estados ocultos pré-computados (chaves e valores nos blocos de autoatenção e nos blocos de atenção cruzada) que podem ser usados para acelerar a decodificação sequencial. Isso geralmente consiste nopast_key_valuesretornado pelo modelo em uma etapa anterior da decodificação, quandouse_cache=Trueouconfig.use_cache=True.Apenas uma instância de Cache é permitida como entrada, consulte nosso guia de cache de kv. Se nenhum
past_key_valuesfor passado, DynamicCache será inicializado por padrão.O modelo sairá no mesmo formato de cache que é fornecido como entrada.
Se
past_key_valuesforem usados, espera-se que o usuário insira apenas osinput_idsnão processados (aqueles que não têm seus estados de chave e valor passados fornecidos a este modelo) com a forma(batch_size, unprocessed_length), em vez de todos osinput_idscom a forma(batch_size, sequence_length). - use_cache (
bool, opcional) — Se definido comoTrue, os estados de chave-valorpast_key_valuessão retornados e podem ser usados para acelerar a decodificação (vejapast_key_values). - 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. - speaker_embeddings (
torch.Tensorde forma(batch_size, config.speaker_embedding_dim), opcional) — Tensor contendo os embeddings de falante. - labels (
torch.Tensorde forma(batch_size, sequence_length, config.num_mel_bins), opcional) — Valores em ponto flutuante do espectrograma mel de referência. Os timesteps definidos como-100.0são ignorados (mascarados) para o cálculo da perda. Os espectrogramas podem ser obtidos usando SpeechT5Processor. Consulte SpeechT5Processor.call() para mais detalhes. - stop_labels (
torch.Tensorde forma(batch_size, sequence_length), opcional) — Tensor binário que indica a posição do token de parada na sequência.
Retorna
Seq2SeqSpectrogramOutput ou tuple(torch.Tensor)
Um Seq2SeqSpectrogramOutput 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 (SpeechT5Config) e das entradas.
O método forward de SpeechT5ForTextToSpeech 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.
loss (
torch.Tensorde forma(1,), opcional, retornado quandolabelsé fornecido) — Perda de geração de espectrograma.espectrograma (
torch.Tensorde forma(batch_size, sequence_length, num_bins)) — O espectrograma previsto.past_key_values (
EncoderDecoderCache, opcional, retornado quandouse_cache=Trueé passado ou quandoconfig.use_cache=True) — Trata-se de uma instância de EncoderDecoderCache. Para mais detalhes, consulte nosso guia de cache kv.Contém estados ocultos pré-computados (chaves e valores nos blocos de autoatenção e nos blocos de atenção cruzada) que podem ser usados (veja a entrada
past_key_values) para acelerar a decodificação sequencial.decoder_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 decodificador na saída de cada camada, além das saídas do embedding inicial.
decoder_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 do decodificador, após o softmax de atenção, usados para calcular a média ponderada nas cabeças de autoatenção.
cross_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 da camada de atenção cruzada do decodificador, após o softmax de atenção, usados para calcular a média ponderada nas cabeças de atenção cruzada.
encoder_last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Sequência de estados ocultos na saída da última camada do codificador do modelo.encoder_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 codificador na saída de cada camada, além das saídas do embedding inicial.
encoder_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 do codificador, após o softmax de atenção, usados para calcular a média ponderada nas cabeças de autoatenção.
Exemplo:
>>> from transformers import SpeechT5Processor, SpeechT5ForTextToSpeech, SpeechT5HifiGan, set_seed
>>> import torch
>>> processor = SpeechT5Processor.from_pretrained("microsoft/speecht5_tts")
>>> model = SpeechT5ForTextToSpeech.from_pretrained("microsoft/speecht5_tts")
>>> vocoder = SpeechT5HifiGan.from_pretrained("microsoft/speecht5_hifigan")
>>> inputs = processor(text="Hello, my dog is cute", return_tensors="pt")
>>> speaker_embeddings = torch.zeros((1, 512)) # or load xvectors from a file
>>> set_seed(555) # make deterministic
>>> # generate speech
>>> speech = model.generate(inputs["input_ids"], speaker_embeddings=speaker_embeddings, vocoder=vocoder)
>>> speech.shape
torch.Size([15872])generate
< source >( input_ids: LongTensorattention_mask: typing.Optional[torch.LongTensor] = Nonespeaker_embeddings: typing.Optional[torch.Tensor] = Nonethreshold: float = 0.5minlenratio: float = 0.0maxlenratio: float = 20.0vocoder: typing.Optional[torch.nn.Module] = Noneoutput_cross_attentions: bool = Falsereturn_output_lengths: bool = False**kwargs ) → tuple(torch.Tensor) comprising various elements depending on the inputs
Parâmetros
- input_ids (
torch.LongTensorde forma(batch_size, sequence_length)) — Índices dos tokens da sequência de entrada no vocabulário. Os índices podem ser obtidos usando o SpeechT5Tokenizer. Consulte encode() e call() para mais detalhes. O que são IDs de entrada?Os índices podem ser obtidos usando SpeechT5Tokenizer. Consulte encode() e call() para mais detalhes.
- attention_mask (
torch.LongTensorof shape(batch_size, sequence_length)) — Attention mask from the tokenizer, required for batched inference to signal to the model where to ignore padded tokens from the input_ids. - speaker_embeddings (
torch.Tensorde forma(batch_size, config.speaker_embedding_dim), opcional) — Tensor contendo os embeddings de falante. - threshold (
float, opcional, padrão 0,5) — A sequência gerada termina quando a probabilidade do token de parada previsto excede esse valor. - minlenratio (
float, opcional, padrão 0.0) — Usado para calcular o comprimento mínimo necessário para a sequência de saída. - maxlenratio (
float, opcional, padrão 20.0) — Usado para calcular o comprimento máximo permitido para a sequência de saída. - vocoder (
nn.Module, opcional) — O vocoder que converte o espectrograma mel em uma forma de onda de fala. SeNone, a saída é o espectrograma mel. - output_cross_attentions (
bool, opcional, padrãoFalse) — Indica se as tensores de atenção das camadas de atenção cruzada do decodificador devem ser retornadas. - return_output_lengths (
bool, opcional, padrãoFalse) — Indica se as comprimentos concretos do espectrograma/forma de onda devem ser retornados.
Retorna
tuple(torch.Tensor) contendo vários elementos, dependendo das entradas
- quando
return_output_lengthsé False- espectrograma (opcional, retornado quando nenhum
vocoderé fornecido)torch.Tensorde forma(output_sequence_length, config.num_mel_bins)— O espectrograma log-mel previsto. - waveform (opcional, retornado quando um
vocoderé fornecido)torch.Tensorde forma(num_frames,)— A forma de onda de fala prevista. - cross_attentions (opcional, retornado quando
output_cross_attentionséTrue)torch.Tensorde forma(config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length)— As saídas das camadas de cross-attention do decoder.
- espectrograma (opcional, retornado quando nenhum
- quando
return_output_lengthsé True- espectrogramas (opcional, retornado quando nenhum
vocoderé fornecido)torch.Tensorde forma(batch_size, output_sequence_length, config.num_mel_bins)— Os espectrogramas log-mel previstos que são preenchidos até o comprimento máximo. - spectrogram_lengths (opcional, retornado quando nenhum
vocoderé fornecido)list[Int]— Uma lista de todos os comprimentos concretos de cada espectrograma. - formas de onda (opcional, retornado quando um
vocoderé fornecido)torch.Tensorde forma(batch_size, num_frames)— As formas de onda de fala previstas, que são preenchidas até o comprimento máximo. - waveform_lengths (opcional, retornado quando um
vocoderé fornecido)list[Int]— Uma lista com todos os comprimentos concretos de cada forma de onda. - cross_attentions (opcional, retornado quando
output_cross_attentionséTrue)torch.Tensorde forma(batch_size, config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length)— As saídas das camadas de cross-attention do decoder.
- espectrogramas (opcional, retornado quando nenhum
Converte uma sequência de tokens de entrada em uma sequência de espectrogramas mel, que são posteriormente convertidos em uma forma de onda de fala usando um vocoder.
SpeechT5ForSpeechToSpeech
classe transformers.SpeechT5ForSpeechToSpeech
< source >( config: SpeechT5Config )
Parâmetros
- config (SpeechT5Config) — 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.
Modelo SpeechT5 com um codificador de fala e um decodificador de fala.
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_values: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonedecoder_input_values: typing.Optional[torch.Tensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneuse_cache: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = Nonespeaker_embeddings: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Nonestop_labels: typing.Optional[torch.Tensor] = None**kwargs ) → Seq2SeqSpectrogramOutput or tuple(torch.Tensor)
Parâmetros
- input_values (
torch.Tensorde forma(batch_size, sequence_length)) — Valores em ponto flutuante da forma de onda bruta de fala de entrada. Os valores podem ser obtidos carregando um arquivo de áudio .flac ou .wav em um array do tipolist[float], umnumpy.ndarrayou umtorch.Tensor, por exemplo, por meio da biblioteca torchcodec (pip install torchcodec) ou da biblioteca soundfile (pip install soundfile). Para preparar o array parainput_values, o SpeechT5Processor deve ser usado para padding e conversão em um tensor do tipotorch.Tensor. Consulte SpeechT5Processor.call() para mais detalhes. - attention_mask (
torch.LongTensorde 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.
- decoder_input_values (
torch.Tensorde forma(batch_size, sequence_length, config.num_mel_bins)) — Valores em ponto flutuante do espectrograma mel de entrada.O SpeechT5 usa um espectro totalmente nulo como token inicial para a geração de
decoder_input_values. Sepast_key_valuesfor usado, opcionalmente apenas o últimodecoder_input_valuesprecisa ser inserido (vejapast_key_values). - decoder_attention_mask (
torch.LongTensorde forma(batch_size, target_sequence_length), opcional) — Comportamento padrão: gera um tensor que ignora tokens de padding emdecoder_input_values. A máscara causal também será usada por padrão. Se você quiser alterar o comportamento de padding, leia SpeechT5Decoder._prepare_decoder_attention_mask e modifique conforme necessário. Veja o diagrama 1 no paper para mais informações sobre a estratégia padrão.Se você deseja alterar o comportamento de padding, deve ler
SpeechT5Decoder._prepare_decoder_attention_maske modificar conforme suas necessidades. Consulte o diagrama 1 em o paper para mais informações sobre a estratégia padrão. - encoder_outputs (
tuple[tuple[torch.Tensor]], opcional) — A tupla consiste em (last_hidden_state, opcional:hidden_states, opcional:attentions)last_hidden_statede forma(batch_size, sequence_length, hidden_size), opcional) é uma sequência de hidden-states na saída da última camada do encoder. Usado na cross-attention do decoder. - past_key_values (
~cache_utils.Cache, opcional) — Estados ocultos pré-computados (chaves e valores nos blocos de autoatenção e nos blocos de atenção cruzada) que podem ser usados para acelerar a decodificação sequencial. Isso geralmente consiste nopast_key_valuesretornado pelo modelo em uma etapa anterior da decodificação, quandouse_cache=Trueouconfig.use_cache=True.Apenas uma instância de Cache é permitida como entrada, consulte nosso guia de cache de kv. Se nenhum
past_key_valuesfor passado, DynamicCache será inicializado por padrão.O modelo sairá no mesmo formato de cache que é fornecido como entrada.
Se
past_key_valuesforem usados, espera-se que o usuário insira apenas osinput_idsnão processados (aqueles que não têm seus estados de chave e valor passados fornecidos a este modelo) com a forma(batch_size, unprocessed_length), em vez de todos osinput_idscom a forma(batch_size, sequence_length). - use_cache (
bool, opcional) — Se definido comoTrue, os estados de chave-valorpast_key_valuessão retornados e podem ser usados para acelerar a decodificação (vejapast_key_values). - 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. - speaker_embeddings (
torch.Tensorde forma(batch_size, config.speaker_embedding_dim), opcional) — Tensor contendo os embeddings de falante. - labels (
torch.Tensorde forma(batch_size, sequence_length, config.num_mel_bins), opcional) — Valores em ponto flutuante do espectrograma mel de referência. Os espectrogramas podem ser obtidos usando SpeechT5Processor. Consulte SpeechT5Processor.call() para mais detalhes. - stop_labels (
torch.Tensorde forma(batch_size, sequence_length), opcional) — Tensor binário que indica a posição do token de parada na sequência.
Retorna
Seq2SeqSpectrogramOutput ou tuple(torch.Tensor)
Um Seq2SeqSpectrogramOutput 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 (SpeechT5Config) e das entradas.
O método forward de SpeechT5ForSpeechToSpeech 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.
loss (
torch.Tensorde forma(1,), opcional, retornado quandolabelsé fornecido) — Perda de geração de espectrograma.espectrograma (
torch.Tensorde forma(batch_size, sequence_length, num_bins)) — O espectrograma previsto.past_key_values (
EncoderDecoderCache, opcional, retornado quandouse_cache=Trueé passado ou quandoconfig.use_cache=True) — Trata-se de uma instância de EncoderDecoderCache. Para mais detalhes, consulte nosso guia de cache kv.Contém estados ocultos pré-computados (chaves e valores nos blocos de autoatenção e nos blocos de atenção cruzada) que podem ser usados (veja a entrada
past_key_values) para acelerar a decodificação sequencial.decoder_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 decodificador na saída de cada camada, além das saídas do embedding inicial.
decoder_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 do decodificador, após o softmax de atenção, usados para calcular a média ponderada nas cabeças de autoatenção.
cross_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 da camada de atenção cruzada do decodificador, após o softmax de atenção, usados para calcular a média ponderada nas cabeças de atenção cruzada.
encoder_last_hidden_state (
torch.Tensorde forma(batch_size, sequence_length, hidden_size), opcional) — Sequência de estados ocultos na saída da última camada do codificador do modelo.encoder_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 codificador na saída de cada camada, além das saídas do embedding inicial.
encoder_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 do codificador, após o softmax de atenção, usados para calcular a média ponderada nas cabeças de autoatenção.
Exemplo:
>>> from transformers import SpeechT5Processor, SpeechT5ForSpeechToSpeech, SpeechT5HifiGan, set_seed
>>> from datasets import load_dataset
>>> import torch
>>> dataset = load_dataset(
... "hf-internal-testing/librispeech_asr_demo", "clean", split="validation"
... ) # doctest: +IGNORE_RESULT
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate
>>> processor = SpeechT5Processor.from_pretrained("microsoft/speecht5_vc")
>>> model = SpeechT5ForSpeechToSpeech.from_pretrained("microsoft/speecht5_vc")
>>> vocoder = SpeechT5HifiGan.from_pretrained("microsoft/speecht5_hifigan")
>>> # audio file is decoded on the fly
>>> inputs = processor(audio=dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")
>>> speaker_embeddings = torch.zeros((1, 512)) # or load xvectors from a file
>>> set_seed(555) # make deterministic
>>> # generate speech
>>> speech = model.generate_speech(inputs["input_values"], speaker_embeddings, vocoder=vocoder)
>>> speech.shape
torch.Size([77824])generate_speech
< source >( input_values: Tensorspeaker_embeddings: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.LongTensor] = Nonethreshold: float = 0.5minlenratio: float = 0.0maxlenratio: float = 20.0vocoder: typing.Optional[torch.nn.Module] = Noneoutput_cross_attentions: bool = Falsereturn_output_lengths: bool = False ) → tuple(torch.Tensor) comprising various elements depending on the inputs
Parâmetros
- input_values (
torch.Tensorde forma(batch_size, sequence_length)) — Valores em ponto flutuante da forma de onda bruta de fala de entrada. Os valores podem ser obtidos carregando um arquivo de áudio .flac ou .wav em um array do tipo list[float], numpy.ndarray ou torch.Tensor, por exemplo, por meio da biblioteca torchcodec (pip install torchcodec) ou da biblioteca soundfile (pip install soundfile). Para preparar o array para input_values, o SpeechT5Processor deve ser usado para padding e conversão em um tensor do tipo torch.Tensor. Consulte SpeechT5Processor.call() para mais detalhes.Os valores podem ser obtidos carregando um arquivo de áudio .flac ou .wav em um array do tipo
list[float], umnumpy.ndarrayou umtorch.Tensor, por exemplo, por meio da biblioteca torchcodec (pip install torchcodec) ou da biblioteca soundfile (pip install soundfile). Para preparar o array comoinput_values, o SpeechT5Processor deve ser usado para o padding e a conversão em um tensor do tipotorch.Tensor. Consulte SpeechT5Processor.call() para mais detalhes. - speaker_embeddings (
torch.Tensorde forma(batch_size, config.speaker_embedding_dim), opcional) — Tensor contendo os embeddings de falante. - attention_mask (
torch.LongTensorde forma(batch_size, sequence_length), opcional) — Máscara para evitar a execução de convolução e atenção nos índices de tokens de preenchimento. Valores da máscara selecionados em[0, 1]:- 1 para tokens que não estão mascarados,
- 0 para tokens que estão mascarados.
- threshold (
float, opcional, padrão 0,5) — A sequência gerada termina quando a probabilidade do token de parada previsto excede esse valor. - minlenratio (
float, opcional, padrão 0.0) — Usado para calcular o comprimento mínimo necessário para a sequência de saída. - maxlenratio (
float, opcional, padrão 20.0) — Usado para calcular o comprimento máximo permitido para a sequência de saída. - vocoder (
nn.Module, opcional, padrãoNone) — O vocoder que converte o espectrograma mel em uma forma de onda de fala. SeNone, a saída é o espectrograma mel. - output_cross_attentions (
bool, opcional, padrãoFalse) — Indica se as tensores de atenção das camadas de atenção cruzada do decodificador devem ser retornadas. - return_output_lengths (
bool, opcional, padrãoFalse) — Indica se as comprimentos concretos do espectrograma/forma de onda devem ser retornados.
Retorna
tuple(torch.Tensor) contendo vários elementos, dependendo das entradas
- quando
return_output_lengthsé False- espectrograma (opcional, retornado quando nenhum
vocoderé fornecido)torch.Tensorde forma(output_sequence_length, config.num_mel_bins)— O espectrograma log-mel previsto. - waveform (opcional, retornado quando um
vocoderé fornecido)torch.Tensorde forma(num_frames,)— A forma de onda de fala prevista. - cross_attentions (opcional, retornado quando
output_cross_attentionséTrue)torch.Tensorde forma(config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length)— As saídas das camadas de cross-attention do decoder.
- espectrograma (opcional, retornado quando nenhum
- quando
return_output_lengthsé True- espectrogramas (opcional, retornado quando nenhum
vocoderé fornecido)torch.Tensorde forma(batch_size, output_sequence_length, config.num_mel_bins)— Os espectrogramas log-mel previstos que são preenchidos até o comprimento máximo. - spectrogram_lengths (opcional, retornado quando nenhum
vocoderé fornecido)list[Int]— Uma lista de todos os comprimentos concretos de cada espectrograma. - formas de onda (opcional, retornado quando um
vocoderé fornecido)torch.Tensorde forma(batch_size, num_frames)— As formas de onda de fala previstas, que são preenchidas até o comprimento máximo. - waveform_lengths (opcional, retornado quando um
vocoderé fornecido)list[Int]— Uma lista com todos os comprimentos concretos de cada forma de onda. - cross_attentions (opcional, retornado quando
output_cross_attentionséTrue)torch.Tensorde forma(batch_size, config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length)— As saídas das camadas de cross-attention do decoder.
- espectrogramas (opcional, retornado quando nenhum
Converte uma forma de onda de fala bruta em uma sequência de espectrogramas mel, que são posteriormente convertidos de volta em uma forma de onda de fala usando um vocoder.
SpeechT5HifiGan
classe transformers.SpeechT5HifiGan
< source >( config: SpeechT5HifiGanConfig )
Parâmetros
- config (SpeechT5HifiGanConfig) — 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.
Vocoder HiFi-GAN.
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 >( spectrogram: Tensor**kwargs ) → torch.Tensor
Parâmetros
- spectrogram (
torch.Tensor) — Tensor contendo os espectrogramas log-mel. Pode ser em lote, com forma(batch_size, sequence_length, config.model_in_dim), ou sem lote, com forma(sequence_length, config.model_in_dim).
Retorna
torch.Tensor
Tensor contendo a forma de onda da fala. Se o espectrograma de entrada estiver em lote, terá a forma (batch_size, num_frames,). Se não estiver em lote, terá a forma (num_frames,).
Converte um espectrograma log-mel em uma forma de onda de fala. Ao passar um lote de espectrogramas log-mel, retorna um lote de formas de onda de fala. Ao passar um único espectrograma log-mel, sem lote, retorna uma única forma de onda de fala, sem lote.