Sådan fungerer musik-identifikationsapplikationer
Siden det startede i 1999, har Shazam været vant til at identificere sange over halvtreds milliard gange, og det tæller ikke engang ID'erne fra Soundhound, MusicID og andre lydgenkendelse apps.
Fra et brugers perspektiv er det enkelt: Start appen, tryk på en knap, og lad din telefon lytte til sangen. Efter nogle få sekunder, selv med baggrundsstøj og forvrængning, vil appen fortælle dig, hvad sangen er. Det virker så hurtigt og så godt, at det næsten virker som magi - men som i de fleste magiske ting i disse dage er det for det meste kørt af algoritmer.
Hvad er ideen bag disse apps?
Shazam, Soundhound og andre musik-identifikationstjenester, arbejder de grundlæggende på samme måde: De har en stor database med sanginformation, en algoritme, der hurtigt kan udtrække informationer fra din sangeksempel og en app, der giver dig mulighed for at interfere med disse ting. Teknisk behøver du ikke engang en smartphone.
Shazam var oprindeligt brugbar på gammeldags flip-telefoner ved blot at optage en sang og sms den til tjenesten. Soundhound er faktisk gået et par skridt videre ved også at give dig mulighed for at synge eller humme i deres app, som de matcher med en brugerindgivet database med andre sang / humming optagelser.
Hvordan virker de?
Enkelt sagt ser processen så ud:
- Appens database har en massiv samling af sang "fingeraftryk" eller små stykker data om sangens unikke lydmønstre.
- Når en bruger rammer "Optag" -knappen, lytter appen til musikken og opretter et fingeraftryk baseret på de få sekunder af lyden, den hører.
- Dette fingeraftryk kontrolleres mod databasen med eksisterende fingeraftryk. Hvis dit ti sekunders fingeraftryk er en match til en del af en sang, får du dit (forhåbentlig korrekte) sangresultat. Hvis det ikke er tilfældet, får du en fejl igen.
Hvis du bare leder efter en forklaring på overfladeniveau, er det alt, hvad du behøver at vide. Den virkelig interessante del er, hvordan du faktisk får fingeraftryk.
Sang fingeraftryk
Det hele starter med et spektrogram, som det i grafen ovenfor, taget fra et papir skrevet af en af Shazams grundlæggere, Avery Wang. Dette er i det væsentlige en graf med tid på x-aksen (vandret), frekvensen på y-aksen (vertikal) og amplitude repræsenteret af forskellige niveauer af farveintensitet. Enhver lydsekvens kan således omdannes til et spektrogram, og ethvert punkt på spektrogrammet kan tildeles et sæt koordinater. Ligesom det kan noter være tal.
Hvis alt du behøver at gøre var at matche nogle få lyde til hinanden, kunne du stoppe her. Hvis du vil se gennem en database fuld af millioner af sange, har et fuld-detaljeret spektrogram dog alt for mange datapunkter til at se igennem ved enhver form for hastighed.
Det store gennembrud i musikgenkendelse var erkendelsen, at du kan identificere lyde med kun et par stykker data: toppe eller de mest intense dele. Ikke kun gør sig af med de fleste af en sangs lavere energidele mindsker størrelsen på spektrogrammet, men det gør apps mindre modtagelige for at identificere kedelig, konsekvent baggrundsstøj som en del af mållyden. Forestil dig en byens skyline - de mest identificerbare dele er toppen af bygninger, ikke de mellemste etager, og det er det du kan se længst væk.
Så hvert sekund af hver sang strippes ned til blot nogle få af de mest intense datapunkter; alt på byens skyline fjernes, undtagen det allerbedste. Men det er stadig ikke helt effektivt nok til at være umiddelbart søgbare, så det næste skridt er at "hash" denne sekvens af toppe. Hashing tager simpelthen et sæt indgange, kører dem gennem en algoritme og tildeler dem et heltals output. I dette tilfælde genereres hasen ved at tage to af højintensitetstoppene, måle tiden mellem dem og tilføje deres to frekvenser sammen.
Resultatet er en række tal, der kan gemmes let og kan søges. Når en computer læser denne hash, genkender den dem som repræsentation af frekvens og tidsafstand. Når alle toppene i sangen er blevet identificeret og hashed, er transformationen færdig: sangen har nu et unikt 32-bit nummer, der tjener som dets id i databasen. Endnu vigtigere er hvert sekund af sangen repræsenteret af tallene.
Når din telefon hører musik, går den igennem denne nøjagtige proces: den filtrerer ud alt andet end de højeste punkter, hakker dem og skaber et fingeraftryk i de få sekunder, det har optaget. Når dette er færdigt, behøver din telefon kun at se, hvor de tilhørende strenge af numre vises i databasen, så den kan matche de registrerede frekvenser og timing til den korrekte sang og returnere den til dig om sekunder.
Musik og meget mere
Denne teknologi har været mest udbredt til genkendelse af musik, men lydgenkendelse apps kan også arbejde med film, reklamer, tv-shows, fuglesange og meget mere. Shazam og Soundhound er de mest kendte, men du kan også nu spørge Google, hvilken sang der spiller og få et præcist svar.
Og hvis du spekulerer på, "Undersøg disse virksomheder, hvilke sange der bliver spurgt om?" Svaret er "ja". Musikidentifikationsstatistikker har faktisk været i stand til at forudsige succesen med sange og kunstnere med et ret højt nøjagtighed, og store pladeselskaber som Warner har indgået kontrakter med apps som Shazam for at hjælpe med at finde frem og tilbage kunstnere. Så hvis du vil støtte en kunstner, kan du lige så godt gøre din del og kigge op deres sang! Du kan bare hjælpe dem med at tage afsted.