كيف لعبنا الموسيقى مع الشبكات العصبية v 2.0

مرحبا يا هبر.

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

صورة

منذ عام ونصف ، قمنا بتنفيذ مشروع حيث استخدمنا شبكات عصبية متكررة لتوليد الموسيقى. يصف كيف كان. هذا العام ، أقامت Eesti Kontsert (المؤسسة المستهدفة ، أكبر منظم للعروض في البلاد) سلسلة من الحفلات الموسيقية "التكنولوجيا والموسيقى" ، وقد تمت دعوتنا لتقديم عرض كجزء من هذه السلسلة. نحن مجموعة MODULSHTEIN (ألكساندر زيديليف ومارتن ألتروف وأليكسي سيمينخين) ، بالإضافة إلى ألكسندر بوتوزني ، الذي كان يعمل في الهندسة الميكانيكية ، وأنا ألكسندر تافجين ، مهندس البرمجيات من Playtech. إذا حدث كل شيء في المشروع الأخير داخل جهاز واحد وتم عرض إشارات النماذج على عينات ، فإن فكرة هذا المشروع هي إخراج الإشارات وتوصيلها بأداة حية. وبما أننا نستخدم الموديلات لإنشاء إيقاع ، فإن الأداة التي ستعمل عليها الآلة عبارة عن طبلة.

الطبل الذي سنستخدمه هو جزء من الدعائم المتبقية من العرض التقديمي الصوتي والمرئي IDEM .

صورة

مقدمة صغيرة


الموسيقى ، مثل اللغة ، وخاصة اللغة المنطوقة ، لديها بنية مؤقتة. هذا هو الإيقاع ، الفواصل ، الديناميات. إذا قمنا بمحاكاة تسلسل موسيقي كتيار من رموز معينة ، فعندئذ لمحاكاة هذا الهيكل الزمني ، تكون الشبكات العصبية المتكررة مناسبة. مقالة Andrej Karpathy الشهيرة مقدمة رائعة للمبادئ الكامنة وراء الشبكات العصبية المتكررة ، وهناك بعض الأمثلة الرائعة. ما هي الشبكة الوحيدة المدربة على شفرة مصدر لينكس؟ أو نموذج تدرب على خطب دونالد ترامب.

يعد بروتوكول MIDI مثاليًا لتمثيل الموسيقى كتيار من الشخصيات. وبالتالي ، نحن بحاجة إلى تحويل إشارات MIDI إلى مدخلات للطرز ، وتحويل إخراج النموذج إلى MIDI. ثم يأتي مشروع Magenta من Google إلى مرحلة الإنقاذ ، التي تم الإعلان عنها في عام 2016.

في جوهرها ، Magenta يوفر واجهة MIDI لنماذج TensorFlow. يتم إنشاء منافذ MIDI الافتراضية للاستجابة للمكالمات ، تحدث تقريبًا - الإدخال والإخراج. يمكنك تشغيل العديد من المنافذ المتوازية. يمكنك توصيل نموذج TensorFlow بكل زوج من المنافذ. ملف حزمة ما يسمى هو نقطة تفتيش التدريب والبيانات الوصفية الرسم البياني من TensorFlow. لذلك يمكنك أن تصف باختصار عملية التفاعل.

صورة

وصفتها بالتفصيل هنا .

لكن إذا عرضنا في المشروع السابق إشارات MIDI قادمة من النماذج إلى العينات ، فإننا نحتاج هذه المرة إلى إخراجها وتوصيلها بالمحركات. أي أنه يمكن تمثيل كل شيء بطريقة ما مثل هذا: Tensorflow-Magenta-MIDI-Serial-Microcontroller-actuators. الخطوات الثلاث الأولى قد تم اتخاذها بالفعل ووجه كل الاهتمام إلى الروابط الثلاثة الأخيرة.

قبل أن تفكر في كيفية تحويل وإرسال الإشارات من الجهاز ، تحتاج إلى اختيار متحكم يستقبل الإشارات ويتحكم في المشغلات. الخيار الأسهل هو استخدام نظام أساسي متوافق مع Arduino ، على الرغم من أن أي جهاز تحكم يستند إلى ATMega مناسب.

