Transformers documentation

Pocket 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.

Pocket TTS

Visão geral

O Pocket TTS é o modelo de texto para fala de 100M de parâmetros da Kyutai, um Continuous Audio Language Model que roda mais rápido que o tempo real em CPU. Um transformer causal emite um latente de áudio contínuo por frame (12,5 Hz) por meio de uma cabeça de fluxo de um passo, e uma cabeça de fim de fala decide quando parar.

O processador contém o tokenizador de áudio do Pocket TTS, um codec baseado no Mimi que codifica prompts de voz e decodifica os latentes gerados em áudio de 24 kHz. As vozes predefinidas são fornecidas como caches de KV (voices/).

Duas cabeças de fluxo são disponibilizadas: auto-destilação lagrangiana (flow_type="lsd", padrão) e em deriva (flow_type="drifting", english_drifting_26-09). O ajuste fino é suportado, consulte Training.

Este modelo foi contribuído por Eustache Le Bihan. O código original é kyutai-labs/pocket-tts.

Dicas de uso

  • Prepare os inputs com apply_chat_template() (uma mensagem user por texto, add_generation_prompt=True). O normalizador do tokenizer prepara o texto como no original, com as configurações do idioma do checkpoint.
  • generate retorna audio_latents e audio_latents_mask; decodifique-os com PocketTTSProcessor.decode().
  • max_new_tokens tem como padrão um orçamento baseado no comprimento do texto, e a geração é interrompida pouco depois que o logit de fim de fala ultrapassa eos_threshold.
  • do_sample=False corresponde ao original em temperatura 0. Com amostragem, temperature (padrão 0,3) é a variância do ruído inicial do fluxo.
  • Divida textos longos com PocketTTSProcessor.split_text(), uma conversa por bloco.

Uso

Voz

A voz pode ser fornecida de três maneiras.

1. Clonando uma gravação: um item audio na conversa.

from transformers import AutoModelForTextToWaveform, AutoProcessor

model_id = "eustlb/pocket-tts"
processor = AutoProcessor.from_pretrained(model_id, device_map="auto")
model = AutoModelForTextToWaveform.from_pretrained(model_id, device_map="auto")

url = "https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/en-Alice_woman.wav"
conversation = [
    {
        "role": "user",
        "content": [
            {"type": "audio", "url": url},
            {"type": "text", "text": "Hello world. I am Kyutai's Pocket TTS."},
        ],
    }
]
inputs = processor.apply_chat_template(
    conversation, tokenize=True, return_dict=True, add_generation_prompt=True
).to(model.device)

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

2. Latentes pré-computados: um item audio vazio, com os latentes passados para o processador.

from transformers import AutoModelForTextToWaveform, AutoProcessor
from transformers.audio_utils import load_audio

model_id = "eustlb/pocket-tts"
processor = AutoProcessor.from_pretrained(model_id, device_map="auto")
model = AutoModelForTextToWaveform.from_pretrained(model_id, device_map="auto")

# e.g. a recording encoded once by the processor's audio tokenizer,
# to reuse without re-encoding it
url = "https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/en-Alice_woman.wav"
features = processor.feature_extractor(
    load_audio(url, sampling_rate=24000), sampling_rate=24000
).to(processor.audio_tokenizer.device)
# (num_frames, latent_dim)
voice = processor.audio_tokenizer.encode(**features).latents[0]

conversation = [
    {
        "role": "user",
        "content": [
            {"type": "audio"},
            {"type": "text", "text": "Hello world. I am Kyutai's Pocket TTS."},
        ],
    }
]
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, "latents.wav")

3. Contexto em cache: o cache de KV do prompt de voz, passado como past_key_values. As vozes incluídas (voices/) usam esse formato.

from huggingface_hub import hf_hub_download
from safetensors.torch import load_file
from transformers import AutoModelForTextToWaveform, AutoProcessor, DynamicCache

model_id = "eustlb/pocket-tts"
processor = AutoProcessor.from_pretrained(model_id, device_map="auto")
model = AutoModelForTextToWaveform.from_pretrained(model_id, device_map="auto")

