• Shazam से प्रेरित हाई-स्पीड ऑडियो पहचान और आइडेंटिफिकेशन सिस्टम का Rust इम्प्लीमेंटेशन ओपन सोर्स
  • स्पीड, दक्षता और सरलता पर केंद्रित डिज़ाइन, और CLI के जरिए ऑडियो फ़ाइलों की indexing और search संभव

मुख्य विशेषताएँ और फायदे

  • हाई-स्पीड indexing और search गति: सैकड़ों ऑडियो फ़ाइलों को तेज़ी से प्रोसेस कर सकता है
  • सरल CLI कमांड: index और search कमांड के जरिए सहज उपयोग
  • Rust आधारित हाई-परफ़ॉर्मेंस इम्प्लीमेंटेशन: सिस्टम resources का कुशल उपयोग
  • Shazam जैसी ऑडियो फिंगरप्रिंटिंग विधि अपनाई गई

आंतरिक कार्यप्रणाली

पूर्व-प्रसंस्करण (Preprocessing)

  • स्टीरियो को मोनो में बदलना (बाएँ/दाएँ चैनल का औसत)
  • गणना भार कम करने के लिए downsampling: 44.1kHz → 11.025kHz
  • downsampling से पहले Nyquist frequency से ऊपर की आवृत्तियाँ हटाने के लिए IIR low-pass filter लागू

स्पेक्ट्रोग्राम रूपांतरण

  • Short-Time Fourier Transform(STFT) का उपयोग
    • 1024 सैंपल का Hamming window
    • 50% overlap
  • time-frequency domain में बदलकर peaks निकाले जाते हैं
    • हर time window को frequency bands में बाँटा जाता है, और हर band में केवल सबसे अधिक amplitude सुरक्षित रखा जाता है
    • औसत से कम amplitude हटाकर केवल feature peaks रखे जाते हैं

फिंगरप्रिंट डेटा स्टोरेज विधि

  • peaks को hash के रूप में बनाकर स्टोर किया जाता है
    • एक anchor peak के आधार पर आसपास के peaks की relative position को tuple के रूप में स्टोर किया जाता है
    • (anchor freq, peak freq, delta time) के रूप में संरचित
    • 32-bit या 64-bit integer में बदला जा सकता है

search और sorting एल्गोरिद्म

  • इनपुट sample से फिंगरप्रिंट बनाया जाता है
  • डेटाबेस में candidate फिंगरप्रिंट खोजकर उन्हें समय क्रम में sort किया जाता है
  • Longest Increasing Subsequence आधारित समयिक निरंतरता विश्लेषण
  • sliding window का उपयोग कर सबसे घने matching peak interval की खोज
  • matching score की गणना कर परिणामों को उच्च स्कोर के क्रम में sort किया जाता है

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.