# 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[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) : エンコーダーのベースチャネル次元。ダウンサンプリングの各段階で 2 倍になります。

encoder_rates (`list[int]`、*任意*、デフォルトは`[2, 3, 4, 5, 8]`) : エンコーダーにおけるダウンサンプリングのストライド。

latent_dim (`int`、*任意*、デフォルトは 2048) : エンコーダー出力のチャネル次元(`in_proj`ボトルネックの前)。

codebook_dim (`int`、*任意*、デフォルトは 64) : 後方分布の潜在空間のチャネル次元(`in_proj` ボトルネックの後)。

decoder_dim (`int`、*optional*、デフォルトは 1536) : デコーダーのベースチャネル次元。各アップサンプリング段階で半分になります。

decoder_rates (`list[int]`、*任意*、デフォルトは`[8, 5, 4, 3, 2]`) : デコーダーにおけるアップサンプリングのストライド。

sample_rate (`int`、*optional*、デフォルトは 48000) : モデルが学習された際のサンプリングレート（Hz）。

num_channels (`int`、*任意*、デフォルトは 1) : 音声データのチャネル数（モノラルの場合は 1）。

attn_num_heads (`int`、*任意*、デフォルトは 8) : エンコーダーの出力に適用される自己注意ブロックのヘッド数。

生オーディオ波形を連続的な潜在変数にエンコードし、それを波形にデコードするための1次元畳み込みオートエンコーダー。[KVAE-Audio](https://huggingface.co/kandinskylab/KVAE-Audio)で導入されました。

このモデルは [ModelMixin](/docs/diffusers/v0.43.0/ja/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/ja/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput)を返すかどうか。

**戻り値:** [DecoderOutput](/docs/diffusers/v0.43.0/ja/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) または `tuple`

[DecoderOutput](/docs/diffusers/v0.43.0/ja/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) が返される場合は `tuple` が返され、それ以外の場合は通常の `tuple` が返されます。

バッチの潜在変数（latents）をオーディオ波形にデコードします。

#### 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`、shape `(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`、shape `(batch_size, num_channels, num_samples)`) : 生のオーディオ波形の入力バッチ。

sample_posterior (`bool`、*任意*、デフォルトは`False`) : 事後分布からサンプリングするかどうか。

return_dict (`bool`、*任意*、デフォルトは`True`) : プレーンなタプルではなく[DecoderOutput](/docs/diffusers/v0.43.0/ja/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/ja/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) または `tuple`

`return_dict` が True の場合、[DecoderOutput](/docs/diffusers/v0.43.0/ja/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) が返され、それ以外の場合は通常の `tuple` が返されます。

