Сите сме слушнале за Shazam, популарната апликација која препознава песни само врз основа на краток примерок што обично го снима микрофонот на телефонот. Но, како точно Shazam успева да ги идентификува песните толку брзо и прецизно? Одговорот лежи во нивниот уникатен алгоритам познат како отпечаток од прст.
Отпечаток од прсти (Fingerprinting)
Кога песната се додава во базата на податоци на Shazam, алгоритмот создава „отпечаток“ на таа песна. Овој отпечаток е уникатен приказ на аудио податоците на песната. Алгоритмот идентификува различни врвови во спектрограмот на песната, што е визуелно претставување на звучните фреквенции со текот на времето, пишува порталот HelloWorld.
Овие врвови се клучни бидејќи ги претставуваат најпрепознатливите делови од песната, правејќи го впечатокот робустен дури и кога има многу бучава во позадина или изобличување. Преку овој процес, Shazam може да генерира компактен и ефикасен отпечаток што лесно се споредува со другите во базата на податоци.
Хеширање и складирање
Хеширањето е процес на конвертирање на влезните податоци (во овој случај врвови од спектрограм) во фиксна низа знаци, обично во форма на низа од цифри. Оваа низа од знаци се нарекува хеш вредност или хаш код. Клучна карактеристика на функцијата за хаш е тоа што дури и најмала промена во влезните податоци резултира со сосема поинаква вредност на хашот.
Во контекст на Shazam, секое теме се совпаѓа со соседните темиња за да се создаде единствена хаш вредност. Оваа уникатност доаѓа од комбинацијата на врвовите на фреквенцијата и нивните релативни позиции во временскиот спектар на песната. Поради оваа специфичност, дури и две многу слични аудио траки ќе произведат различни хаш-кодови, со што ќе се обезбеди точност во препознавањето на песните.
Споредба
Овие хаш вредности, заедно со соодветните временски поместувања, се зачувани во базата на податоци на Shazam. Кога корисникот се обидува да идентификува песна користејќи Shazam, апликацијата снима краток аудио примерок и создава отпечаток од тој примерок на ист начин како што е опишано погоре. Алгоритмот потоа бара соодветни хаш вредности во неговата база на податоци.
Благодарение на овој алгоритам, Shazam може брзо и прецизно да ги идентификува песните дури и во бучни средини и од примероци со слаб квалитет.