Diffusers documentation

AutoencoderKLMiniMaxH3Audio

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.43.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

AutoencoderKLMiniMaxH3Audio

Аудио-автоэнкодер, используемый в MiniMax-H3 от MiniMax. Он принимает на вход и выдает на выходе волновые формы, без mel-предобработки и отдельного вокодера: стридовый свёрточный энкодер линейки DAC, проекция с причинным вниманием на ширину латентного пространства диффузии и декодер BigVGAN.

Кодер пропускает 800 сэмплов при частоте 32 кГц, то есть 40 латентов в секунду, поэтому волновая форма из 800 * n сэмплов кодируется в n латентов. Волновые формы, длина которых не кратна размеру пропуска, дополняются нулями справа.

Проекция с каузальным вниманием проходит через диспетчер внимания, поэтому set_attention_backend на неё распространяется; её маска — is_causal=True, которую учитывают все бэкенды, кроме _native_npu, чьё ядро не принимает флаг каузальности.

Автоэнкодер моно, и он нормализует латенты по каналам с помощью latents_mean / latents_std, а не скалярного scaling_factor. MiniMax-H3 передаёт стерео как два элемента batch и всегда использует среднее значение апостериорного распределения (latent_dist.mode()), а не выборку.

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

класс 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 )

Параметры

  • encoder_dim (int, по умолчанию 64) — Ширина каналов первого свёрточного слоя энкодера; удваивается на каждом этапе понижения разрешения.
  • encoder_rates (tuple[int], по умолчанию (2, 4, 4, 5, 5)) — Шаги кодировщика. Их произведение (800) — это длина шага, то есть 40 латентов/с при 32 кГц.
  • latent_dim (int, по умолчанию 2048) — Ширина стержня энкодера и входа декодера, до/после латентных проекций.
  • latent_channels (int, по умолчанию 32) — Ширина латентного пространства диффузии, то есть количество выходных каналов mean_proj / logs_proj.
  • num_attention_heads (int, по умолчанию 8) — Количество головок в проекции причинно-следственного внимания pre_block.
  • decoder_dim (int, по умолчанию 1024) — Начальное количество каналов BigVGAN; уменьшается вдвое на каждом этапе апсемплинга.
  • decoder_rates (tuple[int], по умолчанию (5, 5, 2, 2, 2, 2, 2)) — Коэффициенты апсемплинга BigVGAN. Их произведение должно быть равно prod(encoder_rates).
  • decoder_kernel_sizes (tuple[int], по умолчанию (9, 9, 4, 4, 4, 4, 4)) — Размер ядра транспонированной свёртки для каждого этапа апсемплинга.
  • resblock_kernel_sizes (tuple[int], по умолчанию (3, 7, 11)) — Размеры ядер параллельных AMP-остаточных блоков на каждом этапе апсемплинга.
  • resblock_dilation_sizes (tuple[tuple[int]], по умолчанию ((1, 3, 5), (1, 3, 5), (1, 3, 5))) — Размеры дилейшена для каждого блока AMP.
  • sampling_rate (int, по умолчанию 32000) — Частота дискретизации звукового сигнала.
  • latents_mean (list[float], необязательный) — Среднее значение по каналам для латентов, которое пайплайн использует для нормализации и денормализации латентов.
  • latents_std (list[float], необязательный) — Стандартное отклонение латентов по каналам, которое пайплайн использует для нормализации и денормализации латентов.

Аудио-автоэнкодер, используемый в MiniMax-H3: свёрточный энкодер линейки DAC и декодер BigVGAN, работающие непосредственно с монофоническими волновыми формами частотой 32 кГц.

Эта модель наследуется от ModelMixin. См. документацию родительского класса для общих методов, которые библиотека реализует для всех моделей (например, загрузка или сохранение).

encode

< >

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

Параметры

  • sample (torch.Tensor) — Моно-волна формы [batch_size, 1, samples]. MiniMax-H3 передаёт два стереоканала референсного клипа как batch_size = 2.
  • return_dict (bool, по умолчанию True) — Определяет, следует ли возвращать MiniMaxH3AudioEncoderOutput вместо обычного кортежа.

Возвращает

MiniMaxH3AudioEncoderOutput или tuple

Скрытое апостериорное распределение для [batch_size, latent_channels, samples / 800].

Кодируйте звуковую волну в латентное апостериорное распределение аудио.

Сначала волна дополняется нулями справа до кратного hop_length (800 выборок). MiniMax-H3 всегда использует апостериорное среднее (latent_dist.mode()) — головка logs_proj никогда не вычисляется в эталонном конвейере.

decode

< >

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

Параметры

  • latents (torch.Tensor) — Стендартизованные латенты формы [batch_size, latent_channels, num_frames]. MiniMax-H3 передает два стереоканала как batch_size = 2.
  • return_dict (bool, по умолчанию True) — Определяет, следует ли возвращать DecoderOutput вместо обычного кортежа.

Возвращает

DecoderOutput или tuple

Волновая форма формы [batch_size, 1, num_frames * 800], ограниченная диапазоном [-1, 1].

Декодирование аудиолатентов в звуковой сигнал.

forward

< >

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

Параметры

  • sample (torch.Tensor) — Монофоническая волна формы [batch_size, 1, samples].
  • sample_posterior (bool, по умолчанию False) — Определяет, следует ли выбирать значения из апостериорного распределения, а не использовать его моду. MiniMax-H3 использует моду.
  • return_dict (bool, по умолчанию True) — Определяет, следует ли возвращать DecoderOutput вместо обычного кортежа.
  • generator (torch.Generator, необязательный) — Генератор, используемый при sample_posterior=True.

Возвращает

DecoderOutput или tuple

Волновая форма, прошедшая цикл преобразований, с формой [batch_size, 1, num_frames * 800], ограниченной диапазоном [-1, 1].

Кодируйте, а затем декодируйте звуковую волну.

Update on GitHub