5 पॉइंट द्वारा fcbayernmuller 2024-01-29 | 5 टिप्पणियां | WhatsApp पर शेयर करें

vibra

  • यह Shazam की गीत पहचान सेवा के सर्वर से संचार करने वाले क्लाइंट को C++ में लागू करने वाला प्रोजेक्ट है।
  • यह मौजूदा Rust ओपन सोर्स Shazam क्लाइंट songrec की तुलना में लगभग 2 गुना तेज़ चलता है।
  • यह wav फ़ाइल पढ़कर उस फ़ाइल में कौन-सा गीत है, उसका डेटा ला सकता है।
  • stdin में raw PCM data देने के तरीके से माइक्रोफ़ोन पर रिकॉर्ड हो रहे गीत की भी पहचान की जा सकती है।
  • fingerprinting के लिए libfftw3 और Shazam सर्वर के साथ संचार के लिए libcurl की आवश्यकता होती है।
  • wav file downsampling, channel convert आदि PCM data को कुशलता से प्रोसेस करने के कारण यह तेज़ है।
  • dependency libraries कम हैं और build आसान है, इसलिए इसे embedded devices में उपयोग किया जा सकता है।

5 टिप्पणियां

 
mdisprgm 2024-01-29

क्या rust की जगह C++ चुनने की कोई खास वजह थी?

 
cosine20 2024-01-29

साझा करने के लिए धन्यवाद! आपने performance improvement कैसे किया, यह जानने की मुझे व्यक्तिगत रूप से जिज्ञासा है.
अगर Raspberry Pi 4 पर लगभग 1 सेकंड का समय लगता है, तो यह सचमुच काफ़ी practical performance है।

 
fcbayernmuller 2024-01-29

असल में Rust Songrec बहुत ही अक्षम था, क्योंकि इनपुट में मिले PCM data पर downsampling, mono में conversion, और 16bit में conversion—ये सब वह अलग-अलग करता था.

इसलिए मैंने हर चरण में PCM data को बार-बार traverse करने वाले हिस्से को बेहतर बनाया. बेशक, C++ और Rust जैसी भाषाओं का अंतर भी काफ़ी बड़ा कारण रहा होगा.

 
cosine20 2024-01-29

आह, तो Rust कोड में उन तीन प्रक्रियाओं को अलग-अलग संभाला गया था। उसे बेहतर बनाना भी कोई आसान काम नहीं रहा होगा, कमाल है आपका ' v')b

 
fcbayernmuller 2024-01-29

धन्यवाद~!!!