Siden det startet i 1999, har Shazam blitt brukt til å identifisere sanger over femti milliarder ganger, og det teller ikke engang IDene fra Soundhound, MusicID og andre lydgjenkjenningsapper.

Fra et brukerperspektiv er det enkelt: Start appen, trykk på en knapp, og la telefonen høre på sangen. Etter noen få sekunder, selv med bakgrunnsstøy og forvrengning, vil appen fortelle deg hva sangen er. Det fungerer så fort og så godt at det nesten virker som magi - men som i de fleste magiske ting i disse dager, er det for det meste drevet av algoritmer.

Hva er ideen bak disse appene?

Shazam, Soundhound og andre musikkidentifikasjonstjenester, jobber i utgangspunktet på samme måte: de har en stor database med sanginformasjon, en algoritme som raskt kan trekke ut informasjon fra sangprøven din, og en app som lar deg grensesnittet med disse tingene. Teknisk trenger du ikke engang en smarttelefon.

Shazam var opprinnelig brukbar på gammeldags flip-telefoner ved å bare ta opp en sang og sms den til tjenesten. Soundhound har faktisk gått noen få skritt videre ved at du også kan synge eller hum i appen deres, som de samsvarer med en brukerinnlevert database med andre sang / humming opptak.

Hvordan fungerer de?

Enkelt sagt ser prosessen slik ut:

  1. Appens database har en massiv samling av sang "fingeravtrykk", eller små biter av data om sangens unike lydmønstre.
  2. Når en bruker treffer "Record" -knappen, lytter appen til musikken og lager et fingeravtrykk basert på få sekunder av lyden den hører.
  3. Dette fingeravtrykk er sjekket mot databasen med eksisterende fingeravtrykk. Hvis ditt ti sekunders fingeravtrykk er en match til en del av en sang, får du ditt (forhåpentligvis korrekte) sangresultat. Hvis ikke, får du en feilmelding.

Hvis du bare leter etter en forklaring på overflaten, er det alt du trenger å vite. Den veldig interessante delen er hvordan du faktisk får fingeravtrykk.

Sangfingeravtrykk

Alt begynner med et spektrogram, som det i grafen ovenfor, tatt fra et papir skrevet av en av Shazams grunnleggere, Avery Wang. Dette er i hovedsak en graf med tid på x-aksen (horisontal), frekvensen på y-aksen (vertikal) og amplitude representert av forskjellige nivåer av fargeintensitet. Enhver lydsekvens kan således omdannes til et spektrogram, og et hvilket som helst punkt på spektrogrammet kan tilordnes et sett med koordinater. På samme måte kan notater være tall.

Hvis alt du trenger å gjøre var å samsvare noen få lyder til hverandre, kan du stoppe her. Hvis du vil se gjennom en database full av millioner av sanger, har et full-detalj-spektrogram alt for mange datapunkter for å se gjennom med hvilken som helst hastighet.

Det store gjennombruddet i musikkgjenkjenning var realiseringen av at du kan identifisere lyder med bare noen få stykker data: toppene eller de mest intense delene. Ikke bare blir kvitt de fleste av en sangs lavere energideler redusere størrelsen på spektrogrammet, men det gjør appene mindre mottakelige for å identifisere kjedelig, konsistent bakgrunnsstøy som en del av mållydene. Tenk deg en byens skyline - de mest identifiserbare delene er toppen av bygninger, ikke de midterste etasjene, og det er det du kan se lengst unna.

Så hvert sekund av hver sang er strippet ned til bare noen få av de mest intense datapunkter; alt på byens skyline er fjernet bortsett fra det aller beste. Men det er fortsatt ikke helt effektivt nok til å være umiddelbart søkbare, så neste skritt er å "hash" denne sekvensen av topper. Hashing tar bare et sett med innganger, kjører dem gjennom en algoritme, og tilordner dem et heltall utgang. I dette tilfellet blir isen generert ved å ta to av høyintensitetstoppene, måle tiden mellom dem og legge til to frekvenser sammen.

Resultatet er en rekke tall, lett lagringsbar og søkbar. Når en datamaskin leser denne hasen, vil den gjenkjenne dem som representerer frekvens og tidsavstand. Når alle toppene i sangen er identifisert og hashed, er transformasjonen fullført: sangen har nå et unikt 32-biters nummer som tjener som sin ID i databasen. Enda viktigere er hvert sekund av sangen representert av tallene.

Når telefonen hører musikk, går den gjennom denne nøyaktige prosessen: det filtrerer ut alt annet enn de høyeste punktene, hakker dem og lager et fingeravtrykk for de få sekunder det har spilt inn. Når dette er fullført, trenger telefonen bare å se hvor de tilhørende strengene av tall vises i databasen, slik at den kan matche de oppdagede frekvensene og timingen til riktig sang og returnere den til deg i løpet av sekunder.

Musikk og mer

Denne teknologien har blitt mest brukt til musikkgjenkjenning, men lydgjenkjenningsapps kan også fungere med filmer, reklame, TV-programmer, fuglesang og mer. Shazam og Soundhound er de mest kjente, men du kan også nå spørre hvilken sang som spilles og få et nøyaktig svar.

Og hvis du lurer på, "Opprettholder disse selskapene hvilke sanger som blir spurt om?" Svaret er "ja." Musikkidentifikasjonsstatistikk har faktisk kunnet forutsi suksess av sanger og artister med et ganske høyt nøyaktighetsnivå, og store plateselskaper som Warner har kontrakt med apps som Shazam for å hjelpe deg med å finne fremtidsrettede artister. Så, hvis du vil støtte en kunstner, kan du også gjøre din del og se opp sangen deres! Du kan bare hjelpe dem å ta av.