# AutoencoderOobleck

O modelo de autoencoder variacional (VAE) Oobleck com perda KL foi introduzido em [Stability-AI/stable-audio-tools](https://github.com/Stability-AI/stable-audio-tools) e [Stable Audio Open](https://huggingface.co/papers/2407.14358) pela Stability AI. O modelo é usado no 🤗 Diffusers para codificar formas de onda de áudio em latentes e para decodificar representações latentes em formas de onda de áudio.

O resumo do artigo é:

*Modelos generativos abertos são de extrema importância para a comunidade, pois permitem o ajuste fino e servem como linhas de base ao apresentar novos modelos. No entanto, a maioria dos modelos atuais de texto para áudio são privados e não acessíveis para que artistas e pesquisadores possam construir sobre eles. Aqui, descrevemos a arquitetura e o processo de treinamento de um novo modelo de texto para áudio com pesos abertos, treinado com dados Creative Commons. Nossa avaliação mostra que o desempenho do modelo é competitivo em relação ao estado da arte em diversas métricas. Notavelmente, os resultados de FDopenl3 relatados (que medem o realismo das gerações) demonstram seu potencial para síntese de som estéreo de alta qualidade a 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)
```

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

**Parâmetros:**

encoder_hidden_size (`int`, *opcional*, padrão 128) : Dimensão da representação intermediária para o codificador.

downsampling_ratios (`list[int]`, *opcional*, padrão `[2, 4, 4, 8, 8]`) : Proporções para o downsampling no encoder. Elas são usadas em ordem reversa para o upsampling no decoder.

channel_multiples (`list[int]`, *opcional*, padrão `[1, 2, 4, 8, 16]`) : Múltiplos usados para determinar os tamanhos ocultos das camadas ocultas.

decoder_channels (`int`, *opcional*, padrão 128) : Dimensão da representação intermediária para o decodificador.

decoder_input_channels (`int`, *opcional*, padrão 64) : Dimensão de entrada para o decodificador. Corresponde à dimensão latente.

audio_channels (`int`, *opcional*, padrão 2) : Número de canais nos dados de áudio. 1 para mono ou 2 para estéreo.

sampling_rate (`int`, *opcional*, padrão 44100) : A taxa de amostragem na qual a forma de onda de áudio deve ser digitalizada, expressa em hertz (Hz).

Um autoencoder para codificar formas de onda em latentes e decodificar representações latentes em formas de onda. Introduzido pela primeira vez no Stable Audio.

Este modelo herda de [ModelMixin](/docs/diffusers/main/pt/api/models/overview#diffusers.ModelMixin). Consulte a documentação da superclasse para seus métodos genéricos implementados para todos os modelos (como download ou salvamento).

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

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

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

**Parâmetros:**

z (`torch.Tensor`) : Lote de entrada de vetores latentes.

return_dict (`bool`, *opcional*, padrão `True`) : Se deve retornar um `~models.vae.OobleckDecoderOutput` em vez de uma tupla simples.

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

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

Decodifique um lote de imagens.

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

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

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

**Parâmetros:**

x (`torch.Tensor`) : Lote de entrada de imagens.

return_dict (`bool`, *opcional*, padrão `True`) : Se deve retornar um `~models.autoencoder_kl.AutoencoderKLOutput` em vez de uma tupla simples.

**Retorna:**

As representações latentes das imagens codificadas. Se `return_dict` for True, um `~models.autoencoder_kl.AutoencoderKLOutput` é retornado; caso contrário, uma `tuple` simples é retornada.

Codifica um lote de imagens em latentes.

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

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

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

**Parâmetros:**

sample (`torch.Tensor`) : Amostra de entrada.

sample_posterior (`bool`, *opcional*, padrão `False`) : Se deve amostrar da posterior.

return_dict (`bool`, *opcional*, padrão `True`) : Indica se deve retornar um `OobleckDecoderOutput` em vez de uma tupla simples.

generator (`torch.Generator`, *opcional*) : Um [`torch.Generator`](https://pytorch.org/docs/stable/generated/torch.Generator.html) para tornar a amostragem determinística.

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

Se `return_dict` for True, um `~models.vae.OobleckDecoderOutput` é retornado; caso contrário, uma `tuple` simples é retornada.

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

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

**Parâmetros:**

sample (`torch.Tensor` de forma `(batch_size, audio_channels, sequence_length)`) : A amostra de saída decodificada da última camada do modelo.

Saída do método de decodificação.

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

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

**Parâmetros:**

latent_dist (`OobleckDiagonalGaussianDistribution`) : Saídas codificadas do `Encoder` representadas como a média e o desvio padrão de `OobleckDiagonalGaussianDistribution`. `OobleckDiagonalGaussianDistribution` permite amostrar latentes da distribuição.

Saída do método de codificação do AutoencoderOobleck.

