vibra, C++ गीत पहचान सेवा Shazam क्लाइंट
(github.com/BayernMuller)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 टिप्पणियां
क्या
rustकी जगहC++चुनने की कोई खास वजह थी?साझा करने के लिए धन्यवाद! आपने performance improvement कैसे किया, यह जानने की मुझे व्यक्तिगत रूप से जिज्ञासा है.
अगर Raspberry Pi 4 पर लगभग 1 सेकंड का समय लगता है, तो यह सचमुच काफ़ी practical performance है।
असल में Rust Songrec बहुत ही अक्षम था, क्योंकि इनपुट में मिले PCM data पर downsampling, mono में conversion, और 16bit में conversion—ये सब वह अलग-अलग करता था.
इसलिए मैंने हर चरण में PCM data को बार-बार traverse करने वाले हिस्से को बेहतर बनाया. बेशक, C++ और Rust जैसी भाषाओं का अंतर भी काफ़ी बड़ा कारण रहा होगा.
आह, तो Rust कोड में उन तीन प्रक्रियाओं को अलग-अलग संभाला गया था। उसे बेहतर बनाना भी कोई आसान काम नहीं रहा होगा, कमाल है आपका ' v')b
धन्यवाद~!!!