2011-11-27 26 views
6

मैं एक पिच डिटेक्शन प्रोग्राम बना रहा हूं जो फ्रेम के एफएफटी से प्राप्त पावर स्पेक्ट्रम से मौलिक आवृत्ति निकालता है। यह मेरे पास अब तक है:एफएफटी पिच डिटेक्शन - मेलोडी एक्सट्रैक्शन

  • फ़्रेम में इनपुट ऑडियो सिग्नल विभाजित करें।
  • एक आलोचनात्मक खिड़की
  • FFT और फ्रेम sqrt की भयावहता की गणना के साथ गुणा फ्रेम (वास्तविक^2 + img^2)
  • मौलिक आवृत्ति (चोटी) हार्मोनिक उत्पाद स्पेक्ट्रम द्वारा
  • आवृत्ति से रूपांतरित होते हैं चोटी (बिन आवृत्ति) के लिए नोट (उदाहरण के लिए ~ 440 हर्ट्ज ए 4)

अब कार्यक्रम प्रत्येक फ्रेम के लिए 0 से 87 के मान के साथ एक पूर्णांक उत्पन्न करता है। प्रत्येक पूर्णांक एक सूत्र के अनुसार एक पियानो नोट से मेल खाता है जो मुझे here मिला। अब मैं गणना संकेतों के आधार पर ध्वनि संश्लेषित करके इनपुट सिग्नल में धुनों की नकल करने की कोशिश कर रहा हूं। मैंने मौलिक आवृत्ति के अनुरूप परिमाण और आवृत्ति के साथ बस साइन लहर उत्पन्न करने की कोशिश की लेकिन परिणाम मूल ध्वनि की तरह कुछ भी नहीं सुना (लगभग यादृच्छिक बीप की तरह लग रहा था)।

मुझे वास्तव में संगीत के बारे में समझ में नहीं आता है, जो कि मेरे पास है, क्या मैं मौलिक आवृत्ति से प्राप्त जानकारी के आधार पर इनपुट (उपकरण, आवाज, उपकरण + आवाज) के समान धुनों के साथ ध्वनि उत्पन्न कर सकता हूं? यदि नहीं, तो वर्तमान में मेरे पास मौजूद कोड का उपयोग करके मैं अन्य विचारों का प्रयास कैसे कर सकता हूं।

धन्यवाद!

+0

आपको यह जानने में रुचि हो सकती है कि "ध्वनि के महत्वपूर्ण भाग को ढूंढने और उन हिस्सों को अनदेखा करने की आपकी मूल प्रक्रिया" (जिसे आप एफएफटी + पीक पहचान के रूप में मॉडल करते हैं) एमपी 3 एन्कोडिंग का आधार है। जाहिर है, "महत्वपूर्ण हिस्सा" का विचार बहुत प्रशंसक है। –

उत्तर

3

आपकी विधि सिंथेटिक संगीत के लिए आपके एफएफटी फ्रेम समय और लंबाई फिट करने के लिए सिंक्रनाइज़ किए गए नोट्स का उपयोग करके काम कर सकती है, और केवल नोट ध्वनियों का उपयोग करके जिसका पूर्ण स्पेक्ट्रम आपके एचपीएस पिच अनुमानक के अनुकूल है। इसमें से कोई भी आम संगीत के लिए सच नहीं है।

अधिक सामान्य मामले के लिए, स्वचालित संगीत प्रतिलेख अभी भी एक शोध समस्या प्रतीत होता है, बिना किसी साधारण 5 चरण समाधान के। पिच एक मानव मनोविज्ञान-ध्वनिक घटना है। लोग ऐसे नोट्स सुनेंगे जो स्थानीय स्पेक्ट्रम में मौजूद हो सकते हैं या नहीं भी हो सकते हैं। एचपीएस पिच अनुमान एल्गोरिदम एफएफटी शिखर का उपयोग करने से कहीं अधिक विश्वसनीय है, लेकिन फिर भी कई प्रकार की संगीत ध्वनियों के लिए असफल हो सकता है। साथ ही, नोट सीमाओं या ट्रांजिस्टर को पार करने वाले किसी भी फ्रेम का एफएफटी अनुमान लगाने के लिए कोई स्पष्ट एकल पिच नहीं हो सकता है।