يمكن لأردوينو قراءة Serial عبر USB ، وكانت المهمة هي تحويل إشارات MIDI إلى بروتوكول المنفذ التسلسلي. هناك مشروع مفتوح بدون عنوان مشروع projectgus.imtqy.com/hairless-midiserial مفتوح للمشروع ، والذي يسمح لك بتحويل MIDI إلى أجهزة تسلسلية ، لكل من المدخلات والمخرجات. راحة MIDI ككل هي أنه يمكنك التحكم بشكل مرن وتوصيل أجهزة مختلفة.

صورة

حسنًا ، فأنت بحاجة إلى الحصول على الأدوات والبدء في تجربة خيارات التصميم المختلفة.

كان يجب إجراء النموذج الأولي الأول من أجل تقييم التأخيرات والمشاكل المحتملة في المزامنة.

انتقلت الإشارة إلى Arduino ، حيث تم عرضها على مخرجات مختلفة ، اعتمادًا على ارتفاع الملاحظات. للاختبارات ، لقد وضعت حلبة كلاسيكية قائمة على MOSFET. MOSFET هو تقريبًا ترانزستور يسمح لك بالتحكم في التيارات العالية ؛ إعطاء إشارة التحكم ، يمكنك فتح وإغلاق الترانزستور.

صورة

حسنًا ، ما هو نوع مشروع Arduino بدون وميض LED. قمت بتعيين مؤشر LED بحيث في حالة حدوث مشكلات ، أفهم مكانها ، ما إذا كانت الإشارة من Arduino تذهب إلى إدخال MOSFET. بشكل عام ، بدا الأمر هكذا ، كانت القطط تحبها حقًا.



بشكل عام ، لم يكن هناك أي تأخير كبير ومشاكل في الاتصال ، ولكن تم توضيح مشاكل خطة مختلفة. الملفات اللولبية ليست مناسبة لاستخراج الصوت من أسطوانةنا الكبيرة ، فهي تفتقر إلى قوة التأثير. الملف اللولبي 5 فولت أنفسهم. تقرر البحث عن شيء أكثر قوة. الخيار التالي هو المحركات المستخدمة في أقفال السيارة. أنها قوية بما فيه الكفاية ، مع الجر جيدة ، ورخيصة.

صورة

ولكن هناك نقطة واحدة. لا يحتوي محرك باب السيارة على ضربة أمامية فحسب ، بل أيضًا ضربة عكسية. للتغلب عليها ، أنت بحاجة إلى أداء سريع جدًا للأمام إلى الخلف ، ولكن لا يمكنك عمل MOSFET واحد فقط للخلف الأمامي ، لأنك تحتاج إلى تغيير الاتجاه الحالي للمحرك ( H-Bridge ) بحيث يتحرك في كلا الاتجاهين ، لذا اشتريت درع المحرك لاردوينو ، متوافق مع Adafruit. هذا النوع ، فقط على رقاقة واحدة.

صورة

هنا هو الإصدار بالفعل مع جسر للسيارات ومحرك من باب السيارة.


والآن عن الميكانيكا العامة


تعتبر مصابيح LED الوامضة على Arduino شيءًا واحدًا ، ولكن كان علينا أن نبني نظامًا يلعب ساعة الحفلة الموسيقية. وهنا الصعوبات.

  1. صلابة التصميم. تتميز المحركات بقوة كافية ، ويجب أن تصمد الأجزاء التي يجب تركيبها عليها من الاهتزاز لمدة ساعة.


    صورة

    لقد جربنا 3 أو 4 خيارات تصميم حتى وجدنا خيارًا مقبولًا. لا ينبغي أن تكون العقدة مع العصا جامدة ، لأن العصا يجب أن يكون لها ارتداد مرن من البرميل ، والعقبة الصلبة ستؤدي إلى تدهور الصوت بشكل كبير. اعتدنا بناء سكريدس.
  2. آليات التأثير نفسها. انها تتألف من حركة سريعة إلى الأمام ، وقفة والحركة إلى الوراء. لكن ما حجم الفترات الزمنية لهذه الحركة؟ هذا لا يمكن إلا أن تحدد تجريبيا. علاوة على ذلك ، تعتمد الفواصل الزمنية على مكان تعلق العصا ، الملاحظات المعروضة. نحن مصممون على فترات من التجربة والخطأ. لتوضيح ذلك ، بدا جزء من كود Arduino المسؤول عن الضربات بهذا الشكل.

    صورة
  3. جميع المحركات مختلفة. المحركات نفسها لديها محرك ميكانيكي وبالتالي تعطي ضوضاء ملحوظة إلى حد ما. لكن الضوضاء تصبح أقوى بكثير ، إذا كان المحرك ينحرف عن محور التأثير ، وهذا يزيد من خطر تعطل المحرك. بالنظر إلى قوى الاهتزاز والتأثير ، استقرنا مرة أخرى على صلابة الهيكل. ألكساندر بوتوزني فعل الكثير هنا من حيث تحسين المباريات.
  4. إعادة تعيين وحدة تحكم من تدخل زائف. نظرًا لوجود العديد من الأجهزة والكابلات الموجودة حولها والمحركات نفسها تعطي ضوضاء.

