यह कल्पना करने की तुलना में एक अधिक शामिल प्रक्रिया है।
इस शोध समस्या अक्सर कहा जाता है संगीत प्रतिलेखन के रूप में: इस तरह के मिडी या यहाँ तक कि शीट संगीत के रूप में एक उच्च स्तरीय प्रतिनिधित्व में संगीत (जैसे, तरंग) के एक निम्न स्तर के प्रतिनिधित्व में परिवर्तित करने का काम करते हैं।
आपके समाधान का परिष्कार आपके इनपुट डेटा की जटिलता पर निर्भर करेगा। शोध पत्रों के टोन केवल मोनोफोनिक पियानो या ड्रम पर संगीत प्रतिलेखन को संबोधित करते हैं ... क्योंकि वे प्रतिलेखन करना आसान होते हैं। (अपेक्षाकृत।) वायलिन कठिन है। आवाज भी कठिन है। व्हायोलिन प्लस वॉयस प्लस पियानो बहुत कठिन है। एक सिम्फनी लगभग असंभव है। आपको चित्र मिल जाएगा।
- (बहु) पिच आकलन
- साधन मान्यता, timbral मॉडलिंग
- ताल का पता लगाने
- टिप्पणी शुरुआत/ऑफसेट का पता लगाने:
संगीत प्रतिलेखन के मूल तत्वों निम्नलिखित ओवरलैप होने वाले क्षेत्रों में से किसी को शामिल करना
- फॉर्म/संरचना मॉडलिंग
Google विद्वान या आईएसएमआईआर कार्यवाही से "संगीत प्रतिलेखन" पर कागजात खोजें: http://www.ismir.net। यदि आप उपर्युक्त उप-विषयों में से एक में अधिक रुचि रखते हैं, तो मैं आपको आगे बता सकता हूं। सौभाग्य।
संपादित करें: ऐसा कहा जा रहा है कि मौजूदा समाधान हैं जो हम सभी को वेब पर पा सकते हैं। उन्हें आज़माने के लिए स्वतंत्र महसूस करें। लेकिन जैसा कि आप करते हैं, उन्हें गंभीर आंख और कान के साथ मूल्यांकन करें। किस तरह के ऑडियो सिग्नल ट्रांसक्रिप्शन विफल होने का कारण बनेंगे?
संपादित 2: आह, आप केवल पियानो के लिए ऐसा कर रहे हैं। ठीक है, यह करने योग्य है। संगीत प्रतिलेख उस बिंदु तक उन्नत हो गया है जहां यह मोनोफोनिक पियानो को अच्छी तरह से ट्रांसक्रिप्ट कर सकता है। एक Rachmaninov concerto अभी भी समस्याएं पैदा करेगा।
हमारी सिफारिशें आपके अंतिम लक्ष्य पर निर्भर करती हैं। आप "को की आवश्यकता है ... जावा में।" तो ऐसा लगता है कि आप बस कुछ काम करना चाहते हैं चाहे वह आपको वहां कैसे पहुंचाए। उस स्थिति में, मैं दूसरों के साथ 100% सहमत हूं: मौजूद कुछ का उपयोग करें।
यह वास्तव में एक दिलचस्प सवाल है; मुझे पता है कि सभी एमआईआर पुस्तकालय आमतौर पर सी/सी ++/पायथन/Matlab हैं। लेकिन जावा नहीं। इकोनेस्ट में जावा एपीआई है, लेकिन मुझे नहीं लगता कि यह नोट-लेवल ट्रांसक्रिप्शन करता है। http://developer.echonest.com। (संपादित करें: यह नोट-स्तरीय प्रतिलेखन करता है। लौटाए गए डेटा में पिच, टिम्बर, बीट, टैटम और बहुत कुछ शामिल है।लेकिन मुझे लगता है कि पॉलीफोनी अभी भी एक समस्या है।)
ओह, मर्सिया जावा-आधारित है। ठंडा। मैंने सोचा कि यह सिर्फ सी ++ था। http://marsyas.info/ मैं इसकी अनुशंसा करता हूं। यह एमआईआर के प्रोफेसर जॉर्ज तंजानेकाइस द्वारा विकसित किया गया है। यह संकेत-स्तर विश्लेषण करता है और यह एक अच्छा विकल्प होना चाहिए।
अब, यदि यह एक मजेदार सीखने के अनुभव के लिए है, तो मुझे लगता है कि आप जावा में ध्वनि मैनिपुलेशन यूटिलिटीज का उपयोग डब्ल्यूएवी सिग्नल के साथ प्रयोग करने के लिए कर सकते हैं और देखें कि क्या आता है।
संपादित करें: यह पृष्ठ MIR सॉफ्टवेयर बेहतर वर्णन करता है की तुलना में मैं कर सकते हैं: The Tools We Use
मैटलैब के लिए, आप MIR Toolbox
में रुचि हो सकती यहाँ आम डेटासेट का एक अच्छा पृष्ठ है: MIR Datasets
चेक इस रूप में अच्छी तरह http://stackoverflow.com/questions/1628071/programmatically-listening-to-sound-signal-processing/1628241#1628241 –
[wav के संभावित डुप्लिकेट मिडी रूपांतरण के लिए] (http://stackoverflow.com/questions/1897023/wav-to-midi-conversion) – finnw