voice = load_file(hf_hub_download(model_id, "voices/alba.safetensors"))
layers = []
for i, layer in enumerate(model.model.layers):
    # each layer's cache on that layer's device
    device = layer.self_attn.k_proj.weight.device
    layers.append(
        (voice[f"layers.{i}.keys"].to(device), voice[f"layers.{i}.values"].to(device))
    )
voice_cache = DynamicCache(layers, config=model.config)

conversation = [
    {
        "role": "user",
        "content": [{"type": "text", "text": "Hello world. I am Kyutai's Pocket TTS."}],
    }
]
inputs = processor.apply_chat_template(
    conversation, tokenize=True, return_dict=True, add_generation_prompt=True
).to(model.device)

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

Lotes e texto longo

Lote vários textos e vozes, com texto longo dividido em blocos:

import torch
from huggingface_hub import hf_hub_download
from safetensors.torch import load_file
from transformers import AutoModelForTextToWaveform, AutoProcessor, DynamicCache

model_id = "eustlb/pocket-tts"
processor = AutoProcessor.from_pretrained(model_id, device_map="auto")
model = AutoModelForTextToWaveform.from_pretrained(model_id, device_map="auto")


def load_voices(names):
    """The shipped voices, one per conversation, as one cache, left-padded to the
    longest voice, and the mask of their positions.

    `generate` extends the cache: load it for every call.
    """
    voices = [
        load_file(hf_hub_download(model_id, f"voices/{name}.safetensors"))
        for name in names
    ]
    lengths = [voice["layers.0.keys"].shape[2] for voice in voices]
    length = max(lengths)
    layers = []
    for i, layer in enumerate(model.model.layers):
        device = layer.self_attn.k_proj.weight.device
        keys, values = (
            torch.cat(
                [
                    torch.nn.functional.pad(voice[f"layers.{i}.{kind}"], (0, 0, length - n, 0))
                    for voice, n in zip(voices, lengths)
                ]
            ).to(device)
            for kind in ("keys", "values")
        )
        layers.append((keys, values))
    mask = torch.tensor([[0] * (length - n) + [1] * n for n in lengths])
    return DynamicCache(layers, config=model.config), mask


text = (
    "A first sentence that is long enough to be worth splitting. "
    "Then a second one, and a third one for good measure."
)
chunks = processor.split_text(text)
conversations = [
    [{"role": "user", "content": [{"type": "text", "text": chunk}]}]
    for chunk in chunks + ["Hello world"]
]
inputs = processor.apply_chat_template(
    conversations, tokenize=True, return_dict=True, add_generation_prompt=True
).to(model.device)

voice_cache, voice_mask = load_voices(["alba"] * len(chunks) + ["jean"])
# the mask covers the cached voices too
inputs["attention_mask"] = torch.cat(
    [voice_mask.to(inputs["attention_mask"]), inputs["attention_mask"]], dim=-1
)
outputs = model.generate(**inputs, past_key_values=voice_cache)
audio = processor.decode(outputs.audio_latents, outputs.audio_latents_mask)
processor.save_audio(
    [torch.cat(audio[: len(chunks)]), audio[-1]], ["long.wav", "hello.wav"]
)

Checkpoint em deriva

Mesmo uso, com as vozes do próprio checkpoint:

from huggingface_hub import hf_hub_download
from safetensors.torch import load_file
from transformers import AutoModelForTextToWaveform, AutoProcessor, DynamicCache

model_id = "eustlb/pocket-tts-english-drifting"
processor = AutoProcessor.from_pretrained(model_id, device_map="auto")
model = AutoModelForTextToWaveform.from_pretrained(model_id, device_map="auto")

voice = load_file(hf_hub_download(model_id, "voices/alba.safetensors"))
layers = []
for i, layer in enumerate(model.model.layers):
    device = layer.self_attn.k_proj.weight.device
    layers.append(
        (voice[f"layers.{i}.keys"].to(device), voice[f"layers.{i}.values"].to(device))
    )

