Transformers documentation

Gradium Phonon TTS

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

and get access to the augmented documentation experience

to get started

Este modelo foi contribuído para o Hugging Face Transformers em 2026-10-20.

Gradium Phonon TTS

Visão geral

Gradium Phonon TTS é a família de modelos de texto para fala on-device da Gradium, treinada com a receita do Pocket TTS: um transformer causal lê um prompt de voz e o texto, e emite um único latente de áudio contínuo de 32 dimensões por passo a 12,5 Hz por meio de uma cabeça de fluxo de um passo, e uma cabeça de fim de fala decide quando a fala termina. Os latentes são decodificados para áudio de 24 kHz por um Pocket TTS audio tokenizer mantido pelo processador, o PocketTTSProcessor do Pocket TTS.

Ele difere do Pocket TTS em seu condicionamento de voz: o prompt de voz é composto por latentes de 512 dimensões de um codec de falante separado, e um vetor de falante aprendido é adicionado a cada posição de latente de áudio. O codec de falante não foi liberado, portanto as vozes vêm como latentes pré-computados (o default-voice.safetensors de cada checkpoint e o catálogo de gradium/phonon-voices) e o tokenizador de áudio é apenas um decodificador: as vozes não podem ser clonadas a partir de uma gravação.

CheckpointParâmetrosIdiomasLicença
gradium/phonon-31m-en31MInglêsApache 2.0
gradium/phonon-40m-en40MInglêsCC BY-NC 4.0
gradium/phonon-40m-fr40MFrancêsCC BY-NC 4.0
gradium/phonon-40m-de40MAlemãoCC BY-NC 4.0
gradium/phonon-40m-es40MEspanholCC BY-NC 4.0
gradium/phonon-40m-pt40MPortuguêsCC BY-NC 4.0
gradium/phonon-40m-multilingual40MInglês, Francês, Alemão, Espanhol, PortuguêsCC BY-NC 4.0

Todos eles são carregados da mesma forma: alternar entre checkpoints significa alterar o id do repositório.

Este modelo foi contribuído por Eustache Le Bihan. O código original é gradium-ai/xn-ptts.

Dicas de uso

  • Prepare as entradas com apply_chat_template(): uma mensagem user por texto, um item vazio {"type": "audio"} onde a voz será inserida, os latentes da voz em processor_kwargs={"audio_prompt_latents": [...]} e add_generation_prompt=True.
  • O tokenizer não expande números, quantidades, símbolos ou endereços, consulte Normalização de texto.
  • generate retorna audio_latents e audio_latents_mask; decodifique-os com PocketTTSProcessor.decode().
  • Amostras de geração como o runtime do Gradium faz: temperature 0,3 (a variância do ruído inicial do fluxo), e ele para logo após o logit de fim de fala cruzar eos_threshold. do_sample=False inicia o fluxo a partir de ruído zero.
  • O modelo é carregado em bf16, o dtype em que seus pesos são armazenados; passe dtype=torch.float32 em CPU para corresponder ao runtime do Gradium ali.
  • Divida textos longos com PocketTTSProcessor.split_text(), uma conversa por bloco.

Uso

Voz

Uma voz é um tensor de latentes (num_frames, 512). Cada checkpoint inclui uma (default-voice.safetensors), e o gradium/phonon-voices possui cerca de cem outras, em todos os idiomas, cada uma sob seu ID de voz (voices.jsonl lista seus nomes, idiomas e descrições). Qualquer voz funciona com qualquer checkpoint.

import torch
from huggingface_hub import hf_hub_download
from safetensors.torch import load_file
from transformers import AutoProcessor, GradiumPhononTTSForConditionalGeneration

model_id = "gradium/phonon-31m-en"
processor = AutoProcessor.from_pretrained(model_id, device_map="auto")
model = GradiumPhononTTSForConditionalGeneration.from_pretrained(model_id, device_map="auto")


