Özet başlık: Shazam müzik tanıma teknolojisinin prensibi
Shazam nedir?
- Shazam, çevrede çalan müziği tanımlayan bir uygulamadır.
- Uygulama açılır ve müzik çalarken birkaç saniye boyunca ses kaydedilerek veritabanında arama yapılır.
- Geçmişte hizmet telefon numarası üzerinden sunuluyordu; arama kalitesinin sınırlamaları nedeniyle müzik tanıma zor bir işti.
Müzik tanıma neden zordur?
- Sinyal işlemeye aşina olmayanlar için, ses sinyalinin karmaşıklığı nedeniyle müzik tanıma zor bir problemdir.
- Şarkının belirli bir bölümünü tüm parça içinde kaba kuvvet yöntemiyle bulmak çok yavaştır; ayrıca arka plan gürültüsü ve frekans etkileri gibi nedenlerle sinyalin biçimi büyük ölçüde değişebilir.
Sistem genel görünümü
- Shazam, müziği kaydetme ve tanıma olmak üzere iki akışa ayrılır; her iki akış da spektrogram hesaplama, spektrogram içindeki zirveleri bulma ve zirveleri hash'leme gibi ortak adımlara sahiptir.
- Kaydetme akışı hash'leri veritabanına depolar; tanıma akışı ise veritabanındaki hash'lerle karşılaştırarak çalmakta olan şarkıyı belirler.
Spektrogram hesaplama
- Sesin spektrogramını elde etmek için Fourier dönüşümünü anlamak gerekir.
- Fourier dönüşümü, seste hangi frekansların bulunduğunu gösterir; bu sayede frekansların zamana göre değişimini gösteren bir spektrogram oluşturulur.
Spektrogram
- Spektrogram, zamana göre değişen frekansları daha iyi ifade etmek için şarkıyı küçük parçalara böler ve Fourier dönüşümünü uygular.
- Spektrogram, zaman (X ekseni), frekans (Y ekseni) ve yoğunluk (Z ekseni/renk) içeren 3 boyutlu bir grafiktir.
Parmak izi oluşturma
- Spektrogramda en büyük frekansları gösteren zirveler bulunarak sesin benzersiz parmak izi çıkarılır.
- Bu zirveler gürültüye veya diğer bozulmalara dayanabildiği için parmak izi oluşturmaya uygundur.
Zirve bulma
- Spektrogramdaki zirveler, sinyaldeki en güçlü frekansları gösterir ve ses parmak izinde kullanılabilmeleri için dengeli biçimde dağılmış olmalıdır.
- Maksimum filtre tekniği kullanılarak spektrogramdaki zirveler vurgulanır ve konumları bulunur.
Hash'leme
- Spektrogram zirvelerinin çiftleri oluşturularak hash üretilir; bu da benzersizliği artırır.
- Hash, iki zirvenin frekanslarını ve zaman farkını içerir ve veritabanında saklanır.
Eşleştirme
- Veritabanındaki parmak izi koleksiyonunda, verilen ses örneğiyle eşleşen parmak izlerini bulma süreci açıklanır.
- Hash'ler aranır, sonra şarkıya göre gruplanır ve hash'lerin eşleşip eşleşmediği kontrol edilerek en çok eşleşen parça seçilir.
Sonuç
- Shazam, şarkıları kaydetmek ve tanımak için spektrogram hesaplama, zirve çıkarımı, hash çifti üretimi ve parmak izi saklama gibi süreçlerden geçer.
GN⁺ görüşü
- Bu yazıdaki en önemli nokta, Shazam'ın müziği tanıdığı karmaşık süreci anlaşılması kolay bir şekilde açıklaması.
- Teknik ayrıntıların adım adım parçalanarak başlangıç seviyesindeki yazılım mühendislerinin de anlayabileceği hâle getirilmesi ilgi çekici ve etkileyicidir.
1 yorum
Hacker News görüşleri
Shazam'ın verimli hash tabanlı yaklaşımı
Shazam'ın kalıcı, sihirli çekiciliği
Shazam'ın nasıl çalıştığını anlatan Wall Street Journal videosu
Chromaprint ve AcoustID açıklaması
Shazam ve dijital sinyal işleme üzerine ilgi çekici yazı
Diğer medya türlerine de uygulanabilecek benzer algoritmalar
Every Noise At Once web sitesinin önemi
Müzik tanıma sürecinin sezgiselliği
Müzik tanımada kullanılan Fourier dönüşümü