# AutoencoderKLMiniMaxH3Audio

المشفّر-المفكّك التلقائي للصوت المستخدم في [MiniMax-H3](https://huggingface.co/MiniMaxAI) من 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()`)، ولا يستهلك أي عيّنة.

```python
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]]

#### diffusers.AutoencoderKLMiniMaxH3Audio[[diffusers.AutoencoderKLMiniMaxH3Audio]]

```python
diffusers.AutoencoderKLMiniMaxH3Audio(encoder_dim: int = 64, encoder_rates: tuple[int, ...] = (2, 4, 4, 5, 5), latent_dim: int = 2048, latent_channels: int = 32, num_attention_heads: int = 8, decoder_dim: int = 1024, decoder_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 = 32000, latents_mean: list[float] | None = None, latents_std: list[float] | None = None)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3_audio.py#L489)

**المعاملات:**

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) للكتل المتبقية (Residual) المتوازية في 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]`, *اختياري*) : الانحراف المعياري الكامن لكل قناة الذي تستخدمه خط المعالجة لتطبيع/إلغاء تطبيع القيم الكامنة.

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

يرث هذا النموذج من [ModelMixin](/docs/diffusers/main/ar/api/models/overview#diffusers.ModelMixin). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع النماذج (مثل التحميل أو الحفظ).

#### ترميز[[diffusers.AutoencoderKLMiniMaxH3Audio.encode]]

```python
encode(sample: Tensor, return_dict: bool = True)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3_audio.py#L583)

**المعاملات:**

sample (`torch.Tensor`) : موجة أحادية (Mono) من الشكل `[batch_size, 1, samples]`. يمرر MiniMax-H3 قناتي الصوت الستيريو لمقطع مرجعي على شكل `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` أبداً بواسطة خط الأنابيب المرجعي.

#### فك الترميز[[diffusers.AutoencoderKLMiniMaxH3Audio.decode]]

```python
decode(latents: Tensor, return_dict: bool = True)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3_audio.py#L623)

**المعاملات:**

latents (`torch.Tensor`) : قيم الكاميرات غير المعيارية (Denormalized latents) ذات الشكل `[batch_size, latent_channels, num_frames]`. يمرر MiniMax-H3 قناتي الصوت الستيريو كـ `batch_size = 2`.

return_dict (`bool`، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع [DecoderOutput](/docs/diffusers/main/ar/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) بدلاً من tuple عادي.

**يعيد:** [DecoderOutput](/docs/diffusers/main/ar/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) أو `tuple`

موجة صوتية من الشكل `[batch_size, 1, num_frames * 800]`، مقيدة ضمن `[-1, 1]`.

فكّ ترميز الكامنات الصوتية إلى موجة.

#### forward[[diffusers.AutoencoderKLMiniMaxH3Audio.forward]]

```python
forward(sample: Tensor, sample_posterior: bool = False, return_dict: bool = True, generator: typing.Optional[torch.Generator] = None)
```

[المصدر](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_kl_minimax_h3_audio.py#L653)

**المعاملات:**

sample (`torch.Tensor`) : موجة أحادية (Mono) من الشكل `[batch_size, 1, samples]`.

sample_posterior (`bool`، القيمة الافتراضية `False`) : ما إذا كان سيتم أخذ عينة من التوزيع الخلفي بدلاً من أخذ وضعه. يستخدم MiniMax-H3 الوضع.

return_dict (`bool`، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع [DecoderOutput](/docs/diffusers/main/ar/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) بدلاً من tuple عادي.

generator (`torch.Generator`، *اختياري*) : المولّد المستخدم عند `sample_posterior=True`.

**يعيد:** [DecoderOutput](/docs/diffusers/main/ar/api/models/autoencoderkl_qwenimage#diffusers.models.autoencoders.vae.DecoderOutput) أو `tuple`

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

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