3

शायद आप पिच की गणना करने के लिए एफएफटी से चोटियों को चुनना नहीं चाहते हैं। आप शायद autocorrelation का उपयोग करना चाहते हैं। मैंने यहां एक बहुत ही समान प्रश्न का एक लंबा उत्तर लिखा: Cepstral Analysis for pitch detection

4

यह उस संगीत सामग्री पर निर्भर करता है जिसके साथ आप काम करना चाहते हैं - एक मोनोफोनिक रिकॉर्डिंग (यानी एकल उपकरण या आवाज) की पिच निकालने के समान नहीं है एक पॉलीफोनिक मिश्रण से एक ही उपकरण की पिच निकालने (जैसे पॉलीफोनिक रिकॉर्डिंग से संगीत की पिच निकालने)।

मोनोफोनिक पिच निष्कर्षण के लिए विभिन्न एल्गोरिदम हैं जो आप समय डोमेन और आवृत्ति डोमेन दोनों को लागू करने का प्रयास कर सकते हैं। उदाहरण के एक जोड़े यिन (समय डोमेन) और HPS (आवृत्ति डोमेन), शामिल दोनों पर अधिक जानकारी के लिए लिंक विकिपीडिया में प्रदान की जाती हैं:

हालांकि, न तो अच्छी तरह से अगर आप चाहते हैं काम करेंगे पॉलीफोनिक सामग्री से संगीत निकालने के लिए।पॉलीफोनिक संगीत से मेलोडी निष्कर्षण अभी भी एक शोध समस्या है, और आपके द्वारा अनुसरण किए जा सकने वाले चरणों का एक सरल सेट नहीं है। जब synthesizing http://mtg.upf.edu/technologies/melodia

एक अंतिम ध्यान दें, जैसा कि: वहाँ कुछ उपकरण वहाँ बाहर अनुसंधान समुदाय है कि आप (केवल हालांकि गैर वाणिज्यिक उपयोग के लिए) की कोशिश कर सकते द्वारा प्रदान कर रहे हैं, अर्थात्:

  • MELODIA आपका आउटपुट मैं आपके द्वारा निकाले गए निरंतर पिच वक्र को संश्लेषित करने की अनुशंसा करता हूं (ऐसा करने का सबसे आसान तरीका प्रत्येक एक्स एमएस (उदाहरण के लिए 10) पिच का अनुमान लगाने और एक साइन लहर को संश्लेषित करना है जो निरंतर चरण सुनिश्चित करने के लिए हर 10 एमएस आवृत्ति बदलता है)। इससे आपका परिणाम बहुत अधिक प्राकृतिक हो जाएगा, और आप अलग-अलग नोट्स में निरंतर पिच वक्र को मापने में शामिल अतिरिक्त त्रुटि से बचें (जो स्वयं में एक और समस्या है)।

1

आपका दृष्टिकोण किसी भी सामान्य संगीत उदाहरण के लिए काम करेंगे नहीं, निम्नलिखित कारणों के लिए:

  1. संगीत अपने स्वभाव से गतिशील है। मतलब यह है कि संगीत में मौजूद हर ध्वनि चुप्पी, हमले, टिकाऊ, क्षय, और फिर चुप्पी की अलग-अलग अवधि द्वारा नियंत्रित होती है, अन्यथा ध्वनि के लिफाफे के रूप में जाना जाता है।

  2. संगीत वाद्ययंत्र नोट्स और मानव मुखर नोटों को एक स्वर द्वारा ठीक से संश्लेषित नहीं किया जा सकता है। इन नोटों को मौलिक स्वर और कई हार्मोनिक्स द्वारा संश्लेषित किया जाना चाहिए।

  3. हालांकि, यह मौलिक स्वर और संगीत वाद्ययंत्र नोट या मुखर नोट के हार्मोनिक्स को संश्लेषित करने के लिए पर्याप्त नहीं है, किसी को उपरोक्त 1 में वर्णित नोट के लिफाफे को भी संश्लेषित करना होगा।

  4. इसके अलावा, संगीत में एक मेलोडिक मार्ग को संश्लेषित करने के लिए, चाहे वाद्य या मुखर हो, किसी को पारित होने पर प्रत्येक नोट के लिए ऊपर 1-3 आइटम को संश्लेषित करना होगा, और किसी को शुरुआत के सापेक्ष प्रत्येक नोट के समय को भी संश्लेषित करना होगा मार्ग का

  5. विश्लेषणात्मक रूप से अंतिम मिश्रण रिकॉर्डिंग से व्यक्तिगत उपकरणों या मानव आवाजों को निकालने में एक बहुत ही मुश्किल समस्या है, और आपका दृष्टिकोण उस समस्या को संबोधित नहीं करता है, इसलिए आपका दृष्टिकोण मुद्दों को 1-4 से ठीक से संबोधित नहीं कर सकता है।

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