def load_voice(voice_id):
    """A voice of gradium/phonon-voices, as latents of shape (num_frames, 512)."""
    path = hf_hub_download("gradium/phonon-voices", f"voices/{voice_id}.safetensors")
    return load_file(path)["speaker_wavs"][0].T.float()


# Easton (en-us); the checkpoint's own voice: hf_hub_download(model_id, "default-voice.safetensors")
voice = load_voice("LMDIYE0Oa377Qh6Z")
# an empty `audio` item marks the voice
conversation = [
    {"role": "user", "content": [{"type": "audio"}, {"type": "text", "text": "Hello from Phonon."}]}
]
inputs = processor.apply_chat_template(
    conversation,
    tokenize=True,
    return_dict=True,
    add_generation_prompt=True,
    processor_kwargs={"audio_prompt_latents": [voice]},
).to(model.device)

outputs = model.generate(**inputs)
audio = processor.decode(outputs.audio_latents, outputs.audio_latents_mask)
processor.save_audio(audio, "phonon.wav")

Lotes e texto longo

Lote vários textos, cada um com sua própria voz, com o texto longo dividido em blocos:

text = (
    "Phonon is a small text-to-speech model that runs on your device. "
    "Long texts are split into sentences, and each chunk is one conversation of the batch."
)
chunks = processor.split_text(text)
texts = chunks + ["And this one is said by another voice."]
voices = [load_voice("LMDIYE0Oa377Qh6Z")] * len(chunks) + [load_voice("NbpkqMVS3CJeq2j8")]
conversations = [
    [{"role": "user", "content": [{"type": "audio"}, {"type": "text", "text": text}]}] for text in texts
]
inputs = processor.apply_chat_template(
    conversations,
    tokenize=True,
    return_dict=True,
    add_generation_prompt=True,
    processor_kwargs={"audio_prompt_latents": voices},
).to(model.device)

outputs = model.generate(**inputs)
audio = processor.decode(outputs.audio_latents, outputs.audio_latents_mask)
processor.save_audio([torch.cat(audio[: len(chunks)]), audio[-1]], ["long.wav", "other.wav"])

Normalização de texto

O tokenizer normaliza o que não depende do idioma, assim como o runtime do Gradium faz:

TextoTokenizer
“Hello” — it’s here…"Hello" it's here.
hello (world); see you 🚀Hello, world, see you.

Ele não descreve números, quantidades, símbolos ou endereços, que dependem do idioma:

TextoTokenizerRuntime do Gradium
It costs $1,234.56.It costs $1,234.56.It costs 1 thousand 234 dollars and 56 cents.
Write to jean@gradium.aiWrite to jean@gradium.ai.Write to jean at gradium dot A-I.
It is 21°CIt is 21°C.It is 21 degrees Celsius.

Para esses, use a normalização de texto do runtime do Gradium, ptts, ou escreva-os por extenso.

GradiumPhononTTSConfig

classe transformers.GradiumPhononTTSConfig

< >

( 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 = Noneflow_head_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonevocab_size: int = 4001hidden_size: int = 768num_hidden_layers: int = 6num_attention_heads: int = 12num_key_value_heads: int | None = Nonehead_dim: int | None = Noneintermediate_size: int = 3072hidden_act: str = 'gelu'layer_norm_eps: float = 1e-05attention_bias: bool = Falseattention_dropout: float = 0.0max_position_embeddings: int = 8192rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonelatent_dim: int = 32pad_token_id: int = 3bos_token_id: int | None = Noneeos_token_id: int | None = Noneaudio_prompt_token_id: int = 5audio_latent_token_id: int = 6audio_bos_token_id: int = 4frame_rate: float = 12.5initializer_range: float = 0.02use_cache: bool = Trueeos_loss_weight: float = 0.1flow_loss_num_samples: int = 4lsd_distill_probability: float = 0.25lsd_diagonal_weight: float = 0.75lsd_time_logit_mean: float = 0.4lsd_time_logit_std: float = 1.0latent_stats_ema_steps: int = 1000latent_stats_ema_decay: float = 0.999audio_prompt_dim: int = 512num_speakers: int = 1num_speakers_vocab_size: int = 32num_speakers_embedding_dim: int = 16duration_delta: float = 0.0duration_delta_embedding_dim: int = 128duration_delta_scale: float = 1000.0duration_delta_max_period: float = 10000.0 )

