कोड के साथ एक मिलियन बीट लूप कैसे उत्पन्न हुए

Apr 19 2023
पिछले वर्ष के दौरान, मैंने अपना समय कुछ अनुप्रयोगों के प्रोटोटाइप द्वारा संगीत सॉफ़्टवेयर में AI की लागू भूमिका की खोज करने के लिए समर्पित किया है। मैं यह पोस्ट दो कारणों से लिख रहा हूँ।

पिछले वर्ष के दौरान, मैंने अपना समय कुछ अनुप्रयोगों के प्रोटोटाइप द्वारा संगीत सॉफ़्टवेयर में AI की लागू भूमिका की खोज करने के लिए समर्पित किया है। मैं यह पोस्ट दो कारणों से लिख रहा हूँ। सबसे पहले, मैं केवल वही दस्तावेज बनाना चाहता हूं जो मैंने बनाया है और अपनी सीख साझा करता हूं। दूसरे, यह इस अध्याय के कुछ समापन के लिए है क्योंकि मैंने बिना किसी संदेह के खुद को साबित कर दिया है कि एआई क्रिएटिव के लिए व्यावहारिक ऑडियो टूल में एकीकृत होने के लिए तैयार है। मैं उसका हिस्सा बनना चाहता हूं। हालाँकि, मैंने यह भी निष्कर्ष निकाला है कि मैं इसे अकेले नहीं कर सकता। एआई ऑडियो टूल्स की क्षमता का पूरी तरह से एहसास करने के लिए इसे एक साझा दृष्टि वाली टीम की आवश्यकता होगी और यही मेरे लिए आगे आता है।

ये किसके लिए है?

लक्षित पाठक वह है जो जनरेटिव म्यूजिक सिस्टम बनाने में रुचि रखता है या सक्रिय रूप से प्रयोग कर रहा है। मैं संगीत सिद्धांत या एल्गोरिथम कार्यान्वयन के विवरण में गोता नहीं लगाऊंगा। यह मेरे द्वारा बनाई गई प्रणाली की एक विस्तृत रूपरेखा है और ऐसा करने से मैं कुछ निष्कर्ष पर पहुंचा हूं।

मैंने क्या बनाया है?

https://signalsandsorcery.ai/

मोटे तौर पर एप्लिकेशन बोलना एक ऑडियो सैंपल लाइब्रेरी की कल्पना करने का एक प्रयास है जिसमें अनंत सामग्री होती है जो प्रक्रियात्मक रूप से उत्पन्न होती है। दायरा एक सर्वर बैकएंड (नमूने कैसे उत्पन्न होते हैं) और यूआई (नमूने कैसे प्रस्तुत किए जाते हैं) दोनों थे।

मैं निश्चित रूप से ब्याह और लूपक्लाउड जैसे उत्पादों का बहुत बड़ा प्रशंसक हूं। लेकिन मुझे विश्वास है कि उनका मूल, कोर बिज़ मॉडल, एक नमूना पुस्तकालय जिसने उन्हें सफल बनाया, केवल एक निश्चित संक्रमणकालीन अवधि के दौरान मौजूद हो सकता है जहाँ गुणवत्ता के नमूने मौद्रिक मूल्य के साथ एक सीमित वस्तु हैं। यह नए एआई सिस्टम के विपरीत है, जिसका स्वयं मौद्रिक मूल्य है लेकिन आउटपुट (नमूने) सिस्टम का केवल एक उपोत्पाद है। हम छवि प्रसार सेवाओं के साथ इसे पहले ही देख चुके हैं। अर्थात:https://ai.mid-journey.org/औरhttps://openai.com/product/dall-e-2मैं इन सेवाओं की गुणवत्ता के नमूने तैयार करने का दावा नहीं कर रहा हूं, लेकिन मैं इस विचार की खोज कर रहा हूं।

कोई ऐसा क्यों चाहेगा?

यह अच्छा प्रश्न है! मुझे लगता है कि इसका उत्तर भविष्य के संभावित उपयोग के मामलों बनाम वर्तमान संगीत परिदृश्य के साथ अधिक है। वर्तमान मॉडल सभी इस विचार पर आधारित है कि कोई व्यक्ति या कोई संस्था एक रैखिक संरचना की व्यवस्था करती है और इसे 'स्वामित्व' देती है। इस मॉडल के साथ, ऑडियो नमूनों की रचनात्मक खपत की संभावनाएं गंभीर रूप से सीमित हैं। वास्तव में, उपयोग के मामले EULAs (अंतिम-उपयोगकर्ता लाइसेंस समझौते) में पूर्वनिर्धारित हैं। उदाहरण के लिए, कई नमूना EULAs नमूने के उपयोग को एक गीत या वीडियो तक सीमित करते हैं। यह जनरेटिव सिस्टम को समायोजित नहीं कर सकता है।

