Diffusers documentation
AutoencoderKLMiniMaxH3Audio
AutoencoderKLMiniMaxH3Audio
MiniMax tarafından geliştirilen MiniMax-H3'te kullanılan ses otoenkoderı. Girişi ve çıkışı dalga formudur; mel ön ucu veya ayrı bir vokoder yoktur: DAC soyundan gelen, adım atmalı konvolüsyonlu bir enkoder, difüzyon gizli genişliğine doğru nedensel dikkat projeksiyonu ve bir BigVGAN dekoderı.
Encoder, 32 kHz'de 800 örnek atlar, yani saniyede 40 latent üretir; bu nedenle 800 * n örneklik bir dalga formu n latente kodlanır. Tam sayı atlamaya eşit olmayan dalga formları sağdan doldurulur.
Nedensel dikkat projeksiyonu, dikkat yönlendiricisinden geçer, bu nedenle set_attention_backend buna uygulanır; maskesi is_causal=True'dir ve bu, _native_npu hariç tüm backend'ler tarafından desteklenir; _native_npu'nin çekirdeği nedensel bir bayrak kabul etmez.
Autoencoder monodur ve skaler bir scaling_factor yerine latensleri kanal başına latents_mean / latents_std ile normalize eder. MiniMax-H3, stereo'yu iki batch öğesi olarak taşır ve her zaman posterior ortalama değerini (latent_dist.mode()) kullanır, asla bir örneklem kullanmaz.
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
sınıf 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 )
Parametreler
- encoder_dim (
int, varsayılan64) — Kodlayıcının ilk konvolüsyonunun kanal genişliği; her alt örnekleme aşamasında iki katına çıkar. - encoder_rates (
tuple[int], varsayılan(2, 4, 4, 5, 5)) — Encoder adımları. Bunların çarpımı (800) hop uzunluğudur, yani 32 kHz'de 40 latent/sn. - latent_dim (
int, varsayılan2048) — Latent projeksiyonlardan önce/sonra, kodlayıcı gövdesinin ve çözücü girdisinin genişliği. - latent_channels (
int, varsayılan32) — Difüzyon latentinin genişliği, yanimean_proj/logs_projçıktı kanalları. - num_attention_heads (
int, varsayılan8) —pre_blocknedensel dikkat projeksiyonundaki baş sayısı. - decoder_dim (
int, varsayılan1024) — BigVGAN başlangıç kanal sayısı; her örnekleme artırma aşamasında yarıya iner. - decoder_rates (
tuple[int], varsayılan(5, 5, 2, 2, 2, 2, 2)) — BigVGAN örnekleme artırma oranları. Bunların çarpımıprod(encoder_rates)değerine eşit olmalıdır. - decoder_kernel_sizes (
tuple[int], varsayılan(9, 9, 4, 4, 4, 4, 4)) — Her örnekleme aşaması için transpoze konvolüsyon çekirdek boyutu. - resblock_kernel_sizes (
tuple[int], varsayılan(3, 7, 11)) — Her örneklem artırma aşamasındaki paralel AMP artımsal bloklarının çekirdek boyutları. - resblock_dilation_sizes (
tuple[tuple[int]], varsayılan((1, 3, 5), (1, 3, 5), (1, 3, 5))) — AMP bloğu başına genişlemeler. - sampling_rate (
int, varsayılan32000) — Dalga formu örneklem hızı. - latents_mean (
list[float], isteğe bağlı) — Hattın latensleri normalize/normalize etmemek için kullandığı kanal başına latent ortalama. - latents_std (
list[float], isteğe bağlı) — Hattın latensleri normalize/normalize etmemek için kullandığı kanal başına latens standart sapması.
MiniMax-H3'ün kullandığı ses otoenkoderi: DAC soyundan gelen konvolüsyonel bir enkoder ve BigVGAN çözücü, doğrudan mono 32 kHz dalga formları üzerinde çalışır.
Bu model ModelMixin sınıfından devralır. Kütüphanenin tüm modeller için uyguladığı genel yöntemler (indirme veya kaydetme gibi) için üst sınıf belgelendirmesine bakın.
encode
< source >( sample: Tensorreturn_dict: bool = True ) → MiniMaxH3AudioEncoderOutput or tuple
Parametreler
- sample (
torch.Tensor) —[batch_size, 1, samples]biçiminde mono dalga formu. MiniMax-H3, referans kliğin iki stereo kanalınıbatch_size = 2olarak iletir. - return_dict (
bool, varsayılanTrue) — Düz bir tuple yerineMiniMaxH3AudioEncoderOutputdöndürülüp döndürülmemesi.
Dönüş değeri
MiniMaxH3AudioEncoderOutput veya tuple
[batch_size, latent_channels, samples / 800] üzerindeki gizli posterior.
Bir dalga formunu ses latent posterior'ına kodlayın.
Dalga formu, önce hop_length'in (800 örnek) katına sağdan dolgu yapılır. MiniMax-H3, her zaman posterior ortalama değerini (latent_dist.mode()) kullanır — logs_proj başlığı, referans hattı tarafından asla değerlendirilmez.
decode
< source >( latents: Tensorreturn_dict: bool = True ) → DecoderOutput or tuple
Parametreler
- latents (
torch.Tensor) —[batch_size, latent_channels, num_frames]biçiminde normalizasyonu kaldırılmış latents. MiniMax-H3, iki stereo kanalınıbatch_size = 2olarak iletir. - return_dict (
bool, varsayılanTrue) — Düz bir tuple yerine DecoderOutput döndürülüp döndürülmemesi.
Dönüş değeri
DecoderOutput veya tuple
[batch_size, 1, num_frames * 800] biçiminde, [-1, 1] aralığına sınırlanmış dalga formu.
Ses latentlerini bir dalga formuna çözümlen.
forward
< source >( sample: Tensorsample_posterior: bool = Falsereturn_dict: bool = Truegenerator: typing.Optional[torch.Generator] = None ) → DecoderOutput or tuple
Parametreler
- sample (
torch.Tensor) —[batch_size, 1, samples]biçiminde mono dalga formu. - sample_posterior (
bool, varsayılanFalse) — Mod alınmak yerine posteriorun örneklenip örneklenmeyeceğini belirtir. MiniMax-H3 modu kullanır. - return_dict (
bool, varsayılanTrue) — Düz bir tuple yerine DecoderOutput döndürülüp döndürülmemesi. - generator (
torch.Generator, isteğe bağlı) —sample_posterior=Trueolduğunda kullanılan üreteç.
Dönüş değeri
DecoderOutput veya tuple
[batch_size, 1, num_frames * 800] biçiminde, [-1, 1] aralığına sınırlanmış gidiş-dönüş dalgası formu.
Bir dalga formunu kodlayın ardından çözümlen.