Parâmetros

  • flow_head_config (Union[GradiumPhononTTSFlowHeadConfig, dict], opcional) — A configuração do flow head que amostra cada latente a partir do estado oculto do backbone.
  • vocab_size (int, opcional, padrão 4001) — Tamanho do vocabulário do modelo. Define o número de tokens diferentes que podem ser representados pelos input_ids.
  • hidden_size (int, opcional, padrão 768) — Dimensão das representações ocultas.
  • num_hidden_layers (int, opcional, padrão 6) — Número de camadas ocultas no decodificador do Transformer.
  • num_attention_heads (int, opcional, padrão 12) — Número de cabeças de atenção para cada camada de atenção no decodificador do Transformer.
  • num_key_value_heads (int, opcional) — Este é o número de cabeças de key_value que devem ser usadas para implementar Grouped Query Attention. Se num_key_value_heads=num_attention_heads, o modelo usará Multi Head Attention (MHA); se num_key_value_heads=1, o modelo usará Multi Query Attention (MQA); caso contrário, será usado GQA. Ao converter um checkpoint multi-head para um checkpoint GQA, cada grupo de cabeças de chave e valor deve ser construído por meio do meanpooling de todas as cabeças originais dentro desse grupo. Para mais detalhes, consulte este artigo. Se não for especificado, o valor padrão será num_attention_heads.
  • head_dim (int, opcional) — A dimensão da cabeça de atenção. Se for None, o valor padrão será hidden_size // num_attention_heads
  • intermediate_size (int, opcional, padrão 3072) — Dimensão das representações do MLP.
  • hidden_act (str, opcional, padrão gelu) — A função de ativação não linear (função ou string) no decodificador. Por exemplo, "gelu", "relu", "silu", etc.
  • layer_norm_eps (float, opcional, padrão 1e-05) — Epsilon das normalizações de camada do backbone.
  • attention_bias (bool, opcional, padrão False) — Indica se deve ser usado um viés nas camadas de projeção de query, key, value e output durante a autoatenção.
  • attention_dropout (float, opcional, padrão 0.0) — A taxa de dropout para as probabilidades de atenção.
  • max_position_embeddings (int, opcional, padrão 8192) — O comprimento máximo de sequência com o qual este modelo pode ser utilizado.
  • rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], opcional) — Dicionário contendo os parâmetros de configuração para os embeddings RoPE. O dicionário deve conter um valor para rope_theta e, opcionalmente, parâmetros usados para escalonamento, caso você queira usar RoPE com max_position_embeddings maiores.
  • latent_dim (int, opcional, padrão 32) — Dimensão dos latentes de áudio que o backbone recebe como entrada (audio_latents); igual ao latent_dim do flow head e do tokenizer de áudio.
  • pad_token_id (int, opcional, padrão 3) — ID do token usado para preenchimento (padding) no vocabulário.
  • bos_token_id (int, opcional) — ID do token usado para o início do fluxo no vocabulário.
  • eos_token_id (int, opcional) — ID do token usado para o fim do fluxo no vocabulário.
  • audio_prompt_token_id (int, opcional, padrão 5) — ID do token placeholder dos quadros de prompt de voz em input_ids (<|audio_prompt|>).
  • audio_latent_token_id (int, opcional, padrão 6) — ID do token placeholder das posições latentes de áudio em input_ids (<|audio_latent|>).
  • audio_bos_token_id (int, opcional, padrão 4) — ID do token da primeira posição de áudio, que fecha o prompt: ele contém o latente BOS aprendido, a partir do qual o primeiro frame é gerado (<|audio_bos|>).
  • frame_rate (float, opcional, padrão 12.5) — Número de latentes de áudio por segundo de áudio: generate deriva seu orçamento de quadros padrão a partir dele.
  • initializer_range (float, opcional, padrão 0.02) — O desvio padrão do truncated_normal_initializer para inicializar todas as matrizes de pesos.
  • use_cache (bool, opcional, padrão True) — Se o modelo deve ou não retornar as últimas chaves/valores de atenção (não usado por todos os modelos). Relevante apenas se config.is_decoder=True ou quando o modelo for um modelo generativo somente decodificador.
  • eos_loss_weight (float, opcional, padrão 0.1) — Peso da perda de fim de fala na perda de treinamento.
  • flow_loss_num_samples (int, opcional, padrão 4) — Número de amostras de ruído por quadro alvo na perda de fluxo.
  • lsd_distill_probability (float, opcional, padrão 0.25) — Probabilidade, por etapa de treinamento, de calcular o termo de auto-destilação da perda LSD (reponderado para manter a perda esperada); 1 o calcula em todas as etapas.
  • lsd_diagonal_weight (float, opcional, padrão 0.75) — Peso do termo diagonal (fluxo instantâneo) da perda LSD; o termo de auto-distilação pondera o restante.
  • lsd_time_logit_mean (float, opcional, padrão 0.4) — Média da distribuição logit-normal dos tempos de fluxo extraídos pela perda LSD.
  • lsd_time_logit_std (float, opcional, padrão 1.0) — Desvio padrão da distribuição logit-normal dos tempos de fluxo extraídos pela perda LSD.
  • latent_stats_ema_steps (int, opcional, padrão 1000) — Número de primeiros passos de treinamento durante os quais latent_mean e latent_std seguem uma média móvel exponencial dos latentes alvo; 0 os mantém congelados.
  • latent_stats_ema_decay (float, opcional, padrão 0.999) — Decaimento dessa média móvel.
  • audio_prompt_dim (int, opcional, padrão 512) — Dimensão dos latentes do prompt de voz (audio_prompt_latents), os latentes não quantizados do codec de falante do Gradium (um codificador Mimi, não o do tokenizador de áudio), que o backbone projeta para hidden_size.
  • num_speakers (int, opcional, padrão 1) — Valor da condição num_speakers: a linha da sua tabela de consulta adicionada a cada posição latente de áudio.
  • num_speakers_vocab_size (int, opcional, padrão 32) — Número de linhas da tabela de consulta num_speakers.
  • num_speakers_embedding_dim (int, opcional, padrão 16) — Largura da tabela de consulta num_speakers, projetada para hidden_size.
  • duration_delta (float, opcional, padrão 0.0) — Valor da condição duration_delta, incorporado sinusoidalmente e adicionado a cada posição latente de áudio.
  • duration_delta_embedding_dim (int, opcional, padrão 128) — Tamanho do embedding senoidal de duration_delta, projetado para hidden_size.
  • duration_delta_scale (float, opcional, padrão 1000.0) — Fator aplicado a duration_delta antes de sua incorporação senoidal.
  • duration_delta_max_period (float, opcional, padrão 10000.0) — Período máximo do embedding senoidal de duration_delta.

