# AutoencoderKLKVAEAudio

Kandinsky Lab Team이 [KVAE-Audio](https://huggingface.co/kandinskylab/KVAE-Audio)에서 소개한 오디오용 KL 손실을 갖춘 1차원 컨볼루션 변분 오토인코더(VAE)입니다. 원본 풀밴드(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 = [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)
```

[소스](https://github.com/huggingface/diffusers/blob/main/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) : 인코더 출력에 적용되는 셀프 어텐션 블록의 헤드 수입니다.

원시 오디오 웨이브폼을 연속적인 잠재 변수로 인코딩하고 다시 웨이브폼으로 디코딩하는 1차원 컨볼루션 오토인코더입니다. [KVAE-Audio](https://huggingface.co/kandinskylab/KVAE-Audio)에서 소개되었습니다.

이 모델은 [ModelMixin](/docs/diffusers/main/ko/api/models/overview#diffusers.ModelMixin)에서 상속됩니다. 모든 모델에 대해 구현된 일반적 메서드(다운로드 또는 저장 등)에 대해서는 상위 클래스 문서를 확인하세요.

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

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

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

**매개변수:**

z (`torch.Tensor`) : 잠재 벡터의 입력 배치.

return_dict (`bool`, *선택 사항*, 기본값 `True`) : 일반 튜플 대신 [DecoderOutput](/docs/diffusers/main/ko/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput)를 반환할지 여부.

**반환값:** [DecoderOutput](/docs/diffusers/main/ko/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) 또는 `tuple`

return_dict가 True이면 [DecoderOutput](/docs/diffusers/main/ko/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput)가 반환되고, 그렇지 않으면 일반 `tuple`이 반환됩니다.

latents 배치 하나를 오디오 웨이브폼으로 디코딩합니다.

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

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

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

**매개변수:**

audio_data (`torch.Tensor`, shape `(batch_size, num_channels, num_samples)`) : 원시 오디오 웨이브폼 입력 배치.

return_dict (`bool`, *선택 사항*, 기본값 `True`) : 일반 튜플 대신 `~models.autoencoder_kl.AutoencoderKLOutput`을 반환할지 여부.

**반환값:**

인코딩된 오디오의 잠재 표현입니다. `return_dict`가 True이면 `~models.autoencoder_kl.AutoencoderKLOutput`이 반환되고, 그렇지 않으면 단순한 `tuple`이 반환됩니다.

audio waveforms 배치의 오디오 웨이브폼을 latents로 인코딩합니다.

#### 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/main/src/diffusers/models/autoencoders/autoencoder_kl_kvae_audio.py#L379)

**매개변수:**

sample (`torch.Tensor`, shape `(batch_size, num_channels, num_samples)`) : 원시 오디오 웨이브폼 입력 배치.

sample_posterior (`bool`, *선택 사항*, 기본값 `False`) : 사후 분포에서 샘플링할지 여부.

return_dict (`bool`, *선택 사항*, 기본값 `True`) : 일반 튜플 대신 [DecoderOutput](/docs/diffusers/main/ko/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/main/ko/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) 또는 `tuple`

`return_dict`가 True이면 [DecoderOutput](/docs/diffusers/main/ko/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput)가 반환되고, 그렇지 않으면 일반 `tuple`이 반환됩니다.

