13
SHAZAM En smart musiktjänst Linha108 Fördjupningsarbete 729G43

SHAZAM! - IDA > Home729G43/projekt/studentpapper-16/...Shazam är en musiktjänst som genom en sökalgoritm kan känna igen ljud och returnera låt och artist till användaren. Detta

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SHAZAM! - IDA > Home729G43/projekt/studentpapper-16/...Shazam är en musiktjänst som genom en sökalgoritm kan känna igen ljud och returnera låt och artist till användaren. Detta

!

!

SHAZAM!En!smart!musiktjänst!

Linha108!Fördjupningsarbete!729G43!

Page 2: SHAZAM! - IDA > Home729G43/projekt/studentpapper-16/...Shazam är en musiktjänst som genom en sökalgoritm kan känna igen ljud och returnera låt och artist till användaren. Detta

Linnéa!Hanson! 729G43!

Linha108! ! !

Sammanfattning Shazam är en musiktjänst som genom en sökalgoritm kan känna igen ljud och returnera låt

och artist till användaren. Detta sker genom att användaren spelar in ett tio sekunder långt

ljudklipp i mobiltelefonen som sedan analyseras av tjänsten och jämförs med låtar i dess

databas. Denna text ämnar förklara i detalj hur detta går till.

!

Page 3: SHAZAM! - IDA > Home729G43/projekt/studentpapper-16/...Shazam är en musiktjänst som genom en sökalgoritm kan känna igen ljud och returnera låt och artist till användaren. Detta

Linnéa!Hanson! 729G43!

Linha108! ! !

Innehållsförteckning0

Sammanfattning) 2!

Inledning) 4!

Spektrogram)blir)konstellationskartor) 4!Djupt&neuralt&nätverk& 5!

Konstellationskartor)blir)hashdetaljer) 7!Fingeravtryck& 8!Spridningsdiagram& 10!Histogram& 10!

Diskussion) 12!

Referenser) 13!!

!

Page 4: SHAZAM! - IDA > Home729G43/projekt/studentpapper-16/...Shazam är en musiktjänst som genom en sökalgoritm kan känna igen ljud och returnera låt och artist till användaren. Detta

Linnéa!Hanson! 729G43!

Linha108! ! !

Inledning !Musiken är en av de äldsta och största konst- och underhållningsformerna vi har, och den

strömmar till oss från alla möjliga håll i vår vardag. Vi hör musik i bilen på väg till jobbet, i

vårt hem, när vi går i affärer och när vi ser på filmer eller serier. Ibland är det vi själva som

väljer musiken och ibland har någon annan valt den. Om vi själva spelar musik från någon

musiktjänst är det enkelt att ta reda på exakt vad det är vi lyssnar på, allt vi behöver göra är att

gå in i programmet och avläsa namn och artist. Men vad gör vi när vi inte kommer åt källan

till musiken, och vill ha reda på vad det är som spelas och av vem? Det är här smarta

musiktjänster som Shazam, utvecklat av Shazam Entertainment Ltd., kommer in i bilden. En

musikigenkännande tjänst som genom akustiska fingeravtryck kan avgöra vilken låt vi lyssnar

på och med vilken artist, genom att via nätverksanslutning koppla upp sig mot en stor databas

av musik och jämföra.

Spektrogram blir konstellationskartor !Akustiska fingeravtryck, eller innehållsbaserad ljudidentifiering (i.e. content-based audio

identification), kan skapas genom spektrografi som är en typ av akustisk analys (Wikipedia

2016). Resultatet av spektrografi är ett diagram med tre dimensioner, vilka uppmäter

frekvens, tid och intensitet (se Figur 1). Genom ett spektrogram kan ljudets

frekvenssammansättning göras om till visuell information som sedan fortsatt kan analyseras.

Ett ljud visas separat i diagrammet och det går även att urskilja hur starkt ljudet var, hur länge

det pågick samt vilken frekvens ljudet hade. Av dessa ljud väljer Shazam ut

spektrogramtoppar (i.e. spectogram peaks) vilka förblir robusta trots närvaro av brus i

ljudfilen, som till exempel röster eller trafik (Wang, 2003). En topp väljs ut genom att man

tittar på grannarna runt den potentiella toppen och avgör om den har ett högre energiinnehåll

än de andra. Det finns även ett krav på densitet och amplitud för att säkerställa enhetlig

täckning genom ljudfilen samt för att öka sannolikheten att toppen väljs framför någon typ av

