# AutoencoderKLKVAEAudio

一种一维卷积变分自编码器（VAE），带有 KL 散度损失，用于音频处理，由 Kandinsky Lab Team 在 [KVAE-Audio](https://huggingface.co/kandinskylab/KVAE-Audio) 中提出。它将原始的全频段（48 kHz）波形压缩为紧凑的连续潜在表示，并在语音、音乐和通用音频上实现高保真重建。

可以使用以下代码片段加载该模型。

```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[int] = [2, 3, 4, 5, 8], latent_dim: int = 2048, codebook_dim: int = 64, decoder_dim: int = 1536, decoder_rates: list[int] = [8, 5, 4, 3, 2], sample_rate: int = 48000, num_channels: int = 1, attn_num_heads: int = 8)
```

[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_kl_kvae_audio.py#L249)

**参数：**

encoder_dim (`int`，*可选*，默认值为 64)：编码器的基础通道维度；在每个下采样阶段都会翻倍。

encoder_rates (`list[int]`，*可选*，默认为 `[2, 3, 4, 5, 8]`)：编码器中用于下采样的步长。

latent_dim (`int`，*可选*，默认值为 2048)：编码器输出的通道维度（在 `in_proj` 瓶颈层之前）。

codebook_dim (`int`，*可选*，默认为 64)：后验分布潜在空间的通道维度（在 `in_proj` 瓶颈之后）。

decoder_dim (`int`，*可选*，默认值为 1536)：解码器的基础通道维度；在每个上采样阶段减半。

decoder_rates (`list[int]`，*可选*，默认为 `[8, 5, 4, 3, 2]`)：解码器中上采样的步长。

sample_rate (`int`，*可选*，默认值为 48000)：模型训练时使用的采样率，单位为 Hz。

num_channels (`int`，*可选*，默认为 1)：音频数据的通道数（单声道为 1）。

attn_num_heads (`int`，*可选*，默认为 8)：应用于编码器输出的自注意力块中的注意力头数量。

一种一维卷积自编码器，用于将原始音频波形编码为连续潜在表示，并将其解码回波形。在 [KVAE-Audio](https://huggingface.co/kandinskylab/KVAE-Audio) 中提出。

该模型继承自 [ModelMixin](/docs/diffusers/v0.43.0/zh/api/models/overview#diffusers.ModelMixin)。请查阅其父类文档，了解为所有模型实现的通用方法（例如下载或保存）。

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

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

[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_kl_kvae_audio.py#L354)

**参数：**

z (`torch.Tensor`) : 输入的潜在向量批次。

return_dict (`bool`，*可选*，默认为 `True`)：是否返回 [DecoderOutput](/docs/diffusers/v0.43.0/zh/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) 而不是普通元组。

**返回：** [DecoderOutput](/docs/diffusers/v0.43.0/zh/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) 或 `tuple`

如果 return_dict 为 True，则返回 [DecoderOutput](/docs/diffusers/v0.43.0/zh/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput)，否则返回普通的 `tuple`。

将一批潜在变量解码为音频波形。

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

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

[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_kl_kvae_audio.py#L321)

**参数：**

audio_data (`torch.Tensor`，形状为 `(batch_size, num_channels, num_samples)`)：原始音频波形输入批次。

return_dict (`bool`，*可选*，默认为 `True`)：是否返回 `~models.autoencoder_kl.AutoencoderKLOutput` 而不是普通元组。

**返回值：**

编码音频的潜在表示。如果 `return_dict` 为 True，则返回 `~models.autoencoder_kl.AutoencoderKLOutput`，否则返回普通的 `tuple`。

将一批音频波形编码为潜在表示。

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

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

[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_kl_kvae_audio.py#L379)

**参数：**

sample (`torch.Tensor`，形状为 `(batch_size, num_channels, num_samples)`)：原始音频波形输入批次。

sample_posterior (`bool`，*可选*，默认为 `False`)：是否从后验分布中采样。

return_dict (`bool`，*可选*，默认为 `True`)：是否返回 [DecoderOutput](/docs/diffusers/v0.43.0/zh/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) 而不是普通元组。

generator (`torch.Generator`，*可选*)：一个 [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html)，用于使采样过程具有确定性。

**返回：** [DecoderOutput](/docs/diffusers/v0.43.0/zh/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) 或 `tuple`

如果 `return_dict` 为 True，则返回 [DecoderOutput](/docs/diffusers/v0.43.0/zh/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput)，否则返回普通的 `tuple`。

