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.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Model ini disumbangkan ke Hugging Face Transformers pada 2026-10-20.

Gradium Phonon TTS

Ikhtisar

Gradium Phonon TTS adalah keluarga model text-to-speech on-device dari Gradium, yang dilatih dengan resep Pocket TTS: sebuah transformer kausal membaca prompt suara dan teks, kemudian mengeluarkan satu latent audio 32-dimensi yang kontinu per langkah pada 12.5 Hz melalui satu kepala aliran satu langkah, dan kepala akhir ucapan menentukan kapan ucapan selesai. Latent tersebut didekode menjadi audio 24 kHz oleh Pocket TTS audio tokenizer yang dipegang oleh prosesor, yaitu PocketTTSProcessor dari Pocket TTS.

Perbedaannya dengan Pocket TTS terletak pada kondisioning suaranya: prompt suara terdiri dari latens berdimensi 512 dari codec pembicara yang terpisah, dan vektor pembicara yang dipelajari ditambahkan ke setiap posisi latens audio. Codec pembicaranya tidak dirilis, sehingga suara hadir sebagai latens yang sudah dihitung sebelumnya (masing-masing default-voice.safetensors dari checkpoint, dan katalog gradium/phonon-voices) dan tokenizer audio hanya berupa decoder: suara tidak dapat dikloning dari rekaman.

CheckpointParameterBahasaLisensi
gradium/phonon-31m-en31MInggrisApache 2.0
gradium/phonon-40m-en40MInggrisCC BY-NC 4.0
gradium/phonon-40m-fr40MPrancisCC BY-NC 4.0
gradium/phonon-40m-de40MJermanCC BY-NC 4.0
gradium/phonon-40m-es40MSpanyolCC BY-NC 4.0
gradium/phonon-40m-pt40MPortugisCC BY-NC 4.0
gradium/phonon-40m-multilingual40MInggris, Prancis, Jerman, Spanyol, PortugisCC BY-NC 4.0

Mereka semua dimuat dengan cara yang sama: mengganti checkpoint berarti mengubah repo id.

Model ini disumbangkan oleh Eustache Le Bihan. Kode aslinya adalah gradium-ai/xn-ptts.

Tips penggunaan

  • Siapkan input dengan apply_chat_template(): satu pesan user per teks, item kosong {"type": "audio"} di mana suara ditempatkan, latens suara di processor_kwargs={"audio_prompt_latents": [...]}, dan add_generation_prompt=True.
  • Tokenizer tidak mengeja angka, jumlah, simbol, atau alamat, lihat Normalisasi teks.
  • generate mengembalikan audio_latents dan audio_latents_mask; dekodekan dengan PocketTTSProcessor.decode().
  • Contoh generasi seperti yang dilakukan runtime Gradium: temperature 0.3 (variansi noise awal aliran), dan berhenti segera setelah logit akhir ucapan melampaui eos_threshold. do_sample=False memulai aliran dari noise nol.
  • Model dimuat dalam bf16, dtype tempat bobotnya disimpan; lewati dtype=torch.float32 di CPU untuk mencocokkan runtime Gradium di sana.
  • Pisahkan teks panjang dengan PocketTTSProcessor.split_text(), satu percakapan per chunk.

Penggunaan

Suara

Suara adalah tensor latens (num_frames, 512). Setiap checkpoint menyertakan satu (default-voice.safetensors), dan gradium/phonon-voices memiliki sekitar seratus suara lainnya, dalam berbagai bahasa, masing-masing di bawah ID suaranya (voices.jsonl mencantumkan nama, bahasa, dan deskripsinya). Suara apa pun dapat digunakan dengan checkpoint apa pun.

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")

Batch dan teks panjang

Batch beberapa teks, masing-masing dengan suaranya sendiri, dengan teks panjang dipecah menjadi chunk:

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"])

Normalisasi teks

Tokenizer menormalisasi hal-hal yang tidak bergantung pada bahasa, sebagaimana dilakukan oleh runtime Gradium:

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

Hal ini tidak mengeja angka, jumlah, simbol, atau alamat, yang bergantung pada bahasa:

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

Bagi mereka, gunakan normalisasi teks dari runtime Gradium, ptts, atau tuliskan secara lengkap.

GradiumPhononTTSConfig

kelas 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 )

