2010-07-14 6 views
5

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

नतीजतन, मैं एमपी 3/4 से इसे संगीत डेटा निकालने का तरीका ढूंढ रहा हूं ताकि इसे एमडी 5 के माध्यम से चलाने और किसी भी डुप्लिकेट को ढूंढ सकें। इस के बारे में जाने के लिए सबसे अच्छा तरीका क्या है?

+0

संगीत संभवतः (जबकि 'समान') अलग-अलग बिटरेट में आ जाएगा (जब तक कि आप सुनिश्चित न हों कि सब कुछ लापरवाही है) जो * सरल * डेटा की तुलना बेकार कर देगा। तो आपको एक और अधिक उन्नत (शायद सांख्यिकीय) तकनीक की आवश्यकता होगी। मुझे यकीन है कि एसओ पर कोई व्यक्ति कुछ पॉइंटर्स प्रदान करने में सक्षम होगा ... – ChristopheD

+0

सरल बिंदु, साधारण एमडी 5 की बजाय एक एफएफटी आवृत्ति विश्लेषण अधिक उपयुक्त है। हालांकि, मात्रा अलग हो सकती है। तो मुझे लगता है कि आप दो ffts के बीच सहसंबंध की तलाश करेंगे और शायद उच्च सहसंबंध की उम्मीद करेंगे? यह मुश्किल हो जाता है क्योंकि कुछ गीतों में "फोरसाउंड" शामिल हो सकता है - एक परिचय, या एक भाषण - जिसे पहचानना मुश्किल है। –

+0

@ हैमिश: मुझे आश्चर्य है कि क्या वह उन लोगों को अलग-अलग मानना ​​चाहेगा (उदाहरण के लिए, एक विशेष स्टूडियो रिकॉर्डिंग बनाम एक बोले गए परिचय के साथ कुछ गीत का लाइव प्रदर्शन)। यह वास्तव में इस बात पर निर्भर करता है कि आप "डुप्लिकेट" को कैसे परिभाषित करते हैं, मुझे लगता है। यह काफी दिलचस्प समस्या बन रहा है। :) – Faisal

उत्तर

4

करने के लिए id3-py या mutagen उपयोग करने का प्रयास सभी टैग को बाहर निकालें (आईडी 3 वी 1 और आईडी 3 वी 2, वे दोनों एक ही फाइल पर हो सकते हैं), फिर परिणाम पर एमडी 5 की गणना कर रहे हैं।

मान लीजिए कि आईट्यून्स ने टैग से परे फ़ाइल में हेरफेर नहीं किया है, वे समान होना चाहिए। ट्रांसकोडिंग स्पष्ट रूप से इस दृष्टिकोण को अमान्य बना देगा।

+0

काफी डिस्क गहन होने पर, उत्परिवर्तन के साथ टैग को अलग करना बहुत अच्छी तरह से अच्छी तरह से काम करता था। –

0

यह वास्तव में बहुत उन्नत, अस्पष्ट तर्क-प्रकार की सामग्री है जिसके बारे में आप पूछ रहे हैं।

यह एक जवाब नहीं है, लेकिन इस लेख में चर्चा पर एक नज़र डालें: Detect duplicate MP3 files with different bitrates and/or different ID3 tags? (यह एक शिकार वास्तव में माना जा सकता है ... यह भी अजगर विशिष्ट है।)

+1

पूरी तरह से अलग समस्या।ये फ़ाइलें अलग-अलग ID3 टैग के साथ एक ही एमपी 3 की प्रतियां हैं, क्योंकि आईट्यून स्मार्ट होने और आईडी 3 टैग अपडेट करने की कोशिश करता है। संगीत में केवल बाया अंतर नहीं होना चाहिए, केवल मेटा डेटा। जवाब देने के लिए धन्यवाद, यद्यपि। = -] –

1

कुछ फिंगरप्रिंट एल्गोरिदम का उपयोग करें। आपको MusicBrainz के बारे में पता हो सकता है। उन्होंने here कुछ फ़िंगरप्रिंट एल्गोरिदम सूचीबद्ध किए हैं। वे अब AcoustId का उपयोग करते हैं जो शायद वह चीज है जिसका आपको उपयोग करना चाहिए (यह अच्छा है और यह मुफ़्त है)। Chromaprint लाइब्रेरी है जो इस तरह के एक फिंगरप्रिंट उत्पन्न कर सकती है।

मैंने Python module ffmpeg लिखा है जो एफएफएमपीईजी के माध्यम से डिकोडिंग करता है और AcoustId फिंगरप्रिंट (क्रोमैप्रिंट का उपयोग करके) की गणना करने के लिए एक सरल कार्य प्रदान करता है। Here उस के लिए एक छोटा डेमो है (जो गीत के लिए संगीतब्रेनज़ से भी पूछताछ करता है)।

सभी डुप्लीकेट खोजने के लिए इसका उपयोग करके कुछ टूल बनाना आसान होना चाहिए।

ऑडियो डेटा बिल्कुल वही है, तो फिंगरप्रिंट बिल्कुल वही होगा। ऑडियो डेटा समान होने पर यह समान होगा। अगर आप समानता की जांच नहीं करना चाहते हैं तो आप समानता की गणना कैसे करते हैं, इसके बारे में AcoustId homepage देखें।