Откакто започна през 1999 г., Shazam е използван за идентифициране на песни над петдесет милиарда пъти, а това дори не преброява идентификационните номера от Soundhound, MusicID и други приложения за разпознаване на звук.

От гледна точка на потребителя, това е просто: Стартирайте приложението, натиснете бутон и оставете телефона си да слуша песента. След няколко секунди, дори и с фонов шум и изкривяване, приложението ще ви каже какво е песента. Тя работи толкова бързо и толкова добре, че почти изглежда като магия - но, както и с повечето магически неща в наши дни, тя се управлява най-вече от алгоритми.

Каква е идеята зад тези приложения?

Shazam, Soundhound и други услуги за идентифициране на музика работят основно по същия начин: те имат голяма база данни с информация за песента, алгоритъм, който бързо може да извлече информация от вашата извадка от песента и приложение, което ви позволява да взаимодействате с тези неща. Технически, дори нямате нужда от смартфон.

Shazam първоначално е използван на старомодни флип телефони, като просто записва песен и я изпраща на служба. Soundhound действително е отишло няколко крачки по-нататък, като ви дава възможност да пеете или да се втурнат в приложението си, които те мач срещу базата данни, подадена от потребителя на други песни / пиянство записи.

Как работят?

Просто казано, процесът изглежда така:

  1. Базата данни на приложението съдържа огромна колекция от "пръстови отпечатъци" на песента или малки парчета данни за уникалните звукови шарки на песента.
  2. Когато потребителят натисне бутона "Запис", приложението слуша музиката и създава отпечатъци на базата на няколко секунди звук, който чува.
  3. Този пръстов отпечатък се проверява в базата данни със съществуващи пръстови отпечатъци. Ако отпечатъка от десет секунди съответства на част от песента, получавате резултата от песента си (надявам се, че сте прави). Ако не е така, ще получите грешка.

Ако просто търсите обяснение на повърхността, това е всичко, което трябва да знаете. Наистина интересната част е как всъщност получаваш този пръстов отпечатък.

Отпечатъци от песни за песни

Всичко започва със спектрограма, като тази в графиката по-горе, взета от хартия, написана от един от основателите на Shazam, Авери Уанг. Това е по същество графика с време на оста x (хоризонтална), честота по оста y (вертикална) и амплитуда, изразена чрез различни нива на интензитет на цвета. Всяка последователност от звуци може по този начин да се превърне в спектрограма, а на всяка точка от спектрограмата може да се зададе набор от координати. Точно така, бележките могат да бъдат числа.

Ако всичко, което трябва да направите, е съвпадение на няколко звука един към друг, можете да спрете тук. Ако искате да прегледате база данни, пълна с милиони песни, все пак една спектрограма с пълна подробност има прекалено много данни, за да преглеждате всякаква скорост.

Големият пробив в разпознаването на музиката беше осъзнаването, че можете да идентифицирате звуци само с малко данни: върховете или най-интензивните части. Не само че се отървават от по-ниските енергийни части на песента, но намаляват размера на спектрограмата, но правят приложенията по-малко чувствителни към идентифициране на тъп, постоянен фонов шум като част от целевите звуци. Представете си градски силует - най-идентифицируемите части са върховете на сградите, а не средните етажи и това е, което можете да видите от най-отдалеченото място.

Така че всяка секунда от всяка песен е съкратена само на няколко от най-интензивните данни; всичко в хоризонта на града е премахнато, с изключение на самия връх. Но това все още не е достатъчно ефективно, за да може да бъде търсено веднага, така че следващата стъпка е да "хешира" тази последователност от върхове. Hashing просто взима набор от входове, изпълнява ги чрез алгоритъм и им присвоява цяло число. В този случай хешът се генерира, като се вземат два от пиковете с висок интензитет, като се измерва времето между тях и се добавят двете им честоти заедно.

Резултатът е низ от номера, лесно съхранение и търсене. Когато компютърът прочете тази хеш, той ще ги разпознае като представляващи честота и време-разстояние. След като всички върхове в песента бъдат идентифицирани и хеширани, трансформацията е завършена: песента има уникален 32-битов номер, който служи като идентификатор в базата данни. По-важното е, че всяка секунда от песента се представя от номерата.

Когато телефонът ви слуша музика, той преминава през този точен процес: филтрира всичко, но най-високите точки, ги удря и създава отпечатъци за няколко секунди, които е записал. След като това приключи, телефонът ви просто трябва да види къде се появяват съответните низове от номера в базата данни, което му позволява да съответства на установените честоти и времето на правилната песен и да я върне за секунди.

Музика и още

Тази технология е най-широко използвана за разпознаване на музика, но приложенията за разпознаване на звук могат да работят и с филми, реклами, телевизионни предавания, птичи песни и др. Shazam и Soundhound са най-известни, но можете също сега да попитате Google какви песни се изпълняват и да получите точен отговор.

И ако се чудите: "Тези компании следят кои песни се питат?" Отговорът е "да". Статистическите данни за музикалната идентификация всъщност са в състояние да предскажат успеха на песните и изпълнителите с доста висока степен на точност, както и големите звукозаписни компании като Уорнър са се договорили с приложения като Shazam, за да помогнат за намирането на съвременни артисти. Така че, ако искате да подкрепите художник, можете също да направите своя дял и да потърсите песента си! Може просто да им помогнете да излетят.