Parameter

  • flow_head_config (Union[GradiumPhononTTSFlowHeadConfig, dict], opsional) — Konfigurasi dari flow head yang mengambil sampel setiap latent dari hidden state backbone.
  • vocab_size (int, opsional, default 4001) — Ukuran kosakata model. Menentukan jumlah token berbeda yang dapat direpresentasikan oleh input_ids.
  • hidden_size (int, opsional, default 768) — Dimensi dari representasi tersembunyi.
  • num_hidden_layers (int, opsional, default 6) — Jumlah lapisan tersembunyi dalam decoder Transformer.
  • num_attention_heads (int, opsional, default 12) — Jumlah attention head untuk setiap lapisan attention di decoder Transformer.
  • num_key_value_heads (int, opsional) — Ini adalah jumlah key_value heads yang harus digunakan untuk mengimplementasikan Grouped Query Attention. Jika num_key_value_heads=num_attention_heads, model akan menggunakan Multi Head Attention (MHA), jika num_key_value_heads=1 model akan menggunakan Multi Query Attention (MQA), selain itu GQA yang digunakan. Saat mengkonversi checkpoint multi-head menjadi checkpoint GQA, setiap group key dan value head harus dibangun dengan meanpooling semua head asli di dalam grup tersebut. Untuk detail lebih lanjut, lihat paper ini. Jika tidak ditentukan, akan default ke num_attention_heads.
  • head_dim (int, opsional) — Dimensi head perhatian. Jika None, nilainya akan secara default menjadi hidden_size // num_attention_heads
  • intermediate_size (int, opsional, default 3072) — Dimensi representasi MLP.
  • hidden_act (str, opsional, defaultnya gelu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, "gelu", "relu", "silu", dan sebagainya.
  • layer_norm_eps (float, opsional, default 1e-05) — Epsilon dari layer normalizations pada backbone.
  • attention_bias (bool, opsional, default False) — Apakah akan menggunakan bias pada lapisan proyeksi query, key, value, dan output selama self-attention.
  • attention_dropout (float, opsional, default 0.0) — Rasio dropout untuk probabilitas perhatian.
  • max_position_embeddings (int, opsional, default 8192) — Panjang maksimum urutan yang mungkin digunakan dengan model ini.
  • rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], opsional) — Kamus yang berisi parameter konfigurasi untuk embedding RoPE. Kamus tersebut harus berisi nilai untuk rope_theta dan secara opsional parameter yang digunakan untuk penskalaan jika Anda ingin menggunakan RoPE dengan max_position_embeddings yang lebih panjang.
  • latent_dim (int, opsional, default 32) — Dimensi dari latens audio yang diterima backbone sebagai input (audio_latents); sama dengan latent_dim dari flow head dan tokenizer audio.
  • pad_token_id (int, opsional, default 3) — ID token yang digunakan untuk padding dalam kosakata.
  • bos_token_id (int, opsional) — ID token yang digunakan untuk awal aliran (beginning-of-stream) dalam kosakata.
  • eos_token_id (int, opsional) — ID token yang digunakan untuk akhir aliran dalam kosakata.
  • audio_prompt_token_id (int, opsional, default 5) — ID token placeholder untuk frame voice-prompt di input_ids (<|audio_prompt|>).
  • audio_latent_token_id (int, opsional, default 6) — ID token placeholder untuk posisi laten audio di input_ids (<|audio_latent|>).
  • audio_bos_token_id (int, opsional, default 4) — Token id dari posisi audio pertama, yang menutup prompt: token ini menyimpan laten BOS yang dipelajari, yang menjadi dasar untuk menghasilkan frame pertama (<|audio_bos|>).
  • frame_rate (float, opsional, default 12.5) — Jumlah audio latents per detik audio: generate menurunkan default frame budget darinya.
  • initializer_range (float, opsional, defaultnya 0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.
  • use_cache (bool, opsional, defaultnya True) — Apakah model harus mengembalikan perhatian kunci/nilai terakhir (tidak digunakan oleh semua model). Hanya relevan jika config.is_decoder=True atau ketika model adalah model generatif yang hanya decoder.
  • eos_loss_weight (float, opsional, default 0.1) — Bobot dari kerugian akhir-bicara (end-of-speech) dalam kerugian pelatihan.
  • flow_loss_num_samples (int, opsional, defaultnya 4) — Jumlah pengundian noise per bingkai target dalam flow loss.
  • lsd_distill_probability (float, opsional, default 0.25) — Probabilitas, per langkah pelatihan, untuk menghitung istilah self-distillation dari loss LSD (diberat ulang untuk menjaga loss yang diharapkan); 1 menghitungnya di setiap langkah.
  • lsd_diagonal_weight (float, opsional, default 0.75) — Bobot dari istilah diagonal (aliran sesaat) dari kerugian LSD; istilah distilasi diri menimbang sisanya.
  • lsd_time_logit_mean (float, opsional, default 0.4) — Rata-rata dari distribusi logit-normal dari waktu aliran yang diambil oleh kerugian LSD.
  • lsd_time_logit_std (float, opsional, default 1.0) — Standar deviasi dari distribusi logit-normal dari waktu aliran yang diambil oleh kerugian LSD.
  • latent_stats_ema_steps (int, opsional, default 1000) — Jumlah langkah pelatihan awal di mana latent_mean dan latent_std mengikuti rata-rata bergerak eksponensial dari latens target; 0 membuat keduanya tetap beku.
  • latent_stats_ema_decay (float, opsional, default 0.999) — Nilai decay untuk rata-rata bergerak tersebut.
  • audio_prompt_dim (int, opsional, default 512) — Dimensi dari latents prompt suara (audio_prompt_latents), yaitu latents tak terkuantisasi dari codec pembicara Gradium (encoder Mimi, bukan tokenizer audio), yang diproyeksikan oleh backbone ke hidden_size.
  • num_speakers (int, opsional, default 1) — Nilai dari kondisi num_speakers: baris dari tabel lookup-nya yang ditambahkan ke setiap posisi laten audio.
  • num_speakers_vocab_size (int, opsional, default 32) — Jumlah baris dari tabel lookup num_speakers.
  • num_speakers_embedding_dim (int, opsional, default 16) — Lebar tabel lookup num_speakers, diproyeksikan ke hidden_size.
  • duration_delta (float, opsional, default 0.0) — Nilai kondisi duration_delta, yang disisipkan secara sinusoidal dan ditambahkan ke setiap posisi laten audio.
  • duration_delta_embedding_dim (int, opsional, default 128) — Ukuran embedding sinusoidal dari duration_delta, yang diproyeksikan ke hidden_size.
  • duration_delta_scale (float, opsional, default 1000.0) — Faktor yang diterapkan pada duration_delta sebelum embedding sinusoidalnya.
  • duration_delta_max_period (float, opsional, default 10000.0) — Periode maksimum dari embedding sinusoidal dari duration_delta.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari GradiumPhononTTSModel. Kelas ini digunakan untuk membuat instans model Gradium Phonon Tts sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari gradium/phonon-31m-en

Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.

GradiumPhononTTSFlowHeadConfig

kelas 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 )

