5 poin oleh fcbayernmuller 2024-01-29 | 5 komentar | Bagikan ke WhatsApp

vibra

  • Ini adalah proyek yang mengimplementasikan klien dalam C++ yang berkomunikasi dengan server Shazam, layanan pengenal lagu.
  • Berjalan sekitar 2 kali lebih cepat dibanding songrec, klien Shazam open source berbasis Rust yang sudah ada.
  • Dapat membaca file wav dan mengambil data untuk mengetahui lagu apa yang cocok dengan file tersebut.
  • Lagu yang sedang direkam melalui mikrofon juga bisa dikenali dengan memasukkan raw PCM data melalui stdin.
  • Membutuhkan libfftw3 untuk fingerprinting dan libcurl untuk berkomunikasi dengan server Shazam.
  • Cepat karena memproses data PCM seperti downsampling file wav dan konversi channel secara efisien.
  • Memiliki sedikit library dependensi dan mudah dibangun, sehingga bisa dimanfaatkan pada perangkat embedded.

5 komentar

 
mdisprgm 2024-01-29

Apakah ada alasan Anda memilih C++ alih-alih Rust?

 
cosine20 2024-01-29

Terima kasih sudah berbagi! Saya pribadi penasaran bagaimana Anda melakukan peningkatan performanya.
Kalau di Raspberry Pi 4 butuh waktu sekitar 1 detik, itu benar-benar performa yang praktis.

 
fcbayernmuller 2024-01-29

Sebenarnya, Rust Songrec terlalu tidak efisien karena untuk data PCM yang diterima, proses downsampling, konversi ke mono, dan konversi ke 16-bit semuanya dilakukan secara terpisah.

Jadi saya memperbaiki bagian yang menelusuri seluruh data PCM di setiap proses. Tentu saja, perbedaan antara bahasa C++ dan Rust juga tampaknya cukup besar.

 
cosine20 2024-01-29

Ah, jadi di kode Rust ketiga proses itu ditangani secara terpisah ya. Memperbaiki itu juga pasti bukan pekerjaan mudah, hebat sekali Anda ' v)b`

 
fcbayernmuller 2024-01-29

Terima kasih~!!!