Diffusers documentation
AutoencoderSAME
AutoencoderSAME
يُستخدم مُشفِّر الموسيقى المُحاذاة دلاليًا SAME (Semantically-Aligned Music Encoder) كمشفر-فك تشفير في Stable Audio 3 لضغط موجات الصوت الستيريو إلى تسلسل كامن مُدمج وإعادة بنائها.
يجمع المُشفِّر وحدات SAMETransformerResamplingBlock، حيث تجمع كل وحدة منها عددًا ثابتًا من إطارات البقع الصوتية وتنتج رمزًا واحدًا قابلًا للتعلم عبر محوّل تفاضلي. يعكس المُفكِّك هذه العملية، موسعًا كل رمز كامن مرة أخرى إلى بقعة من إطارات الصوت.
يعمل عنق الزجاجة ذو التطبيع الناعم (SoftNormBottleneck) على تطبيع الكمونيات قبل وبعد نموذج الانتشار، مما يوفر ديناميكيات تدريب مستقرة.
AutoencoderSAME
فئة diffusers.AutoencoderSAME
< source >( audio_channels: int = 2patch_size: int = 256encoder_channels: int = 128encoder_c_mults: typing.List[int] = (6,)encoder_strides: typing.List[int] = (16,)encoder_transformer_depths: typing.List[int] = (6,)latent_dim: int = 256use_differential_attention: bool = Truedim_heads: int = 64ff_mult: int = 3sliding_window: int = 1encoder_sinusoidal_blocks: typing.List[int] = (0,)decoder_sinusoidal_blocks: typing.List[int] = (0,)sampling_rate: int = 44100 )
المعاملات
- 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 transformer (مفعّل افتراضيًا لـ SAME-S/L). - dim_heads — بُعد رأس الانتباه. 64 للإنتاج SAME-S/L.
- ff_mult — معامل توسيع الشبكة العصبية الأمامية SwiGLU.
- sliding_window — نصف عرض نافذة الانزلاق (بالوحدات الكامنة) لانتباه قناع النطاق. يستخدم إنتاج SAME-S/L القيمة 1.
- encoder_sinusoidal_blocks — عدد طبقات الترانسفورمر النهائية لكل TRB التي تستخدم بوابة FFN من نوع
sinفي المُشفِّر (SAME-L:(0,)). - decoder_sinusoidal_blocks — عدد طبقات الترانسفورمر النهائية لكل TRB التي تستخدم بوابة FFN من نوع
sinفي المُفكِّك (SAME-L:(8,)). - sampling_rate — معدل أخذ العينات الصوتي بالهرتز (مثل 44100).
مشفّر الموسيقى المتوافق دلاليًا (SAME) الترميزي التلقائي من Stable Audio 3 (arXiv 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,).
# 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,))encode
< source >( sample: Tensorreturn_dict: bool = True )
ترميز الصوت المجسم إلى متغيرات كامنة.
decode
< source >( latents: Tensorreturn_dict: bool = True )
فكّ تشفير الكمونيات (latents) مرة أخرى إلى صوت ستيريو.
forward
< source >( sample: Tensorreturn_dict: bool = True )
ترميز sample وفك الترميز فوريًا (إعادة البناء).
SAMETransformerResamplingBlock
فئة diffusers.models.autoencoders.autoencoder_same.SAMETransformerResamplingBlock
< source >( in_channels: intout_channels: intstride: intmode: str = 'encoder'transformer_depth: int = 3dim_heads: int = 128use_differential: bool = Trueff_mult: int = 3sliding_window: int = 1sinusoidal_blocks: int = 0 )
المعاملات
- 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 من محوّل التحويل (transformer) على التسلسل المسطّح بالكامل، ثم يحتفظ بتضمينات المخرجات S → ما يؤدي إلى رفع العينة بمقدار S.
تستخدم آلية الانتباه قناع نطاق نافذة منزلقة متداخلة فوق تسلسل المقاطع المسطّح: حيث ينتبه كل رمز إلى sliding_window * (stride + 1) من الجيران على كل جانب. يتم حساب RoPE على طول التسلسل الكامل. يتطابق هذا تمامًا مع التنفيذ المرجعي (فقط مقطع واحد غير متداخل كان سيُطابق).
AutoencoderSAMEOutput
فئة diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEOutput
< source >( latents: Tensor )
مخرجات AutoencoderSAME.encode().
AutoencoderSAMEDecoderOutput
فئة diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput
< source >( sample: Tensor )
مخرجات AutoencoderSAME.decode().