brus. Topparna som väljs ut bildar något som ser ut som en karta av konstellationer och som

kallas därefter. Om man skulle placera en konstellationskarta av en låt i databasen på en

remsa och placera en konstellationskarta av ett okänt klipp ovanför, på ett transparant papper,

och skjuta den ovanpå remsan skulle prickarna förr eller senare stämma överens. Desto fler

prickar som stämmer överens, desto större chans att det faktiskt är samma låt.

Page 5: SHAZAM! - IDA > Home729G43/projekt/studentpapper-16/...Shazam är en musiktjänst som genom en sökalgoritm kan känna igen ljud och returnera låt och artist till användaren. Detta

Linnéa!Hanson! 729G43!

Linha108! ! !

Figur 1. Spektrogram Figur 2. Konstellationskarta av

spektrogramtoppar

Djupt neuralt nätverk Det är enkelt att som människa urskilja de punkter som kan användas som spektrogramtoppar,

men desto svårare för en dator. Här används bildigenkänning som är en typ av

maskininlärning. Bildigenkänning kan innebära att systemet givet en bild ska kunna tilldela

denna en kategori, men det kan också vara mer invecklat än så, som i detta fall. För att ett

spektrogram ska kunna bli en konstellationskarta av spektrogramtoppar krävs fler

outputvärden samt en förståelse för hela spektrogrammet. Brusreducering (i.e. denoising)

kallas en process man skulle kunna genomföra på ett spektrogram för att få fram

spektrogramtoppar (Goodfellow, Bengio & Courville, 2016). Givet en skadad eller inkorrekt

observerad bild kan maskininlärningssystemet returnera en uppskattning av originalet eller

den korrekta bilden. I det här fallet kan bilden ses som skadad då den innehåller onödigt

bakgrundsbrus, ljud som vi ej önskar använda oss utav. Ljudet vi i detta fall är intresserade av

är endast spektrogramtopparna, de punkter på vår bild som är mest tydliga, övrig information

kan sorteras bort.

Simpson, Roma och Plumbley (2015) genomförde en liknande studie där de försökte få ett

neuralt nätverk att urskilja röster i en brusig omgivning. Detta problem är även känt som

cocktailpartyeffekten, och är något som vi människor är väldigt bra på. När vi står i en

samling av människor där alla pratar kan vi ändå lyckas fokusera vår uppmärksamhet på den

Page 6: SHAZAM! - IDA > Home729G43/projekt/studentpapper-16/...Shazam är en musiktjänst som genom en sökalgoritm kan känna igen ljud och returnera låt och artist till användaren. Detta

Linnéa!Hanson! 729G43!

Linha108! ! !

vi talar med. Vi kan även skifta vårt fokus och fokusera på en annan röst istället, eller en helt

annan konversation. Något som för oss är så enkelt är däremot inte alls lika enkelt för ett

neuralt nätverk. I Simpson, Roma och Plumbleys studie är uppgiften för det neurala nätverket

att försöka urskilja en rösts unika spektrogram från de andra spektrogram som finns

närvarande i ljudbilden. De tränade nätverket genom att använda spektrogram för en hel låt,

samt spektrogram för enskilda instrument, exempelvis en viss röst, som facit och förväntade

sig att det neurala nätverket slutligen skulle kunna producera det enskilda instrumentets

spektrogram utifrån det hela spektrogrammet. För en uppgift som denna krävs miljarder

parametrar som behöver justeras på ett sätt som ger ett önskat outputvärde och detta sker

genom flera iterationer. När man funnit en inställning som presterar bra på träningsdata kan

man sedan testa systemet på några låtar man ej haft med då man testat nätverket. Simpson,

Roma och Plumbley (2015) fann att deras neurala nätverk presterade över förväntan på dessa

låtar, och att nätverket hade skaffat sig en generell förståelse för hur en mänsklig stämma ser

ut på ett spektrogram. När detta gjorts kunde det neurala nätverket sedan även lära sig urskilja

separata stämmor, olika röster från olika personer eller olika ljud från olika instrument. Detta

skulle kunna användas för att plocka bort en röst eller ett instrument från en redan befintlig

låt, exempelvis för att skapa karaokelåtar. I figur 3 nedan skulle Simpson, Roma och

Plumbleys input layer vara låten med alla instrument, medan output layer skulle vara en

enskild stämma.

Figur 3. Ett djupt neuralt nätverk (Deep neural network).

