LINKÖPINGS UNIVERSITET - IDA ACOUSTIC FINGERPRINTING SYSTEMS Louise Walletun Artificiell Intelligens II 729G11 HT2012
Innehållsförteckning Inledning... 3 Attribut hos akustiska fingeravtryck... 4 Evalueringssystemet... 4 Generell uppbyggnad av ett system... 6 Front-end... 6 Fingerprint Modeling Block... 8 Exempel på implementering (Shazam)... 9 Framing och transformation... 9 Databas och matchning... 10 Referenser... 14 2
Inledning I vår ständigt teknologiskt föränderliga värld tillkommer det dagligen intressanta tjänster inom musikbranschen. Detta är ett område där nya kreativa lösningar har efterfrågats enormt allt eftersom skivhandlandet minskat drastiskt samtidigt som fler musiker vill kunna försörja sig på sitt skapande. Med detta som grund har utvecklingen inom intelligent teknik för att få konsumenter att köpa mer musik ökat under senare år. Många företag, däribland Shazam Entertainment Ltd., har valt att utveckla musikigenkännande applikationer som är tänkta att underlätta då lyssnaren hör ett icke-familjärt stycke som den gillar och skulle vilja undersöka vid senare tillfälle men inte vet vad artisten eller stycket heter. Ett intressant lösning som hjälper konsumenterna att själva hitta musiken likväl som den hjälper musiken att hitta konsumenterna. Denna tjänst är baserad på en teknik som kallas för akustiska fingeravtryck (acoustic fingerprinting) vilket kan sammanfattas som digitala representationer av ljudsignaler. Lyssnaren samplar en tio sekunders sekvens av musik, som avkodas till ett fingeravtryck och sedan matchas mot en databas av liknande akustiska fingeravtryck. Flertalet andra användningsområden finns även för denna teknik, som exempelvis igenkänning av copyright och stulet musikmaterial. I detta fördjupningsarbete beskrivs först ett generellt evalueringssystem för akustiska fingeravtryckssystem och vilka faktorer som bör tas hänsyn till i konstruktionen. Vidare sammanfattas ett förslag på hur den allmänna uppbyggnaden av ett sådant system ser ut. Slutligen konkretiseras bilden av ett akustiskt fingeravtryckssystem genom en beskrivning av hur detta används i musiktjänsten Shazam. 3
Attribut hos akustiska fingeravtryck Akustiska fingeravtryck (acoustic fingerprinting) går att beskriva som digitala sammanfattningar av ljudsignaler. Användandet av dessa fingeravtryck känns främst igen hos dess förmåga att utföra musikigenkänning av okänd musik oberoende av format på musikfilen ifråga. System baserade på akustiska fingeravtryck tar ett stycke musik, gör ett perceptuellt sammandrag av de akustiskt utstickande elementen för att sedan lagra i en fingeravtrycksdatabas. När systemet sedan presenteras med icke-familjärt ljud letar den i databasen och med hjälp av sök- och matchningsalgoritmer kan den utföra den automatiska musikigenkänningen. Ett system som använder sig av akustiska fingeravtryck har många faktorer att ta hänsyn till för att vara funktionellt användbart. Det måste även kunna sammanfatta och representera ljudsignalen på ett bra och relevant vis som överensstämmer med hur människan perceptuellt uppfattar ljudet, även om dess binära representation skiljer sig åt. Evalueringssystemet Ett mer generellt evalueringssystem för att kunna jämföra liknande identifieringstekniker av denna sort har utarbetats som tar upp de kritiskt viktiga punkterna att uppfylla vid utvecklandet (Cano P, Batlle E, Kalker T, Haitsma J, 2002). Några av dessa termer kommer att användas i senare beskrivningar vilket gör definitionen av begreppen relevanta att sammanfatta. Följande punkter utgås ifrån vid värderingar av denna typ av system: Träffsäkerhet: Systemet värderas beroende på hur många rätta identifikationer, misslyckade identifikationer samt felaktiga identifikationer (så kallade false positives) den lyckas utföra. Denna punkt kan sammanfattas som applikationens hit-miss-ratio. Störst fokus är det på de felaktiga identifikationerna som bör vara obefintliga om systemet ska vara optimalt. Reliabilitet: Systemet måste vara rättsligt effektivt och veta om huruvida den har tillåtelse rent copyright-mässigt att identifiera musiken eller ej. Andra situationer kan vara skivor som exempelvis inte släppts ännu som även de inte får identifieras. De flesta applikationer använder sig av uppköpta databaser som erbjuds av diverse företag vilket underlättar den rättsliga processen betydligt. 4
Stabilitet: Denna evalueringsfunktion bedömer hur effektivt systemet klarar av att identifiera när musikfilen är av dålig kvalitet, har påtagliga brusnivåer eller dylika störningar i bakgrunden. Detta har att göra med hur väl själva fingeravtrycksalgoritmen fungerar. Granluering: Detta syftar på hur väl enstaka segment av en hel sång kan igenkännas. Detta förutsätter att synkroniseringen mellan fingeravtrycket i databasen samt det inspelade segmentet fungerar väl och att sökningsalgoritmen inte tar för lång tid på sig att identifiera. Säkerhet: Behandlar hur säkert systemet är mot manipulationer och hur stabilt det är mot intrång utifrån. Ombytlighet: Hur flexibel är systemet när det kommer till att identifiera ljud oavsett format på ljudfilen, eller hur applicerbar är databasen på olika tjänster/applikationer? Skalbarhet: Bedömer hur lätt systemet kan expanderas till större skalor med stora databaser eller multipla simultana identifikationsprocesser. Detta är av stor vikt då det påverkar systemets komplexitet och kan även ha effekt på hur precist det är. Komplexitet: Syftar till hur beräkningskostsamt och hur tungrott fingeravtrycksextraherandet är hos systemet. Tar även hänsyn till hur stora fingeravtrycken blir, hur lång tid sökalgoritmen tar på sig, hur flexibelt det är att ändra i databasen och så vidare. Ömtålighet: I fall då musikigenkänning inte är fallet utan när liknande system som behandlar integritetsverifikation och copyrightproblem är i bruk måste ömtålighet tas hänsyn till. Mer konkret menas motsatsen till stabilitetskravet, det vill säga att systemet måste kunna känna av små förändringar i stycket som kan vara inverkande på upphovsrätten. Översiktligt gäller med andra ord att ett robust fingeravtryck måste vara smidigt extraherat med endast den ytterst relevanta informationen som krävs, vilket är en kamp mellan till exempel komplexitet- och stabilitetskraven. Systemet får ej vara för beräkningstungt eller tidskonsumerande i sitt utförande men måste vara stabilt och inte lättpåverkat mot störningar och brus i bakgrunden som inte tillhör ljudsinalens essentiella element. Slutligen måste det även vara hållfast mot kollisioner, det vill säga att det måste vara stabilt nog att kunna generera olika fingeravtryck trots två relativt lika ljudsignaler. 5
Generell uppbyggnad av ett system Akustiska fingeravtryckssystem är oftast mycket varierande beroende på vilka uppgifter de förväntas utföra, och kompromissar oftast mellan de olika evalueringsfaktorerna i föregående stycke. Av denna anledning är det relativt svårt att beskriva en generell uppbyggnad för denna typ av system, men nedan beskrivs ett förslag på ett ramverk som gäller för de allra fall (Cano P, Batlle E, Kalker T, Haitsma J, 2002). I detta förslag är det fullständiga systemet bestående av två processer; extraherandet och skapandet av själva fingeravtrycket samt algoritmen som matchar sökningen mellan databasen och det icke-familjära inspelade ljudet. Processen då fingeravtrycket skapas kan i sin tur delas upp i en så kallad Front-End samt ett Fingerprint modeling block. I den förstnämnda delen görs ljudsignalen om till ett prefererat format som sedan matas vidare till den sistnämnda delen. Detta sker i en mängd steg, men värt att tillägga är att dessa steg kan beroende på system variera, repeteras eller se ut på annorlunda sätt. Front-End Fig 1. Förenklad illustration över konstruktionen av Front-end. A: Förprocessen: Här tas analogt ljud och görs om till digitalt för att sedan konverteras till ett standardformat. Vilket format den konverterar till varierar helt beroende på system, men vanligt förekommande är att ljudet blir till så kallat raw-format som motsvarar CD-ljud med en sampling rate på 44.1 khz (44 100 samples per sekund) och 16-bits upplösning. B: Framing och överlappning: Ljudsignalen delas nu upp i mindre stycken som benämns som frames. Dessa delas upp till en storlek som vanligvis motsvarar ca 10-500 ms av signalen. Antalet frames per sekund kallas för 6
frame rate, vilket är hastigheten som frames extraheras ur signalen i. Överlappning är också nödvändigt att lägga på för en smidig frameskonstruktion och för att kunna reservera sig för de fall då ljudsignalen inte överensstämmer ordentligt. C: Linjär transformation Spektral uppskattning: När den linjära transformationen utförs är tanken att de uppmätta variationerna i signalen nu ska mätas om till en annan representationsform som benämns som features. Fördelen med en lyckad transformation är att de mest utstickande akustiska variationerna kan urskiljas och överflödig information kan reduceras vilket i sin tur minskar systemets komplexitet. Den enklaste och minst krävande typen av transformationer är att använda sig av fixerade basisvektorer som beräknar sambandet mellan tid och frekvens. En av de vanligaste transformationsmetoderna av denna typ är Discrete Fourier Transformation som är en algoritm som utförs på varje uppdelad frame vilket sedan genererar i ett spektrogram, den spektrala uppskattningen av relationen mellan tid och frekvens. D: Extraherande av features: Då tids-frekvensrepresentationen har bildats görs ytterligare transformationer vanligtvis för att få fram tydligare akustiska vektorer. Här plockas de mest utstickande av features ut åter igen för att minska komplexiteten. Något som är vanligt förekommande är även att i detta stadie försöka implementera kunskap om människohörselns olika stadier (The human auditory system HAS) för att veta tydligare vad som räknas som perceptuellt utstickande element och inte. Det finns en rad olika algoritmer för att extrahera dessa features beroende på vilken typ av output som är intressant och beroende på om systemets features hämtas från ett enkelt frekvensband eller flera subfrekvensband. Shazam som exemplifieras i ett senare stycke är ett exempel på ett system som är baserat på ett enkelt band. Exempel på output kan vara att matematiskt beräkna ut features som så kallade Mel-Frequency Cepstrum Coefficients, vars metod jag väljer att inte gå in på här, men som kort kan sammanfattas som en representation av spektrogrammets amplituder. Spectral Flatness Measure (SFM) används även ibland som mäter i decibel som kan visa en uppskattning av rena toner respektive oljud i ljudsignalen. Det finns även system som använder sig av optimerade subband- och eller frameskombinationer. Däribland finns system som tillämpar så kallade Hidden Markov Models som annars är en vanligt tillämpad modell inom 7
taligenkänningssystem. Fördelen med dessa modeller är att de klarar av att representera ett inre tillstånd samt beräkna sannolikheter för nästkommande handlingar. Dess metod kommer inte heller att uppmärksammas här, men i korthet tillämpas den genom att ett färdiga alfabet med ljud (istället för fonemer som används inom taligenkänningssystem) tillverkas som är modellerade med HMM:s. Det samplade ljudet bryts sedan ner i dessa alfabetkomponenter till ljud vilket representerar en sekvens av features i slutändan. E: Efterprocessen: I slutet av front-end förbereder fingerprintingsystemet den extraherande sekvensen av features innan den skickas vidare till Fingerprint Modeling Block där själva fingeravtrycket konkretiseras. Syftet med efterprocessen är att karaktärisera variationer i signalen ytterligare, vilket kan göras genom att beräkna derivatan av sina features, vilket tenderar att ge en expanderad ljudstyrka hos signalen samtidigt om störningar i signalen filtreras bort någorlunda. Vanligt är även att man lägger till en kvantiseringsprocess (en typ av avskalning) till sina features som gör bland annat signalen mer robust mot ljudstörningar och reducerar komplexiteten ytterligare. Fingerprint modeling block När sekvensen av features skickats vidare till detta block ska själva fingeravtrycket genereras. Detta genomförs genom en att applicera en modell som reducerar fingeravtrycket till behändig storlek. Valet av modell påverkar givetvis databasens utformning och även hur väl matchningen kommer kunna utföras vilket gör det till en mycket viktigt steg. Ett exempel på en enkel och smidig modell är att summera ihop sina features till en till en och samma vektor innehållandes all nödvändig information. Där kan exempelvis själva spektrogrammet sammanfattas i kombination med övriga nödvändiga element (till exempel den genomsnittliga hastigheten, BPM (beats per minutes) för att representera ljudsignalen. Det essentiella med valet av modell är att fingeravtrycken får en representation som är kompakt och inte allt för beräkningstung. Konkret exempel på en fingeravtrycksrepresentation kan ses i Shazam-exemplet i kommande stycke. 8
Exempel på implementering (Shazam) Ett modernt exempel på en tjänst där akustiska fingeravtryck tillämpas är applikationen Shazam utvecklat av Shazam Entertainment Ltd. som utför musikigenkänning direkt i mobiltelefonen, även med hänsyn till eventuellt brus eller oljud i bakgrunden. För att beskriva tjänstens funktion i korthet grundar den till att börja med i en omfattande databas av musik där varje stycke är lagrat i form av ett unikt akustiskt fingeravtryck. Användaren spelar in ett tio sekunder långt musiksample via mobiltelefonens mikrofon som även det omvandlas till ett fingeravtryck. Applikationen är beroende av nätverksanslutning och kopplar sedan upp sig mot Shazams databas för att genomföra en sökning som i sin tur genererar en matching. Framing och transformation Denna typ av fingeravtryckssystem använder sig av beståndsdelar baserade på ett enda band som i detta fall är så kallade spektrogram. Dessa kan beskrivas som grafer som uppmäter tid (x), frekvens (y) och i sin tur intensitet (Fig 2). Som jämförelse skulle en horisontell linje i ett sådant spektrogram motsvarat en så kallad sinuston, det vill säga en ren ton med endast en frekvens som hade varit sinusformad i en frekvensmätning (Fig 3). En vertikal linje i spektrogrammet hade istället inneburit ett så kallat konstant vitt brus som innehåller alla frekvenser och med en jämn och genomsnittlig energi (Fig 4). Fig 2. Exempel på ett spektrograms utformning där intensitetstopparna markerats med röd färg. (Wang, Avery Li-Chun. An Industrial-Strength Audio Search Algorithm. Shazam Entertainment, 2003) 9
Fig 3. (vänster) Exemplifierande sinusformad kurva (http://www.holger-schnarre.de/forum/sinusverz.gif) Fig 4. (höger) Illustrerande bild av ett vitt brus. (http://www.school-forchampions.com/science/images/noise_reduction-white.gif) Genom dessa två faktorer genereras alltså den tredje grafen som motsvarar intensiteten. Att lagra hela spektrogrammet i en databas i Shazams storlek hade gjort programmet allt för beräkningstungt, vilket bidrog till att deras algoritm istället fokuserar på att endast identifiera de mest utmärkande intensitetstopparna i spektrogrammet. Detta medför även fördelar när det kommer till hanteringen brus och andra störningar i bakgrunden som påverkar stabilitetskravet hos systemet. Enligt Avery Wang, grundaren av Shazam, hittar systemet ungefär tre av dessa intensitetstoppar per sekund. Spektrogrammet kalkyleras i fingeravtryckssystemets transformationsprocess utifrån en uppdelning i en mängd frames som vanligtvis överlappar varandra. Den vanligaste transformationsmetoden som används är Short-time Fourier Transform som är lämplig att använda när frekvenserna inte är konstanta i ljudsignalen. Genom att ta magnituden av denna kan spektrogrammets tid- och frekvensfördelning representeras vilket visas i nedanstående algoritm. Databas och matchning Utformingen av Shazams databas med fingeravtryck är formulerade i en så kallad hash table som i dagsläget innehåller fingeravtryck som motsvarar över två miljoner låtar. En sådan tabell fungerar likt en dictionary med en utvald nyckel (key) som i detta fall är fingeravtryckets frekvens. Till denna nyckel hör ett associerat värde (value) som motsvaras av tiden då frekvensen utspelas. För att 10
lagra en hash har Shazams grundare valt att registrera de tidigare nämnda intensitetstopparna som konstellationskartor. Fördelarna som kan ses med detta är bland annat att det förenklar identifieringen när ljud och störningar finns i bakgrunden. Några av topparna väljs ut till så kallade ankringspunkter som i sin tur får en associerad target zone tilldelad. Inom denna target zone paras sedan de tillhörande topparna ihop med ankringspunkten (Fig 5). Fig 5. (Wang, Avery Li-Chun. An Industrial-Strength Audio Search Algorithm. Shazam Entertainment, 2003) Varje topp i target zone får sedan en tilldelad hash (det vill säga mappningen av informationen) som räknas ut genom följande uträkning: Hash = (f1 + f2 + Δt) + t1, där f1 motsvaras av frekvensen där ankringspunkten är belägen, f2 är frekvensen vid den valda punkten i target zone, Δt motsvarar tidsskillnaden mellan tiden i targetzone (t2) och tiden i ankringspunkten (t1). Förtydligande av uträkningen kan ses i Fig 6. Denna hash lagras sedan i databasen. Att utgå ifrån ankringspunkter verkar minska risken för så kallade hash collisions, det vill säga att två hash tags får samma värde och kolliderar. 11
Fig 6. (Wang, Avery Li-Chun. An Industrial-Strength Audio Search Algorithm. Shazam Entertainment, 2003) För att erhålla en matchning tas det samplade fingeravtrycket i form av en likadan hash och matchas med de hash tags som finns i databasen. Tabell 1 nedan illustrerar förenklat hur uppdelning mellan tid och frekvens matchas. Frekvens (Hz) Tid i sekunder (Låtinformation) 651.28 48,322 (Låt A, Artist A) 651.29 128,510 (Låt B, Artist B) 651.30 18,398 (Låt C, Artist C) 1562.32 48,878 (Låt A, Artist A) Tabell 1. Om träffarna är tillräckligt många för en specifik låt analyseras denna ytterligare en gång för att se om frekvenserna även överensstämmer i tid. Detta görs genom att ett diagram i form av en scatterplot genereras där y-axeln motsvaras av frekvenserna i tid när de uppkommer i den samplade filen, och x-axeln som står för frekvenserna i databasens fingeravtryck från början av 12
låten. Därefter utförs en kalkylering som sedan resulterar i en klusterutformning i form av en diagonal linje (se övre scatterplot-diagrammet i Fig 7.) om låten klassificeras som en match. Det undre diagrammet i Fig 7 motsvarar en situation då ingen match lyckats genereras. Fig 7. (Wang, Avery Li-Chun. An Industrial-Strength Audio Search Algorithm. Shazam Entertainment, 2003) 13
Referenser Cano P, Batlle E, Kalker T, Haitsma J (2002) A review of algorithms for audio fingerprinting. Proc. of the IEEE MMSP, St. Thomas, V.I. Doets, P.J.O, Gisbert, M. Menor and Lagendijk, R.L., "On the comparison of audio fingerprints for extracting quality parameters of compressed audio." [ed.] Edward J. Delp III and Ping Wah Wong. Delft : Security, Steganography, and Watermarking of Multimedia Contents VIII, 2006, Vol. 6072. Shazam, September 2012, http://www.shazam.com/ Van Nieuwenhuizen H.A, Venter W.C, Grobler M.J., The Study and Implementation of Shazam s Audio Fingerprinting Algorithm for Advertisement Identification, September 2012, http://www.satnac.org.za/proceedings/2011/papers/software/181.pdf Wang, Avery Li-Chun., "An Industrial-Strength Audio Search Algorithm." ISMIR, London : Shazam Entertainment, Ltd., 2003. Wikipedia, Acoustic Fingerprint, September 2012, http://en.wikipedia.org/wiki/acoustic_fingerprint 14