Esta é a classe de configuração para armazenar a configuração de um GradiumPhononTTSModel. Ela é usada para instanciar um modelo Gradium Phonon Tts 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 gradium/phonon-31m-en

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.

GradiumPhononTTSFlowHeadConfig

classe transformers.GradiumPhononTTSFlowHeadConfig

< >

( 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 = Nonehidden_size: int = 512num_hidden_layers: int = 6latent_dim: int = 32condition_dim: int = 768frequency_embedding_size: int = 256hidden_act: str = 'silu'layer_norm_eps: float = 1e-06rms_norm_eps: float = 1e-05max_period: float = 10000.0flow_type: typing.Literal['lsd', 'drifting'] = 'lsd'loss_weighting_hidden_size: int = 32loss_weighting_num_layers: int = 3 )

Parâmetros

  • hidden_size (int, opcional, padrão 512) — Dimensão das representações ocultas.
  • num_hidden_layers (int, opcional, padrão 6) — Número de camadas ocultas no decodificador do Transformer.
  • latent_dim (int, opcional, padrão 32) — Dimensão dos latentes contínuos de áudio que a head prevê (a dimensão latente do tokenizer de áudio).
  • condition_dim (int, opcional, padrão 768) — Dimensão do estado oculto do backbone em que a cabeça é condicionada (o hidden_size do backbone).
  • frequency_embedding_size (int, opcional, padrão 256) — Tamanho do embedding senoidal dos tempos de fluxo.
  • hidden_act (str, opcional, padrão silu) — A função de ativação não linear (função ou string) no decodificador. Por exemplo, "gelu", "relu", "silu", etc.
  • layer_norm_eps (float, opcional, padrão 1e-06) — Epsilon das normalizações de camada dentro dos blocos residuais e da camada final.
  • rms_norm_eps (float, opcional, padrão 1e-05) — Epsilon da normalização que fecha os embeddings de tempo.
  • max_period (float, opcional, padrão 10000.0) — Período máximo do embedding temporal sinusoidal, que o checkpoint armazena como freqs.
  • flow_type (str, opcional, padrão "lsd") — Objetivo com o qual a head foi treinada, que define como ela é condicionada e amostrada. "lsd" (auto-distilação lagrangiana): condicionada nos tempos inicial e final de uma etapa de fluxo, amostrada por etapas de Euler a partir de ruído gaussiano. "drifting": sem condicionamento temporal, a head mapeia o ruído para o latente em uma única chamada.
  • loss_weighting_hidden_size (int, opcional, padrão 32) — Largura do MLP que aprende o ponderamento de incerteza dos termos de perda LSD a partir de seus tempos de fluxo (apenas para treinamento).
  • loss_weighting_num_layers (int, opcional, padrão 3) — Número de camadas ocultas desse MLP.