I ett neuralt närverk är varje lager en transformeringsfunktion vars output blir inputen till

nästa lager (Dai, 2016). Matematiskt,

Page 7: SHAZAM! - IDA > Home729G43/projekt/studentpapper-16/...Shazam är en musiktjänst som genom en sökalgoritm kan känna igen ljud och returnera låt och artist till användaren. Detta

Linnéa!Hanson! 729G43!

Linha108! ! !

där är det första och andra lagret och är vikternas parametrar som är

associerade med det första respektive det andra lagret. När vi genomför gradientsökningen

uppdateras .

I Shazam har det djupa neurala nätverket istället tränats att välja ut spektrogramtopparna,

exakt hur detta genomförs framgår ej från rapporten som skrivits av dess utvecklare (Wang,

2003). Utifrån hur Simpson, Roma och Plumbley genomförde sin studie bör även denna

träning först ha skett i mindre skala på ett antal låtar där man försöker minimera modellens

träningsfel, för att sedan kunna minimera felvärdet på okända data, modellens

generaliseringsfel. Här försöker man undvika underfitting och overfitting. Underfitting

innebär att man får ett högt felvärde redan på träningsmängden samt att modellen presterar

ännu sämre på testmängden, medan overfitting innebär att man överoptimerat modellen på

träningsdatat och får ett lågt felvärde på den men sedan ett mycket högre felvärde på

testmängden då modellen lärt sig särdrag hos testdatat. I Figur 3 blir spektrogrammet input

layer medan en färdig konstellationskarta blir output layer. När det neurala nätverket justerats

och tränats färdigt kan det framställa egna konstellationskartor där spektrogramtopparna är

tydligt utmärkta. När detta gjorts fortsätter man skapa individuella fingeravtryck, hashdetaljer.

Konstellationskartor blir hashdetaljer Det tar lång tid att hitta rätt tidpunkt i låtarna i databasen endast med hjälp av

konstellationskartor, detta då de har låg entropi. Entropi är ett mått på brus, eller störningar

som finns i materialet som ska analyseras. I databasen har låtarna ett rent ljud, utan

bakgrundsbrus och de är även mycket längre än det ljudklipp användaren spelat in. Då det inte

är helt säkert att samtliga spektrogramtoppar på konstellationskartan kommer från låten vi

söker behöver vi modifiera vår sökning något. Detta är anledningen till att man även använder

en hashfunktion som tar ut de specifika fingeravtrycken för låtarna. En hashfunktion är en

funktion som används för att göra om en godtycklig mängd data till en fixerad mängd data

(Yantao & Xiang, 2016). Två ljud och tidpunkten mellan dessa bildar en hashdetalj. De unika

hashdetaljerna, eller fingeravtrycken, som skapas för ljudfilen jämförs sedan mot filerna i

databasen och deras respektive fingeravtryck, för att avgöra om det finns några matchningar.

De eventuella matchningar som dyker upp utvärderas efter hur korrekta de är och algoritmen

returnerar sedan den korrekta matchningen. Wang (2003) beskriver att man börjar med att

välja ett ankare, som är ett visst ljud. Detta enskilda ljud paras sedan ihop med andra rent

tidsmässigt nära ljud och läggs till i databasen som hashdetaljer. Varje par ger två

Page 8: SHAZAM! - IDA > Home729G43/projekt/studentpapper-16/...Shazam är en musiktjänst som genom en sökalgoritm kan känna igen ljud och returnera låt och artist till användaren. Detta

Linnéa!Hanson! 729G43!

Linha108! ! !

frekvenskomponenter plus tidsskillnaden mellan punkterna och varje hashdetalj kan packas i

ett 32-bitars heltal. Till detta heltal läggs även information om vilken låt det gäller, vilket ger

ett 64-bitars heltal, varav 32 bitar är en hashdetalj och 32 bitar är när hashdetaljen startar och

vilken låt det gäller. Genom att söka efter par istället för enskilda toppar går sökningen

mycket snabbare. När man söker efter par blir det mindre chans att det blir en matchning om

detta par inte skulle vara korrekt utfärdat, men att söktiden minskar samt att det blir fler

hashdetaljer än det hade blivit spektrogramtoppar väger upp för detta.

Fingeravtryck För att något ska kunna användas som ett fingeravtryck bör det enligt Shazam vara temporärt

lokaliserat, ej påverkas av översättning, vara robust och ha tillräcklig men ej för hög entropi

