Buckets:

hf-doc-build/doc / diffusers /v0.43.0 /ar /api /models /autoencoder_same.md
mishig's picture
|
download
raw
11.8 kB
# AutoencoderSAME
يُستخدم مُشفِّر الموسيقى المُحاذاة دلاليًا **SAME** (Semantically-Aligned Music Encoder) كمشفر-فك تشفير في [Stable Audio 3](https://stability.ai/news-updates/meet-stable-audio-3-the-model-family-built-for-artistic-experimentation-with-open-weight-models) لضغط موجات الصوت الستيريو إلى تسلسل كامن مُدمج وإعادة بنائها.
يجمع المُشفِّر وحدات `SAMETransformerResamplingBlock`، حيث تجمع كل وحدة منها عددًا ثابتًا من إطارات البقع الصوتية وتنتج رمزًا واحدًا قابلًا للتعلم عبر محوّل تفاضلي. يعكس المُفكِّك هذه العملية، موسعًا كل رمز كامن مرة أخرى إلى بقعة من إطارات الصوت.
يعمل عنق الزجاجة المعيار الناعم (`SoftNormBottleneck`) على تطبيع الكمونيات قبل وبعد نموذج الانتشار، مما يوفر ديناميكيات تدريب مستقرة.
## AutoencoderSAME[[diffusers.AutoencoderSAME]]
#### diffusers.AutoencoderSAME[[diffusers.AutoencoderSAME]]
```python
diffusers.AutoencoderSAME(audio_channels: int = 2, patch_size: int = 256, encoder_channels: int = 128, encoder_c_mults: typing.List[int] = (6,), encoder_strides: typing.List[int] = (16,), encoder_transformer_depths: typing.List[int] = (6,), latent_dim: int = 256, use_differential_attention: bool = True, dim_heads: int = 64, ff_mult: int = 3, sliding_window: int = 1, encoder_sinusoidal_blocks: typing.List[int] = (0,), decoder_sinusoidal_blocks: typing.List[int] = (0,), sampling_rate: int = 44100)
```
[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L608)
**المعاملات:**
audio_channels : عدد قنوات الصوت (2 للستيريو).
patch_size : حجم الباتش غير المتداخل المطبَّق قبل مُشفِّر TRB (ومُعاكس بعد مُفكِّك TRB). يساهم بـ `patch_size ×` في نسبة التصغير الإجمالية. القيمة الإنتاجية: 256.
encoder_channels : عدد القنوات الأساسي لـ TRB. 128 لـ SAME-S، و256 لـ SAME-L.
encoder_c_mults : مضاعف القناة لكل مستوى TRB (إدخال واحد لكل TRB). يستخدم كل من SAME-S و SAME-L `(6,)` — وهو TRB واحد تكون أبعاده المخفية `encoder_channels × 6`.
encoder_strides : خطوة التصفية/التوسيع لكل مستوى TRB. يستخدم كلٌّ من SAME-S و SAME-L `(16,)` — أي TRB واحد بخطوة 16.
encoder_transformer_depths : عدد طبقات Transformer لكل مستوى TRB. 6 لـ SAME-S، و12 لـ SAME-L.
latent_dim : بُعد الفضاء الكامن. 256 لكلا النسختين.
use_differential_attention : إذا كان `True`، فاستخدم الانتباه التفاضلي داخل كل كتلة محوّل TRB (مفعّل افتراضيًا لـ SAME-S/L).
dim_heads : بُعد رأس الانتباه. 64 للإنتاج SAME-S/L.
ff_mult : معامل توسيع الشبكة العصبية الأمامية SwiGLU.
sliding_window : نصف عرض النافذة المنزلقة (بالوحدات الكامنة) لانتباه قناع النطاق. يستخدم إنتاج SAME-S/L القيمة 1.
encoder_sinusoidal_blocks : عدد طبقات الترانسفورمر المتتالية التي تستخدم بوابة `sin` في FFN داخل المُشفِّر (SAME-L: `(0,)`).
decoder_sinusoidal_blocks : عدد طبقات الترانسفورمر المتتالية التي تستخدم بوابة `sin` في دالة FFN داخل المُفكّك (SAME-L: `(8,)`).
sampling_rate : معدل عينة الصوت بالهرتز (مثل 44100).
مشفّر الموسيقى المتوافق دلاليًا (SAME) الترميزي التلقائي من *Stable Audio 3* ([arXiv 2605.17991](https://arxiv.org/abs/2605.17991)).
يتكون النموذج من:
- **تضمين الباتش** — يعيد تشكيل الصوت الستيريو إلى باتشات غير متداخلة، مستبدلاً الزمن بالقنوات (`patch_size ×` تخفيض للعينة، دون معاملات متعلمة).
- **مكدس TRB المُشفِّر** — كتل `SAMETransformerResamplingBlock` تُنجز مزيداً من إعادة العينات بتقليل الحجم بمعامل `∏(encoder_strides)`.
- **عنق الزجاجة المعياري الناعم** — تطبيع أفيني قابل للتعلم مع انحراف معياري جارٍ.
- **مكدس TRB للوحِ فكّ الترميز** — يعكس مُرمِّزَ البيانات في الاتجاه المعاكس.
- **Unpatch** — يعيد تشكيل القنوات إلى بُعد الزمن.
نسبة التجميع الإجمالية: `patch_size × ∏(encoder_strides)`.
تتطابق المعلمات الفائقة الافتراضية مع نقطة الفحص **SAME-S** (`stabilityai/SAME-S`). لتحميل **SAME-L** (`stabilityai/SAME-L`، المستخدم في SA3 Medium) مرّر `encoder_channels=256, encoder_transformer_depths=(12,)`.
```python
# SAME-S (108 M params, used by SA3 small models) model = AutoencoderSAME() # default values
# SAME-L (852 M params, used by SA3 Medium) model = AutoencoderSAME(encoder_channels=256,
encoder_transformer_depths=(12,))
```
#### ترميز[[diffusers.AutoencoderSAME.encode]]
```python
encode(sample: Tensor, return_dict: bool = True)
```
[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L733)
**المعاملات:**
sample : `(B, audio_channels, T)` متجه الموجة.
return_dict : إذا كان `True` فقم بإرجاع `AutoencoderSAMEOutput`.
**يعيد:**
مصفوفة كامنة (Latent tensor) ذات الشكل `(B, latent_dim, T // downsampling_ratio)` (مغلّفة في `AutoencoderSAMEOutput` عندما يكون *return_dict* بقيمة `True`).
ترميز الصوت المجسم إلى متغيرات كامنة.
#### فك الترميز[[diffusers.AutoencoderSAME.decode]]
```python
decode(latents: Tensor, return_dict: bool = True)
```
[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L758)
**المعاملات:**
latents : `(B, latent_dim, T_latent)` متجه كامن.
return_dict : إذا كان `True` فقم بإرجاع `AutoencoderSAMEDecoderOutput`.
**يعيد:**
مصفوفة الموجة (Waveform tensor) ذات الشكل `(B, audio_channels, T_latent × downsampling_ratio)` (مغلّفة في `AutoencoderSAMEDecoderOutput` عندما يكون *return_dict* بقيمة `True`).
فكّ تشفير الكمونيات (latents) مرة أخرى إلى صوت ستيريو.
#### forward[[diffusers.AutoencoderSAME.forward]]
```python
forward(sample: Tensor, return_dict: bool = True)
```
[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L783)
**المعاملات:**
sample : `(B, audio_channels, T)` متجه الموجة.
return_dict : إذا كان `True` فقم بإرجاع `AutoencoderSAMEDecoderOutput`.
**يعيد:**
موجة الإشارة المُعاد بناؤها (بنفس شكل *sample*، وقد تكون أطول بسبب الحشو)، مغلفة في `AutoencoderSAMEDecoderOutput` عندما يكون *return_dict* هو `True`.
ترميز *sample* وفك الترميز فوريًا (إعادة البناء).
## SAMETransformerResamplingBlock[[diffusers.models.autoencoders.autoencoder_same.SAMETransformerResamplingBlock]]
#### diffusers.models.autoencoders.autoencoder_same.SAMETransformerResamplingBlock[[diffusers.models.autoencoders.autoencoder_same.SAMETransformerResamplingBlock]]
```python
diffusers.models.autoencoders.autoencoder_same.SAMETransformerResamplingBlock(in_channels: int, out_channels: int, stride: int, mode: str = 'encoder', transformer_depth: int = 3, dim_heads: int = 128, use_differential: bool = True, ff_mult: int = 3, sliding_window: int = 1, sinusoidal_blocks: int = 0)
```
[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L294)
**المعاملات:**
in_channels : عدد قنوات الإدخال.
out_channels : عدد قنوات الإخراج.
stride : عامل التصفية/التوسيع.
mode : `"encoder"` أو `"decoder"`.
transformer_depth : عدد طبقات `TransformerBlock`.
dim_heads : بُعد رأس الانتباه.
use_differential : ما إذا كان سيتم استخدام الانتباه التفاضلي.
ff_mult : معامل التوسّع في الشبكة الأمامية.
sliding_window : نصف عرض نافذة الانزلاق في الكمون (نصف عرض النطاق هو `sliding_window * (stride + 1)`).
sinusoidal_blocks : عدد طبقات الترانسفورمر النهائية التي تستخدم بوابة FFN من نوع `sin` بدلاً من SiLU.
الوحدة الأساسية المكوِّنة لـ SAME.
**وضع المُشفِّر** (خطوة S): يجمع S إطارات إدخال متتالية في مقطع واحد، ويضيف تضمين مخرجات قابلًا للتعلم واحدًا، ثم يشغّل طبقات D من محوّل التحويل (transformer) على تسلسل المقطع المسطّح بالكامل، ويحتفظ بتضمين المخرجات فقط → تقليل العينة بمعامل S.
**وضع المُفكِّك** (خطوة S): يجمع إطار إدخال واحد مع S تضمينات مخرجات قابلة للتعلم، ثم يشغّل طبقات D من محوّل التحويل على التسلسل المسطّح الكامل، ثم يحتفظ بتضمينات المخرجات S → ما يؤدي إلى رفع العينة بمقدار S.
تستخدم آلية الانتباه قناع نطاق *نافذة منزلقة* متداخلة فوق تسلسل المقاطع المسطّح: حيث ينتبه كل رمز إلى `sliding_window * (stride + 1)` من الجيران على كل جانب. يتم حساب RoPE على طول التسلسل الكامل. يتطابق هذا تماماً مع التنفيذ المرجعي (فقط مقطع واحد غير متداخل كان سيُطابق).
## AutoencoderSAMEOutput[[diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEOutput]]
#### diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEOutput[[diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEOutput]]
```python
diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEOutput(latents: Tensor)
```
[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L52)
مخرجات [AutoencoderSAME.encode()](/docs/diffusers/v0.43.0/ar/api/models/autoencoder_same#diffusers.AutoencoderSAME.encode).
## AutoencoderSAMEDecoderOutput[[diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput]]
#### diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput[[diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput]]
```python
diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput(sample: Tensor)
```
[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/autoencoders/autoencoder_same.py#L59)
مخرجات [AutoencoderSAME.decode()](/docs/diffusers/v0.43.0/ar/api/models/autoencoder_same#diffusers.AutoencoderSAME.decode).

Xet Storage Details

Size:
11.8 kB
·
Xet hash:
2adcb0deb1e9975298df02a582166799a99c4cc2c643399fd3eae6c8993add1e

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.