Mobil uygulamalar

Shazam Algoritması: Shazam Nasıl Şarkı Buluyor?

Shazam, biz kullanıcılar için “Arkadaşlar hani böyle bi şarkı vardı ya çok güzeldi ama adını hatırlamıyorum.” Dönemini kapatan ve çığır açan bir mobil uygulama oldu. Artık kulağınıza hoş gelen bir şarkının kime ait olduğunu bulmak için internette tırım tırım armamıza veya tripli arkadaşlarımıza minnet etmemize gerek yok. Açın Shazam’ı verin hoparlörün dibine dibine gitsin. Birkaç saniye içinde Shazam sizin için parçanın tüm serecesini ortaya döksün. İyi ama Shazam nasıl oluyor da bizim dinlettiğimiz şarkılardan yola çıkarak birkaç saniyede şarkıları bulmayı başarıyor?

Shazam’ı kullandığım ilk günden beri bu soru benim kafamı gıcıkladı durdu. Bunu yalnızca merak edenin ben olmadığımı bildiğim için bugün alternatif bir araştırma yaparak Shazam şarkıları nasıl buluyor ve ne çeşit bir algoritma kullanıyor araştırdım. Türkçe kaynaklarda bu konu hakkında detaylı bilgi veren elle tutulur kaynaklar yok fakat global içerik dünyası lebiderya! Ne ararsanız onu buluyorsunuz.

Shazam Nasıl Şarkıları Buluyor?

Shazam algoritması, tıpkı bir illüzyonistin yaptığı sihirbazlık gösterisine benziyor. Yapılan şovun arka planını görene dek iş gizemini koruyor fakat mantığını kavradığınızda sizi “Ennnaaaa bu kadar kolaymış mı lan bu?” Tribine sokuyor. İşte basit adımlar;

  1. Shazam önce tüm popüler olan ve olmayan şarkıların parmak izini (fingerprints) kendi sunucularındaki veritabanına kaydediyor.
  2. Kullanıcı olarak bizler adını bulmak istediğimiz şarkıyı Shazam’a 10 saniye (bazen birkaç saniye) kadar dinletiyoruz.
  3. Shazam hızlıca bizden aldığı şarkı parmak izini kendi veritabanında tarıyor.
  4. Eşleşme bir sonuca ulaşırsa şarkıyı kimin söylediği uygulama üzerinden kullanıcıya gösteriliyor. Dinlettiğimiz şarkıya ait parmak izi Shazam’ın veritabanında yer almıyorsa ekrana bir bulunamadı mesajı geliyor.

Aslında bütün olay bu kadar basit işliyor. Yine de bu basit adımları okuyan her meraklı okuyucunun aklında farklı soruların olacağını bildiğim için ben size bir de S.S.S çıkartayım.

Şarkılara ait parmak izi (fingerprints) nedir?

spektrogram

Şarkılara ait parmak izi, herhangi bir müzik parçasına ait zaman aralığı grafiği spektrogramıdır. Biliyorum karmaşık oldu fakat bunu daha basit açıklamanın bir yolu yok maalesef. Her şarkının kendine ait bir şarkı parmak izi var. Shazam kendi veritabanına şarkıları kaydetmek yerine bu spektrogramları kaydediyor. Sonra sizin dinlettiğiniz şarkının spektrogamı ile veritabanındakini karşılaştırıyor.

Etrafta gürültü olmasına rağmen nasıl başarılı olabiliyor?

Ben burada işleri en basite indirgesem bile Shazam’ın kullandığı parmak izi algoritması daha mantıksal ve matematiksel işliyor. İşin içinde birçok kriter söz konusu. Bu kriterlerin bazıları parmak izinin eşleşmesi için sorun oluşturmazken bazıları ufak sapmalar bile olsa başarılı sonuçlar elde edilmesini sağlıyor.

Shazam nasıl bu kadar hızlı çalışabiliyor?

Shazam bir mobil uygulama olarak yeni olsa bile sektörde sandığınız kadar yeni değil. Zira Shazam’ın ilk defa ortaya çıkışı 1999 yılına dayanıyor. 18 Yıl boyunca sektörde yer alan zaten tüm yazılımlar kendini geliştirmek zorundadır. Shazam da kendini yıllar boyunca geliştirdi. Veritabanını daha geniş hale getirdi ve hızını yükseltmek için farklı yazılım algoritmalarından, sunucu teknolojilerinden yardım aldı. Bu sayede Shazam artık birkaç saniyede istediğimiz şarkıyı bulacak hale geldi.