conversation = [
    {
        "role": "user",
        "content": [{"type": "text", "text": "Hello world. I am Kyutai's Pocket TTS."}],
    }
]
inputs = processor.apply_chat_template(
    conversation, tokenize=True, return_dict=True, add_generation_prompt=True
).to(model.device)

outputs = model.generate(
    **inputs, past_key_values=DynamicCache(layers, config=model.config)
)
audio = processor.decode(outputs.audio_latents, outputs.audio_latents_mask)
processor.save_audio(audio, "drifting.wav")

Treinamento

Coloque o áudio de destino no turno assistant. O processador retorna seus latentes como labels, e o modelo retorna a perda do original (perda de fluxo LSD mais config.eos_loss_weight vezes a perda de fim de fala). O prompt de voz é tipicamente o início da mesma fala.

import torch
from transformers import AutoModelForTextToWaveform, AutoProcessor

model_id = "eustlb/pocket-tts"
processor = AutoProcessor.from_pretrained(model_id, device_map="auto")
model = AutoModelForTextToWaveform.from_pretrained(model_id, device_map="auto")
model.train()

conversation = [
    {
        "role": "user",
        "content": [
            {"type": "audio", "audio": voice_prompt},
            {"type": "text", "text": target_text},
        ],
    },
    {"role": "assistant", "content": [{"type": "audio", "audio": target_audio}]},
]
inputs = processor.apply_chat_template(
    conversation, tokenize=True, return_dict=True
).to(model.device)
loss = model(**inputs).loss
loss.backward()
  • Forneça a voz como uma gravação ou latentes, não como um cache.
  • Para o classifier-free guidance, remova o item audio ou text da vez do user (o original remove cada um com probabilidade 0,2).
  • Os latentes pré-computados ficam em processor_kwargs={"audio_prompt_latents": [...], "labels": [...]}, com itens vazios {"type": "audio"} como marcadores de posição.
  • Receita original: AdamW, learning_rate=2e-5 (2e-4 para um novo idioma), adam_beta2=0.95, weight_decay=0.1, max_grad_norm=1.0, 1000 passos de aquecimento e depois constante, EMA dos pesos (decay 0.999).

PocketTTSConfig

classe transformers.PocketTTSConfig

< >

( 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 = 4004hidden_size: int = 1024num_hidden_layers: int = 6num_attention_heads: int = 16num_key_value_heads: int | None = Nonehead_dim: int | None = Noneintermediate_size: int = 4096hidden_act: str = 'gelu_pytorch_tanh'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 = 4000audio_latent_token_id: int = 4001audio_prompt_bos_token_id: int = 4002audio_bos_token_id: int = 4003frame_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.999 )

Parâmetros

  • flow_head_config (Union[PocketTTSFlowHeadConfig, 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 4004) — 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 1024) — 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 16) — 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 4096) — Dimensão das representações do MLP.
  • hidden_act (str, opcional, padrão gelu_pytorch_tanh) — 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_prompt_latents, audio_latents); igual à 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 4000) — ID do token placeholder dos quadros de prompt de voz em input_ids.
  • audio_latent_token_id (int, opcional, padrão 4001) — ID do token placeholder das posições latentes de áudio em input_ids.
  • audio_prompt_bos_token_id (int, opcional, padrão 4002) — ID do token colocado antes do prompt de voz; seu embedding é o vetor aprendido que o original adiciona ao início da voz.
  • audio_bos_token_id (int, opcional, padrão 4003) — 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.
  • 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.

Esta é a classe de configuração para armazenar a configuração de um PocketTTSModel. Ela é usada para instanciar um modelo Pocket 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 eustlb/pocket-tts

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.

PocketTTSFlowHeadConfig

classe transformers.PocketTTSFlowHeadConfig

< >

( 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 = 1024frequency_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 1024) — 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 PocketTTSModel. Ela é usada para instanciar um modelo Pocket 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 eustlb/pocket-tts

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.

PocketTTSFeatureExtractor

