# AutoencoderKLKVAEAudio

Một mô hình autoencoder biến phân (VAE) tích chập 1 chiều có tổn thất KL cho âm thanh, do nhóm Kandinsky Lab Team giới thiệu trong [KVAE-Audio](https://huggingface.co/kandinskylab/KVAE-Audio). Mô hình này nén các dạng sóng thô, băng tần đầy đủ (48 kHz) thành các ẩn liên tục gọn gàng và tái tạo chúng với độ trung thực cao trên giọng nói, nhạc và âm thanh nói chung.

Mô hình có thể được tải bằng đoạn mã sau.

```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)
```

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

**Tham số:**

encoder_dim (`int`, *tuỳ chọn*, mặc định là 64) : Kích thước kênh cơ bản cho bộ mã hóa; được nhân đôi ở mỗi giai đoạn hạ mẫu.

encoder_rates (`list[int]`, *tùy chọn*, mặc định là `[2, 3, 4, 5, 8]`) : Các bước (strides) để hạ mẫu (downsampling) trong bộ mã hóa (encoder).

latent_dim (`int`, *tuỳ chọn*, mặc định là 2048) : Chiều kênh của đầu ra bộ mã hóa (trước nút thắt cổ chai `in_proj`).

codebook_dim (`int`, *tuỳ chọn*, mặc định là 64) : Chiều kênh của không gian ẩn của phân phối hậu nghiệm (sau nút thắt cổ chai `in_proj`).

decoder_dim (`int`, *optional*, mặc định là 1536) : Kích thước kênh cơ bản cho bộ giải mã; giảm một nửa ở mỗi giai đoạn lấy mẫu lên.

decoder_rates (`list[int]`, *tùy chọn*, mặc định là `[8, 5, 4, 3, 2]`) : Các bước nhảy (strides) cho quá trình upsampling trong bộ giải mã (decoder).

sample_rate (`int`, *tuỳ chọn*, mặc định là 48000) : Tần số lấy mẫu, tính bằng Hz, mà mô hình được huấn luyện trên đó.

num_channels (`int`, *tuỳ chọn*, mặc định là 1) : Số kênh trong dữ liệu âm thanh (1 cho âm thanh đơn).

attn_num_heads (`int`, *tuỳ chọn*, mặc định là 8) : Số lượng đầu trong khối self-attention được áp dụng cho đầu ra của encoder.

Autoencoder tích chập 1D để mã hóa dạng sóng âm thanh thô thành các ẩn liên tục và giải mã chúng trở lại dạng sóng. Được giới thiệu trong [KVAE-Audio](https://huggingface.co/kandinskylab/KVAE-Audio).

Mô hình này kế thừa từ [ModelMixin](/docs/diffusers/main/vi/api/models/overview#diffusers.ModelMixin). Hãy xem tài liệu của lớp cha để biết các phương thức chung được triển khai cho tất cả các mô hình (chẳng hạn như tải xuống hoặc lưu trữ).

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

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

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

**Tham số:**

z (`torch.Tensor`) : Lô đầu vào của các vector ẩn.

return_dict (`bool`, *tùy chọn*, mặc định là `True`) : Có nên trả về một [DecoderOutput](/docs/diffusers/main/vi/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) thay vì một tuple thông thường hay không.

**Trả về:** [DecoderOutput](/docs/diffusers/main/vi/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) hoặc `tuple`

Nếu return_dict là True, một [DecoderOutput](/docs/diffusers/main/vi/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) sẽ được trả về, ngược lại một `tuple` thông thường sẽ được trả về.

Giải mã một lô latents thành các dạng sóng âm thanh.

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

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

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

**Tham số:**

audio_data (`torch.Tensor` có hình dạng `(batch_size, num_channels, num_samples)`) : Lô đầu vào gồm các dạng sóng âm thanh thô.

return_dict (`bool`, *tùy chọn*, mặc định là `True`) : Có nên trả về một `~models.autoencoder_kl.AutoencoderKLOutput` thay vì một tuple thông thường hay không.

**Trả về:**

Các biểu diễn ẩn của âm thanh đã được mã hóa. Nếu `return_dict` là True, một `~models.autoencoder_kl.AutoencoderKLOutput` sẽ được trả về, ngược lại một `tuple` thông thường sẽ được trả về.

Mã hóa một lô sóng âm thanh thành các ẩn (latents).

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

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

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

**Tham số:**

sample (`torch.Tensor` có hình dạng `(batch_size, num_channels, num_samples)`) : Lô đầu vào gồm các dạng sóng âm thanh thô.

sample_posterior (`bool`, *tùy chọn*, mặc định là `False`) : Có lấy mẫu từ phân phối hậu nghiệm hay không.

return_dict (`bool`, *tùy chọn*, mặc định là `True`) : Có nên trả về một [DecoderOutput](/docs/diffusers/main/vi/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) thay vì một tuple thông thường hay không.

generator (`torch.Generator`, *tùy chọn*) : Một [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) để làm cho việc lấy mẫu trở nên tất định.

**Trả về:** [DecoderOutput](/docs/diffusers/main/vi/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) hoặc `tuple`

Nếu `return_dict` là True, một [DecoderOutput](/docs/diffusers/main/vi/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) sẽ được trả về, ngược lại một `tuple` thông thường sẽ được trả về.