(Wang, 2003). Att ett fingeravtryck är temporärt lokaliserat innebär att man plockar ut ett

visst ljud som ankare och sedan jämför detta med ljud som inträffar nära detta ankare, rent

tidsmässigt. Detta gör man för att inte avlägsna händelser i ljudfilen ska påverka den

hashdetalj man tagit ut. Fingeravtrycket får ej heller påverkas av översättning, i det här fallet

innebär det att fingeravtrycket inte får påverkas av var i låten fingeravtrycket befinner sig.

När man spelar in ett klipp från en okänd låt vet man ej heller exakt var i låten man befinner

sig, och en matchning måste kunna hittas trots detta. Därför söker algoritmen igenom hela

databasen och även hela låtar, för att försöka avgöra om fingeravtrycket finns någonstans i

någon av låtarna. Ljudfilen måste även kunna kännas igen trots brusig bakgrund och andra

ljud i omgivningen som kan störa, till exempel röster. Databasen och dess fingeravtryck bör

därför vara robusta, för att en ljudfil med brus ska kunna matcha med en ljudfil i databasen

som har rent ljud, utan brus. Fingeravtrycken som skapas bör vara tillräckligt exakta och ha

tillräckligt hög entropi för att inte ge falska matchningar mellan den okända ljudfilen och

ljudfiler i databasen, men de bör ej heller vara för exakta och ha en allt för hög entropi då

även detta leder till att inga matchningar kan göras vid närvaro av brus.

!

Page 9: SHAZAM! - IDA > Home729G43/projekt/studentpapper-16/...Shazam är en musiktjänst som genom en sökalgoritm kan känna igen ljud och returnera låt och artist till användaren. Detta

Linnéa!Hanson! 729G43!

Linha108! ! !

Figur 4. Kombinatorisk hashgeneration Figur 5. Hashdetalj

Sökning och matchning

När sökningen sker har fingeravtryck skapats på den okända ljudfilen och hashdetaljerna kan

matchas mot ljudfiler i databasen. Om ett par från den okända ljudfilen matchas mot ett annat

par i databasen från en viss låt placeras det i en mapp för just den låten. Om flera matchningar

hittas för olika låtar sorteras dessa per låt och sedan skannas mapparna igenom ytterligare en

gång efter en fullständig matchning. Ett exempel på hur mapparna kan se ut demonstreras av

Figur 6 nedan.

Figur 6. Mappar fyllda med hashdetaljer sorterade på låt och artist.

Page 10: SHAZAM! - IDA > Home729G43/projekt/studentpapper-16/...Shazam är en musiktjänst som genom en sökalgoritm kan känna igen ljud och returnera låt och artist till användaren. Detta

Linnéa!Hanson! 729G43!

Linha108! ! !

Spridningsdiagram Här skapas ett spridningsdiagram som visar sambandet mellan den okända ljudfilen och

ljudfilen i databasen. Om ljudfilerna matchar bör en sekvens av matchningar visas i form av

de hashdetaljer som matchats, från början till slutet av ljudfilen, med samma relativa tidsföljd.

Då bör man även kunna finna ett signifikant kluster av prickar som formar en diagonal linje i

spridningsdiagrammet. För att denna diagonala linje ska upptäckas antar vi att lutningen är

1.0 och då har de matchande filerna relationen

där är ett särdrag för den rena filen i databasens tidskoordinat och är tidskoordinaten

för ett särdrag i den okända ljudfilen. För varje koordinat i spridningsdiagrammet

räknar man ut skillnaden mellan koordinaterna enligt nedan:

Histogram Av denna skillnad skapar man sedan ett histogram och söker efter en topp. Detta kan man

enligt Wang (2003) göra genom att sortera alla skillnader och söka efter ett kluster av samma

värden. Sökningen tar endast mikrosekunder per mapp och resultatet av en matchning är

antalet matchande punkter i histogrammet. Om det finns ett signifikant kluster av matchningar

har man hittat en matchning. Nedan visas ett spridningsdiagram samt ett histogram som visar

hur det ser ut då ett klipp och en ljudfil i databasen ej matchar varandra, samt ett

spridningsdiagram och histogram som demonstrerar ett klipp och en ljudfil som matchar

varandra (se Figur 7 samt Figur 8). Anledningen till att även en låt som inte matchar ger

utslag på histogrammet är att vissa delar av låtar kan vara lika varandra. Vissa tonföljder eller

bastoner kan vara desamma då det är vanligt att musiker influeras av varandra. Därför sätter

