# StableAudio3DiTModel

نموذج تحويل انتشاري (DiT) لتنبؤ السرعة بتدفق مُصحَّح لتوليد الصوت، يُستخدم في [Stable Audio 3](https://stability.ai/news-updates/meet-stable-audio-3-the-model-family-built-for-artistic-experimentation-with-open-weight-models).

يُنفّذ كل `StableAudio3DiTBlock` ما يلي:

1. **الانتباه الذاتي** — انتباه متعدد الرؤوس التفاضلي مع تضمينات الموضع الدوارة (RoPE).
2. **الانتباه المتقاطع** — ينتبه إلى تسلسل الرموز من مُشفّر النص T5Gemma.
3. **التغذية الأمامية** — إسقاط SwiGLU.

يُشترط النموذج على **خطوة زمنية** (خصائص فورييه أسية → إسقاط خطي) وعلى **متجه اشتراط عام** (تضمين المدة من [StableAudio3DurationEmbedder](/docs/diffusers/v0.43.0/ar/api/pipelines/stable_audio_3#diffusers.StableAudio3DurationEmbedder)).

## StableAudio3DiTModel[[diffusers.StableAudio3DiTModel]]

#### diffusers.StableAudio3DiTModel[[diffusers.StableAudio3DiTModel]]

```python
diffusers.StableAudio3DiTModel(io_channels: int = 256, patch_size: int = 1, embed_dim: int = 1536, depth: int = 24, num_heads: int = 24, cond_token_dim: int = 768, global_cond_dim: int = 768, local_add_cond_dim: int = 257, timestep_features_dim: int = 256, ff_mult: float = 4.0, num_memory_tokens: int = 64, use_differential_attention: bool = True)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_stable_audio3.py#L403)

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

io_channels (`int`، القيمة الافتراضية 256) : عدد قنوات الحالة الكامنة.

patch_size (`int`، القيمة الافتراضية 1) : حجم البقعة الزمنية المطبَّق قبل المحوّل.

embed_dim (`int`، القيمة الافتراضية 1536) : بُعد المخفي في Transformer.

depth (`int`، القيمة الافتراضية 24) : عدد طبقات `StableAudio3DiTBlock`.

num_heads (`int`، القيمة الافتراضية 24) : عدد رؤوس الانتباه.

cond_token_dim (`int`، القيمة الافتراضية 768) : بُعد رموز سياق الانتباه المتقاطع.

global_cond_dim (`int`، القيمة الافتراضية 768) : بُعد تضمين المدة الإجمالية.

local_add_cond_dim (`int`، القيمة الافتراضية 257) : قنوات الموتر الإضافي المحلي (inpaint).

timestep_features_dim (`int`، القيمة الافتراضية 256) : بُعد المخرج لميزات خطوة الزمن (Fourier timestep features).

ff_mult (`float`، القيمة الافتراضية 4.0) : معامل توسيع الشبكة الأمامية SwiGLU.

num_memory_tokens (`int`، القيمة الافتراضية 64) : عدد رموز الذاكرة القابلة للتعلّم.

use_differential_attention (`bool`، القيمة الافتراضية `True`) : تفعيل الانتباه الذاتي/التقاطعي التفاضلي.

هيكل [Stable Audio 3](https://stability.ai/news/stable-audio-3) المعتمد على Diffusion Transformer (DiT).

يستقبل النموذج دفعة من الكامنات الصوتية الضجيج، وخطوة زمنية قياسية، وسياق انتباه متقاطع (رموز النص والمدة المُسقطين)، وتضمين مدة عام، ويتنبأ بحقل السرعة (هدف التدفق المُصحَّح).

التكييف:
- يتم إسقاط سياق الانتباه المتقاطع (`encoder_hidden_states`) بواسطة `to_cond_embed`.
- يُخضع تضمين المدة الزمني (`global_hidden_states`) للتحويل بواسطة `to_global_embed`، ثم يُجمع مع تضمين خطوة الزمن، ثم يُوسَّع بواسطة `global_cond_embedder` إلى تعديل AdaLN لكل كتلة.
- يُخضع `local_add_cond` (للتلوين الداخلي) إلى الإسقاط على مستوى كل كتلة بواسطة `to_local_embed`.

تُضاف رموز قابلة للتعلم بعدد `num_memory_tokens` إلى بداية تسلسل الصوت داخل المحوّل، ثم تُزال قبل الإسقاط النهائي.

#### forward[[diffusers.StableAudio3DiTModel.forward]]

```python
forward(hidden_states: Tensor, timestep: Tensor, encoder_hidden_states: Tensor, global_hidden_states: Tensor, encoder_attention_mask: typing.Optional[torch.Tensor] = None, local_add_cond: typing.Optional[torch.Tensor] = None, return_dict: bool = True)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_stable_audio3.py#L521)

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

hidden_states (`torch.Tensor`) : صوت كامن ضوضائي `(batch, io_channels, T)`.

timestep (`torch.Tensor`) : خطوة الانتشار `(batch,)` ضمن `[0, 1]`.

encoder_hidden_states (`torch.Tensor`) : سياق الانتباه المتقاطع `(batch, T_ctx, cond_token_dim)`.

global_hidden_states (`torch.Tensor`) : تضمين المدة الإجمالية `(batch, global_cond_dim)`.

encoder_attention_mask (`torch.Tensor`، *اختياري*) : قناع منطقي `(batch, T_ctx)`، حيث `True` = صالح.

local_add_cond (`torch.Tensor`، *اختياري*) : شرط إضافي محلي (للتعبئة) `(batch, local_add_cond_dim, T)`.

return_dict (`bool`، القيمة الافتراضية `True`) : ما إذا كان يجب إرجاع `StableAudio3DiTModelOutput`.

**يعيد:** `StableAudio3DiTModelOutput` أو `tuple`

حقل السرعة المتوقع، بنفس شكل `hidden_states`.

## StableAudio3DiTBlock[[diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTBlock]]

#### diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTBlock[[diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTBlock]]

```python
diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTBlock(dim: int, context_dim: int, dim_heads: int = 64, use_differential: bool = True, ff_mult: float = 4.0, local_add_cond_dim: int = 257)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_stable_audio3.py#L316)

كتلة تحويل DiT واحدة من نوع SA3.

ترتيب العمليات:
1. انتباه ذاتي مُعدَّل بواسطة AdaLN (RoPE جزئي، تطبيع RMS لـ QK)
2. انتباه متقاطع إلى سياق النص/المدة (تطبيع مسبق بسيط RMS)
3. شبكة عصبية أمامية SwiGLU مُعدَّلة بواسطة AdaLN

تعديل AdaLN هو `to_scale_shift_gate + global_modulation`، مقسّم إلى ستة أجزاء `(scale_attn, shift_attn, gate_attn, scale_ff, shift_ff, gate_ff)`. يتم قياس كل فرع مُبوَّب بواسطة `sigmoid(1 - gate)`. الانتباه المتقاطع *ليس* مُعدَّلاً بواسطة AdaLN، بما يتوافق مع المرجع (`cross_attend_norm` هو تطبيع RMS عادي).

عند توفير `local_seq` (في إعادة الرسم)، يتم إسقاطه لكل كتلة بواسطة `to_local_embed` وإضافته إلى مواضع الصوت في تدفق المتبقي بعد الانتباه المتقاطع (وقبل التقدّم الأمامي)، بما يتوافق مع المرجع.

## StableAudio3DiTModelOutput[[diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTModelOutput]]

#### diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTModelOutput[[diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTModelOutput]]

```python
diffusers.models.transformers.transformer_stable_audio3.StableAudio3DiTModelOutput(sample: Tensor)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_stable_audio3.py#L34)

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

sample (`torch.Tensor`) : حقل السرعة المتوقع، بنفس شكل مدخل `hidden_states`.

مخرجات [StableAudio3DiTModel](/docs/diffusers/v0.43.0/ar/api/models/stable_audio_3_transformer#diffusers.StableAudio3DiTModel).