इस बाधा से आगे कैसे बढ़ें इस बात पर निर्भर करता है कि काम का उद्देश्य क्या है, ओपी ने जो कुछ भी उल्लेख नहीं किया था।

क्या यह काम किसी वाणिज्यिक उत्पाद में उपयोग किया जाएगा, या यह एक शौक परियोजना है?

यदि कोई व्यावसायिक कार्य है, तो विभिन्न आगे के दृष्टिकोण जरूरी हैं (महंगे या बहुत महंगा वाले), लेकिन उन दृष्टिकोणों का विवरण इस बात पर निर्भर करता है कि काम के लक्ष्य क्या हैं।

एक बंद टिप्पणी के रूप में, अपने संश्लेषण निम्नलिखित की वजह से यादृच्छिक बीप की तरह लगता है:

  1. आपका मौलिक स्वर डिटेक्टर अपने रोलिंग FFT फ्रेम के समय, जो प्रभाव में एक शायद नकली मौलिक उत्पन्न करता है से जुड़ा हुआ है प्रत्येक रोलिंग एफएफटी फ्रेम के स्टार्ट-टाइम पर स्वर।

  2. ज्ञात मौलिक स्वर शायद नकली क्यों हैं? चूंकि आप मनमाने ढंग से संगीत नमूना (एफएफटी) फ्रेम में क्लिपिंग कर रहे हैं, और इसलिए संभवतया कई मध्यवर्ती नोट्स को कई मध्यवर्ती नोट्स को छोटा कर रहे हैं, जिससे नोट्स के स्पेक्ट्रल हस्ताक्षर विकृत हो जाते हैं।

  3. आप पाए गए नोटों के लिफाफे को संश्लेषित करने की कोशिश नहीं कर रहे हैं, न ही आप कर सकते हैं, क्योंकि आपके विश्लेषण के आधार पर लिफाफा जानकारी प्राप्त करने का कोई तरीका नहीं है।

  4. इसलिए, संश्लेषित परिणाम शायद शुद्ध साइन चिप्स की एक श्रृंखला है, जो रोलिंग एफएफटी फ्रेम के डेल्टा-टी द्वारा समय में दूरी पर है। प्रत्येक चिंराट एक अलग आवृत्ति का हो सकता है, एक अलग लिफाफा आयाम के साथ, और लिफाफे के साथ जो शायद आकार में आयताकार हैं।

संगीत नोट की जटिल प्रकृति को देखने के लिए इन संदर्भों पर एक नज़र डालें:

Musical instrument spectra to 102.4 KHz

Musical instrument note spectra and their time-domain envelopes

विशेष कई शुद्ध टन है कि प्रत्येक नोट बनाने में ध्यान से देखें और प्रत्येक नोट के समय-डोमेन लिफाफे का जटिल आकार। एक दूसरे के सापेक्ष कई नोट्स का परिवर्तनीय समय संगीत के एक अतिरिक्त आवश्यक पहलू है, जैसा कि पॉलीफोनी (समसामयिक आवाजों को समवर्ती रूप से बजाना) है।

संगीत के इन सभी तत्व स्वायत्त संगीत प्रतिलेखन, अत्यधिक चुनौतीपूर्ण के लिए सख्त विश्लेषणात्मक दृष्टिकोण बनाने के लिए षड्यंत्र करते हैं।

संबंधित मुद्दे