Teknik açıklama:
Bir videoyu/müziği camtasia programına attığınız zaman timeline (zaman çizgisinde) şu resimdekine benzer bir grafikle karşılaşırsınız. Bu grafik zaman domenindeki frekans değerlerini gösteren bir grafiktir.
Kolay anlaşılsın diye gri çerçevelerle ayrılmış 2 farklı zaman-frekans grafiği çizdim.
1. grafik normal ses dosyanıza ait grafiği temsil ediyor.
Bu grafikte sarı ile ayrılmış ve pembe ile işaretlenmiş kısımlar (grafikteki negatif kısımlar da dahil) insanların duyabildiği frekans aralığını temsil ediyor.
2. grafik ise ilgili müziğe eklenen (frekansın üzerine bindirilen) o bahsettiğiniz "ti sesi"ni temsil ediyor.
Frekansları üst üste bindirdiğinizde kulağınız çok az da olsa (özellikle çok tiz ve çok bas seslerde) bozulmaları farkedebilir, ve hatta çok tiz seslerde müziği duyamamanıza, müziksiz kısımlarda cızırtı (teknik adı gürültü, noise) duymanıza sebep olabilir.
Google bu üzerine oynanmış müziği nasıl ayırt ediyor/edemiyor? sorusuna gelelim:
Bir ses dosyasını analog sinyalden dijital sinyale dönüştürürken kullanılan ses çözünürlüğü değeri vardır, (ingilizce bitrate diyoruz buna) bu oranın tam olarak karşılığı şöyledir: bir ses'in 1 saniyede içerdiği bit miktarı. Özetle 128kbps ile kodlanmış bir ses dosyamız var ise bunun anlamı bu ses dosyasının 1 saniyede 128 kilo bit veriye sahip olduğudur (yani 1 saniyesi 16 kilo bayt.)
Sesi örnekleyeceğimiz seviye sayısı ve quantalama (örnekleme) süresi ni de hesaba katalım.
Basit bir örnek olarak: 1 quantta (10 mili saniye olsun) 8 seviyeye bakalım:
8 seviye varsa bunu 3bit ile ifade ederiz (2 üzeri 3 = 8'den 3 bit)
1 saniyeye yayacağız bunu bu durumda 100 örnek alacağız ve her bir örnek 3 bitten oluşacak. 300bps ile sesi analogdan dijitale çevirmiş oluruz. (daha yüksek kalitede sesi dijiyal olarak saklamak için bu örnekteki quantalama sayısını ve seviye sayısını artırmak gerekir)
neyse, örnekteki ilk quant'ımıza gelelim: bu quant'ın değeri 0-7 arası bir değer olacaktır.
ilk quant'ımız 5 olsun
ikinci quant'ımız 3 olsun
üçüncü quantımız -2 olsun
dördüncü quantımız -4 olsun
orjinal ses dosyasına bindireceğimiz sesin (ti sesinin) quant değerleri de (1,-1,1,-1...) şeklinde bir periyodik işaret olsun.
bu durumda yeni dijital işaretimiz (sesimiz)
1. quant: 6
2. quant: 2
3. quant: -1
4. quant: -5
olur.
gördüğünüz üzre ses üzerinde çok düşük bir değişim yaratıp (%12.5 oranında değişim)
sesi "insanlar açısından bozukluk farkedilemez/çok düşük oranda farkedilebilir"
"makinalar açısından farkedilemez/zor farkedilebilir" bir hale dönüştürdük.
google bu dijital (sayısal) değerlere bakarak seslerin aynı veya benzer olduğunu anlıyor.
Burada anlattıklarım brute force yaklaşımına göredir, her bir ses için ayrı ayrı değerlendirme ve karşılaştırma yapmak gerekir.
Google muhtemelen bu ses dalgalarını karşılaştıracak daha efektif ve optimum bir algoritma geliştirmiştir (aksi halde milyonlarca ses arasından 1-2 sn içerisinde eşleşen ve/veya dünya engeli verdirme imkanı olmazdı, bu süre en az 1-2 hafta sürerdi)...