Diffusers documentation

AutoencoderSAME

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

AutoencoderSAME

يُستخدم مُشفِّر الموسيقى المُحاذاة دلاليًا SAME (Semantically-Aligned Music Encoder) كمشفر-فك تشفير في Stable Audio 3 لضغط موجات الصوت الستيريو إلى تسلسل كامن مُدمج وإعادة بنائها.

يجمع المُشفِّر وحدات SAMETransformerResamplingBlock، حيث تجمع كل وحدة منها عددًا ثابتًا من إطارات البقع الصوتية وتنتج رمزًا واحدًا قابلًا للتعلم عبر محوّل تفاضلي. يعكس المُفكِّك هذه العملية، موسعًا كل رمز كامن مرة أخرى إلى بقعة من إطارات الصوت.

يعمل عنق الزجاجة ذو التطبيع الناعم (SoftNormBottleneck) على تطبيع الكمونيات قبل وبعد نموذج الانتشار، مما يوفر ديناميكيات تدريب مستقرة.

AutoencoderSAME

فئة diffusers.AutoencoderSAME

< >

( 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

< >

( sample: Tensorreturn_dict: bool = True )

المعاملات

  • sample — متجه موجي (waveform tensor) بأبعاد (B, audio_channels, T).
  • return_dict — إذا كانت True تُرجع AutoencoderSAMEOutput.

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

decode

< >

( latents: Tensorreturn_dict: bool = True )

المعاملات

  • latents — متجه كامن (latent tensor) بأبعاد (B, latent_dim, T_latent).
  • return_dict — إذا كانت True تُرجع AutoencoderSAMEDecoderOutput.

فكّ تشفير الكمونيات (latents) مرة أخرى إلى صوت ستيريو.

forward

< >

( sample: Tensorreturn_dict: bool = True )

المعاملات

  • sample — متجه موجي (waveform tensor) بأبعاد (B, audio_channels, T).
  • return_dict — إذا كانت True تُرجع AutoencoderSAMEDecoderOutput.

ترميز sample وفك الترميز فوريًا (إعادة البناء).

SAMETransformerResamplingBlock

فئة diffusers.models.autoencoders.autoencoder_same.SAMETransformerResamplingBlock

< >

( 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

< >

( latents: Tensor )

مخرجات AutoencoderSAME.encode().

AutoencoderSAMEDecoderOutput

فئة diffusers.models.autoencoders.autoencoder_same.AutoencoderSAMEDecoderOutput

< >

( sample: Tensor )

مخرجات AutoencoderSAME.decode().

Update on GitHub