Diffusers documentation

AutoencoderKLMiniMaxH3Audio

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

AutoencoderKLMiniMaxH3Audio

Bộ tự mã hóa âm thanh được sử dụng trong MiniMax-H3 của MiniMax. Nó nhận đầu vào dạng sóng và xuất ra dạng sóng, không có phần tiền xử lý mel và không có bộ tổng hợp âm thanh (vocoder) riêng biệt: bao gồm bộ mã hóa tích chập có bước nhảy theo dòng dõi DAC, phép chiếu chú ý nhân quả (causal-attention) lên chiều rộng ẩn của mô hình khuếch tán (diffusion), và bộ giải mã BigVGAN.

Bộ mã hóa nhảy 800 mẫu ở 32 kHz, tức là 40 latent mỗi giây, do đó một dạng sóng gồm 800 * n mẫu sẽ được mã hóa thành n latent. Các dạng sóng không phải là số nguyên lần của bước nhảy sẽ được đệm bên phải.

Chiếu chú ý nhân quả đi qua bộ điều phối chú ý, do đó set_attention_backend áp dụng cho nó; mặt nạ của nó là is_causal=True, được mọi backend tuân thủ ngoại trừ _native_npu, trong đó kernel của nó không nhận cờ nhân quả.

Autoencoder là mono, và nó chuẩn hóa latents theo từng kênh bằng latents_mean / latents_std thay vì một scaling_factor vô hướng. MiniMax-H3 xử lý stereo như hai mục batch, và nó luôn sử dụng trung bình hậu nghiệm (latent_dist.mode()), không bao giờ dùng một mẫu.

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

lớp 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 )

Tham số

  • encoder_dim (int, mặc định là 64) — Độ rộng kênh của lớp tích chập đầu tiên của bộ mã hóa; tăng gấp đôi ở mỗi giai đoạn hạ mẫu.
  • encoder_rates (tuple[int], mặc định là (2, 4, 4, 5, 5)) — Các bước nhảy (strides) của bộ mã hóa. Tích của chúng (800) là độ dài bước nhảy (hop length), tức là 40 latent/giây ở 32 kHz.
  • latent_dim (int, mặc định là 2048) — Chiều rộng của thân encoder và đầu vào của decoder, trước/sau các phép chiếu latent.
  • latent_channels (int, mặc định là 32) — Độ rộng của latent khuếch tán, tức là số kênh đầu ra của mean_proj / logs_proj.
  • num_attention_heads (int, mặc định là 8) — Số lượng đầu trong phép chiếu chú ý nhân quả pre_block.
  • decoder_dim (int, mặc định là 1024) — Số lượng kênh ban đầu của BigVGAN; được giảm một nửa ở mỗi giai đoạn upsampling.
  • decoder_rates (tuple[int], mặc định là (5, 5, 2, 2, 2, 2, 2)) — Tốc độ upsampling của BigVGAN. Tích của chúng phải bằng prod(encoder_rates).
  • decoder_kernel_sizes (tuple[int], mặc định là (9, 9, 4, 4, 4, 4, 4)) — Kích thước kernel của transposed-convolution cho mỗi giai đoạn upsampling.
  • resblock_kernel_sizes (tuple[int], mặc định là (3, 7, 11)) — Kích thước kernel của các khối AMP dư song song ở mỗi giai đoạn lấy mẫu lên.
  • resblock_dilation_sizes (tuple[tuple[int]], mặc định là ((1, 3, 5), (1, 3, 5), (1, 3, 5))) — Các giá trị dilation cho từng khối AMP.
  • sampling_rate (int, mặc định là 32000) — Tần số lấy mẫu của dạng sóng.
  • latents_mean (list[float], tùy chọn) — Trung bình latent theo từng kênh mà pipeline sử dụng để chuẩn hóa / khử chuẩn hóa latent.
  • latents_std (list[float], tùy chọn) — Độ lệch chuẩn tiềm ẩn theo từng kênh mà pipeline sử dụng để chuẩn hóa / khử chuẩn hóa các biến tiềm ẩn.

Autoencoder âm thanh được sử dụng bởi MiniMax-H3: một bộ mã hóa tích chập theo dòng DAC và một bộ giải mã BigVGAN, hoạt động trực tiếp trên dạng sóng mono 32 kHz.

Mô hình này kế thừa từ ModelMixin. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình (chẳng hạn như tải xuống hoặc lưu).

encode

< >

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

Tham số

  • sample (torch.Tensor) — Đường sóng mono có hình dạng [batch_size, 1, samples]. MiniMax-H3 truyền hai kênh stereo của một đoạn tham chiếu dưới dạng batch_size = 2.
  • return_dict (bool, mặc định là True) — Có nên trả về một MiniMaxH3AudioEncoderOutput thay vì một tuple thông thường hay không.

Trả về

MiniMaxH3AudioEncoderOutput hoặc tuple

Hậu nghiệm tiềm ẩn trên [batch_size, latent_channels, samples / 800].

Mã hóa một dạng sóng thành hậu nghiệm tiềm ẩn của âm thanh.

Tín hiệu sóng được đệm bên phải đến bội số của hop_length (800 mẫu) trước tiên. MiniMax-H3 luôn sử dụng mean hậu nghiệm (latent_dist.mode()) — đầu logs_proj không bao giờ được đánh giá bởi pipeline tham chiếu.

decode

< >

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

Tham số

  • latents (torch.Tensor) — Latents đã chuẩn hóa lại với shape [batch_size, latent_channels, num_frames]. MiniMax-H3 truyền hai kênh stereo dưới dạng batch_size = 2.
  • return_dict (bool, mặc định là True) — Có nên trả về một DecoderOutput thay vì một tuple thông thường hay không.

Trả về

DecoderOutput hoặc tuple

Dạng sóng có hình dạng [batch_size, 1, num_frames * 800], được kẹp trong khoảng [-1, 1].

Giải mã các ẩn âm thanh thành dạng sóng.

forward

< >

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

Tham số

  • sample (torch.Tensor) — Đường sóng đơn (mono waveform) có hình dạng [batch_size, 1, samples].
  • sample_posterior (bool, mặc định là False) — Có lấy mẫu từ phân phối hậu nghiệm thay vì lấy mode của nó hay không. MiniMax-H3 sử dụng mode.
  • return_dict (bool, mặc định là True) — Có nên trả về một DecoderOutput thay vì một tuple thông thường hay không.
  • generator (torch.Generator, tùy chọn) — Generator được sử dụng khi sample_posterior=True.

Trả về

DecoderOutput hoặc tuple

Đường sóng sau khi đi vòng qua có hình dạng [batch_size, 1, num_frames * 800], được kẹp trong khoảng [-1, 1].

Mã hóa rồi giải mã một dạng sóng.

Update on GitHub