# AutoencoderOobleck

Le modèle de variational autoencoder (VAE) Oobleck avec perte KL a été introduit dans [Stability-AI/stable-audio-tools](https://github.com/Stability-AI/stable-audio-tools) et [Stable Audio Open](https://huggingface.co/papers/2407.14358) par Stability AI. Le modèle est utilisé dans 🤗 Diffusers pour encoder les formes d'onde audio en latents et pour décoder les représentations latentes en formes d'onde audio.

L'abstract de l'article est :

*Les modèles génératifs ouverts sont d’une importance vitale pour la communauté, car ils permettent le fine-tuning et servent de références lors de la présentation de nouveaux modèles. Cependant, la plupart des modèles actuels de texte vers audio sont privés et ne sont pas accessibles aux artistes et aux chercheurs pour qu’ils puissent s’en inspirer. Nous décrivons ici l’architecture et le processus d’entraînement d’un nouveau modèle de texte vers audio à poids ouverts, entraîné sur des données Creative Commons. Notre évaluation montre que les performances du modèle sont compétitives par rapport à l’état de l’art sur diverses métriques. Notamment, les résultats FDopenl3 rapportés (mesurant le réalisme des générations) mettent en évidence son potentiel pour la synthèse sonore stéréo de haute qualité à 44,1 kHz.*

## AutoencoderOobleck[[diffusers.AutoencoderOobleck]]

#### diffusers.AutoencoderOobleck[[diffusers.AutoencoderOobleck]]

```python
diffusers.AutoencoderOobleck(encoder_hidden_size = 128, downsampling_ratios = [2, 4, 4, 8, 8], channel_multiples = [1, 2, 4, 8, 16], decoder_channels = 128, decoder_input_channels = 64, audio_channels = 2, sampling_rate = 44100)
```

[Source](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_oobleck.py#L294)

**Paramètres :**

encoder_hidden_size (`int`, *facultatif*, valeur par défaut 128) : Dimension de la représentation intermédiaire pour l'encodeur.

downsampling_ratios (`list[int]`, *facultatif*, par défaut `[2, 4, 4, 8, 8]`) : Ratios de sous-échantillonnage dans l'encodeur. Ils sont utilisés dans l'ordre inverse pour le sur-échantillonnage dans le décodeur.

channel_multiples (`list[int]`, *facultatif*, par défaut `[1, 2, 4, 8, 16]`) : Multiples utilisés pour déterminer les tailles cachées des couches cachées.

decoder_channels (`int`, *facultatif*, valeur par défaut 128) : Dimension de la représentation intermédiaire pour le décodeur.

decoder_input_channels (`int`, *facultatif*, valeur par défaut 64) : Dimension d'entrée du décodeur. Correspond à la dimension latente.

audio_channels (`int`, *facultatif*, valeur par défaut 2) : Nombre de canaux dans les données audio. Soit 1 pour le mono, soit 2 pour le stéréo.

sampling_rate (`int`, *facultatif*, valeur par défaut 44100) : Le taux d'échantillonnage auquel la forme d'onde audio doit être numérisée, exprimé en hertz (Hz).

Un auto-encodeur pour encoder les formes d'onde en latents et décoder les représentations latentes en formes d'onde. Introduit pour la première fois dans Stable Audio.

Ce modèle hérite de [ModelMixin](/docs/diffusers/v0.43.0/fr/api/models/overview#diffusers.ModelMixin). Consultez la documentation de la classe parente pour ses méthodes génériques implémentées pour tous les modèles (tels que le téléchargement ou l'enregistrement).

#### decode[[diffusers.AutoencoderOobleck.decode]]

```python
decode(z: FloatTensor, return_dict: bool = True, generator = None)
```

[Source](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_oobleck.py#L488)

**Paramètres :**

z (`torch.Tensor`) : Lot d'entrée de vecteurs latents.

return_dict (`bool`, *facultatif*, par défaut `True`) : Indique s'il faut retourner un `~models.vae.OobleckDecoderOutput` plutôt qu'un simple tuple.

**Retourne :** `~models.vae.OobleckDecoderOutput` ou `tuple`

If return_dict is True, a `~models.vae.OobleckDecoderOutput` is returned, otherwise a plain `tuple` is returned.

Décoder un lot d'images.

#### encode[[diffusers.AutoencoderOobleck.encode]]

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

[Source](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_oobleck.py#L377)

**Paramètres :**

x (`torch.Tensor`) : Lot d'images en entrée.

return_dict (`bool`, *facultatif*, par défaut `True`) : Indique s'il faut retourner un `~models.autoencoder_kl.AutoencoderKLOutput` plutôt qu'un simple tuple.

**Retourne :**

Les représentations latentes des images encodées. Si `return_dict` est True, un `~models.autoencoder_kl.AutoencoderKLOutput` est renvoyé, sinon un simple `tuple` est renvoyé.

Encode un lot d'images en latents.

#### forward[[diffusers.AutoencoderOobleck.forward]]

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

[Source](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_oobleck.py#L517)

**Paramètres :**

sample (`torch.Tensor`) : Échantillon d'entrée.

sample_posterior (`bool`, *facultatif*, par défaut `False`) : Indique s'il faut échantillonner à partir de la distribution a posteriori.

return_dict (`bool`, *facultatif*, par défaut `True`) : Indique s'il faut retourner un `OobleckDecoderOutput` plutôt qu'un simple tuple.

generator (`torch.Generator`, *facultatif*) : Un [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) pour rendre l'échantillonnage déterministe.

**Retourne :** `~models.vae.OobleckDecoderOutput` ou `tuple`

Si `return_dict` est True, un `~models.vae.OobleckDecoderOutput` est renvoyé, sinon un simple `tuple` est renvoyé.

## OobleckDecoderOutput[[diffusers.models.autoencoders.autoencoder_oobleck.OobleckDecoderOutput]]

#### diffusers.models.autoencoders.autoencoder_oobleck.OobleckDecoderOutput[[diffusers.models.autoencoders.autoencoder_oobleck.OobleckDecoderOutput]]

```python
diffusers.models.autoencoders.autoencoder_oobleck.OobleckDecoderOutput(sample: Tensor)
```

[Source](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_oobleck.py#L202)

**Paramètres :**

sample (`torch.Tensor` de forme `(batch_size, audio_channels, sequence_length)`) : L'échantillon de sortie décodé de la dernière couche du modèle.

Sortie de la méthode de décodage.

## AutoencoderOobleckOutput[[diffusers.models.autoencoders.autoencoder_oobleck.AutoencoderOobleckOutput]]

#### diffusers.models.autoencoders.autoencoder_oobleck.AutoencoderOobleckOutput[[diffusers.models.autoencoders.autoencoder_oobleck.AutoencoderOobleckOutput]]

```python
diffusers.models.autoencoders.autoencoder_oobleck.AutoencoderOobleckOutput(latent_dist: OobleckDiagonalGaussianDistribution)
```

[Source](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_oobleck.py#L187)

**Paramètres :**

latent_dist (`OobleckDiagonalGaussianDistribution`) : Sorties encodées de `Encoder` représentées par la moyenne et l'écart-type de `OobleckDiagonalGaussianDistribution`. `OobleckDiagonalGaussianDistribution` permet d'échantillonner des latents à partir de la distribution.

Sortie de la méthode d'encodage d'AutoencoderOobleck.