आइए गैर-रैखिक संगीत की अवधारणा लें। वीआर / वीडियो गेम या शायद एक काल्पनिक प्रणाली के बारे में सोचें जो उपभोक्ता प्रतिक्रिया पाश पर प्रतिक्रिया करता है। आज तक, ये प्रणालियाँ पूर्वनिर्धारित निर्णय वृक्षों तक सीमित हैं। यह अधिक गतिशील संभावना को समायोजित नहीं करता है जहां रनटाइम पर ध्वनि और नमूने पूछे जाते हैं और उपभोग किए जाते हैं। वर्तमान इकाई लागत पर गतिशील सामग्री खींचने वाली एक अनियंत्रित प्रणाली का होना व्यावहारिक नहीं है। एआई/प्रक्रियात्मक प्रणाली इस उपयोग के मामले का उत्तर बहुत अच्छी तरह से हो सकती है।

एआई संगीत में कई अनुप्रयोग हैं। आपने किसका अन्वेषण किया?

संगीत में एआई के स्पष्ट अनुप्रयोगों को मोटे तौर पर विश्लेषण/वर्गीकरण, घटक निष्कर्षण (उदा. स्टेम विभाजन), पीढ़ी/रचना और समय/ताल स्थानांतरण के रूप में वर्गीकृत किया जा सकता है। मेरे लिए, एक निर्माता के रूप में, सबसे तत्काल दिलचस्प एप्लिकेशन ऑडियो स्टाइल ट्रांसफर की अवधारणा है। ऑडियो स्टाइल ट्रांसफर ऑडियो सिग्नल विशेषताओं को एक स्रोत से दूसरे स्रोत जैसे कि लय या लय में स्थानांतरित करने का सपना है। उदाहरण के लिए, एक देशी गिटार का नमूना लेना और उस पर ऑर्केस्ट्रा से लय लगाना। वोकल ऑडियो ट्रांसफर इस तकनीक का एक उदाहरण है, और वर्तमान में प्रसिद्ध रैपर ड्रेक के मुखर हस्ताक्षर का उपयोग करते हुए विवादास्पद रचनाओं के कारण चलन में है:https://www.rollingstone.com/music/music-news/viral-drake-and-the-weeknd-collaboration-is-completely-ai-generated-1234716154/

मेरा मानना ​​है कि ऑडियो स्टाइल ट्रांसफर एआई संगीत के पहलुओं में से एक है जो कलात्मक अभिव्यक्ति और रचनात्मकता के साथ बहुत संगत है क्योंकि यह वर्तमान में मौजूद है। संगीत को समझने के लिए यह समझना है कि यह अक्सर सांस्कृतिक और व्यक्तिगत अभिव्यक्ति का एक रूप है। यह मानव रचनात्मकता के लिए एक आउटलेट है और लगातार विकसित हो रहा है। एक निर्माता के पास एक स्रोत का चयन करना, और फिर उस पर कुछ स्थानांतरित करना एक रचनात्मक प्रक्रिया है। इसलिए, मैंने अपना अधिकांश समय यही सोचने में बिताया है। ऐसा नहीं है कि मुझे एआई संगीत के अन्य पहलुओं में कोई दिलचस्पी नहीं है, जैसे कि जनरेटिव रचना, मैं सिर्फ यह मानता हूं कि मनुष्यों को स्वाभाविक मानवीय अनुभव से हटाना एक गैर-लक्ष्य है।

जो भी हो, बस लानत प्रणाली को समझाओ!

ठीक है, ठीक है, यहाँ एक उच्च-स्तरीय अवलोकन है कि लूप कैसे चालू होते हैंhttps://signalsandsorcery.ai/बनाये गये। मैं यह स्पष्ट करना चाहता हूं कि यह किसी भी तरह से सर्व-समावेशी म्यूजिक सिस्टम बनाने का प्रयास नहीं था। यदि आपने कभी किसी नियम-आधारित प्रणाली के बारे में सोचा है तो आप जानते हैं कि वे डिफ़ॉल्ट रूप से सीमित हैं। मेरे मामले में यह स्पष्ट है कि यह प्रणाली पश्चिमी हार्मोनिक 'नियमों' तक सीमित है और वास्तव में उन नियमों का एक बहुत ही बुनियादी उपसमुच्चय है। हालाँकि, भयानक बात यह है कि मैं उन सीमाओं के साथ भी जो संभव है उसकी सीमा तक पहुँचने के करीब भी नहीं आया हूँ। हालांकि सीमाएं जरूरी नहीं कि बुरी चीज हों। सॉफ़्टवेयर स्टार्टअप्स या प्रोटोटाइपिंग ऐप्स में अनुभव रखने वाला कोई भी व्यक्ति जानता है कि दायरे को संयमित और यथार्थवादी रखना परिणाम उत्पन्न करने के लिए महत्वपूर्ण है!