Şunu da unutmayın ki bilgisayarlar zaten işlemleri çok hızlı gerçekleştirir. Söz konusu olan basit ve veri yükü çok hafif olan aktarımlar olduğunda bu denli yüksek hızlara çıkılmasına şaşılmamak gerekiyor. WhatsApp’da birine yazdığınız mesaj nasıl ki birkaç saniyede karşı tarafa aktarılabiliyorsa Shazam da aynı işi yapıyor. İkisindede aktarılan verinin diskte kapladığı boyut değerleri çok minimal.

Eveeeet, artık Shazam şarkıları nasıl buluyor sanırım mantığını ve işin algoritmasını kavramışsınızdır. İşi olabildiğince basit tutmaya çalıştım çünkü bu yazıyı okuyan insanların sıradan birer son kullanıcı olacağının farkındayım. Eğer kafanızda hala yanıt bulmak istediğiniz soru işaretleri varsa sorularınızı bana aşındaki yorum bölümünden kafama gözüme nereye gelirse fıydırtabilirsiniz.

8 Yorum “Shazam Algoritması: Shazam Nasıl Şarkı Buluyor?

  1. Ali Çömez Yanıtla

    Merhabalar hacı dayı, bu uygulama benim istediğim şarkıları bi bulamadı bende uyuz oldum kullanmıyorum 🙂 aslında bulunmaz hint kumaşı değildi aradığım şarkılar ama olsun bulamadı 🙂

    https://www.youtube.com/watch?v=n0DrtFu_TN0
    https://www.youtube.com/watch?v=cIs0uHSEtDw
    https://www.youtube.com/watch?v=F23Gilh_ojc

    Aga şimdi Trabzonlu olmak bunları dinlemeyi gerektiriyor napak yani hande yener mi dinleyelim 🙂 gerçi o da tivitir’da engelledi beni ona da uyuz oluyorum engellediği için 🙂

    sanırım sorun bende aga doğaya aykırı bir yaşam tarzım var :)))))

    1. Burak Göç Yazar Yanıtla

      Şimdi sen de haklsın Shazam da haklı Ali ne desem bilemedim ki 😀 Albüm olarak veya single olarak çıkış yapmamış parçaları veritabanına eklemiyorlar. O yüzden senin istediğin şarkıları bulamıyor. Acilen Shazam’a bi Trabzonlu çalışan işe sokalım, bu sorun anca öyle düzelir 😀

      1. Ali Çömez Yanıtla

        Aga bizde yanlış olmaz olursa da yanlışlıkla olmuştur gibi bir klişe yapardım da ip’ye ban atarsın diye korkmuyor değilim zira bana yapsalar belkide global ban atardım 🙂
        İşin şakası bir tarafa itelim de hafız adamlar gerçekten mükemmel bir sistem yapmış tebrik etmek gerekir hani derler ya bükemediğin bileği öpeceksin. gerçekten bu tür güzel bulduğum projeler var piyasa da.

        1. Burak Göç Yazar Yanıtla

          Evet Ali, adamlar harbiden bir sorun bulup buna yanıt veren ender kaliteli uygulamadan biriler 🙂 Bizde ban olmaz 😀 😀 Herkes söylemek istediğini söyleyebilir.

  2. Ali Çömez Yanıtla

    Hacı dayı senin yorum sisteminde bir sorun var yorum yazdıktan sonra sayfa deliriyor sanki peşinde 4 süvari gelirmişçesine 4 nala footer’a toplanıyor 🙂
    Bil istedim :)))

  3. Fatih Yanıtla

    aslında bildiğimiz sen tanılama programı. Fakat veri tabanını nereden alıyor? youtube a yüklediğimiz herhangi bir ses kaydını kendi veritabanı ile eşleştiriyor mu? şarkıları aldığı kaynak neresi? erik dalı gevrektir şarkısını dahi buluyorsa veri tabanı youtube diyebilir miyiz? bana bu konu hakkında teknik bilgi verebilir misiniz? kendi veri tabanımızla bu tipte bir ses tanılama programı yapabilir miyiz? mail yolu ile de dönerseniz sevinirim teşekkürler.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Yeni yorumları ve yorumuma verilen cevapları e-postayla bana bildir.

Neredeyse 2 dakikadır buradasın 👏

Okudukların ilgini çekti mi?

E-posta bültenime katıl, ilgini çekecek daha çok içeriği seninle paylaşayım!