Diffusers documentation

AutoencoderKLMiniMaxH3Audio

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)) — حجم نواة الالتفاف المعكوس (Transposed-convolution) لكل مرحلة من مراحل رفع العينة (upsampling).
  • resblock_kernel_sizes (tuple[int]، القيمة الافتراضية (3, 7, 11)) — أحجام النوى (Kernel sizes) للكتل المتبقية المتوازية من نوع AMP في كل مرحلة من مراحل رفع العينة (upsampling).
  • resblock_dilation_sizes (tuple[tuple[int]])، القيمة الافتراضية ((1, 3, 5), (1, 3, 5), (1, 3, 5))) — قيم التمدد (dilations) لكل كتلة AMP.
  • sampling_rate (int، القيمة الافتراضية 32000) — معدل أخذ عينات الموجة.
  • latents_mean (list[float]، اختياري) — متوسط الكامن لكل قناة يستخدمه خط الأنابيب لتطبيع/إلغاء تطبيع الكامنين.
  • latents_std (list[float]، اختياري) — انحراف معياري لكل قناة من الكامنات (latents) تستخدمه خط المعالجة (pipeline) لتطبيع الكامنات وإزالة تطبيعها.

المُرمِّز الصوتي التلقائي المستخدم في MiniMax-H3: مُرمِّز تجميعي من سلالة DAC ومُفكِّك BigVGAN، يعمل مباشرة على موجات أحادية التردد 32 كيلو هرتز.

يرث هذا النموذج من ModelMixin. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع النماذج (مثل التحميل أو الحفظ).

encode

< >

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

المعاملات

  • sample (torch.Tensor) — موجة أحادية (Mono) من الشكل [batch_size, 1, samples]. يمرر MiniMax-H3 قناتي الصوت الستيريو (Stereo) لمقطع مرجعي على شكل batch_size = 2.
  • return_dict (bool، القيمة الافتراضية True) — ما إذا كان يجب إرجاع MiniMaxH3AudioEncoderOutput بدلاً من tuple عادي.

يعيد

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) — قيم latents غير المعيارية ذات الشكل [batch_size, latent_channels, num_frames]. يمرر MiniMax-H3 قناتي stereo كـ batch_size = 2.
  • return_dict (bool، القيمة الافتراضية True) — ما إذا كان يجب إرجاع DecoderOutput بدلاً من tuple عادي.

يعيد

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) — موجة أحادية (Mono) بأبعاد [batch_size, 1, samples].
  • sample_posterior (bool، القيمة الافتراضية False) — ما إذا كان سيتم أخذ عينة من التوزيع اللاحق بدلاً من أخذ وضعه. يستخدم MiniMax-H3 الوضع.
  • return_dict (bool، القيمة الافتراضية True) — ما إذا كان يجب إرجاع DecoderOutput بدلاً من tuple عادي.
  • generator (torch.Generator، اختياري) — المولّد المستخدم عند sample_posterior=True.

يعيد

DecoderOutput أو tuple

موجة الصوت المُعاد إرسالها ذات الشكل [batch_size, 1, num_frames * 800]، والمقيدة بالحدود [-1, 1].

encode ثم decode موجة صوتية.

Update on GitHub