स्टीरियो ऑडियो सिग्नल से मुखर भाग कैसे निकालें?


15

अब मैं एमपी 3 फ़ाइल को संसाधित कर रहा हूं और इस समस्या का सामना कर रहा हूं। मेरा एमपी 3 स्टीरियो एन्कोडेड है। मैं आगे की प्रक्रिया के लिए मुखर भाग निकालना चाहता हूं (आउटपुट सिग्नल के जो भी तरीके, मोनो या स्टीरियो दोनों ठीक हैं)।

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

प्रभावशीलता को देखते हुए, कौन सा पसंद किया जाता है (या कोई अन्य समाधान :)? यदि दूसरा, पृष्ठभूमि की गणना करते समय दो चैनल A और B, विल (BA) या (AB) का उपयोग करते हैं? दो चैनलों के विलय के साथ, क्या अंकगणित का मतलब पर्याप्त सटीक है? या मैं प्रत्येक कारक को दो के कारक से घटा सकता हूं और मोनो परिणाम के रूप में डाउनसम्पल्ड सिग्नल को इंटरलेव कर सकता हूं?

धन्यवाद एवं शुभकामनाएँ।

जवाबों:


21

सबसे पहले, डेटा को एक एमपी 3 फ़ाइल में कैसे एन्कोड किया गया है जब तक कि आप संकुचित-डोमेन प्रोसेसिंग (जो काफी मूर्खतापूर्ण होगा) करने का लक्ष्य रखते हुए सवाल के लिए अप्रासंगिक है। तो आप मान सकते हैं कि आपका एल्गोरिथ्म विघटित समय-डोमेन डेटा के साथ काम करेगा।

मुखर अंतर के लिए योग / अंतर एक बहुत ही मूल चाल है, (निष्कर्षण नहीं)। यह इस धारणा पर आधारित है कि स्वर को स्टीरियो क्षेत्र के केंद्र में मिलाया जाता है, जबकि अन्य उपकरणों को बाद में प्रतिबंधित किया जाता है। यह कम ही सच है। एलआर और आरएल एक ही ध्वनि करेंगे (मानव कान एक वैश्विक चरण बदलाव के लिए असंवेदनशील है) और आपको केंद्र में मिश्रित उपकरणों के बिना एक मोनो मिश्रण देगा। समस्या यह है, एक बार जब आप पृष्ठभूमि को पुनर्प्राप्त कर लेते हैं, तो आप इसके साथ क्या करेंगे? इसे केंद्र (औसत) सिग्नल से दबाने की कोशिश करें? यह काम नहीं करेगा, आप कर रहे होंगे (L + R) / 2 - (L - R), यह बहुत दिलचस्प नहीं है ... आप उन लोगों के किसी भी रैखिक संयोजनों की कोशिश कर सकते हैं (औसत और "केंद्र हटा दिया गया"), कुछ भी नहीं इससे बाहर आ जाएगा!

फ़िल्टरिंग दृष्टिकोण के बारे में: आवाज का f0 शायद ही कभी 1000 हर्ट्ज से अधिक हो लेकिन इसके हार्मोनिक्स उस पर जा सकते हैं। उच्चतम आवृत्ति को हटाने से व्यंजन (विशेष रूप से sss, chhh) अप्रिय हो जाएंगे। कुछ पुरुष आवाज 100 हर्ट्ज से नीचे जाते हैं। आप सुरक्षित रूप से 50 या 60 हर्ट्ज (बास, किक) से नीचे जो भी हो, काट सकते हैं, हालांकि

आवाज अलग करने में हाल के कुछ घटनाक्रम देखने लायक हैं:

  • जीन लुइस डरीरू की पृष्ठभूमि NMF + हार्मोनिक कंघी> फिल्टर मॉडल। यहां अजगर कोड
  • रफी की पृष्ठभूमि निष्कर्षण दृष्टिकोण । कोड के लिए सीधा और इलेक्ट्रो, हिप-हॉप जैसे बहुत दोहराव वाले पैटर्न के साथ कंप्यूटर-निर्मित संगीत पर अच्छा काम करता है ...
  • H0 के f0 का पता लगाने, ट्रैकिंग और मास्किंग के आधार पर संपर्क किया गया। "गायन पिच एक्सट्रैक्शन और वॉयस सेपरेशन विद म्यूजिक एकोमेंपमेंट के लिए एक अग्रानुक्रम अल्गोरिदम" (सुलभ पीडीएफ नहीं मिल सकता है)।

4

संदर्भ के लिए धन्यवाद! आप ड्रम एन्हांसमेंट पर अपने काम का उल्लेख करना भूल गए हैं , जो समर_मोर_मोर_ए के आवेदन के लिए भी रुचि का हो सकता है। खैर, यह सब वास्तव में इस पर निर्भर करता है कि आप इसके साथ क्या करना चाहते हैं। क्या आपके पास एक विशिष्ट "अंतिम अनुप्रयोग" है?

