Transformers documentation
Gradium Phonon TTS
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.
| Checkpoint | Parameter | Bahasa | Lisensi |
|---|---|---|---|
| gradium/phonon-31m-en | 31M | Inggris | Apache 2.0 |
| gradium/phonon-40m-en | 40M | Inggris | CC BY-NC 4.0 |
| gradium/phonon-40m-fr | 40M | Prancis | CC BY-NC 4.0 |
| gradium/phonon-40m-de | 40M | Jerman | CC BY-NC 4.0 |
| gradium/phonon-40m-es | 40M | Spanyol | CC BY-NC 4.0 |
| gradium/phonon-40m-pt | 40M | Portugis | CC BY-NC 4.0 |
| gradium/phonon-40m-multilingual | 40M | Inggris, Prancis, Jerman, Spanyol, Portugis | CC 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
userper teks, item kosong{"type": "audio"}di mana suara ditempatkan, latens suara diprocessor_kwargs={"audio_prompt_latents": [...]}, danadd_generation_prompt=True. - Tokenizer tidak mengeja angka, jumlah, simbol, atau alamat, lihat Normalisasi teks.
generatemengembalikanaudio_latentsdanaudio_latents_mask; dekodekan dengan PocketTTSProcessor.decode().- Contoh generasi seperti yang dilakukan runtime Gradium:
temperature0.3 (variansi noise awal aliran), dan berhenti segera setelah logit akhir ucapan melampauieos_threshold.do_sample=Falsememulai aliran dari noise nol. - Model dimuat dalam bf16, dtype tempat bobotnya disimpan; lewati
dtype=torch.float32di 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:
| Teks | Tokenizer |
|---|---|
“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:
| Teks | Tokenizer | Runtime Gradium |
|---|---|---|
It costs $1,234.56. | It costs $1,234.56. | It costs 1 thousand 234 dollars and 56 cents. |
Write to jean@gradium.ai | Write to jean@gradium.ai. | Write to jean at gradium dot A-I. |
It is 21°C | It 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
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = 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, default4001) — Ukuran kosakata model. Menentukan jumlah token berbeda yang dapat direpresentasikan olehinput_ids. - hidden_size (
int, opsional, default768) — Dimensi dari representasi tersembunyi. - num_hidden_layers (
int, opsional, default6) — Jumlah lapisan tersembunyi dalam decoder Transformer. - num_attention_heads (
int, opsional, default12) — 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. Jikanum_key_value_heads=num_attention_heads, model akan menggunakan Multi Head Attention (MHA), jikanum_key_value_heads=1model 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 kenum_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, default3072) — Dimensi representasi MLP. - hidden_act (
str, opsional, defaultnyagelu) — 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, defaultFalse) — Apakah akan menggunakan bias pada lapisan proyeksi query, key, value, dan output selama self-attention. - attention_dropout (
float, opsional, default0.0) — Rasio dropout untuk probabilitas perhatian. - max_position_embeddings (
int, opsional, default8192) — 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 untukrope_thetadan secara opsional parameter yang digunakan untuk penskalaan jika Anda ingin menggunakan RoPE denganmax_position_embeddingsyang lebih panjang. - latent_dim (
int, opsional, default 32) — Dimensi dari latens audio yang diterima backbone sebagai input (audio_latents); sama denganlatent_dimdari flow head dan tokenizer audio. - pad_token_id (
int, opsional, default3) — 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 diinput_ids(<|audio_prompt|>). - audio_latent_token_id (
int, opsional, default 6) — ID token placeholder untuk posisi laten audio diinput_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:generatemenurunkan default frame budget darinya. - initializer_range (
float, opsional, defaultnya0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot. - use_cache (
bool, opsional, defaultnyaTrue) — Apakah model harus mengembalikan perhatian kunci/nilai terakhir (tidak digunakan oleh semua model). Hanya relevan jikaconfig.is_decoder=Trueatau 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 manalatent_meandanlatent_stdmengikuti 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 kehidden_size. - num_speakers (
int, opsional, default 1) — Nilai dari kondisinum_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 lookupnum_speakers. - num_speakers_embedding_dim (
int, opsional, default 16) — Lebar tabel lookupnum_speakers, diproyeksikan kehidden_size. - duration_delta (
float, opsional, default 0.0) — Nilai kondisiduration_delta, yang disisipkan secara sinusoidal dan ditambahkan ke setiap posisi laten audio. - duration_delta_embedding_dim (
int, opsional, default 128) — Ukuran embedding sinusoidal dariduration_delta, yang diproyeksikan kehidden_size. - duration_delta_scale (
float, opsional, default 1000.0) — Faktor yang diterapkan padaduration_deltasebelum embedding sinusoidalnya. - duration_delta_max_period (
float, opsional, default 10000.0) — Periode maksimum dari embedding sinusoidal dariduration_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
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = 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, default512) — Dimensi dari representasi tersembunyi. - num_hidden_layers (
int, opsional, default6) — 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 backbonehidden_size). - frequency_embedding_size (
int, opsional, default 256) — Ukuran embedding sinusoidal dari waktu aliran. - hidden_act (
str, opsional, defaultnyasilu) — 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 sebagaifreqs. - 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
< source >( 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
< source >( 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.LongTensordengan 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.
- audio_prompt_latents (
torch.Tensordengan bentuk(batch_size, num_prompt_frames, latent_dim), opsional) — Latent prompt suara dari audio tokenizer (dikonversi oleh processor, atau darivoices/checkpoint), di-pad ke kanan hingga panjang suara terpanjang dalam batch, dan disebar ke posisiaudio_prompt_token_id. - audio_prompt_latents_mask (
torch.Tensordengan bentuk(batch_size, num_prompt_frames), opsional) — Mask dari frame suara (1) berbanding padding (0) dalamaudio_prompt_latents. - audio_latents (
torch.Tensordengan bentuk(batch_size, num_latents, latent_dim), opsional) — Latent audio ternormalisasi, yang tersebar ke posisiaudio_latent_token_id. Posisiaudio_bos_token_idsebelumnya, yang menutup prompt dan dari mana frame pertama dihasilkan, selalu mendapatkan latent BOS yang dipelajari. - audio_latents_mask (
torch.Tensordengan bentuk(batch_size, num_latents), opsional) — Mask untuk latents pada setiap baris (1) dibandingkan dengan padding (0) diaudio_latents, ketika baris-baris tersebut memiliki jumlah posisi latent yang berbeda (pelatihan). - attention_mask (
torch.Tensordengan 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.
- position_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang[0, config.n_positions - 1]. - 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 daripast_key_valuesyang dikembalikan oleh model pada tahap decoding sebelumnya, ketikause_cache=Trueatauconfig.use_cache=True.Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada
past_key_valuesyang diteruskan, DynamicCache akan diinisialisasi secara default.Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.
Jika
past_key_valuesdigunakan, pengguna diharapkan hanya memasukkaninput_idsyang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk(batch_size, unprocessed_length)alih-alih semuainput_idsdengan bentuk(batch_size, sequence_length). - inputs_embeds (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - use_cache (
bool, opsional) — Jika diset keTrue, state kunci-nilaipast_key_valuesakan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihatpast_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
Modulesetelahnya 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.Tensordengan bentuk(batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.Jika
past_key_valuesdigunakan, hanya hidden-state terakhir dari sekuens dengan bentuk(batch_size, 1, hidden_size)yang dioutput.past_key_values (
Cache, opsional, dikembalikan saatuse_cache=Truedilewatkan atau saatconfig.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=Truedi blok cross-attention) yang dapat digunakan (lihat inputpast_key_values) untuk mempercepat decoding berurutan.hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.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 saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.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
< source >( 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
< source >( 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.LongTensordengan 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.
- audio_prompt_latents (
torch.Tensordengan bentuk(batch_size, num_prompt_frames, latent_dim), opsional) — Latent prompt suara dari audio tokenizer, di-pad ke kanan, dan tersebar ke posisiaudio_prompt_token_id. - audio_prompt_latents_mask (
torch.Tensordengan bentuk(batch_size, num_prompt_frames), opsional) — Mask dari frame suara (1) berbanding padding (0) dalamaudio_prompt_latents. - audio_latents (
torch.Tensordengan bentuk(batch_size, num_latents, latent_dim), opsional) — Latent audio ternormalisasi, tersebar ke posisiaudio_latent_token_id. - labels (
torch.Tensordengan bentuk(batch_size, num_frames, latent_dim), opsional) — Latent target dari audio tokenizer (pelatihan), dengan padding kanan. Prompt pada setiap baris diakhiri dengan posisiaudio_bos_token_idyang diikuti oleh satu posisiaudio_latent_token_idper 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.Tensordengan bentuk(batch_size, num_frames), opsional) — Mask dari frame target setiap baris (1) dibandingkan dengan padding (0) dilabels. - attention_mask (
torch.Tensordengan 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.
- position_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang[0, config.n_positions - 1]. - 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 daripast_key_valuesyang dikembalikan oleh model pada tahap decoding sebelumnya, ketikause_cache=Trueatauconfig.use_cache=True.Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada
past_key_valuesyang diteruskan, DynamicCache akan diinisialisasi secara default.Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.
Jika
past_key_valuesdigunakan, pengguna diharapkan hanya memasukkaninput_idsyang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk(batch_size, unprocessed_length)alih-alih semuainput_idsdengan bentuk(batch_size, sequence_length). - inputs_embeds (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - use_cache (
bool, opsional) — Jika diset keTrue, state kunci-nilaipast_key_valuesakan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihatpast_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
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
loss (
torch.Tensordengan bentuk(), opsional, dikembalikan saatlabelsdiberikan) — Loss pelatihan: loss aliran LSD dari latens target ditambahconfig.eos_loss_weightkali loss end-of-speech.logits (
torch.Tensordengan bentuk(batch_size, sequence_length, 1)) — Logits akhir ucapan, satu per posisi.past_key_values (
Cache, opsional, dikembalikan saatuse_cache=Truedilewatkan atau saatconfig.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 saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.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 saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.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.Tensordengan 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
< source >( inputs: typing.Optional[torch.Tensor] = None**kwargs )
Parameter
- inputs (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) —input_idsyang disiapkan oleh PocketTTSProcessor. Dapat juga dikirim sebagaiinput_ids=. - kwargs (
dict[str, Any], opsional) —attention_mask, prompt suara (audio_prompt_latentsdanaudio_prompt_latents_mask, atau cache dari prefix suara sebagaipast_key_values, suara bawaan, dengan prompt hanya teks),frames_after_eosdari processor, parameter generasi (do_sample,temperature,max_new_tokens, …), sertanum_flow_steps,eos_thresholddanmin_frames_before_eosyang 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.