Как работят приложенията за идентификация на музика
Откакто започна през 1999 г., Shazam е използван за идентифициране на песни над петдесет милиарда пъти, а това дори не преброява идентификационните номера от Soundhound, MusicID и други приложения за разпознаване на звук.
От гледна точка на потребителя, това е просто: Стартирайте приложението, натиснете бутон и оставете телефона си да слуша песента. След няколко секунди, дори и с фонов шум и изкривяване, приложението ще ви каже какво е песента. Тя работи толкова бързо и толкова добре, че почти изглежда като магия - но, както и с повечето магически неща в наши дни, тя се управлява най-вече от алгоритми.
Каква е идеята зад тези приложения?
Shazam, Soundhound и други услуги за идентифициране на музика работят основно по същия начин: те имат голяма база данни с информация за песента, алгоритъм, който бързо може да извлече информация от вашата извадка от песента и приложение, което ви позволява да взаимодействате с тези неща. Технически, дори нямате нужда от смартфон.
Shazam първоначално е използван на старомодни флип телефони, като просто записва песен и я изпраща на служба. Soundhound действително е отишло няколко крачки по-нататък, като ви дава възможност да пеете или да се втурнат в приложението си, които те мач срещу базата данни, подадена от потребителя на други песни / пиянство записи.
Как работят?
Просто казано, процесът изглежда така:
- Базата данни на приложението съдържа огромна колекция от "пръстови отпечатъци" на песента или малки парчета данни за уникалните звукови шарки на песента.
- Когато потребителят натисне бутона "Запис", приложението слуша музиката и създава отпечатъци на базата на няколко секунди звук, който чува.
- Този пръстов отпечатък се проверява в базата данни със съществуващи пръстови отпечатъци. Ако отпечатъка от десет секунди съответства на част от песента, получавате резултата от песента си (надявам се, че сте прави). Ако не е така, ще получите грешка.
Ако просто търсите обяснение на повърхността, това е всичко, което трябва да знаете. Наистина интересната част е как всъщност получаваш този пръстов отпечатък.
Отпечатъци от песни за песни
Всичко започва със спектрограма, като тази в графиката по-горе, взета от хартия, написана от един от основателите на Shazam, Авери Уанг. Това е по същество графика с време на оста x (хоризонтална), честота по оста y (вертикална) и амплитуда, изразена чрез различни нива на интензитет на цвета. Всяка последователност от звуци може по този начин да се превърне в спектрограма, а на всяка точка от спектрограмата може да се зададе набор от координати. Точно така, бележките могат да бъдат числа.
Ако всичко, което трябва да направите, е съвпадение на няколко звука един към друг, можете да спрете тук. Ако искате да прегледате база данни, пълна с милиони песни, все пак една спектрограма с пълна подробност има прекалено много данни, за да преглеждате всякаква скорост.
Големият пробив в разпознаването на музиката беше осъзнаването, че можете да идентифицирате звуци само с малко данни: върховете или най-интензивните части. Не само че се отървават от по-ниските енергийни части на песента, но намаляват размера на спектрограмата, но правят приложенията по-малко чувствителни към идентифициране на тъп, постоянен фонов шум като част от целевите звуци. Представете си градски силует - най-идентифицируемите части са върховете на сградите, а не средните етажи и това е, което можете да видите от най-отдалеченото място.
Така че всяка секунда от всяка песен е съкратена само на няколко от най-интензивните данни; всичко в хоризонта на града е премахнато, с изключение на самия връх. Но това все още не е достатъчно ефективно, за да може да бъде търсено веднага, така че следващата стъпка е да "хешира" тази последователност от върхове. Hashing просто взима набор от входове, изпълнява ги чрез алгоритъм и им присвоява цяло число. В този случай хешът се генерира, като се вземат два от пиковете с висок интензитет, като се измерва времето между тях и се добавят двете им честоти заедно.
Резултатът е низ от номера, лесно съхранение и търсене. Когато компютърът прочете тази хеш, той ще ги разпознае като представляващи честота и време-разстояние. След като всички върхове в песента бъдат идентифицирани и хеширани, трансформацията е завършена: песента има уникален 32-битов номер, който служи като идентификатор в базата данни. По-важното е, че всяка секунда от песента се представя от номерата.
Когато телефонът ви слуша музика, той преминава през този точен процес: филтрира всичко, но най-високите точки, ги удря и създава отпечатъци за няколко секунди, които е записал. След като това приключи, телефонът ви просто трябва да види къде се появяват съответните низове от номера в базата данни, което му позволява да съответства на установените честоти и времето на правилната песен и да я върне за секунди.
Музика и още
Тази технология е най-широко използвана за разпознаване на музика, но приложенията за разпознаване на звук могат да работят и с филми, реклами, телевизионни предавания, птичи песни и др. Shazam и Soundhound са най-известни, но можете също сега да попитате Google какви песни се изпълняват и да получите точен отговор.
И ако се чудите: "Тези компании следят кои песни се питат?" Отговорът е "да". Статистическите данни за музикалната идентификация всъщност са в състояние да предскажат успеха на песните и изпълнителите с доста висока степен на точност, както и големите звукозаписни компании като Уорнър са се договорили с приложения като Shazam, за да помогнат за намирането на съвременни артисти. Така че, ако искате да подкрепите художник, можете също да направите своя дял и да потърсите песента си! Може просто да им помогнете да излетят.