classe transformers.PocketTTSFeatureExtractor

< >

( feature_size = 1sampling_rate = 24000padding_value = 0.0frame_size = 1920pad_to_multiple_of = 1920end_on_pause = Truepause_duration = 0.08fade_out_duration = 0.02silence_floor_db = 35.0analysis_frame_duration = 0.02**kwargs )

Parâmetros

  • feature_size (int, opcional, padrão 1) — O número de canais.
  • sampling_rate (int, opcional, padrão 24000) — A taxa de amostragem na qual a forma de onda de áudio deve ser digitalizada, expressa em hertz (Hz).
  • padding_value (float, opcional, padrão 0.0) — O valor utilizado para preenchimento.
  • frame_size (int, opcional, padrão 1920) — Número de amostras de áudio por quadro latente do tokenizador de áudio (seu frame_size).
  • pad_to_multiple_of (int, opcional, padrão 1920) — Preenche o áudio até um múltiplo deste valor; um múltiplo de frame_size mantém todos os quadros latentes inteiros.
  • end_on_pause (bool, opcional, padrão True) — Se deve encerrar cada forma de onda exatamente em pause_duration segundos de silêncio: o silêncio final (quadros de analysis_frame_duration segundos abaixo de silence_floor_db em relação ao mais alto) é cortado, os últimos fade_out_duration segundos do que resta são atenuados e pause_duration segundos de zeros são adicionados.
  • pause_duration (float, opcional, padrão 0.08) — Duração do silêncio adicionado por end_on_pause, em segundos.
  • fade_out_duration (float, opcional, padrão 0.02) — Duração do fade-out aplicado por end_on_pause antes da pausa, em segundos.
  • silence_floor_db (float, opcional, padrão 35.0) — Nível abaixo do quadro de análise mais alto, em dB, abaixo do qual end_on_pause trata os quadros finais como silêncio.
  • analysis_frame_duration (float, opcional, padrão 0.02) — Duração dos quadros que end_on_pause mede, em segundos.

Constrói um extrator de recursos do Pocket TTS, que prepara as formas de onda de prompts de voz para o codificador do tokenizador de áudio.

Cada forma de onda termina opcionalmente em uma breve pausa (o end_on_pause original: os prompts de treinamento terminam dentro da pausa entre duas palavras, um prompt que para na fala faz o modelo continuar e um que termina em um silêncio longo atrasa o início), em seguida o lote é preenchido à direita até um múltiplo do tamanho de quadro do tokenizer.

__call__

< >

( audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]sampling_rate: int | None = Noneend_on_pause: bool | None = Nonepadding: bool | str | transformers.utils.generic.PaddingStrategy | None = Truepad_to_multiple_of: int | None = Nonemax_length: int | None = Nonereturn_attention_mask: bool | None = Truereturn_tensors: str | None = 'pt'**kwargs )

Parâmetros

  • audio (np.ndarray, torch.Tensor, list[np.ndarray], list[torch.Tensor]) — A forma de onda mono ou o lote de formas de onda mono dos prompts de voz.
  • sampling_rate (int, opcional) — A taxa de amostragem na qual a entrada de audio foi amostrada. É fortemente recomendável passar sampling_rate na chamada de forward para evitar erros silenciosos.
  • end_on_pause (bool, opcional) — Se deve encerrar cada forma de onda com uma breve pausa, consulte a docstring da classe. O valor padrão é self.end_on_pause.
  • padding (bool, str ou PaddingStrategy, opcional, padrão True) — Estratégia de preenchimento do lote, veja pad().
  • pad_to_multiple_of (int, opcional) — Preenche o lote até um múltiplo deste valor. O padrão é self.pad_to_multiple_of.

PocketTTSProcessor

classe transformers.PocketTTSProcessor

< >

( feature_extractortokenizeraudio_tokenizer = Nonechat_template = Noneshort_text_max_words: int = 4frames_after_eos_short_text: int = 4frames_after_eos: int = 2fade_in_duration: float = 0.005 )

