Sedan starten 1999 har Shazam använts för att identifiera låtar över femtio miljarder gånger, och det räcker inte ens med att räkna ID-numren från Soundhound, MusicID och andra ljudigenkänningsprogram.

Ur användarens perspektiv är det enkelt: Starta appen, tryck på en knapp och låt din telefon lyssna på låten. Efter några sekunder, även med bakgrundsbrus och förvrängning, kommer appen att berätta vad låten är. Det fungerar så snabbt och så bra att det nästan verkar som magi - men som i de flesta magiska saker idag driver det mest av algoritmer.

Vad är tanken bakom dessa appar?

Shazam, Soundhound och andra musikidentifieringstjänster fungerar alla i stort sett på samma sätt: de har en stor databas med låtinformation, en algoritm som snabbt kan extrahera information från ditt låtprov och en app som låter dig gränsa med dessa saker. Tekniskt behöver du inte ens en smartphone.

Shazam var ursprungligen användbar på gammaldags flip-telefoner genom att bara spela in en sång och texta den till tjänsten. Soundhound har faktiskt gått några steg längre genom att du också kan sjunga eller humla i sin app som de matchar mot en användarinslagd databas med andra sång / humminginspelningar.

Hur fungerar de?

Enkelt sett ser processen ut så här:

  1. Appens databas har en massiv samling av sången "fingeravtryck" eller små bitar av data om sångens unika ljudmönster.
  2. När en användare träffar "Record" -knappen lyssnar appen på musiken och skapar ett fingeravtryck baserat på några sekunder av ljudet som hörs.
  3. Detta fingeravtryck kontrolleras mot databasen med befintliga fingeravtryck. Om ditt tio sekunders fingeravtryck är en matchning till en del av en sång får du ditt (förhoppningsvis korrekta) låtresultat. Om det inte är det kommer du att få tillbaka ett fel.

Om du bara letar efter en förklaring på ytanivå är det allt du behöver veta. Den riktigt intressanta delen är hur du faktiskt får det fingeravtrycket.

Sångfingeravtryck

Allt börjar med ett spektrogram, som det i diagrammet ovan, taget från ett papper skrivet av en av Shazams grundare, Avery Wang. Detta är i huvudsak en graf med tiden på x-axeln (horisontal), frekvensen på y-axeln (vertikal) och amplituden representerad av olika nivåer av färgintensitet. Vilken sekvens av ljud som helst kan omvandlas till ett spektrogram, och vilken punkt som helst på spektrogrammet kan tilldelas en uppsättning koordinater. På samma sätt kan anteckningar vara siffror.

Om allt du behöver göra var att matcha några ljud till varandra, kan du stanna här. Om du vill titta igenom en databas som är full av miljontals låtar, har en full-detalj-spektrogram alltför många datapunkter att se igenom vid någon form av hastighet.

Det stora genombrottet i musikigenkänning var att du kan identifiera ljud med bara några data: topparna eller de mest intensiva delarna. Inte bara blir av med de flesta av en sångs lägre energidelar minskar spektrogrammets storlek, men det gör apparna mindre känsliga för att identifiera tråkigt och konsekvent bakgrundsljud som en del av målljuden. Föreställ dig en stadsskyline - de mest identifierbara delarna är byggnadens toppar, inte de mellanliggande våningarna, och det är vad du kan se från längst bort.

Så varje sekund av varje sång strippas ner till bara några av de mest intensiva datapunkterna; allt på stadens silhuett tas bort förutom toppen. Men det är fortfarande inte tillräckligt effektivt för att genast sökas, så nästa steg är att "hash" denna sekvens av toppar. Hashing tar helt enkelt en uppsättning ingångar, kör dem genom en algoritm och tilldelar dem en heltalsproduktion. I detta fall genereras haschen genom att ta två av högintensitets toppar, mäta tiden mellan dem och lägga till sina två frekvenser tillsammans.

Resultatet är en rad tal, som kan lagras och sökas. När en dator läser denna hash, kommer den att känna igen dem som representerande frekvens och tidsavstånd. När alla topparna i låten har identifierats och hashed, är omvandlingen klar: låtet har nu ett unikt 32-bitars nummer som fungerar som dess ID i databasen. Ännu viktigare är varje sekund av låten representerad av numren.

När din telefon hör musik går den igenom den här exakta processen: det filtrerar bort allt utom de högsta punkterna, hackar dem och skapar ett fingeravtryck för några sekunder det har spelat in. När det här är klart måste din telefon bara se var motsvarande strängar av siffror finns i databasen, så att den kan matcha de upptäckta frekvenserna och timing till rätt låt och återföra den till dig på några sekunder.

Musik och mer

Denna teknik har använts mest för musikigenkänning, men ljudigenkänningsprogram kan också fungera med filmer, reklamfilmer, TV-program, fågelsångar och mycket mer. Shazam och Soundhound är de mest kända, men du kan också nu fråga Google vilken låt som spelas och få ett korrekt svar.

Och om du undrar, "Ska dessa företag hålla reda på vilka låtar man frågar om?" Svaret är "ja". Musikidentifieringsstatistik har faktiskt kunnat förutsäga framgången med sånger och artister med en ganska hög noggrannhet, och stora skivbolag som Warner har kontrakterat med appar som Shazam för att hjälpa till att hitta framstående artister. Så, om du vill stödja en artist, kan du lika bra göra din del och titta upp deras sång! Du kan bara hjälpa dem att ta av.