man även en gräns för hur måna matchningar som måste finnas i ett visst klipp för att det ska

ge utslag som en matchning.

!

Page 11: SHAZAM! - IDA > Home729G43/projekt/studentpapper-16/...Shazam är en musiktjänst som genom en sökalgoritm kan känna igen ljud och returnera låt och artist till användaren. Detta

Linnéa!Hanson! 729G43!

Linha108! ! !

Figur 7. Ett spridningsdiagram samt ett histogram där två ljudfiler ej matchar

Figur 8. Ett spridningsdiagram samt ett histogram där två ljudfiler matchar

Page 12: SHAZAM! - IDA > Home729G43/projekt/studentpapper-16/...Shazam är en musiktjänst som genom en sökalgoritm kan känna igen ljud och returnera låt och artist till användaren. Detta

Linnéa!Hanson! 729G43!

Linha108! ! !

Diskussion Shazam hjälper sina användare att hitta den musik de söker, och musiktjänsten hjälper även

musiken och dess upphovsmän att nå ut till fler personer. I applikationen ges man möjlighet

att lyssna på låten direkt, se texten, videoklipp om sådana finns och man kan även se

information från artisten om eventuella konsertdatum och annat som kan intressera

användaren.

Algoritmen är så pass exakt att utvecklarna funnit flera exempel på plagiat. Detta blir

ytterligare ett användningsområde för tjänsten, då stulet material med copyright kan kännas

igen och även rapporteras. Tjänsten går ej att använda vid konserter eftersom den söker efter

fingeravtryck som överensstämmer exakt, vilket de ej gör vid ett liveframträdande,

åtminstone inte med millisekundprecision. Om tjänsten finner låten trots att inspelningen sker

live är det därför snarare troligt att artisten ej framträder live, vilket har upptäckts flertalet

gånger av tjänsten. Detta kan vara intressant vid recensioner av konserter, då det är ganska

stor skillnad på att framträda live och att spela upp ett ljudklipp från ett redan befintligt

album.

Det finns även gånger man får en låt i huvudet som man ej kommer på vad den heter, utan att

den spelas. Kanske kan framtiden erbjuda tjänster där man själv kan sjunga in den låt man

söker och som sedan söker i en databas efter korrekt låt. Självklart skulle inte en sådan tjänst

vara lika exakt eftersom det kan vara stora skillnader på materialet i databasen och det

material som användaren spelar in. Men då man kan se frekvens på ett spektrogram borde inte

detta vara helt omöjligt, så länge inte användaren är helt tondöv.

Det finns många ytterligare användningsområden för den här typen av tjänst, och jag är därför

övertygad om att ytterligare liknande tjänster kommer att dyka upp i framtiden. Det ska bli

spännande att se vad vi kommer kunna göra om några år med den här typen av algoritmer.

!

Page 13: SHAZAM! - IDA > Home729G43/projekt/studentpapper-16/...Shazam är en musiktjänst som genom en sökalgoritm kan känna igen ljud och returnera låt och artist till användaren. Detta

Linnéa!Hanson! 729G43!

Linha108! ! !

Referenser

Wang, A. L.-C. (2003). An Industrial Strength Audio Search Algorithm. Proceedings of the 4th International Society for Music Information Retrieval Conference (ISMIR 203), Baltimore, Maryland (USA), 26-30 October 2003, 7–13. http://doi.org/10.1109/IITAW.2009.110

Yantao, L., & Xiang, L. (2016). Chaotic hash function based on circular shifts with variable parameters. Elsevier, s. 1. http://dx.doi.org/10.1016/j.chaos.2016.08.014

Wikipedia.!(den!09!01!2017).!Wikipedia&Den&fria&encyklopedin.!Hämtat!från!

www.wikipedia.org:!https://sv.wikipedia.org/wiki/Spektrografi!

!

Goodfellow,!I.,!Bengio,!Y.,!&!Courville,!A.!(2016).!Deep&Learning.!Cambridge:!MIT!Press.!

!

Simpson, A. J. R., Roma, G., & Plumbley, M. D. (2015). Deep karaoke: Extracting vocals from musical mixtures using a convolutional deep neural network. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 9237, pp. 429–436). http://doi.org/10.1007/978-3-319-22482-4_50

Dai,!W.!(2016).!Acoustic&Scene&Recognition&with&Deep&Learning.!Carneige:!Machine!Learning!

Department!Carneige!Mellon!University.!