vibra, C++ şarkı tanıma hizmeti Shazam istemcisi
(github.com/BayernMuller)vibra
- Shazam adlı şarkı tanıma hizmetinin sunucusuyla iletişim kuran istemciyi C++ ile gerçekleştiren bir projedir.
- Mevcut Rust açık kaynaklı Shazam istemcisi songrec'e kıyasla yaklaşık 2 kat daha hızlı çalışır.
wavdosyalarını okuyup bu dosyanın hangi şarkı olduğunu belirlemek için verileri getirebilir.stdinüzerinden raw PCM data vererek mikrofondan kaydedilmekte olan şarkıları da tanıyabilir.- Fingerprinting için gerekli
libfftw3ve Shazam sunucusuyla iletişim için gereklilibcurlgerekir. wavfile downsampling, channel convert gibi PCM data işlemlerini verimli şekilde gerçekleştirdiği için hızlıdır.- Bağımlılık kütüphaneleri azdır ve derlemesi kolaydır; bu nedenle gömülü cihazlarda kullanılabilir.
5 yorum
rustyerinec++seçmenizin özel bir nedeni var mı?Paylaşım için teşekkürler! Performansı nasıl iyileştirdiğinizi şahsen merak ediyorum.
Raspberry Pi 4'te yaklaşık 1 saniye sürüyorsa bu gerçekten oldukça pratik bir performans.
Aslında Rust Songrec’in çok verimsiz olmasının nedeni, aldığı PCM verisi için downsampling, mono’ya dönüştürme ve 16 bit’e dönüştürme işlemlerinin hepsini ayrı ayrı yapmasıydı.
Bu yüzden her süreçte PCM verisinin baştan sona tekrar dolaşılması kısmını iyileştirdim. Elbette C++ ve Rust gibi diller arasındaki farkın da büyük etkisi vardır.
Ah, demek ki Rust kodunda o üç süreç ayrı ayrı ele alınıyormuş. Bunu geliştirmek de herhalde hiç kolay olmamıştır; gerçekten etkileyicisiniz
' v')bTeşekkürler~!!!