# AutoencoderKLMiniMaxH3Audio

Autoencoder audio yang digunakan dalam [MiniMax-H3](https://huggingface.co/MiniMaxAI) 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.

```python
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[[diffusers.AutoencoderKLMiniMaxH3Audio]]

#### diffusers.AutoencoderKLMiniMaxH3Audio[[diffusers.AutoencoderKLMiniMaxH3Audio]]

```python
diffusers.AutoencoderKLMiniMaxH3Audio(encoder_dim: int = 64, encoder_rates: tuple[int, ...] = (2, 4, 4, 5, 5), latent_dim: int = 2048, latent_channels: int = 32, num_attention_heads: int = 8, decoder_dim: int = 1024, decoder_rates: tuple[int, ...] = (5, 5, 2, 2, 2, 2, 2), decoder_kernel_sizes: tuple[int, ...] = (9, 9, 4, 4, 4, 4, 4), resblock_kernel_sizes: tuple[int, ...] = (3, 7, 11), resblock_dilation_sizes: tuple[tuple[int, ...], ...] = ((1, 3, 5), (1, 3, 5), (1, 3, 5)), sampling_rate: int = 32000, latents_mean: list[float] | None = None, latents_std: list[float] | None = None)
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3_audio.py#L489)

**Parameter:**

encoder_dim (`int`, defaultnya `64`) : Lebar channel dari konvolusi pertama encoder; digandakan di setiap tahap downsampling.

encoder_rates (`tuple[int]`, defaultnya `(2, 4, 4, 5, 5)`) : Strides encoder. Hasil perkalian mereka (`800`) adalah panjang hop, yaitu 40 latens/detik pada 32 kHz.

latent_dim (`int`, defaultnya `2048`) : Lebar dari encoder trunk dan input decoder, sebelum/setelah proyeksi laten.

latent_channels (`int`, defaultnya `32`) : Lebar dari latent difusi, yaitu saluran output dari `mean_proj` / `logs_proj`.

num_attention_heads (`int`, defaultnya `8`) : Jumlah kepala dalam proyeksi perhatian kausal `pre_block`.

decoder_dim (`int`, defaultnya `1024`) : Jumlah channel awal BigVGAN; dibagi dua di setiap tahap upsampling.

decoder_rates (`tuple[int]`, defaultnya `(5, 5, 2, 2, 2, 2, 2)`) : Laju upsampling BigVGAN. Hasil perkalian mereka harus sama dengan `prod(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`, defaultnya `32000`) : 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*) : Deviasi standar laten per kanal yang digunakan pipeline untuk menormalisasi / mendenormalisasi laten.

Autoencoder audio yang digunakan oleh [MiniMax-H3](https://huggingface.co/MiniMaxAI): encoder konvolusional berwarisan DAC dan decoder BigVGAN, yang beroperasi langsung pada waveform mono 32 kHz.

Model ini mewarisi dari [ModelMixin](/docs/diffusers/v0.43.0/id/api/models/overview#diffusers.ModelMixin). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan pustaka ini untuk semua model (seperti mengunduh atau menyimpan).

#### encode[[diffusers.AutoencoderKLMiniMaxH3Audio.encode]]

```python
encode(sample: Tensor, return_dict: bool = True)
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3_audio.py#L583)

**Parameter:**

sample (`torch.Tensor`) : Gelombang mono dengan bentuk `[batch_size, 1, samples]`. MiniMax-H3 meneruskan dua kanal stereo dari klip referensi sebagai `batch_size = 2`.

return_dict (`bool`, defaultnya `True`) : Apakah akan mengembalikan `MiniMaxH3AudioEncoderOutput` alih-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[[diffusers.AutoencoderKLMiniMaxH3Audio.decode]]

```python
decode(latents: Tensor, return_dict: bool = True)
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3_audio.py#L623)

**Parameter:**

latents (`torch.Tensor`) : Laten yang tidak dinormalisasi dengan bentuk `[batch_size, latent_channels, num_frames]`. MiniMax-H3 meneruskan dua kanal stereo sebagai `batch_size = 2`.

return_dict (`bool`, defaultnya `True`) : Apakah akan mengembalikan [DecoderOutput](/docs/diffusers/v0.43.0/id/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) alih-alih tuple biasa.

**Mengembalikan:** [DecoderOutput](/docs/diffusers/v0.43.0/id/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) atau `tuple`

Bentuk gelombang `[batch_size, 1, num_frames * 800]`, dibatasi pada `[-1, 1]`.

Decode latens audio menjadi waveform.

#### forward[[diffusers.AutoencoderKLMiniMaxH3Audio.forward]]

```python
forward(sample: Tensor, sample_posterior: bool = False, return_dict: bool = True, generator: typing.Optional[torch.Generator] = None)
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3_audio.py#L653)

**Parameter:**

sample (`torch.Tensor`) : Gelombang mono dengan bentuk `[batch_size, 1, samples]`.

sample_posterior (`bool`, defaultnya `False`) : Apakah akan melakukan sampling posterior alih-alih mengambil modusnya. MiniMax-H3 menggunakan mode.

return_dict (`bool`, defaultnya `True`) : Apakah akan mengembalikan [DecoderOutput](/docs/diffusers/v0.43.0/id/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) alih-alih tuple biasa.

generator (`torch.Generator`, *opsional*) : Generator yang digunakan saat `sample_posterior=True`.

**Mengembalikan:** [DecoderOutput](/docs/diffusers/v0.43.0/id/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.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.