यहाँ एक इन्फोग्राफिक है जिसे मैंने सिस्टम में कुछ प्रमुख अवधारणाओं को उजागर करने के लिए बनाया है।

लूप बनाने की प्रक्रिया इस प्रकार है:

टेम्पलेट जनरेशन

मेरी प्रक्रिया का पहला भाग MIDI टेम्प्लेट बनाना है। आप पूछ सकते हैं: यदि आप मौजूदा ऑडियो क्लिप में एआई-शैली स्थानांतरण लागू कर सकते हैं तो हार्मोनिक टेम्प्लेट क्यों बनाएं? मेरा जवाब है: हां, यह एक अच्छा तरीका है, लेकिन मेरे मामले में, मैं प्रस्तुति के दौरान निश्चित रूप से लूप व्यवस्थित करना चाहता हूं जिसके लिए सटीक लेबल और मेटाडेटा की आवश्यकता होती है। चूंकि मैंने उन्हें बनाया है, मुझे पता है कि उनकी हार्मोनिक रचनाएं 100% सटीकता के साथ क्या हैं। शास्त्रीय संगीत प्रशिक्षण के कारण मेरे पास टोनल सद्भाव का एक मजबूत कामकाजी ज्ञान है इसलिए डायटोनिक तार प्रगति का पालन करने के लिए बुनियादी कार्यात्मक नियम सेट बनाना बहुत आसान है (माधुर्य की अवधारणा को छोड़कर)। 2015 के आसपास, मैंने कॉर्ड-टू-मेलोडी रिश्तों का एक डेटासेट बनाया, जिसका उपयोग मैं आवर्तक तंत्रिका नेटवर्क को प्रशिक्षित करने के लिए करता था:https://github.com/shiehn/chord-melody-datasetयह प्रणाली के लिए सुधार का एक स्पष्ट क्षेत्र है। मैं डेटा-संचालित टेम्पलेट जनरेटर को दृढ़ता से पसंद करता हूं लेकिन सिस्टम के अन्य पहलुओं पर ध्यान केंद्रित करने के लिए मैंने एक कच्चे नियम-आधारित प्रणाली को स्वीकार किया।

मूल टिम्ब्रे पीढ़ी

यह हिस्सा एक बड़ी चुनौती थी। DAWS (डिजिटल ऑडियो वर्कस्टेशन) की वर्तमान स्थिति शायद ही कभी ऑडियो को बाउंस/रेंडर करने की क्षमता को उजागर करती है। मुझे यकीन नहीं है कि यह जानबूझकर है क्योंकि कंपनियां नहीं चाहती हैं कि लोग वास्तव में स्वायत्त फैशन में अपने सॉफ़्टवेयर का उपयोग करें, या शायद यह सामान्य रूप से अनुरोधित सुविधा नहीं है। (डीएडब्ल्यू निर्माता: यदि आप पढ़ रहे हैं तो कृपया इस उपयोग के मामले का समर्थन करें!) सौभाग्य से, एक प्रमुख डीएडब्ल्यू सॉर्टा इसका समर्थन करता है जो रीपर है। रीपर एपीआई के रूप में अपनी अधिकांश कार्यक्षमता को उजागर करता है। इसलिए मैं ऑडियो को इम्पोर्ट, एनोटेट और बाउंस करने के लिए स्क्रिप्ट बनाने में सक्षम था। एक बार MIDI आयात हो जाने के बाद मैं Vital Synth जैसे उदारतापूर्वक लाइसेंस प्राप्त प्लगइन्स के लिए पैच बनाता हूं। सिस्टम के इस भाग के कारण मैं इस परियोजना का उपयोग करना जारी रखूंगा। मैं ध्वनि डिजाइन पहलू और सिंथ पैच निर्माण का बहुत आनंद लेता हूं।

निर्यात और अपलोड करें

