MusicGen
Transformer مقابل LSTM مقابل RNN للموسيقى
ثلاث شبكات عصبية تتنافس على تأليف ألحان بأسلوب فولكلوري انطلاقًا من تدوين نصي.
- 3 معماريات
- 3 مُرمِّزات
التقنياتPyTorch
Keras
Streamlitmusic21FluidSynth + pydub
Poetry

نظرة عامة
أردت مقارنة منضبطة بين نماذج التسلسل الكلاسيكية الثلاثة (Transformer وLSTM وRNN) على بيانات موسيقية واحدة، بدل نموذج واحد مضبوط بعناية وتخمين لسبب نجاحه.
يمثّل MusicGen المقطوعات بتدوين ABC، وهو صيغة نصية للنوتة الموسيقية، ويدرّب كل بنية على مواصلة هذا النص رمزًا تلو الآخر. نفّذت Transformer وLSTM وRNN من الصفر في PyTorch؛ ولـ LSTM وRNN أيضًا نسختان مبنيتان على طبقات PyTorch الجاهزة. أضفت ثلاثة مُقطِّعات (tokenizers): واحدًا على مستوى الأحرف، ومُقطِّع ترميز أزواج البايتات (byte-pair encoding) درّبته بنفسي، ومُقطِّع كلمات من Keras، لأرى كيف يغيّر التقطيع النتائج.
يجمع تطبيق Streamlit كل ذلك. تختار نموذجًا، وتعطيه بضع نوتات افتتاحية، فيولّد ألحانًا تُحوَّل إلى صوت ويمكن تنزيلها بصيغة MP3.
السؤال
على المدوّنة الموسيقية نفسها، كيف تتقارن Transformer وLSTM وRNN في توليد الموسيقى الرمزية؟
أهم الميزات
- مولّدات Transformer وLSTM وRNN مدرَّبة على مدوّنة تدوين ABC نفسها، ولكل منها منحنيات مسجّلة للخسارة والدقة في التدريب والتحقق.
- خلايا LSTM وRNN مكتوبة من الصفر إلى جانب نسخ مبنية على طبقات PyTorch الجاهزة.
- ثلاثة مُقطِّعات قابلة للتبديل (على مستوى الأحرف، وترميز أزواج بايتات مخصص، وKeras)، لكل منها اختبارات وحدة.
- تطبيق Streamlit مع محدّد نموذج، وخانة لنوتات ABC الافتتاحية، ومنزلقات للطول ودرجة الحرارة وtop-k.
- يُحوَّل تدوين ABC المولَّد إلى MIDI ثم إلى صوت، بحيث يمكن تشغيل كل لحن في المتصفح أو تنزيله بصيغة MP3 أو عرض مصدره بصيغة ABC.
كيف يعمل
المقطوعات كنص
يُغلَّف تدوين ABC لكل لحن برمزي بداية ونهاية، وتُضم الألحان في نص تدريب واحد طويل.
التقطيع
يُقسَّم النص إلى رموز بأحد ثلاثة مُقطِّعات: أحرف منفردة، أو دمجات متعلَّمة بترميز أزواج البايتات، أو رموز كلمات Keras.
تدريب متنبئات بالرمز التالي
يتعلم كل من Transformer بمُفكِّك فقط وLSTM وRNN التنبؤ بالرمز التالي، مع متابعة الخسارة والدقة في التدريب والتحقق.
معاينة موسيقى جديدة
انطلاقًا من نوتات المستخدم الافتتاحية، يعاين النموذج الرموز واحدًا تلو الآخر، بالتحكم في درجة الحرارة وtop-k.
التحويل إلى صوت
يُحلَّل تدوين ABC المولَّد بـ music21، ويُكتب إلى MIDI، ويُركَّب إلى WAV بـ FluidSynth، ويُحوَّل إلى MP3 للتشغيل والتنزيل.
أمثلة
التقنيات المستخدمة
ما تعلمته
- مقارنة منضبطة بين البنيات تعلّم أكثر من نموذج واحد مضبوط بعناية
- استراتيجية التقطيع تغيّر جودة التوليد بشكل ملحوظ
الحدود
- موسيقى رمزية فقط؛ لا تركيب صوتي خام