نظرًا لأن المحركات تحركها الموسيقى ، فمن الممكن أن تصنع ألعاب الجنس من هذا. نظم موسيقاه المفضلة ، مثل المسيرة الإمبراطورية ، و ...

التجميع والبروفة


تم إجراء التجميع النهائي والبروفات في الاستوديو الموسيقي للمسرح الروسي في إستونيا.

صورة



إن مشكلة البروفات في الشبكة العصبية هي أيضًا أن الشبكة نفسها غير حتمية. يحدث التفاعل في وضع استجابة للمكالمات ، وفي كل مرة ستكون فيها إجابات الشبكة مختلفة - لذلك ، من المستحيل التمرين على الإصدار النهائي.

مفهوم الموسيقى


للحصول على الأداء ، قمنا أيضًا بإعداد مقطع فيديو. في البداية ، اعتقدنا أن التحكم في دفق الفيديو عبر MIDI ، أيضًا ، لتشغيل التراكبات وتقليل الفيديو الذي تم إنشاؤه بواسطة GAN - لكن لم يكن لدينا وقت لإنشاء بيئة للجهاز الثاني والاتصال بالطرازات. لذلك ، تم تقديم الفيديو لكل جزء من الأداء مسبقًا ؛ تم استخدام GAN وإدارة التراكب. كل شيء متزامن مع midi_clock الرئيسي.


للعيش أنا استخدمت VDMX5 ، من خلالها ذهب دفق الفيديو.

صورة

قبل الأداء بوقت قصير ، قاموا بتقديم عرض تقديمي على التلفزيون.


وكان من غير المعتاد رؤية ملصقات في قاعة إستونيا للحفلات الموسيقية (مثل مسرح البولشوي لموسكو).

صورة

صورة

خطاب


تم تقديم الأداء نفسه على مسرح Sõltumatu Tantsu Lava ، وهي قاعة صغيرة (يزيد قليلاً عن 100 شخص) في الحي الإبداعي في Telliskivi في مجمع Vaba Lava. استغرق تركيب وتركيب جميع المعدات أكثر من 4 ساعات. متصل تماما بالفعل تقريبا في الليل.


وبالفعل دون ضوء.


كانت القاعة ممتلئة ، على الرغم من الدعاية المتأخرة. كنت على جانب المسرح والتحكم في دفق الفيديو. حقق الحفل نفسه نجاحًا كبيرًا - كيفية عمل النموذج ، وكيف ذهب الصوت والفيديو. قال الجمهور إنهم أرسلوا إلى الرحلة في مكان ما في 10-15 دقيقة. :) تحول كل شيء في الغلاف الجوي للغاية.

صورة

صورة

صورة

صورة


صورة

www.Audiokinetica.com

Aleksandr Tavgen - حل تكنولوجيا المعلومات ، وتطوير البرمجيات
ألكسندر Potužnoi - الدعم الفني

Modulshtein:
www.Modulshtein.com

على سبوتيفي

ألكساندر eledeljov الملقب FAERSHTEIN- الغيتار ، أبليتون ، موالفة التناظرية
مارتن ألتروف - الكلارينيت ، باس الكلارينيت
أليكسي Semenihhin الملقب DJ Bandit - العملات الأجنبية ، عينات ، الخدوش

Source: https://habr.com/ru/post/ar463237/


All Articles