Parâmetros

  • feature_extractor (PocketTTSFeatureExtractor) — O extrator de recursos é uma entrada obrigatória.
  • tokenizer (TokenizersBackend) — O tokenizer é uma entrada obrigatória.
  • audio_tokenizer (PocketTTSAudioTokenizerModel, opcional) — O codec: ele codifica o áudio em latentes e decodifica os latentes gerados em áudio.
  • chat_template (str) — Um modelo Jinja para converter listas de mensagens em um chat em uma string tokenizável.
  • short_text_max_words (int, opcional, padrão 4) — Textos com no máximo esse número de palavras recebem frames_after_eos_short_text frames após o frame de fim de fala.
  • frames_after_eos_short_text (int, opcional, padrão 4) — Número de quadros gerados após o quadro de fim de fala para textos curtos.
  • frames_after_eos (int, opcional, padrão 2) — Número de quadros gerados após o quadro de fim de fala para textos mais longos.
  • fade_in_duration (float, opcional, padrão 0.005) — Duração, em segundos, do fade-in linear aplicado ao início de cada forma de onda decodificada: um novo estado do decodificador começa com um pequeno degrau, ouvido como um clique.

Constrói um PocketTTSProcessor que encapsula um extrator de recursos e um tokenizador em um único processador.

PocketTTSProcessor oferece todas as funcionalidades de PocketTTSFeatureExtractor e TokenizersBackend. Consulte ~PocketTTSFeatureExtractor e ~TokenizersBackend para mais informações.

__call__

< >

( text: str | list[str] | None = Noneaudio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = Noneaudio_prompt_latents: list[torch.Tensor] | None = Nonelabels: list[torch.Tensor] | None = None**kwargs: *<class 'transformers.models.pocket_tts.processing_pocket_tts.PocketTTSProcessorKwargs'> )

Parâmetros

  • text (str ou list[str]) — O(s) prompt(s) renderizado(s) por apply_chat_template().
  • audio (np.ndarray, torch.Tensor ou uma lista deles, opcional) — As formas de onda das conversas, mono a 24 kHz, na ordem da conversa: cada voz e, no treinamento, cada alvo.
  • audio_prompt_latents (list[torch.Tensor], opcional) — Vozes pré-computadas, um tensor (num_frames, latent_dim) por marcador de voz, em vez de formas de onda.
  • labels (list[torch.Tensor], opcional) — Alvos precomputados (treinamento), um tensor (num_frames, latent_dim) por placeholder de alvo, em vez de formas de onda.
  • end_on_pause (bool, kwargs, opcional) — Se deve encerrar cada forma de onda do prompt de voz com uma breve pausa, como o original faz antes de clonar uma voz. Padrão: end_on_pause do extrator de recursos.
  • return_tensors (str ou TensorType, opcional) — Se definido, retornará tensors de um framework específico. Os valores aceitos são:
    • 'pt': Retorna objetos torch.Tensor do PyTorch.
    • 'np': Retorna objetos np.ndarray do NumPy.
  • **kwargs (ProcessingKwargs, opcional) — Opções de processamento adicionais para cada modalidade (texto, imagens, vídeos, áudio). Os parâmetros específicos do modelo estão listados acima; consulte a classe TypedDict para a lista completa de argumentos suportados.

split_text

< >

( text: strmax_tokens: int = 50 )

Parâmetros

  • text (str) — O texto a ser dividido.
  • max_tokens (int, opcional, padrão 50) — Número máximo de tokens por bloco.

Divide text em blocos alinhados por sentenças, com no máximo max_tokens tokens, como no split_into_best_sentences original: o texto preparado é cortado após o fim das sentenças (não em pontos decimais), sentenças mais longas que max_tokens são cortadas após o fim das orações, e os pedaços são agrupados de forma gulosa. Cada bloco deve corresponder a uma conversa de um lote.

decode

< >

( audio_latents: torch.Tensoraudio_latents_mask: torch.Tensor | None = None )

