# AutoencoderKLKVAEAudio

Un autoencoder variacional (VAE) de convolución 1D con pérdida KL para audio, introducido por el equipo de Kandinsky Lab en [KVAE-Audio](https://huggingface.co/kandinskylab/KVAE-Audio). Comprime las formas de onda crudas de banda completa (48 kHz) en latentes continuos compactos y las reconstruye con alta fidelidad en el habla, la música y el audio en general.

El modelo se puede cargar con el siguiente fragmento de código.

```python
import torch
from diffusers import AutoencoderKLKVAEAudio

vae = AutoencoderKLKVAEAudio.from_pretrained("kandinskylab/KVAE-Audio", subfolder="diffusers", dtype=torch.float32)
```

## AutoencoderKLKVAEAudio[[diffusers.AutoencoderKLKVAEAudio]]

#### diffusers.AutoencoderKLKVAEAudio[[diffusers.AutoencoderKLKVAEAudio]]

```python
diffusers.AutoencoderKLKVAEAudio(encoder_dim: int = 64, encoder_rates: list = [2, 3, 4, 5, 8], latent_dim: int = 2048, codebook_dim: int = 64, decoder_dim: int = 1536, decoder_rates: list = [8, 5, 4, 3, 2], sample_rate: int = 48000, num_channels: int = 1, attn_num_heads: int = 8)
```

[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_kvae_audio.py#L249)

**Parámetros:**

encoder_dim (`int`, *opcional*, valor predeterminado 64) : Dimensión de canal base para el codificador; se duplica en cada etapa de muestreo descendente.

encoder_rates (`list[int]`, *opcional*, valor predeterminado `[2, 3, 4, 5, 8]`) : Pasos para el muestreo descendente en el codificador.

latent_dim (`int`, *opcional*, valor predeterminado 2048) : Dimensión del canal de la salida del codificador (antes del cuello de botella `in_proj`).

codebook_dim (`int`, *opcional*, valor predeterminado 64) : Dimensión del canal del espacio latente de la distribución posterior (después del cuello de botella `in_proj`).

decoder_dim (`int`, *opcional*, valor predeterminado 1536) : Dimensión base de canales para el decodificador; se reduce a la mitad en cada etapa de muestreo ascendente.

decoder_rates (`list[int]`, *opcional*, valor predeterminado `[8, 5, 4, 3, 2]`) : Pasos para el muestreo ascendente en el decodificador.

sample_rate (`int`, *opcional*, valor predeterminado 48000) : La tasa de muestreo, en Hz, con la que se entrenó el modelo.

num_channels (`int`, *opcional*, valor predeterminado 1) : Número de canales en los datos de audio (1 para mono).

attn_num_heads (`int`, *opcional*, valor predeterminado 8) : Número de cabezas en el bloque de autoatención aplicado a la salida del codificador.

Un autoencoder convolucional 1D para codificar formas de onda de audio en bruto en latentes continuos y decodificarlos de nuevo en formas de onda. Introducido en [KVAE-Audio](https://huggingface.co/kandinskylab/KVAE-Audio).

Este modelo hereda de [ModelMixin](/docs/diffusers/main/es/api/models/overview#diffusers.ModelMixin). Consulta la documentación de la superclase para sus métodos genéricos implementados para todos los modelos (como la descarga o el guardado).

#### decode[[diffusers.AutoencoderKLKVAEAudio.decode]]

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

[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_kvae_audio.py#L354)

**Parámetros:**

z (`torch.Tensor`) : Lote de entrada de vectores latentes.

return_dict (`bool`, *opcional*, valor predeterminado `True`) : Si se debe devolver un [DecoderOutput](/docs/diffusers/main/es/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) en lugar de una tupla simple.

**Devuelve:** [DecoderOutput](/docs/diffusers/main/es/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) o `tuple`

Si return_dict es True, se devuelve un [DecoderOutput](/docs/diffusers/main/es/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput); de lo contrario, se devuelve una `tuple` simple.

Decodificar un lote de latentes en formas de onda de audio.

#### encode[[diffusers.AutoencoderKLKVAEAudio.encode]]

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

[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_kvae_audio.py#L321)

**Parámetros:**

audio_data (`torch.Tensor` de forma `(batch_size, num_channels, num_samples)`) : Lote de entrada de formas de onda de audio sin procesar.

return_dict (`bool`, *opcional*, valor predeterminado `True`) : Si se debe devolver un `~models.autoencoder_kl.AutoencoderKLOutput` en lugar de una tupla simple.

**Devuelve:**

Las representaciones latentes del audio codificado. Si `return_dict` es True, se devuelve un `~models.autoencoder_kl.AutoencoderKLOutput`; de lo contrario, se devuelve una `tuple` simple.

Codifica un lote de formas de onda de audio en latentes.

#### forward[[diffusers.AutoencoderKLKVAEAudio.forward]]

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

[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_kvae_audio.py#L379)

**Parámetros:**

sample (`torch.Tensor` de forma `(batch_size, num_channels, num_samples)`) : Lote de entrada de formas de onda de audio sin procesar.

sample_posterior (`bool`, *opcional*, por defecto `False`) : Si se muestrea de la posterior.

return_dict (`bool`, *opcional*, por defecto `True`) : Indica si se debe devolver un [DecoderOutput](/docs/diffusers/main/es/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) en lugar de una tupla simple.

generator (`torch.Generator`, *opcional*) : Un [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) para hacer que la muestreo sea determinista.

**Devuelve:** [DecoderOutput](/docs/diffusers/main/es/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) o `tuple`

Si `return_dict` es True, se devuelve un [DecoderOutput](/docs/diffusers/main/es/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput); en caso contrario, se devuelve una `tuple` simple.

