FFT स्पेक्ट्रम का उपयोग करके समान संगीत खोजें


16

मैं संगीत के विभिन्न शैलियों वाले पुस्तकालय में समान गीतों को मिलाने / खोजने का तरीका खोजने के लिए कुछ हफ्तों का प्रयोग कर रहा हूं।

मेरा पहला प्रयास टेम्पो जैसी विशेषताओं का पता लगाना था या समूह बनाने के लिए गानों में कितना बास है, लेकिन मैं इस दृष्टिकोण (वॉल्यूम में परिवर्तन के आधार पर बीट डिटेक्शन) से दूर नहीं हुआ क्योंकि लगभग 20% गानों को बीट काउंट करने की जरूरत नहीं है। हमेशा, कभी-कभी 1/2 या 1/3 और मैं उन्हें लागू नहीं कर सका।

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

  • फ़ाइल 1: पूर्ण फ़ाइल FFT स्पेक्ट्रम (2048 नमूना आकार एटीएम, एम्पलीट्यूड लॉग। स्केल्ड) लें।
  • सभी स्पेक्ट्रम एम्स को जोड़ो, प्रत्येक बिन का लाभ उठाएं
  • कुछ अन्य फ़ाइलें समान करें, सभी परिणाम संग्रहीत करें
  • फ़ाइल 1 और अन्य फ़ाइलों के बीच FFT मान अंतर की सूची बनाएँ
  • फ़ाइल 1 और फ़ाइल X के बीच अंतर का औसत बनाएं
  • इन एवरेज के आधार पर क्रमबद्ध करें
  • सबसे कम "अंतर मूल्य" वाले गीतों को समान माना जाता है।

क्या आपमें से कुछ जिन्हें अच्छा ज्ञान है वे बता सकते हैं कि क्या यह मेरे आइडिया को लागू करने का सही / अच्छा तरीका होगा?


1
यदि आप टेम्पो का पता लगाने की कोशिश कर रहे हैं, तो आप सिग्नल को चुकता करने और फिर फूरियर ट्रांसफॉर्म लेने की कोशिश कर सकते हैं। 1 हर्ट्ज के आदेश पर फ्रीक्वेंसी एक साधारण (अयोग्य) एफएफटी स्पेक्ट्रम में मौजूद नहीं होगी, क्योंकि वे फ़िल्टर किए गए हैं। पिच से पता लगाने के लिए इस्तेमाल किया जाने वाला एक संबंधित विचार, "सेप्रस्ट्रम" कहा जाता है। आप googling द्वारा इसके बारे में पता लगा सकते हैं। पॉप और जैज को शास्त्रीय से अलग करने के लिए, आप ड्रम किट की आवाज़ों का पता लगाने की कोशिश कर सकते हैं, जो कि अनपच हैं। वाइब्रेटो को मशीन-डिटेक्टेबल होना चाहिए। असंगति के उपाय हैं जिन्हें मशीन-गणना किया जा सकता है।

1
हो सकता है कि आपको मॉडरेटर्स से इसे dsp.SE में स्थानांतरित करने के लिए कहना चाहिए
दिलीप सरवटे

मैंने एसई के डीएसपी से इसे स्थानांतरित करने के अनुरोध के साथ अपने प्रश्न को चिह्नित किया। आपका मतलब है कि मैं पता लगा सकता हूं कि क्या कोई ड्रूमिटक प्रेजेंट है या इनपुट को वर्गीकृत करने के लिए नहीं है? क्या आप बता सकते हैं कि टेंपो को स्क्वेर्ड सिग्नल कैसे ले जाता है?

3
संगीत रिकॉर्ड किया गया है और इस तरह से अपने वर्णक्रमीय प्रसार को अधिकतम करने में महारत हासिल है, खासकर इन दिनों। मुझे नहीं लगता कि पूर्ण लंबाई का स्पेक्ट्रा आपको संगीत के वर्गीकरण के लिए एक अच्छा मानदंड देगा।
फोनॉन

2
चश्मे के बजाय, आपको स्पेक्ट्रोग्राम देखना चाहिए। स्पेक्ट्रम आपको केवल एक बार में पूरे गीत की आवृत्ति सामग्री दिखाते हैं। स्पेक्ट्रोग्राम बताते हैं कि समय के साथ आवृत्ति सामग्री कैसे बदलती है।
एंडोलिथ

जवाबों:


17

आप जो करने की कोशिश कर रहे हैं उस पर सैकड़ों शोधकर्ताओं द्वारा कोशिश की गई है और इस बारे में काम का एक बड़ा निकाय है। ISMIR सम्मेलन की कार्यवाही की जाँच करें। यहां तक ​​कि अगर यह अप टू डेट नहीं है, तो इलियास पंपक की थीसिस पढ़ें: http://www.ofai.at/~elias.pampalk/publications/pampalk06thesis.pdf