Esta é a classe de configuração para armazenar a configuração de um GradiumPhononTTSModel. Ela é usada para instanciar um modelo Gradium Phonon Tts 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 gradium/phonon-31m-en

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.

GradiumPhononTTSModel

classe transformers.GradiumPhononTTSModel

< >

( config: GradiumPhononTTSConfig )

Parâmetros

  • config (GradiumPhononTTSConfig) — Classe de configuração do modelo com todos os parâmetros do modelo. A inicialização com um arquivo de configuração não carrega os pesos associados ao modelo, apenas a configuração. Consulte o método from_pretrained() para carregar os pesos do modelo.

O backbone Gradium Phonon TTS: um transformer causal sobre um único fluxo composto pelo prompt de voz (latentes do codec do falante), os tokens de texto e os latentes de áudio, retornando os estados ocultos normalizados.

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

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneaudio_prompt_latents: typing.Optional[torch.FloatTensor] = Noneaudio_prompt_latents_mask: typing.Optional[torch.Tensor] = Noneaudio_latents: typing.Optional[torch.FloatTensor] = Noneaudio_latents_mask: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPast or tuple(torch.FloatTensor)

Parâmetros

  • input_ids (torch.LongTensor de forma (batch_size, sequence_length), opcional) — Índices dos tokens da sequência de entrada no vocabulário. O padding será ignorado por padrão.

    Os índices podem ser obtidos usando AutoTokenizer. Consulte PreTrainedTokenizer.encode() e PreTrainedTokenizer.call() para mais detalhes.

    O que são IDs de entrada?

  • audio_prompt_latents (torch.FloatTensor de forma (batch_size, num_prompt_frames, latent_dim), opcional) — Latentes do prompt de voz do tokenizer de áudio (codificados pelo processor, ou do voices/ de um checkpoint), com preenchimento à direita até a voz mais longa do lote, distribuídos nas posições de audio_prompt_token_id.
  • audio_prompt_latents_mask (torch.Tensor de forma (batch_size, num_prompt_frames), opcional) — Máscara dos quadros de voz (1) em oposição ao preenchimento (0) em audio_prompt_latents.
  • audio_latents (torch.FloatTensor de forma (batch_size, num_latents, latent_dim), opcional) — Latentes de áudio normalizados, distribuídos nas posições de audio_latent_token_id. A posição de audio_bos_token_id antes deles, que encerra o prompt e a partir da qual o primeiro frame é gerado, sempre recebe o latente BOS aprendido.
  • audio_latents_mask (torch.Tensor de forma (batch_size, num_latents), opcional) — Máscara dos latentes de cada linha (1) em oposição ao preenchimento (0) em audio_latents, quando as linhas contêm diferentes números de posições latentes (treinamento).
  • attention_mask (torch.Tensor de 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.

    O que são máscaras de atenção?

  • position_ids (torch.LongTensor de forma (batch_size, sequence_length), opcional) — Índices das posições dos tokens de cada sequência de entrada nos embeddings de posição. Selecionados no intervalo [0, config.n_positions - 1].

    O que são IDs de posição?

  • 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 no past_key_values retornado pelo modelo em uma etapa anterior da decodificação, quando use_cache=True ou config.use_cache=True.

    Apenas uma instância de Cache é permitida como entrada, consulte nosso guia de cache de kv. Se nenhum past_key_values for passado, DynamicCache será inicializado por padrão.

    O modelo sairá no mesmo formato de cache que é fornecido como entrada.

    Se past_key_values forem usados, espera-se que o usuário insira apenas os input_ids nã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 os input_ids com a forma (batch_size, sequence_length).

  • inputs_embeds (torch.FloatTensor de forma (batch_size, sequence_length, hidden_size), opcional) — Opcionalmente, em vez de passar input_ids, você pode escolher passar diretamente uma representação incorporada. Isso é útil se você quiser ter mais controle sobre como converter os índices de input_ids nos vetores associados do que a matriz de incorporação interna do modelo.
  • use_cache (bool, opcional) — Se definido como True, os estados de chave-valor past_key_values são retornados e podem ser usados para acelerar a decodificação (veja past_key_values).

Retorna

BaseModelOutputWithPast ou tuple(torch.FloatTensor)

Um BaseModelOutputWithPast ou uma tupla de torch.FloatTensor (se return_dict=False for passado ou quando config.return_dict=False) contendo vários elementos, dependendo da configuração (GradiumPhononTTSConfig) e das entradas.

O método forward do GradiumPhononTTSModel sobrescreve 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 Module em 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.FloatTensor de forma (batch_size, sequence_length, hidden_size)) — Sequência de estados ocultos na saída da última camada do modelo.

    Se past_key_values for usado, apenas o último hidden-state das sequências, com forma (batch_size, 1, hidden_size), é retornado.

  • past_key_values (Cache, opcional, retornado quando use_cache=True é passado ou quando config.use_cache=True) — É uma instância de Cache. Para mais detalhes, consulte nosso guia de cache kv.

    Contém estados ocultos pré-computados (chaves e valores nos blocos de autoatenção e, opcionalmente, se config.is_encoder_decoder=True, nos blocos de atenção cruzada) que podem ser usados (veja a entrada past_key_values) para acelerar a decodificação sequencial.

  • hidden_states (tuple(torch.FloatTensor), opcional, retornado quando output_hidden_states=True é passado ou quando config.output_hidden_states=True) — Tupla de torch.FloatTensor (um para a saída dos embeddings, se o modelo tiver uma camada de embedding, + um para a saída de cada camada) com formato (batch_size, sequence_length, hidden_size).

    Estados ocultos do modelo na saída de cada camada, além das saídas opcionais do embedding inicial.

  • attentions (tuple(torch.FloatTensor), opcional, retornado quando output_attentions=True é passado ou quando config.output_attentions=True) — Tupla de torch.FloatTensor (uma para cada camada) com a forma (batch_size, num_heads, sequence_length, sequence_length).

    Pesos de atenção após o softmax de atenção, usados para calcular a média ponderada nos cabeçalhos de autoatenção.