Parameter

  • hidden_size (int, opsional, default 512) — Dimensi dari representasi tersembunyi.
  • num_hidden_layers (int, opsional, default 6) — Jumlah lapisan tersembunyi dalam decoder Transformer.
  • latent_dim (int, opsional, default 32) — Dimensi dari latens audio kontinu yang diprediksi oleh head (dimensi latens dari tokenizer audio).
  • condition_dim (int, optional, defaults to 768) — Dimension of the backbone hidden state the head is conditioned on (the backbone hidden_size).
  • frequency_embedding_size (int, opsional, default 256) — Ukuran embedding sinusoidal dari waktu aliran.
  • hidden_act (str, opsional, defaultnya silu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, "gelu", "relu", "silu", dan sebagainya.
  • layer_norm_eps (float, opsional, default 1e-06) — Epsilon dari layer normalizations di dalam residual blocks dan layer terakhir.
  • rms_norm_eps (float, opsional, default 1e-05) — Epsilon dari normalisasi yang menutup time embeddings.
  • max_period (float, opsional, default 10000.0) — Periode maksimum dari penanaman waktu sinusoidal, yang disimpan checkpoint sebagai freqs.
  • flow_type (str, opsional, default "lsd") — Objektif yang digunakan untuk melatih head, yang menentukan bagaimana head dikondisikan dan disampelkan. "lsd" (Lagrangian self-distillation): dikondisikan pada waktu awal dan akhir dari langkah flow, disampelkan dengan langkah Euler dari noise Gaussian. "drifting": tanpa kondisioning waktu, head memetakan noise ke latent dalam satu pemanggilan.
  • loss_weighting_hidden_size (int, opsional, default 32) — Lebar MLP yang mempelajari penimbangan ketidakpastian dari istilah-istilah loss LSD berdasarkan waktu alir mereka (hanya untuk pelatihan).
  • loss_weighting_num_layers (int, opsional, defaultnya 3) — Jumlah lapisan tersembunyi dari MLP tersebut.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari GradiumPhononTTSModel. Kelas ini digunakan untuk membuat instans model Gradium Phonon Tts sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari gradium/phonon-31m-en

Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.

GradiumPhononTTSModel

kelas transformers.GradiumPhononTTSModel

< >

( config: GradiumPhononTTSConfig )

Parameter

  • config (GradiumPhononTTSConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Backbone Gradium Phonon TTS: transformer kausal di atas satu aliran yang terdiri dari prompt suara (laten speaker-codec), token teks, dan laten audio, yang mengembalikan hidden states ternormalisasi.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

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)

Parameter

  • input_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.

    Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.

    Apa itu input ID?

  • audio_prompt_latents (torch.Tensor dengan bentuk (batch_size, num_prompt_frames, latent_dim), opsional) — Latent prompt suara dari audio tokenizer (dikonversi oleh processor, atau dari voices/ checkpoint), di-pad ke kanan hingga panjang suara terpanjang dalam batch, dan disebar ke posisi audio_prompt_token_id.
  • audio_prompt_latents_mask (torch.Tensor dengan bentuk (batch_size, num_prompt_frames), opsional) — Mask dari frame suara (1) berbanding padding (0) dalam audio_prompt_latents.
  • audio_latents (torch.Tensor dengan bentuk (batch_size, num_latents, latent_dim), opsional) — Latent audio ternormalisasi, yang tersebar ke posisi audio_latent_token_id. Posisi audio_bos_token_id sebelumnya, yang menutup prompt dan dari mana frame pertama dihasilkan, selalu mendapatkan latent BOS yang dipelajari.
  • audio_latents_mask (torch.Tensor dengan bentuk (batch_size, num_latents), opsional) — Mask untuk latents pada setiap baris (1) dibandingkan dengan padding (0) di audio_latents, ketika baris-baris tersebut memiliki jumlah posisi latent yang berbeda (pelatihan).
  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

  • position_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang [0, config.n_positions - 1].

    Apa itu ID posisi?

  • past_key_values (~cache_utils.Cache, opsional) — Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri dari past_key_values yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika use_cache=True atau config.use_cache=True.

    Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada past_key_values yang diteruskan, DynamicCache akan diinisialisasi secara default.

    Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.

    Jika past_key_values digunakan, pengguna diharapkan hanya memasukkan input_ids yang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk (batch_size, unprocessed_length) alih-alih semua input_ids dengan bentuk (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan input_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeks input_ids menjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model.
  • use_cache (bool, opsional) — Jika diset ke True, state kunci-nilai past_key_values akan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihat past_key_values).

Mengembalikan

BaseModelOutputWithPast atau tuple(torch.Tensor)

A BaseModelOutputWithPast atau tuple dari torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (GradiumPhononTTSConfig) dan input.

Metode forward dari GradiumPhononTTSModel menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • last_hidden_state (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.

    Jika past_key_values digunakan, hanya hidden-state terakhir dari sekuens dengan bentuk (batch_size, 1, hidden_size) yang dioutput.

  • past_key_values (Cache, opsional, dikembalikan saat use_cache=True dilewatkan atau saat config.use_cache=True) — Ini adalah instance Cache. Untuk detail lebih lanjut, lihat panduan kv cache kami.

    Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention, dan secara opsional jika config.is_encoder_decoder=True di blok cross-attention) yang dapat digunakan (lihat input past_key_values) untuk mempercepat decoding berurutan.

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

    Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

GradiumPhononTTSForConditionalGeneration

kelas transformers.GradiumPhononTTSForConditionalGeneration

< >

( config: GradiumPhononTTSConfig )

Parameter

  • config (GradiumPhononTTSConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Model text-to-speech Gradium Phonon TTS: tulang punggung, kepala aliran yang mengambil satu laten audio per langkah, dan kepala akhir ucapan. Model ini menghasilkan laten tokenizer audio, yang kemudian didekodekan oleh prosesor menjadi audio 24 kHz.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

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'> ) → GradiumPhononTTSOutputWithPast or tuple(torch.Tensor)

Parameter

  • input_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.

    Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.

    Apa itu input ID?

  • audio_prompt_latents (torch.Tensor dengan bentuk (batch_size, num_prompt_frames, latent_dim), opsional) — Latent prompt suara dari audio tokenizer, di-pad ke kanan, dan tersebar ke posisi audio_prompt_token_id.
  • audio_prompt_latents_mask (torch.Tensor dengan bentuk (batch_size, num_prompt_frames), opsional) — Mask dari frame suara (1) berbanding padding (0) dalam audio_prompt_latents.
  • audio_latents (torch.Tensor dengan bentuk (batch_size, num_latents, latent_dim), opsional) — Latent audio ternormalisasi, tersebar ke posisi audio_latent_token_id.
  • labels (torch.Tensor dengan bentuk (batch_size, num_frames, latent_dim), opsional) — Latent target dari audio tokenizer (pelatihan), dengan padding kanan. Prompt pada setiap baris diakhiri dengan posisi audio_bos_token_id yang diikuti oleh satu posisi audio_latent_token_id per frame: model memberikan target yang dinormalisasi (teacher forcing), menerapkan flow loss pada output dari BOS dan semua frame kecuali frame terakhir, yang memprediksi frame-frame tersebut, serta menerapkan end-of-speech loss pada semuanya, dengan yang terakhir merupakan akhir ucapan.
  • labels_mask (torch.Tensor dengan bentuk (batch_size, num_frames), opsional) — Mask dari frame target setiap baris (1) dibandingkan dengan padding (0) di labels.
  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

  • position_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang [0, config.n_positions - 1].

    Apa itu ID posisi?

  • past_key_values (~cache_utils.Cache, opsional) — Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri dari past_key_values yang dikembalikan oleh model pada tahap decoding sebelumnya, ketika use_cache=True atau config.use_cache=True.

    Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada past_key_values yang diteruskan, DynamicCache akan diinisialisasi secara default.

    Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.

    Jika past_key_values digunakan, pengguna diharapkan hanya memasukkan input_ids yang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk (batch_size, unprocessed_length) alih-alih semua input_ids dengan bentuk (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan input_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeks input_ids menjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model.
  • use_cache (bool, opsional) — Jika diset ke True, state kunci-nilai past_key_values akan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihat past_key_values).

Mengembalikan

GradiumPhononTTSOutputWithPast atau tuple(torch.Tensor)

GradiumPhononTTSOutputWithPast atau tuple dari torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (GradiumPhononTTSConfig) dan input.

Metode forward dari GradiumPhononTTSForConditionalGeneration menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • loss (torch.Tensor dengan bentuk (), opsional, dikembalikan saat labels diberikan) — Loss pelatihan: loss aliran LSD dari latens target ditambah config.eos_loss_weight kali loss end-of-speech.

  • logits (torch.Tensor dengan bentuk (batch_size, sequence_length, 1)) — Logits akhir ucapan, satu per posisi.

  • past_key_values (Cache, opsional, dikembalikan saat use_cache=True dilewatkan atau saat config.use_cache=True) — Ini adalah instance Cache. Untuk detail lebih lanjut, lihat panduan kv cache kami.

    Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention) yang dapat digunakan (lihat input past_key_values) untuk mempercepat decoding berurutan.

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

    Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

  • last_hidden_state (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size)) — Hidden states yang dinormalisasi dari backbone, yang menjadi kondisi bagi flow head.

Contoh:

>>> 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 )

Parameter

  • inputs (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — input_ids yang disiapkan oleh PocketTTSProcessor. Dapat juga dikirim sebagai input_ids=.
  • kwargs (dict[str, Any], opsional) — attention_mask, prompt suara (audio_prompt_latents dan audio_prompt_latents_mask, atau cache dari prefix suara sebagai past_key_values, suara bawaan, dengan prompt hanya teks), frames_after_eos dari processor, parameter generasi (do_sample, temperature, max_new_tokens, …), serta num_flow_steps, eos_threshold dan min_frames_before_eos yang spesifik untuk Pocket TTS, yang secara default mengikuti konfigurasi generasi.

Menghasilkan ucapan. Metode ini menimpa generate() untuk mengatur nilai default max_new_tokens menjadi anggaran frame dari runtime asli, yaitu ceil((num_text_tokens / 3 + 2) * frame_rate) untuk teks terpanjang dalam batch. Hal lainnya melewati hook generasi reguler.

Update on GitHub