Diffusers documentation
AutoencoderKLMiniMaxH3Audio
AutoencoderKLMiniMaxH3Audio
El autoencoder de audio utilizado en MiniMax-H3 de MiniMax. Recibe y emite formas de onda, sin un preprocesador mel ni un vocoder separado: un encoder convolucional con saltos de la línea DAC, una proyección con atención causal hacia el ancho latente de la difusión y un decodificador BigVGAN.
El codificador salta 800 muestras a 32 kHz, es decir, 40 latentes por segundo, por lo que una forma de onda de 800 * n muestras se codifica en n latentes. Las formas de onda que no son un número entero de saltos se rellenan a la derecha.
La proyección de atención causal pasa por el despachador de atención, por lo que set_attention_backend se aplica a ella; su máscara es is_causal=True, que todos los backends respetan excepto _native_npu, cuyo kernel no acepta ninguna bandera causal.
El autoencoder es mono y normaliza los latentes por canal con latents_mean / latents_std en lugar de un scaling_factor escalar. MiniMax-H3 lleva el estéreo como dos elementos de batch y siempre consume la media posterior (latent_dist.mode()), nunca una muestra.
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
clase diffusers.AutoencoderKLMiniMaxH3Audio
< source >( encoder_dim: int = 64encoder_rates: tuple = (2, 4, 4, 5, 5)latent_dim: int = 2048latent_channels: int = 32num_attention_heads: int = 8decoder_dim: int = 1024decoder_rates: tuple = (5, 5, 2, 2, 2, 2, 2)decoder_kernel_sizes: tuple = (9, 9, 4, 4, 4, 4, 4)resblock_kernel_sizes: tuple = (3, 7, 11)resblock_dilation_sizes: tuple = ((1, 3, 5), (1, 3, 5), (1, 3, 5))sampling_rate: int = 32000latents_mean: list[float] | None = Nonelatents_std: list[float] | None = None )
Parámetros
- encoder_dim (
int, por defecto64) — Ancho de canal de la primera convolución del codificador; se duplica en cada etapa de muestreo descendente. - encoder_rates (
tuple[int], por defecto(2, 4, 4, 5, 5)) — Pasos del codificador. Su producto (800) es la longitud del salto, es decir, 40 latentes/s a 32 kHz. - latent_dim (
int, por defecto2048) — Ancho del tronco del codificador y de la entrada del decodificador, antes/después de las proyecciones latentes. - latent_channels (
int, por defecto32) — Ancho del latente de difusión, es decir, los canales de salida demean_proj/logs_proj. - num_attention_heads (
int, por defecto8) — Número de cabezas en la proyección de atención causalpre_block. - decoder_dim (
int, por defecto1024) — Número inicial de canales de BigVGAN; se reduce a la mitad en cada etapa de muestreo ascendente. - decoder_rates (
tuple[int], por defecto(5, 5, 2, 2, 2, 2, 2)) — Tasas de remuestreo ascendente de BigVGAN. Su producto debe ser igual aprod(encoder_rates). - decoder_kernel_sizes (
tuple[int], por defecto(9, 9, 4, 4, 4, 4, 4)) — Tamaño del kernel de la convolución transpuesta por etapa de remuestreo ascendente. - resblock_kernel_sizes (
tuple[int], por defecto(3, 7, 11)) — Tamaños de los núcleos de los bloques residuales AMP paralelos en cada etapa de muestreo ascendente. - resblock_dilation_sizes (
tuple[tuple[int]], por defecto((1, 3, 5), (1, 3, 5), (1, 3, 5))) — Dilaciones por bloque AMP. - sampling_rate (
int, por defecto32000) — Tasa de muestreo de la forma de onda. - latents_mean (
list[float], opcional) — Media latente por canal que utiliza el pipeline para normalizar / denormalizar los latentes. - latents_std (
list[float], opcional) — Desviación estándar latente por canal que utiliza el pipeline para normalizar / denormalizar los latentes.
El autoencoder de audio utilizado por MiniMax-H3: un codificador convolucional de linaje DAC y un decodificador BigVGAN, que opera directamente sobre formas de onda mono de 32 kHz.
Este modelo hereda de ModelMixin. Consulta la documentación de la superclase para los métodos genéricos que la biblioteca implementa para todos los modelos (como la descarga o el guardado).
encode
< source >( sample: Tensorreturn_dict: bool = True ) → MiniMaxH3AudioEncoderOutput or tuple
Parámetros
- sample (
torch.Tensor) — Onda mono de forma[batch_size, 1, samples]. MiniMax-H3 pasa los dos canales estéreo de un clip de referencia comobatch_size = 2. - return_dict (
bool, por defectoTrue) — Si se debe devolver unMiniMaxH3AudioEncoderOutputen lugar de una tupla simple.
Devuelve
MiniMaxH3AudioEncoderOutput o tuple
La posterior latente sobre [batch_size, latent_channels, samples / 800].
Codifica una forma de onda en el posterior latente de audio.
La forma de onda se rellena a la derecha hasta un múltiplo de hop_length (800 muestras) primero. MiniMax-H3 siempre consume la media posterior (latent_dist.mode()); la cabeza logs_proj nunca se evalúa en el pipeline de referencia.
decode
< source >( latents: Tensorreturn_dict: bool = True ) → DecoderOutput or tuple
Parámetros
- latents (
torch.Tensor) — Latentes denormalizados de forma[batch_size, latent_channels, num_frames]. MiniMax-H3 pasa los dos canales estéreo comobatch_size = 2. - return_dict (
bool, por defectoTrue) — Si se debe devolver un DecoderOutput en lugar de una tupla simple.
Devuelve
DecoderOutput o tuple
Forma de onda de forma [batch_size, 1, num_frames * 800], limitada a [-1, 1].
Decodifica los latentes de audio en una forma de onda.
forward
< source >( sample: Tensorsample_posterior: bool = Falsereturn_dict: bool = Truegenerator: typing.Optional[torch.Generator] = None ) → DecoderOutput or tuple
Parámetros
- sample (
torch.Tensor) — Onda monofónica de forma[batch_size, 1, samples]. - sample_posterior (
bool, por defectoFalse) — Si se debe muestrear la posterior en lugar de tomar su modo. MiniMax-H3 utiliza el modo. - return_dict (
bool, por defectoTrue) — Si se debe devolver un DecoderOutput en lugar de una tupla simple. - generator (
torch.Generator, opcional) — Generador utilizado cuandosample_posterior=True.
Devuelve
DecoderOutput o tuple
La forma de onda de ida y vuelta de forma [batch_size, 1, num_frames * 800], limitada a [-1, 1].
Codificar y luego decodificar una forma de onda.