जल्दी से आपको सही रास्ते पर लाने के लिए:

संगीत कई आयामों के अनुसार समान हो सकता है: ए) टाइमबरा / बनावट / शैली; बी) लयबद्ध पैटर्न; ग) मेलोडी / कॉर्ड प्रगति ... और अधिक! आपके संदेश से यह स्पष्ट नहीं है कि आप क्या मापना चाहते हैं!

  • यदि आप एक) में रुचि रखते हैं, तो जिन विशेषताओं को आप देखना चाहते हैं, वे एमएफसीसी (मेल फ़्रीक्वेंसी सेफस्ट्रूम गुणांक) हैं, क्योंकि वे किसी न किसी तरह से मानव सुनवाई के काम पर कब्जा कर लेते हैं (आवृत्ति वारपिंग, लॉग स्केल), क्योंकि वे सजाए जाते हैं (मॉडलिंग को आसान बनाते हैं) , और चूंकि उनके पास कम आयामीता (13 गुणांक बनाम 2048) है।
  • यदि आप बी में रुचि रखते हैं), "फ्लक्चुएशन पैटर्न" नामक एक विशेषता को देखें (पैम्पालक, 0.1 में संकेत के लघु आटोक्लेररेशन में; कुछ बैंड पर 10 हर्ट्ज रेंज); या व्हिटमैन की "पेनी" विशेषताएं (समय अक्ष के साथ एमएफसीसी का एफएफटी)।
  • यदि आप c) में रुचि रखते हैं, तो क्रोमोग्राम देखें। एलिस के क्रोमोग्राम कोड (http://labrosa.ee.columbia.edu/matlab/chroma-ansyn/) से शुरू करें और फिर Mauch के कार्यान्वयन तक बढ़ें यदि आपको कुछ और अधिक मजबूत बनाने की आवश्यकता है (http://isophonics.net/nnls-chroma )।

वह सुविधाओं के लिए है। अब आपको अपने गीतों की तुलना करने के लिए एक बेहतर तरीका सोचना होगा, क्योंकि उन्हें उन विशेषताओं के अनुक्रम के रूप में दर्शाया गया है। अनुक्रमों के बीच जोड़ीदार अंतरों की गणना करना बहुत स्मार्ट नहीं है - जैसे: एक गीत की तुलना करना और कुछ मौन द्वारा एक ही गीत को ऑफसेट करना एक अंतर पैदा करेगा जबकि यह बिल्कुल वैसा ही है! आप उन विशेषताओं के वितरण की तुलना करना चाहते हैं; उदाहरण के लिए, गीत A पर सुविधाओं के माध्य / मानक विचलन और गीत B पर सुविधाओं के माध्य / मानक विचलन की गणना करें और फिर एक संभाव्य दूरी (KL, उन पर भट्टाचार्य) लें।

अंतिम बिंदु, लेकिन जो बाद में मायने रखेगा: निकटतम मैचों को खोजने के लिए एक गीत और बाकी के बीच की दूरी की गणना करना काफी अक्षम है। बड़े संग्रह के साथ काम करते समय, एलएसएच या बॉल ट्री जैसी तकनीकें ऐसे निकटतम पड़ोसियों के प्रश्नों को पूरे कॉर्पस के साथ स्पष्ट तुलना के बिना निष्पादित करने की अनुमति देती हैं।

एक तरफ के रूप में, गति का पता लगाना एक पूरी तरह से अलग मामला है। यदि आप इस पर गौर करना चाहते हैं, तो इस विषय पर सर्वश्रेष्ठ प्रदर्शन / अभिगम्यता का पेपर एलिस की बीट ट्रैकिंग डायनामिक प्रोग्रामिंग द्वारा किया गया है। http://www.ee.columbia.edu/~dpwe/pubs/Ellis07-beattrack.pdf । यह अविश्वसनीय रूप से सरल है लेकिन कला एल्गोरिदम की स्थिति के करीब है।


आपके विस्तृत उत्तर के लिए धन्यवाद, मैंने पहले ही इस संदर्भ में कई बार एमएफसीसी के बारे में सुना है और यह उचित लगता है कि नंगे एफएफटी परिणामों का उपयोग न करें। यह मेरे वर्तमान "ज्ञान की स्थिति" और विकास के वातावरण (सी #, बास लाइब्रेरी के एफएफटी परिणाम) के साथ लागू करने के लिए बहुत जटिल लगता है, लेकिन मैं कोशिश करूंगा।
gfg
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.