निर्यात बहुत आत्म-व्याख्यात्मक है। मैंने ऐसी स्क्रिप्ट बनाई हैं जो प्रत्येक ट्रैक के लिए ऑडियो और MIDI दोनों को बाउंस करती हैं और एक JSON मेटाडेटा फ़ाइल बनाती हैं। मेटाडेटा फ़ाइलों में सामंजस्य, कुंजी, बीपीएम, आदि के बारे में जानकारी होती है। बंडल को फिर संकुचित करके सर्वर पर अपलोड किया जाता है। एक बार सिस्टम में अपलोड करने के बाद बंडल को निकाला जा सकता है और यह फाइलों पर काम कर सकता है।

क्रमपरिवर्तन पाइपलाइन

एक बार ऑडियो और मिडी लूप का बंडल अपलोड हो जाने के बाद, और कुछ मूल फ़ाइल रूपांतरण हो जाने के बाद, दिलचस्प चीजें शुरू हो सकती हैं। मेरे दिमाग में, मैंने जो बनाया है वह अंततः एक संगीत उत्पादन प्रवर्धक है । जब एक लूप अपलोड किया जाता है तो उस समय सिस्टम में सद्भाव और अन्य लूप के आधार पर 10 या 100 विविधताएं बनाई जाती हैं और कैश की जाती हैं। प्रत्येक लूप चार अलग-अलग क्रमपरिवर्तन प्रक्रियाओं से गुजरता है: हार्मोनिक चॉपिंग/स्प्लिसिंग, पिच शिफ्टिंग, टाइम स्ट्रेचिंग, और अंत में AI स्टाइल ट्रांसफर का उपयोग और भी विविधताएं बनाने के लिए किया जाता है। आइए प्रत्येक को तोड़ दें:

हार्मोनिक विभाजन

आइए जीवा "Am7-Am7-Dm7-Cmaj7" के साथ 4-बार लूप का उदाहरण लें। हार्मोनिक दृष्टिकोण से, हमें इस बात का पूरा भरोसा है कि इस लूप को कई तरह से काटा और फिर से जोड़ा जा सकता है। कुछ उदाहरण हो सकते हैं: "Am7-Am7-Am7-Am7", "Am7-Am7-Dm7-Dm7", "Cmaj7-Cmaj7-Cmaj7-Cmaj7"। यह ध्यान देने योग्य है कि ऐसे और भी कारक हैं जो लय और प्रभाव जैसे ऊर्ध्वाधर सामंजस्य से परे टुकड़ा करने की क्रिया में खेलते हैं। देरी जैसे प्रभाव जो बाद के तार खंडों में 'खून' का कारण बनते हैं जिसके परिणामस्वरूप अवांछित हार्मोनिक मेकअप होता है। यहीं पर डेटा प्रूनिंग मैकेनिज्म काम आता है। मतलब सिस्टम का एक एडमिन खराब लगने वाले डेटा को बाहर कर सकता है!

पिच शिफ्टिंग

यह स्वचालित प्रक्रिया हार्मोनिक स्प्लिसिंग के समान है, लेकिन संगीत सलाखों को पुनर्व्यवस्थित करने के बजाय, सलाखों को गुणवत्ता के मामूली गिरावट के साथ कुछ अर्ध-स्वरों द्वारा स्थानांतरित किया जाता है। उदाहरण के लिए, राग प्रगति "Am7-Am7-Dm7-Cmaj7" को आसानी से "Am7-Dm7-Em7-Cmaj7" में स्थानांतरित किया जा सकता है

टाइम स्ट्रेचिंग

यह सबसे आत्म-व्याख्यात्मक है। 100 बीपीएम का एक बीपीएम समय-विस्तारित + - 5 बीपीएम हो सकता है जिसमें गुणवत्ता में केवल मामूली गिरावट हो।

एआई पीढ़ी और शैली हस्तांतरण

यह एक ट्यूटोरियल पोस्ट नहीं है इसलिए मैं प्रत्येक रूपरेखा की बारीकियों में नहीं जा रहा हूँ। लेकिन मेरे पास प्रशिक्षित मॉडल हैं जिनका उपयोग मैं या तो एक निश्चित हार्मोनिक संरचना/बीपीएम को लक्षित करने वाले लूप उत्पन्न करने के लिए करता हूं या मौजूदा जेनरेट किए गए लूप पर स्टाइल ट्रांसफर लागू करने के लिए उपयोग करता हूं, विविधताएं बनाता हूं। मुझे ऐसा कोई मॉडल नहीं मिला है जो 100% उच्च-गुणवत्ता वाला आउटपुट उत्पन्न करता हो। तो मेरे सिस्टम में, सभी जेनरेट किए गए लूप डिफ़ॉल्ट रूप से अस्वीकृत होते हैं और फिर कस्टम इंटरफ़ेस के माध्यम से मुझे आउटपुट की समीक्षा करने की अनुमति देते हैं। जीपीयू (अनुमान लगाने की जरूरत है) बहुत महंगे हैं। अगर ऐसा नहीं होता तो मैं सीधे उपयोगकर्ता को स्टाइल ट्रांसफर के परिणामों का खुलासा करना चाहता था और उन्हें तय करना था कि कौन सा अच्छा है या नहीं। यहां उन रूपरेखाओं की एक सूची दी गई है जिन्हें मैंने खोजा है और आपको ऐसा करने की सलाह देता हूं:

हाओहे लियू द्वारा ऑडियो भाषा मॉडल

  • यह मेरा पसंदीदा है! यह बहुत अच्छी तरह से स्टाइल ट्रांसफर करता है और पिच को बनाए रखता है! मैं 1000 के ऑडियो विवरण जैसे "डार्क चिल्ड्रन गाना बजानेवालों" को उत्पन्न करने के लिए चैटजीपीटी का उपयोग कर रहा था और इसे अपने सिस्टम में लूप के खिलाफ चला रहा था

सद्भाव एआई - डांस डिफ्यूजन

  • यह सबसे अच्छा समुदाय है (अब तक)। आरंभ करने के तरीके पर मूल रूप से चरण-दर-चरण निर्देश है। हालाँकि, मुझे सटीक पिचों और लंबाई के साथ आउटपुट परिणामों के लिए संघर्ष करना पड़ा जिसकी मुझे आवश्यकता थी।

पायथन ऑडियो डिफ्यूजन (टेटिको द्वारा)

यह एक अच्छी लाइब्रेरी है। आप अनिवार्य रूप से अपना डेटासेट लेते हैं और MelSpecogram छवियां उत्पन्न करते हैं। फिर मॉडल छवि प्रतिनिधित्व (बनाम एक ऑडियो सिग्नल) से सीखता है

https://github.com/teticio/audio-diffusion

पायथन ऑडियो डिफ्यूजन (फाल्वियो द्वारा)

यह अन्य ऑडियो डिफ्यूजन फ्रेमवर्क के समान ही विचार है। हालांकि यह अधिक विन्यास योग्य है।

https://github.com/archinetai/audio-diffusion-pytorch

बड़बड़ाना

पूरी तरह से ईमानदार होने के लिए मैंने अभी कुछ रोचक परियोजनाओं में व्यापक रूप से उपयोग किए जाने के बाद इसे तलाशना शुरू कर दिया है। इसलिए मैं व्यक्तिगत रूप से इसकी पुष्टि नहीं कर सकता, लेकिन मैं इसकी प्रतिष्ठा के कारण इसे सूचीबद्ध करना चाहता था।

https://github.com/acids-ircam/RAVE

डेटाबेस प्रूनिंग

पूर्णता के लिए, Signals & Sorcery सिस्टम में एक विशेष व्यवस्थापक मूल्यांकन UI भी है जो किसी व्यवस्थापक को 'खराब' ध्वनि वाले किसी भी लूप को फ़्लैग करने में सक्षम बनाता है। मैंने इसे भी सेट अप किया है ताकि 'अस्वीकृत' जेनरेट किए गए लूप का प्रतिशत संदर्भ में पूर्वावलोकन किया जा सके और उन्हें इंटरफ़ेस के माध्यम से अनुमोदित या अस्वीकार कर दिया जा सके।

सारांश

मुझे उम्मीद है कि यह सिग्नल और टोना परियोजना के लिए मैं जो हासिल करने में सक्षम था, उसमें कुछ पारदर्शिता देता हूं। आगे बढ़ते हुए, मैं अपने प्रयास को एक नए, संबंधित अवसर पर पुनर्निर्देशित करूंगा लेकिन इस ऐप को लाइव रखूंगा। यह रचनाकारों के लिए एक नि: शुल्क नमूना संसाधन और मेरे लिए एक ध्वनि डिजाइन आउटलेट के रूप में काम करेगा। जैसा कि पहले उल्लेख किया गया है, वास्तव में इस तरह की पाइपलाइन कितनी परिष्कृत हो सकती है, इसकी कोई ऊपरी सीमा नहीं है। मैं इसके लिए जाने के लिए समान प्रणाली बनाने के इच्छुक किसी को भी प्रोत्साहित करूंगा। मैंने अकेले अच्छे परिणाम हासिल किए। एक टीम के प्रयास को देखते हुए और यह मानते हुए कि प्रत्येक चरण पर अधिक ध्यान/देखभाल दी गई, मेरा मानना ​​है कि आश्चर्यजनक चीजें पूरी की जा सकती हैं!