GradiumPhononTTSForConditionalGeneration

classe transformers.GradiumPhononTTSForConditionalGeneration

< >

( config: GradiumPhononTTSConfig )

Parâmetros

  • config (GradiumPhononTTSConfig) — Classe de configuração do modelo com todos os parâmetros do modelo. A inicialização com um arquivo de configuração não carrega os pesos associados ao modelo, apenas a configuração. Consulte o método from_pretrained() para carregar os pesos do modelo.

O modelo de texto para fala Gradium Phonon TTS: o backbone, a flow head que amostra um latente de áudio por passo e a end-of-speech head. Ele gera latentes do tokenizer de áudio, que o processor decodifica em áudio de 24 kHz.

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

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneaudio_prompt_latents: typing.Optional[torch.FloatTensor] = Noneaudio_prompt_latents_mask: typing.Optional[torch.Tensor] = Noneaudio_latents: typing.Optional[torch.FloatTensor] = Nonelabels: typing.Optional[torch.FloatTensor] = Nonelabels_mask: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → GradiumPhononTTSOutputWithPast or tuple(torch.FloatTensor)

Parâmetros

  • input_ids (torch.LongTensor de forma (batch_size, sequence_length), opcional) — Índices dos tokens da sequência de entrada no vocabulário. O padding será ignorado por padrão.

    Os índices podem ser obtidos usando AutoTokenizer. Consulte PreTrainedTokenizer.encode() e PreTrainedTokenizer.call() para mais detalhes.

    O que são IDs de entrada?

  • audio_prompt_latents (torch.FloatTensor de forma (batch_size, num_prompt_frames, latent_dim), opcional) — Latentes do prompt de voz do tokenizer de áudio, com preenchimento à direita, distribuídos nas posições de audio_prompt_token_id.
  • audio_prompt_latents_mask (torch.Tensor de forma (batch_size, num_prompt_frames), opcional) — Máscara dos quadros de voz (1) em oposição ao preenchimento (0) em audio_prompt_latents.
  • audio_latents (torch.FloatTensor de forma (batch_size, num_latents, latent_dim), opcional) — Latentes de áudio normalizados, distribuídos nas posições de audio_latent_token_id.
  • labels (torch.FloatTensor de forma (batch_size, num_frames, latent_dim), opcional) — Latentes-alvo do tokenizador de áudio (treinamento), com preenchimento à direita. O prompt de cada linha termina na posição audio_bos_token_id, seguido por uma posição audio_latent_token_id por quadro: o modelo fornece os alvos normalizados (teacher forcing), aplica a perda de fluxo às saídas do BOS e de todos os quadros, exceto o último, que preveem os quadros, e a perda de fim de fala a todos eles, sendo o último o fim da fala.
  • labels_mask (torch.Tensor de forma (batch_size, num_frames), opcional) — Máscara dos frames-alvo de cada linha (1) em oposição ao padding (0) em labels.
  • attention_mask (torch.Tensor de 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.

    O que são máscaras de atenção?

  • position_ids (torch.LongTensor de forma (batch_size, sequence_length), opcional) — Índices das posições dos tokens de cada sequência de entrada nos embeddings de posição. Selecionados no intervalo [0, config.n_positions - 1].

    O que são IDs de posição?

  • 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 no past_key_values retornado pelo modelo em uma etapa anterior da decodificação, quando use_cache=True ou config.use_cache=True.

    Apenas uma instância de Cache é permitida como entrada, consulte nosso guia de cache de kv. Se nenhum past_key_values for passado, DynamicCache será inicializado por padrão.

    O modelo sairá no mesmo formato de cache que é fornecido como entrada.

    Se past_key_values forem usados, espera-se que o usuário insira apenas os input_ids nã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 os input_ids com a forma (batch_size, sequence_length).

  • inputs_embeds (torch.FloatTensor de forma (batch_size, sequence_length, hidden_size), opcional) — Opcionalmente, em vez de passar input_ids, você pode escolher passar diretamente uma representação incorporada. Isso é útil se você quiser ter mais controle sobre como converter os índices de input_ids nos vetores associados do que a matriz de incorporação interna do modelo.
  • use_cache (bool, opcional) — Se definido como True, os estados de chave-valor past_key_values são retornados e podem ser usados para acelerar a decodificação (veja past_key_values).

Retorna

GradiumPhononTTSOutputWithPast ou tuple(torch.FloatTensor)

Um GradiumPhononTTSOutputWithPast ou uma tupla de torch.FloatTensor (se return_dict=False for passado ou quando config.return_dict=False) contendo vários elementos, dependendo da configuração (GradiumPhononTTSConfig) e das entradas.

O método forward de GradiumPhononTTSForConditionalGeneration 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 Module em 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.FloatTensor de forma (), opcional, retornado quando labels é passado) — Perda de treinamento: a perda de fluxo LSD dos latentes-alvo mais config.eos_loss_weight vezes a perda de fim de fala.

  • logits (torch.FloatTensor de forma (batch_size, sequence_length, 1)) — Logits de fim de fala, um por posição.

  • past_key_values (Cache, opcional, retornado quando use_cache=True é passado ou quando config.use_cache=True) — É uma instância de Cache. Para mais detalhes, consulte nosso guia de cache kv.

    Contém estados ocultos pré-computados (chaves e valores nos blocos de autoatenção) que podem ser usados (veja a entrada past_key_values) para acelerar a decodificação sequencial.

  • hidden_states (tuple(torch.FloatTensor), opcional, retornado quando output_hidden_states=True é passado ou quando config.output_hidden_states=True) — Tupla de torch.FloatTensor (um para a saída dos embeddings, se o modelo tiver uma camada de embedding, + um para a saída de cada camada) com formato (batch_size, sequence_length, hidden_size).

    Estados ocultos do modelo na saída de cada camada, além das saídas opcionais do embedding inicial.

  • attentions (tuple(torch.FloatTensor), opcional, retornado quando output_attentions=True é passado ou quando config.output_attentions=True) — Tupla de torch.FloatTensor (uma para cada camada) com a forma (batch_size, num_heads, sequence_length, sequence_length).

    Pesos de atenção após o softmax de atenção, usados para calcular a média ponderada nos cabeçalhos de autoatenção.

  • last_hidden_state (torch.FloatTensor de forma (batch_size, sequence_length, hidden_size)) — Estados ocultos normalizados do backbone, que condicionam a flow head.