मैं pichenettes के उपरोक्त कथनों से पूरी तरह सहमत हूं। पूर्ण होने के लिए, मुझे हालांकि यह कहना चाहिए कि आपके द्वारा उल्लेखित मुखर वृद्धि का उपयोग कुछ कार्यों में भी किया गया है, जो कि कराओके ट्रैक जनरेशन पर, परिणाम बढ़ाने के लिए मैटि रयेनलेन द्वारा किया गया है।

अपने सवालों के जवाब देने के लिए:

प्रभावशीलता को देखते हुए, कौन सा पसंद किया जाता है (या कोई अन्य समाधान :)?

जैसा कि pichenettes ने कहा, न तो आपकी ज़रूरत के अनुरूप लगता है: कम-पास / उच्च-पास फ़िल्टरिंग मानव आवाज के हार्मोनिक संरचना (और किसी भी "दिलचस्प" ध्वनि के अधिक सामान्य रूप से विफल होने के लिए बाध्य है - यानी साइनसोइड से परे कुछ भी ...) )।

यदि दूसरा, पृष्ठभूमि की गणना करते समय दो चैनल A और B, विल (BA) या (AB) का उपयोग करते हैं? दो चैनलों के विलय के साथ, क्या अंकगणित का मतलब पर्याप्त सटीक है?

फिर, आपके द्वारा उल्लिखित दूसरा तरीका ऐसा नहीं करेगा क्योंकि आप केवल उस सिग्नल को हटा सकते हैं जो केंद्र में है, इसे पुनः प्राप्त न करें। दूसरे शब्दों में, यहां तक ​​कि स्वर भी "केंद्र" में हैं, केवल संकेत प्राप्त करने के लिए कोई सरल गणित नहीं है।

या मैं प्रत्येक कारक को दो के कारक से घटा सकता हूं और मोनो परिणाम के रूप में डाउनसम्पल्ड सिग्नल को इंटरलेव कर सकता हूं?

एर ... एक मोनो-चैनल सिग्नल प्राप्त करने के लिए चैनलों का औसत, जैसा कि ऊपर सुझाव दिया गया है, समझ में आता है, और आपके सिग्नल की वर्णक्रमीय विशेषताओं को नहीं तोड़ेंगे (स्टीरियो सिग्नल को पतित नहीं माना जाता है)। तो आप एक मोनो सिग्नल प्राप्त करते हैं जिसमें आपके पास मूल रूप से, पहले की तरह समान संगीत सामग्री है।

प्रत्येक चैनल को सही ढंग से डाउनस्म्प्लिमेंट करने का मतलब है कि आप पहले एक कम-पास फ़िल्टर लागू करें (आपके मामले में नमूने_रेट / 4 की कट-ऑफ आवृत्ति), और फिर आप सुरक्षित रूप से हर 2 नमूने ले सकते हैं। हालांकि, चैनलों को इस तरह डाउनग्रेड करने के बारे में कहने के लिए बहुत कुछ नहीं है: ज्यादातर सामान्य मामलों में, यह आपके सिग्नल की वर्णक्रमीय विशेषताओं को तोड़ रहा है। आप शायद ऐसा नहीं चाहते।

वास्तव में, कम-दर-फ़िल्टरिंग का संचालन 0 प्रत्येक 2 नमूनों को सेट करके, और इन 0 के लीड को रखते हुए, फूरियर डोमेन में, उच्च आवृत्ति वाले पर रखे गए कम आवृत्ति घटकों को "मिररिंग" करने के लिए किया जाता है। याद रखें कि आप सैम्पलिंग थ्योरी पर प्रोसेसिंग पाठों को देखते हैं: आवेगों (या डायराक्स) के अनुक्रम से गुणा करने से फूरियर डोमेन के दूसरे अनुक्रम में डायक्रक्स का परिणाम होता है, अर्थात, उस स्थिति में, सिग्नल की आवृत्ति स्पेक्ट्रम दोहराया जाता है (आवधिक) आवृत्ति अक्ष के साथ, नमूना दर के बराबर अवधि के साथ।

आम तौर पर, डाउनस्मलिंग के दौरान, आप 0 को हटा देते हैं (क्योंकि आप एक नया नमूना दर मानते हैं)। लेकिन यहां, उन्हें रखने से परिणाम बहुत अधिक अतिरिक्त आवृत्ति घटकों को परेशान करते हैं। इन संकेतों को आपस में जोड़ने से यह सही नहीं होगा।

खैर, सभी में, संक्षिप्त जवाब: ऐसा मत करो । :-)

अंत में, मैं आपको LVAICA 2012 सम्मेलन के लिए विकसित GUI का उपयोग करने का सुझाव भी दे सकता हूं: इसके लिए एक git रेपो है। मैं अभी भी डिबग कर रहा हूं और इसमें सुधार कर रहा हूं, इसलिए टिप्पणियों का स्वागत है: डी

उम्मीद है की वो मदद करदे!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.