Diffusers documentation
AutoencoderKLMiniMaxH3Audio
AutoencoderKLMiniMaxH3Audio
Autoencoder audio yang digunakan dalam MiniMax-H3 oleh MiniMax. Input dan outputnya berupa waveform, tanpa front-end mel dan tanpa vocoder terpisah: encoder konvolusi strided dari garis keturunan DAC, proyeksi attention kausal ke lebar laten difusi, dan decoder BigVGAN.
Encoder melompat 800 sampel pada 32 kHz, yaitu 40 latens per detik, sehingga waveform dengan 800 * n sampel akan dienkod menjadi n latens. Waveform yang bukan kelipatan bulat dari jumlah lompatan akan di-pad di sisi kanan.
Proyeksi atensi kausal melewati dispatcher atensi, sehingga set_attention_backend berlaku untuknya; mask-nya adalah is_causal=True, yang dihormati oleh semua backend kecuali _native_npu, yang kernelnya tidak menerima flag kausal.
Autoencoder bersifat mono, dan menormalisasi latents per channel dengan latents_mean / latents_std alih-alih skalar scaling_factor. MiniMax-H3 membawa stereo sebagai dua item batch, dan selalu mengonsumsi posterior mean (latent_dist.mode()), bukan sampel.
import torch
from diffusers import AutoencoderKLMiniMaxH3Audio
audio_vae = AutoencoderKLMiniMaxH3Audio.from_pretrained(
"MiniMaxAI/MiniMax-H3", subfolder="audio_vae", dtype=torch.float32
).to("cuda") # or "mps", "xpu", "cpu"AutoencoderKLMiniMaxH3Audio
kelas diffusers.AutoencoderKLMiniMaxH3Audio
< source >( encoder_dim: int = 64encoder_rates: tuple = (2, 4, 4, 5, 5)latent_dim: int = 2048latent_channels: int = 32num_attention_heads: int = 8decoder_dim: int = 1024decoder_rates: tuple = (5, 5, 2, 2, 2, 2, 2)decoder_kernel_sizes: tuple = (9, 9, 4, 4, 4, 4, 4)resblock_kernel_sizes: tuple = (3, 7, 11)resblock_dilation_sizes: tuple = ((1, 3, 5), (1, 3, 5), (1, 3, 5))sampling_rate: int = 32000latents_mean: list[float] | None = Nonelatents_std: list[float] | None = None )
Parameter
- encoder_dim (
int, defaultnya64) — Lebar channel dari konvolusi pertama encoder; digandakan di setiap tahap downsampling. - encoder_rates (
tuple[int], defaultnya(2, 4, 4, 5, 5)) — Strides encoder. Hasil perkaliannya (800) adalah panjang hop, yaitu 40 latens/detik pada 32 kHz. - latent_dim (
int, defaultnya2048) — Lebar dari batang encoder dan input decoder, sebelum/setelah proyeksi laten. - latent_channels (
int, defaultnya32) — Lebar dari latent difusi, yaitu saluran keluaran darimean_proj/logs_proj. - num_attention_heads (
int, defaultnya8) — Jumlah head dalam proyeksi perhatian kausalpre_block. - decoder_dim (
int, defaultnya1024) — Jumlah channel awal BigVGAN; dibagi dua di setiap tahap upsampling. - decoder_rates (
tuple[int], default(5, 5, 2, 2, 2, 2, 2)) — Rasio upsampling BigVGAN. Hasil perkalian nilai-nilainya harus sama denganprod(encoder_rates). - decoder_kernel_sizes (
tuple[int], defaultnya(9, 9, 4, 4, 4, 4, 4)) — Ukuran kernel transposed-convolution per tahap upsampling. - resblock_kernel_sizes (
tuple[int], defaultnya(3, 7, 11)) — Ukuran kernel dari blok residual AMP paralel di setiap tahap upsampling. - resblock_dilation_sizes (
tuple[tuple[int]], defaultnya((1, 3, 5), (1, 3, 5), (1, 3, 5))) — Dilasi per blok AMP. - sampling_rate (
int, defaultnya32000) — Laju sampling waveform. - latents_mean (
list[float], opsional) — Rata-rata laten per kanal yang digunakan pipeline untuk menormalisasi / mendenormalisasi laten. - latents_std (
list[float], opsional) — Standar deviasi laten per kanal yang digunakan pipeline untuk menormalisasi / mendenormalisasi laten.
Autoencoder audio yang digunakan oleh MiniMax-H3: encoder konvolusional berwarisan DAC dan decoder BigVGAN, yang beroperasi langsung pada waveform mono 32 kHz.
Model ini mewarisi dari ModelMixin. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan).
encode
< source >( sample: Tensorreturn_dict: bool = True ) → MiniMaxH3AudioEncoderOutput or tuple
Parameter
- sample (
torch.Tensor) — Gelombang mono dengan bentuk[batch_size, 1, samples]. MiniMax-H3 meneruskan dua kanal stereo dari klip referensi sebagaibatch_size = 2. - return_dict (
bool, defaultnyaTrue) — Apakah akan mengembalikanMiniMaxH3AudioEncoderOutputalih-alih tuple biasa.
Mengembalikan
MiniMaxH3AudioEncoderOutput atau tuple
Posterior laten atas [batch_size, latent_channels, samples / 800].
Enkodekan gelombang suara ke posterior laten audio.
Gelombang suara di-*pad* ke kanan hingga menjadi kelipatan dari hop_length (800 sampel) terlebih dahulu. MiniMax-H3 selalu mengonsumsi mean posterior (latent_dist.mode()) — kepala logs_proj tidak pernah dievaluasi oleh pipeline referensi.
decode
< source >( latents: Tensorreturn_dict: bool = True ) → DecoderOutput or tuple
Parameter
- latents (
torch.Tensor) — Latents yang tidak dinormalisasi dengan bentuk[batch_size, latent_channels, num_frames]. MiniMax-H3 meneruskan dua kanal stereo sebagaibatch_size = 2. - return_dict (
bool, defaultnyaTrue) — Apakah akan mengembalikan DecoderOutput alih-alih tuple biasa.
Mengembalikan
DecoderOutput atau tuple
Bentuk gelombang [batch_size, 1, num_frames * 800], dibatasi pada [-1, 1].
Decode latens audio menjadi waveform.
forward
< source >( sample: Tensorsample_posterior: bool = Falsereturn_dict: bool = Truegenerator: typing.Optional[torch.Generator] = None ) → DecoderOutput or tuple
Parameter
- sample (
torch.Tensor) — Gelombang mono dengan bentuk[batch_size, 1, samples]. - sample_posterior (
bool, defaultnyaFalse) — Apakah akan mengambil sampel posterior alih-alih mengambil modusnya. MiniMax-H3 menggunakan mode. - return_dict (
bool, defaultnyaTrue) — Apakah akan mengembalikan DecoderOutput alih-alih tuple biasa. - generator (
torch.Generator, opsional) — Generator yang digunakan saatsample_posterior=True.
Mengembalikan
DecoderOutput atau tuple
Gelombang yang telah diproses bolak-balik dengan bentuk [batch_size, 1, num_frames * 800], dibatasi pada [-1, 1].
Enkodekan lalu dekodekan gelombang suara.