Parâmetros

  • audio_latents (torch.Tensor de forma (batch_size, num_frames, latent_dim) ou (num_frames, latent_dim)) — Os latentes que generate retorna (PocketTTSGenerateOutput.audio_latents), decodificados como um único lote, ou os latentes de uma amostra.
  • audio_latents_mask (torch.Tensor de forma (batch_size, num_frames), opcional) — Máscara dos frames de cada amostra (PocketTTSGenerateOutput.audio_latents_mask). Sem ela, cada linha é decodificada no comprimento total.

Decodifica os latentes gerados em formas de onda com o tokenizador de áudio e aplica um fade-in nos primeiros fade_in_duration segundos de cada uma, assim como no original.

save_audio

< >

( audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]saving_path: str | pathlib.Path | list[str | pathlib.Path]sampling_rate: int | None = None )

Grava a(s) forma(s) de onda gerada(s) em arquivo(s) WAV.

audio (torch.Tensor, np.ndarray ou uma lista deles): As formas de onda, conforme retornadas por decode(). saving_path (str, Path ou uma lista deles): Um caminho para cada forma de onda. sampling_rate (int, opcional): Taxa de amostragem das formas de onda, por padrão a do extrator de recursos (do tokenizador de áudio).

PocketTTSModel

classe transformers.PocketTTSModel

< >

( config: PocketTTSConfig )

Parâmetros

  • config (PocketTTSConfig) — 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 do Pocket TTS: um transformer causal sobre um único fluxo composto pelo prompt de voz, os tokens de texto e os latentes de áudio, retornando os estados ocultos normalizados. O prompt de voz e os latentes de áudio são latentes do tokenizador de áudio, que o processador mantém.

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.Tensor] = Noneaudio_prompt_latents_mask: typing.Optional[torch.Tensor] = Noneaudio_latents: typing.Optional[torch.Tensor] = 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.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPast or tuple(torch.Tensor)

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.Tensor de forma (batch_size, num_prompt_frames, latent_dim), opcional) — Latentes do prompt de voz do tokenizador de áudio (codificados pelo processador, ou do voices/ de um checkpoint), preenchidos à 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.Tensor 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 fecha o prompt e a partir da qual o primeiro frame é gerado, sempre recebe o latente de 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.Tensor 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 busca 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.Tensor)

Um BaseModelOutputWithPast 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 (PocketTTSConfig) e das entradas.

O método forward do PocketTTSModel 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.

  • last_hidden_state (torch.Tensor 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.Tensor), opcional, retornado quando output_hidden_states=True é passado ou quando config.output_hidden_states=True) — Tupla de torch.Tensor (um para a saída dos embeddings, se o modelo tiver uma camada de embedding, + um para a saída de cada camada) de forma (batch_size, sequence_length, hidden_size).

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

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

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

PocketTTSForConditionalGeneration

classe transformers.PocketTTSForConditionalGeneration

< >

( config: PocketTTSConfig )

Parâmetros

  • config (PocketTTSConfig) — 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 Pocket TTS: o backbone, o flow head que amostra um latente de áudio por passo e o end-of-speech head. Ele gera latentes do tokenizer de áudio, que o processador 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.Tensor] = Noneaudio_prompt_latents_mask: typing.Optional[torch.Tensor] = Noneaudio_latents: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = 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.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → PocketTTSOutputWithPast or tuple(torch.Tensor)

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.Tensor 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.Tensor 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.Tensor de forma (batch_size, num_frames, latent_dim), opcional) — Latentes de destino do tokenizer de áudio (treinamento), com preenchimento à direita. O prompt de cada linha termina na posição do audio_bos_token_id seguido por uma posição de audio_latent_token_id por quadro: o modelo fornece os destinos 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.Tensor 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 busca 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

PocketTTSOutputWithPast ou tuple(torch.Tensor)

