Diffusers documentation

AutoencoderKLMiniMaxH3Audio

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

AutoencoderKLMiniMaxH3Audio

L'autoencodeur audio utilisé dans MiniMax-H3 par MiniMax. Il prend une forme d'onde en entrée et en sort une forme d'onde, sans front-end mel et sans vocoder séparé : un encodeur à convolutions à pas (strided) de lignée DAC, une projection par attention causale vers la largeur latente de la diffusion, et un décodeur BigVGAN.

L’encodeur saute 800 échantillons à 32 kHz, soit 40 latents par seconde, de sorte qu’une forme d’onde de 800 * n échantillons est encodée en n latents. Les formes d’onde dont la durée n’est pas un multiple entier des sauts sont complétées à droite.

La projection d’attention causale passe par le dispatcheur d’attention, donc set_attention_backend s’applique à celle-ci ; son masque est is_causal=True, que tous les backends respectent à l’exception de _native_npu, dont le kernel n’accepte pas de drapeau causal.

L'autoencodeur est mono et il normalise les latents par canal avec latents_mean / latents_std plutôt qu'un scaling_factor scalaire. MiniMax-H3 gère le stéréo sous forme de deux éléments de batch et consomme toujours la moyenne a posteriori (latent_dist.mode()), jamais un échantillon.

import torch
from diffusers import AutoencoderKLMiniMaxH3Audio

audio_vae = AutoencoderKLMiniMaxH3Audio.from_pretrained(
    "MiniMaxAI/MiniMax-H3", subfolder="audio_vae", dtype=torch.float32
).to("cuda")  # or "mps", "xpu", "cpu"

AutoencoderKLMiniMaxH3Audio

classe diffusers.AutoencoderKLMiniMaxH3Audio

< >

( encoder_dim: int = 64encoder_rates: tuple[int, ...] = (2, 4, 4, 5, 5)latent_dim: int = 2048latent_channels: int = 32num_attention_heads: int = 8decoder_dim: int = 1024decoder_rates: tuple[int, ...] = (5, 5, 2, 2, 2, 2, 2)decoder_kernel_sizes: tuple[int, ...] = (9, 9, 4, 4, 4, 4, 4)resblock_kernel_sizes: tuple[int, ...] = (3, 7, 11)resblock_dilation_sizes: tuple[tuple[int, ...], ...] = ((1, 3, 5), (1, 3, 5), (1, 3, 5))sampling_rate: int = 32000latents_mean: list[float] | None = Nonelatents_std: list[float] | None = None )

Paramètres

  • encoder_dim (int, par défaut 64) — Largeur des canaux de la première convolution de l’encodeur ; doublée à chaque étape de sous-échantillonnage.
  • encoder_rates (tuple[int], par défaut (2, 4, 4, 5, 5)) — Pas de l'encodeur. Leur produit (800) correspond à la longueur de saut, soit 40 latents/s à 32 kHz.
  • latent_dim (int, par défaut 2048) — Largeur du tronc de l'encodeur et de l'entrée du décodeur, avant/après les projections latentes.
  • latent_channels (int, par défaut 32) — Largeur du latent de diffusion, c'est-à-dire les canaux de sortie de mean_proj / logs_proj.
  • num_attention_heads (int, par défaut 8) — Nombre de têtes dans la projection d'attention causale pre_block.
  • decoder_dim (int, par défaut 1024) — Nombre de canaux initial de BigVGAN ; divisé par deux à chaque étape de suréchantillonnage.
  • decoder_rates (tuple[int], par défaut (5, 5, 2, 2, 2, 2, 2)) — Taux de suréchantillonnage de BigVGAN. Leur produit doit être égal à prod(encoder_rates).
  • decoder_kernel_sizes (tuple[int], par défaut (9, 9, 4, 4, 4, 4, 4)) — Taille du noyau de convolution transposée pour chaque étape de suréchantillonnage.
  • resblock_kernel_sizes (tuple[int], par défaut (3, 7, 11)) — Tailles des noyaux des blocs résiduels AMP parallèles à chaque étape de suréchantillonnage.
  • resblock_dilation_sizes (tuple[tuple[int]], par défaut ((1, 3, 5), (1, 3, 5), (1, 3, 5))) — Dilations par bloc AMP.
  • sampling_rate (int, par défaut 32000) — Taux d'échantillonnage de la forme d'onde.
  • latents_mean (list[float], facultatif) — Moyenne latente par canal utilisée par le pipeline pour normaliser / dénormaliser les latents.
  • latents_std (list[float], facultatif) — Écart-type latent par canal utilisé par le pipeline pour normaliser / dénormaliser les latents.

L'autoencodeur audio utilisé par MiniMax-H3 : un encodeur convolutif de lignée DAC et un décodeur BigVGAN, fonctionnant directement sur des formes d'onde mono à 32 kHz.

Ce modèle hérite de ModelMixin. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous les modèles (tels que le téléchargement ou l'enregistrement).

encode

< >

( sample: Tensorreturn_dict: bool = True ) → MiniMaxH3AudioEncoderOutput or tuple

Paramètres

  • sample (torch.Tensor) — Forme d’onde mono de forme [batch_size, 1, samples]. MiniMax-H3 transmet les deux canaux stéréo d’un clip de référence sous forme de batch_size = 2.
  • return_dict (bool, par défaut True) — Indique s'il faut retourner un MiniMaxH3AudioEncoderOutput plutôt qu'un simple tuple.

Retourne

MiniMaxH3AudioEncoderOutput ou tuple

La postérieure latente sur [batch_size, latent_channels, samples / 800].

Encoder une forme d'onde dans le postérieur latent audio.

La forme d’onde est d’abord complétée à droite jusqu’à un multiple de hop_length (800 échantillons). MiniMax-H3 consomme toujours la moyenne a posteriori (latent_dist.mode()) — la tête logs_proj n’est jamais évaluée par le pipeline de référence.

décoder

< >

( latents: Tensorreturn_dict: bool = True ) → DecoderOutput or tuple

Paramètres

  • latents (torch.Tensor) — Latents dénormalisés de forme [batch_size, latent_channels, num_frames]. MiniMax-H3 transmet les deux canaux stéréo en définissant batch_size = 2.
  • return_dict (bool, par défaut True) — Indique s'il faut retourner un DecoderOutput plutôt qu'un simple tuple.

Retourne

DecoderOutput ou tuple

Forme d'onde de forme [batch_size, 1, num_frames * 800], bornée à [-1, 1].

Décoder les latents audio en une forme d’onde.

forward

< >

( sample: Tensorsample_posterior: bool = Falsereturn_dict: bool = Truegenerator: typing.Optional[torch.Generator] = None ) → DecoderOutput or tuple

Paramètres

  • sample (torch.Tensor) — Forme d'onde mono de forme [batch_size, 1, samples].
  • sample_posterior (bool, par défaut False) — Indique s'il faut échantillonner la distribution a posteriori plutôt que d'en prendre le mode. MiniMax-H3 utilise le mode.
  • return_dict (bool, par défaut True) — Indique s'il faut retourner un DecoderOutput plutôt qu'un simple tuple.
  • generator (torch.Generator, facultatif) — Générateur utilisé lorsque sample_posterior=True.

Retourne

DecoderOutput ou tuple

La forme d'onde de forme [batch_size, 1, num_frames * 800] après aller-retour, bornée à [-1, 1].

Encoder puis décoder une forme d'onde.

Update on GitHub