5 puan yazan fcbayernmuller 2024-01-29 | 5 yorum | WhatsApp'ta paylaş

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.
  • wav dosyaları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 libfftw3 ve Shazam sunucusuyla iletişim için gerekli libcurl gerekir.
  • wav file 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

 
mdisprgm 2024-01-29

rust yerine c++ seçmenizin özel bir nedeni var mı?

 
cosine20 2024-01-29

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.

 
fcbayernmuller 2024-01-29

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.

 
cosine20 2024-01-29

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')b

 
fcbayernmuller 2024-01-29

Teşekkürler~!!!