Um PocketTTSOutputWithPast 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 (PocketTTSConfig) e das entradas.

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

  • logits (torch.Tensor 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.Tensor), opcional, retornado quando output_hidden_states=True é passado ou quando config.output_hidden_states=True) — Tupla de torch.Tensor (um para a saída dos embeddings, se o modelo tiver uma camada de embedding, + um para a saída de cada camada) de forma (batch_size, sequence_length, hidden_size).

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

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

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

  • last_hidden_state (torch.Tensor de forma (batch_size, sequence_length, hidden_size)) — Estados ocultos normalizados do backbone, que condicionam a cabeça de fluxo.

Exemplo:

>>> from transformers import AutoProcessor, PocketTTSForConditionalGeneration

>>> model = PocketTTSForConditionalGeneration.from_pretrained("eustlb/pocket-tts")

>>> processor = AutoProcessor.from_pretrained("eustlb/pocket-tts")
>>> 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.

sample_latent

< >

( condition: Tensornoise: Tensornum_flow_steps: int ) → torch.Tensor of shape (batch_size, latent_dim)

Parâmetros

  • condition (torch.Tensor de forma (batch_size, hidden_size)) — Estado oculto do backbone da posição sendo gerada.
  • noise (torch.Tensor de forma (batch_size, latent_dim)) — ruído gaussiano escalado por sqrt(temperature), ou zeros.
  • num_flow_steps (int) — Número de etapas de Euler do amostrador LSD (ignorado pela cabeça de derivação, que faz uma única chamada).

Retorna

torch.Tensor de forma (batch_size, latent_dim)

o latente amostrado, no espaço normalizado.

Amostra o próximo latente de noise com a flow head.

denormalize_latents

< >

( audio_latents: Tensor )

Mapeia os latentes do espaço normalizado da cabeça de fluxo para o do tokenizador de áudio.

PocketTTSGenerateOutput

classe transformers.models.pocket_tts.generation_pocket_tts.PocketTTSGenerateOutput

< >

( sequences: LongTensorscores: tuple[torch.Tensor] | None = Nonelogits: tuple[torch.Tensor] | None = Noneattentions: tuple[tuple[torch.Tensor]] | None = Nonehidden_states: tuple[tuple[torch.Tensor]] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneaudio_latents: typing.Optional[torch.Tensor] = Noneaudio_latents_mask: typing.Optional[torch.LongTensor] = None )

Parâmetros

  • sequences (torch.LongTensor de forma (batch_size, sequence_length)) — Os ids dos tokens do prompt seguidos por um audio_latent_token_id por quadro gerado. O próprio áudio está em audio_latents.
  • scores (tuple(torch.Tensor) opcional, retornado quando output_scores=True) — O logit de fim de fala de cada quadro gerado, um tensor de forma (batch_size,) por quadro.
  • logits (tuple(torch.Tensor) opcional, retornado quando output_logits=True) — Igual a scores: o Pocket TTS não possui vocabulário, portanto não há nada a processar entre os dois.
  • attentions (tuple(tuple(torch.Tensor)), opcional, retornado quando output_attentions=True) — Tupla (um elemento para cada quadro gerado) de tuplas (um elemento para cada camada) de torch.Tensor com forma (batch_size, num_heads, generated_length, sequence_length).
  • hidden_states (tuple(tuple(torch.Tensor)), opcional, retornado quando output_hidden_states=True) — Tupla (um elemento para cada quadro gerado) de tuplas (um elemento para cada camada) de torch.Tensor com forma (batch_size, generated_length, hidden_size).
  • past_key_values (Cache, opcional, retornado quando use_cache=True) — O cache de chave/valor do backbone no final da geração.
  • audio_latents (torch.Tensor de forma (batch_size, num_frames, latent_dim)) — Os latentes gerados, no espaço latente do tokenizer de áudio, com preenchimento à direita com zeros além dos próprios frames de cada amostra. PocketTTSProcessor.decode() os converte em formas de onda.
  • audio_latents_mask (torch.LongTensor de forma (batch_size, num_frames)) — Máscara dos frames de cada amostra (1), incluindo o frame de fim de fala e os frames subsequentes, em oposição ao preenchimento (0).

Saídas de PocketTTSForConditionalGeneration.generate.

Update on GitHub