Exemplo:

>>> from transformers import AutoProcessor, GradiumPhononTTSForConditionalGeneration

>>> model = GradiumPhononTTSForConditionalGeneration.from_pretrained("gradium/phonon-31m-en")

>>> processor = AutoProcessor.from_pretrained("gradium/phonon-31m-en")
>>> inputs = processor(text="Hello, my dog is cute", return_tensors="pt")

>>> # generate speech
>>> speech = model(inputs["input_ids"])

generate

< >

( inputs: typing.Optional[torch.Tensor] = None**kwargs )

Parâmetros

  • inputs (torch.LongTensor de forma (batch_size, sequence_length), opcional) — Os input_ids preparados pelo PocketTTSProcessor. Também pode ser passado como input_ids=.
  • kwargs (dict[str, Any], opcional) — attention_mask, o prompt de voz (audio_prompt_latents e audio_prompt_latents_mask, ou o cache de um prefixo de voz como past_key_values, as vozes incluídas, com prompts apenas de texto), frames_after_eos do processador, os parâmetros de geração (do_sample, temperature, max_new_tokens, …) e os específicos do Pocket TTS num_flow_steps, eos_threshold e min_frames_before_eos, que por padrão seguem a configuração de geração.

Gera fala. Este método substitui generate() para definir max_new_tokens como o orçamento de quadros do tempo de execução original, ceil((num_text_tokens / 3 + 2) * frame_rate) para o texto mais longo do lote. Todo o restante passa pelos ganchos de geração regulares.

Update on GitHub