Gelijktijdige detectie van geluiden en hun omgeving Dieter Boels
Thesis voorgedragen tot het behalen van de graad van Master of Science in de ingenieurswetenschappen: elektrotechniek, optie Ingebedde systemen en multimedia Promotor: Prof. dr. ir. Hugo Van hamme
Academiejaar 2013 – 2014
Master of Science in de ingenieurswetenschappen: elektrotechniek
Gelijktijdige detectie van geluiden en hun omgeving Dieter Boels
Thesis voorgedragen tot het behalen van de graad van Master of Science in de ingenieurswetenschappen: elektrotechniek, optie Ingebedde systemen en multimedia Promotor: Prof. dr. ir. Hugo Van hamme Assessor: Prof. dr. ir. Dirk Van Compernolle, Dr. ir. Alexander Bertrand Begeleider: Dr. Jort Gemmeke
Academiejaar 2013 – 2014
c Copyright KU Leuven • Zonder voorafgaande schriftelijke toestemming van zowel de promotor als de auteur is overnemen, kopiëren, gebruiken of realiseren van deze uitgave of gedeelten ervan verboden. Voor aanvragen tot of informatie i.v.m. het overnemen en/of gebruik en/of realisatie van gedeelten uit deze publicatie, wend u tot ESAT, Kasteelpark Arenberg 10 postbus 2440, B-3001 Heverlee, +32-16-321130 of via e-mail
[email protected]. Voorafgaande schriftelijke toestemming van de promotor is eveneens vereist voor het aanwenden van de in deze masterproef beschreven (originele) methoden, producten, schakelingen en programma’s voor industrieel of commercieel nut en voor de inzending van deze publicatie ter deelname aan wetenschappelijke prijzen of wedstrijden.
Voorwoord In het kader van deze masterproef zou ik voornamelijk twee mensen willen bedanken. Hoewel ik het een zeer interessant onderwerp vond, raakte ik af en toe de draad kwijt en dus zou ik zeker mijn begeleider, Jort, willen bedanken, die bij elke afspraak terug een aangename sfeer rond de thesis wist te brengen en mijn interesse weer wist op te wekken, zodat ik weer met de nodige motivatie verder kon. Ten tweede wil ik mijn vriendin, Eveliene, bedanken, met wie ik heel het jaar door heb kunnen thesissen. Samen begonnen we elk aan onze thesis, samen beleefden we de nodige thesisstress en tot het allerlaatste moment zaten we samen om ze af te werken, zonder jou was het een stuk eenzamer geweest. Ook nog bedankt aan Bart, Kristel en Yvan, die op het laatste moment nog tijd maakten om mijn thesis na te lezen, ook al hadden ze het zelf zeer druk. Met deze masterproef sluit ik ook mijn periode als student af. Ik zou in dit voorwoord dan ook de kans willen nemen om mijn ouders te bedanken, die mij altijd en onvoorwaardelijk steunen, wat mijn keuzes ook zijn. Daarmee zijn ze dan ook de nodige fundering geweest voor het volbrengen van deze studie en ben ik ze dus zeer dankbaar. Dieter Boels
i
Inhoudsopgave Voorwoord
i
Samenvatting
iii
Lijst van afkortingen en symbolen
iv
1 Inleiding 1.1 Algemene inleiding en motivatie . . . . . . . . . . . . . . . . . . . . . 1.2 Doelstellingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Overzicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 State-of-the-art 2.1 Herkenning versus classificatie 2.2 Feature extraction . . . . . . 2.3 Recognition . . . . . . . . . . 2.4 Tijdsafhankelijkheid . . . . . 2.5 Besluit . . . . . . . . . . . . .
1 1 2 3
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
5 5 6 9 11 14
3 Methode 3.1 Stappenplan . . . . . . . . . . . . . . 3.2 Probleem van overlappende geluiden 3.3 Magnitude mel kenmerken . . . . . . 3.4 Niet-negatieve Matrix Factorisatie . 3.5 Recognition . . . . . . . . . . . . . . 3.6 Classification . . . . . . . . . . . . . 3.7 Besluit . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
15 15 17 18 19 24 24 25
. . . . . .
27 27 28 29 31 32 33
5 Experimentele Setup 5.1 Five fold cross validation . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Scene generatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 Woordenboek generatie . . . . . . . . . . . . . . . . . . . . . . . . .
35 35 36 36
4 Database 4.1 Klassen en omgevingen . 4.2 Mixen . . . . . . . . . . 4.3 Realistische scenes . . . 4.4 Algoritme . . . . . . . . 4.5 Details over de opnames 4.6 Besluit . . . . . . . . . .
ii
. . . . . .
. . . . . .
. . . . . .
. . . . .
. . . . . .
. . . . .
. . . . . .
. . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
Inhoudsopgave 5.4
Event detectie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6 Resultaten: event detection 6.1 Eenheden voor evaluatie . . . . . . . 6.2 Resultaten zonder omgeving . . . . . 6.3 Optimale parameters . . . . . . . . . 6.4 Contextafhankelijke event detection . 6.5 Besluit . . . . . . . . . . . . . . . . .
. . . . .
7 Resultaten: omgeving- en gelijktijdige 7.1 Herkenning van de omgeving . . . . . 7.2 Event detection met group sparsity . . 7.3 Besluit . . . . . . . . . . . . . . . . . .
36
. . . . .
39 39 40 44 46 49
herkenning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51 51 52 53
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
8 Besluit
55
A Project Studio Reflexion Filter
59
B Sennheiser Head ME 20
61
iii
Samenvatting Mensen zijn in staat om zeer veel betekenis te halen uit wat ze horen. Dat doen we door complexe akoestische gebeurtenissen rond ons te interpreteren. Op die manier kan bijvoorbeeld een persoon in het verkeer heel wat informatie halen uit wat hij hoort: de drukte, het gevaar om over te steken als er auto’s zijn, een waarschuwingssignaal van een politieagent, allemaal geluiden waar de persoon informatie uit kan halen. De eerste stap in het nabootsen van dit menselijke interpretatievermogen is het automatisch herkennen van de geluiden die voorkomen. Er is nog steeds een gebrek aan doeltreffende methoden om deze herkenning uit te voeren. In deze masterproef worden enkele bestaande en veelbelovende technieken onderzocht. De Niet negatieve Matrix Factorisatie, een algebraïsche ontbinding waarbij de geluidssamples worden voorgesteld als lineaire combinatie van elementen uit een woordenboek, vormen de basis van deze masterproef. Het gebruik ervan zou een oplossing kunnen bieden voor één van de belangrijkste knelpunten van het onderzoeksdomein, namelijk overlappende, samenvallende geluiden. Twee uitbreidingen op deze ontbinding worden toegepast om hun invloed ervan te onderzoeken en om ook direct de omgeving, context waarin de geluiden voorkomen te herkennen, namelijk sparse representation en group sparsity. Een tweede luik van deze masterproef is de gebruikte database. Door een gebrek aan test en trainingsdata werd zelf een database samengesteld door opnames te maken. Echter werd verschillend te werk gegaan dan gewoonlijk. Er werden korte opnames gemaakt van verschillende gebeurtenissen. Deze werden op een geschikte manier samengesteld om realistische opnames na te bootsen. Op deze virtuele opnames werd dan geluidsherkenning toegepast.
iv
Lijst van afkortingen en symbolen Afkortingen AEER
Acoustic Event Error Rate.
CASA
Computational Auditory Scene Analysis.
EM
Expectation-maximization.
FFT
Fast Fourier Transformatie.
GMM
Gaussian mixture Model.
GT
Ground Truth.
HMM
Hidden Markov Model.
KL
Kullback-Leibler.
LPC
Linear Predictive Coefficient.
LPCC
Linear Predictive Cepstral Coefficient.
MFC
Mel Frequency Coefficient.
MFCC
Mel Frequency Cepstral Coefficients.
MLE
Maximum Likelihood Estimator.
NMF
Niet-negatieve Matrix Factorisatie negative Matrix Factorization).
PDF
Probability Density Function.
PSD
Power Spectral Density.
RIR
Room Impulse Response.
STFT
Short-Time Fourier Transform.
VAD
Voice Activity Detection.
(Non-
v
Symbolen
Symbolen A
De transitiematrix van een Hidden Markov Model: element aij is de transitiekans tussen toestand i en toestand j.
–
Parameter voor de zelftransitie kansen in het Hidden Markov Model. De verzameling van densiteiten bj pxq van elke verborgen toestand van een Hidden Markov Model, bj pxq is de densiteit van verborgen toestand j over de variabele x. De verzameling van de klassen.
C
Het aantal atomen in het woordenboek W.
D
De verschuivingstap in het sliding window mechanisme. f
Frequentieverschil.
÷
Verzameling van alle parameters die bij een Hidden Markov Model horen: {A, , }.
f
Frequentie (eenheid: Hz).
fX pxq
Kansdichtheid van variabele x.
GC
Transformatiematrix van de activaties naar de klassen.
GO
Transformatiematrix van de activaties naar de omgevingen.
H
De activatiematrix van de Niet-Negatieve Matrix factorisatie.
L
Het aantal frames in een atoom.
⁄SR
De event sparsity Representation).
vi
De initiële kansen voor elke toestand in een Hidden Markov Model.
parameter
(Sparse
Symbolen ⁄gs
De group sparsity parameter.
Fpxq
Fouriertransformatie van variabele x.
O
De verzameling van de omgevingen.
Mpxq
Meltransformatie van variabele x.
O
De fysische observatie.
m
Melfrequentie (eenheid: Hzmel ).
⇧C
Het posteriorgram van de klassen.
P rxs
Kans op x.
⇧O
Het posteriorgram van de omgevingen.
qt
Toestand van Hidden Markov Model op tijdstip t.
fl
Densiteit van het geluid in de gegenereerde lagen in de gegenereerde scenes.
flV it
Het Viterbi pad.
S
Toestand van Markov model en verborgen toestand van Hidden Markov Model.
‡
Maximaal aantal overlap toegestaan in de gegenereerde scenes.
V
De Niet-Negatieve Matrix factorisatie.
B
Het aantal Melbanden.
fs
Samplefrequentie.
W
Woordenboek voor de Niet Negatieve Matrix factorisatie.
vii
Hoofdstuk 1
Inleiding 1.1
Algemene inleiding en motivatie
Mensen zijn in staat om zeer veel betekenis te halen uit wat ze horen. We doen dat door het geluid te interpreteren op zo’n manier dat we er relevante informatie uit halen. Die relevante informatie is niet steeds dezelfde en hangt af van de persoon en de situatie. Zo zullen we bij het wandelen op een voetpad ons volledig kunnen toewijden aan de conversatie die we houden met ons gezelschap en zo goed als geen aandacht aan de omgeving hechten. Als we de straat oversteken horen we zeer snel of het al dan niet druk is, zonder te hoeven kijken. Wanneer we zo een drukke straat oversteken, zullen we bij het oversteken op onze hoede zijn voor eventuele waarschuwingen, luisteren naar het omgevingsgeluid en we interpreteren dat omgevingsgeluid. Een agent zal heel de tijd luisteren naar wat de omgeving hem te vertellen heeft en een spelend kind zo goed als niet. Zo zien we dat in een bepaalde omgeving iedereen luistert en interpreteert naar eigen believen en vermogen. De omgeving speelt dus ook een belangrijke rol, zo zal een arbeider op een industriële werkvloer veel aandachtiger moeten zijn om geen arbeidsongevallen te veroorzaken dan een bediende in een kantooromgeving. In het domein van de automatische herkenning van geluid is het dan ook leerrijk om dergelijk complex systeem proberen na te bootsen. Dit onderzoeksdomein, genaamd Computational Auditory Scene Analysis (CASA), is door de populariteit van zijn gelijkaardig onderzoeksdomein, namelijk spraakherkenning, pas de laatste jaren naar zijn waarde geschat en tot ontwikkeling gekomen. Toepassingen duiken nu al op: intelligente camera’s (smart camera’s) uitgerust met geweerschot detectie, worden gebruikt in intelligente beveiligingsystemen [1]. Het classificeren van video’s is een steeds groter wordend probleem door het overaanbod aan filmpjes op het internet. Met automatische herkenning kunnen filmpjes efficiënt geclassificeerd worden volgens bepaalde criteria. Een film met geluiden van dieren en waaiende bomen zal eerder een natuurdocumentaire zijn. Een film met geluiden van optrekkende auto’s en geweerschoten zal dan eerder een actiefilm zijn. Zo zullen we efficiënt een zeer variërende database kunnen organiseren. 1
1. Inleiding We kunnen ook nog tal van toepassingen bedenken voor de toekomst: alarmsystemen uitgerust met herkenning van geluiden gelinkt aan diefstal, herkenning in de gezondheidszorg van activiteiten die ongewoon zijn voor de patiënt in kwestie, het voorkomen van bepaalde dieren in bepaalde natuurgebieden, stemherkenning bij geluidsopnames (horende bij videobeelden) van inbraken etc. De toepassingen gaan zelfs zeer ver als we ze combineren met gelijkaardige takken uit de patroonherkenning, bijvoorbeeld beeldherkenning. Zo zou een robot de link kunnen leggen tussen beelden en geluiden en op die manier geluiden aan voorwerpen kunnen linken, dit wordt logischerwijs voornamelijk met spraak gedaan zodat een robot aan taal- of toch vocabulariumverwerving aan het doen is [2]. Zo zien we dat er uiteenlopende toepassingen zijn en zoals altijd zullen er ook toepassingen komen waar we ons op dit moment nog niets bij kunnen voorstellen.
1.2
Doelstellingen
Bij herkenning van geluid is het belangrijk om vooraf vast te leggen wat herkend zal worden. Zoals uit de toepassingen blijkt, kan dat heel variërend zijn. In deze thesis is het de bedoeling dat we twee verschillende dingen met éénzelfde techniek herkennen. We zullen in eerste instantie geluiden, gebeurtenissen (events) herkennen. Deze geluiden zullen van die aard zijn dat het onderscheid niet te groot is en toch haalbaar is in deze thesis en het tweede doel ondersteunt. Het tweede doel is namelijk dat we naast de geluiden ook de situatie, omgeving waarin deze geluiden zich afspelen zullen herkennen. Een voorbeeld van een gebeurtenis kan een lopende kraan zijn, de omgeving waar deze kraan zich bevindt zou een badkamer, keuken of wasplaats kunnen zijn. In deze thesis gaan we derhalve onderzoeken of het mogelijk is om de herkenning van de omgeving en de geluiden die er in voorkomen afhankelijk van elkaar te herkennen, dit in tegenstelling tot de literatuur waar zelden zowel omgeving als de geluiden die erin voorkomen herkend worden en als dit gedaan wordt gebeurt dit onafhankelijk van elkaar. Dat dit onafhankelijk gebeurt is niet zo vanzelfsprekend want geluiden en hun omgeving zijn steeds gerelateerd, zo zal de kans op het voorkomen van een lopende kraan in een badkamer veel groter zijn dan dat deze lopende kraan zou voorkomen in een auto. Het voordeel hiervan is dat inconsistenties rechtstreeks vermeden kunnen worden. Een voorbeeld van een dergelijke inconsistentie is het herkennen van een auto als omgeving en achteraf met veel zekerheid een lopende kraan herkennen. We zullen dus de kennis die we over een omgeving hebben en de geluiden die er in kunnen voorkomen wederzijds gebruiken. Gezien het onderzoeksdomein een gebrek heeft aan test- en trainingsmateriaal, is het ook de bedoeling eigen materiaal te creëren. Dit zal gebeuren door met eigen opgenomen materiaal zo realistisch mogelijke situaties na te bootsen door deze opnames op een geschikte manier te combineren. Een opgenomen kraan combineren met een verwarmingsinstallatie om een kelder na te bootsen of een kraan combineren met het gerinkel van bestek om een keuken na te bootsen. Het is dus ook belangrijk om 2
1.3. Overzicht goed stil te staan bij wat voor gebeurtenissen voorkomen in verschillende omgevingen.
1.3
Overzicht
In hoofdstuk 2, de zogenaamde ‘state-of-the-art’ worden de verschillende technieken die al bestaan besproken. Sommige technieken zijn zeer belangrijk voor een inzicht in het onderzoeksdomein en zullen dus technisch uitgediept worden. In hoofdstuk 3 gaan we verder in op de methode die wij toepassen eventueel met technieken uitgelegd in hoofdstuk 2. In hoofdstuk 4 gaan we in op hoe we onze database gevormd hebben, de aanpak is namelijk verschillend van de gebruikelijke aanpak. In de hoofdstukken daarna bespreken we de resultaten. In hoofdstuk 5 worden alle numerieke details geven die nodig zijn voor de experimenten. In hoofdstukken 6 en 7 bespreken we de resultaten van de experimenten.
3
Hoofdstuk 2
State-of-the-art Er zijn veel verschillende invalshoeken voor geluidsherkenning. Het onderwerp zit nog in zijn kinderschoenen en dus zijn er in de literatuur een brede waaier aan verschillende aanpakken en toepassingen te vinden. Het onderzoeksdomein CASA wordt uitvoerig besproken in [3]. In dit hoofdstuk geven we de belangrijkste elementen van het onderzoeksdomein en de meest courante technieken worden uitgelegd. Dit hoofdstuk is als volgt opgedeeld: in sectie 2.1 wordt het verschil tussen classificatie en herkenning toegelicht, dit is namelijk belangrijk in dit onderzoeksdomein. In sectie 2.2 bespreken we de meest courante kenmerken (features) van geluidsherkenning. In sectie 2.3 wordt besproken op welke manieren die kenmerken gebruikt gaan worden om gebeurtenissen te herkennen en in sectie 2.4 bespreken we hoe we enige tijdsafhankelijkheid van de data in rekening kunnen brengen.
2.1
Herkenning versus classificatie
Zoals in hoofdstuk 1 werd vermeld is het in dit domein belangrijk om na te denken over wat we herkennen. Het eerste waar we het over moeten hebben is het verschil tussen classificatie (classification) en herkenning (recognition). In een geluidsopname komen verschillende events voor. Met een event bedoelen we een gebeurtenis dat kan voorkomen en geluid teweegbrengt. Alle events die onder eenzelfde naam vallen vormen een klasse en de naam van die klasse is het label. Als we de voorbeelden uit hoofdstuk 1 herbekijken, kunnen we zeggen dat ‘lopende kraan’ of ‘geweerschot’ een klasse is en een fysische gebeurtenis die hieraan gekoppeld een event. Gedurende een bepaalde tijd zullen hoogstwaarschijnlijk meerdere events voorkomen, zo zal na een geweerschot misschien een schreeuw te horen zijn. In deze thesis verstaan we onder herkenning (=recognition) het toewijzen van een label aan de events die voorkomen in een geluidsopname. Onder classificatie verstaan we het vinden van de omgeving waar de events zijn opgenomen. Zo kan een lopende kraan en een pratend persoon voorkomen in een badkamer. Het herkennen van de omgeving ‘badkamer’ is de classificatie en gebeurt over langere tijdsduur dan events, we veranderen namelijk niet om de haverklap van omgeving. We zullen er hier zelfs van uit gaan dat alles in dezelfde 5
2. State-of-the-art omgeving gebeurt bij één opname. Een uitbreiding zou zijn om meerdere omgevingen te detecteren voor één geluidsopname. Dat laatste impliceert dat we ons verplaatsen tussen verschillende omgevingen tijdens de opnames en dat zou het opnemen een stuk ingewikkelder maken. In hoofdstuk 4 bespreken we het kiezen van de klassen en de omgevingen meer uitgebreid. Wel belangrijk is te vermelden dat de keuzes van de events en de omgevingen heel veel invloed hebben op beslissingen omtrent de classificatie- en herkenningsmethoden. Het onderscheid tussen herkenning en classificatie wordt niet in elke tak van de patroonherkenning gemaakt, zelf in deze tak worden de twee termen gebruikt voor beide gevallen. In de literatuur vindt men verschillende doelen terug: in [4] en [5] is het doel alledaagse geluiden te herkennen, in [6] houdt men zich bezig met de omgeving te herkennen en in [7] en [8] is het doel toepassingsspecifiek. In [9] gaat men alvorens geluiden te herkennen de context bepalen om de nauwkeurigheid te verbeteren.
2.2
Feature extraction
Bij patroonherkenning wordt steeds gebruik gemaakt van zogenaamde kenmerken (features) die iets over de data vertellen. Deze kenmerken worden dan gebruikt om het herkennen toe te passen. Als we terugdenken aan onze lopende kraan, zouden de frequenties die de kraan teweeg brengt als kenmerken beschouwd kunnen worden. Alles wat ook maar iets over het geluid van de lopende kraan inhoudt is per definitie een kenmerk. Ruwweg zouden we kunnen zeggen dat als we in de toekomst dezelfde kenmerken, bijvoorbeeld frequenties, zouden tegenkomen, we automatisch een lopende kraan herkennen. Verschillende kenmerken geven verschillende resultaten en het is dus steeds belangrijk de beste kenmerken voor een toepassing te vinden. De stap in patroonherkenning waar de kenmerken uit de data worden geëxtraheerd heet feature extraction. Na het vastleggen van welke geluiden we willen herkennen, bepalen we dus welke kenmerken we zullen gebruiken. In [6] sectie III.b, [4] sectie III.a en [10] sectie 2.4 vindt men opsommingen van een groot aantal kenmerken die terugkomen in de geluidsherkenning. Enkele voorbeelden zijn Linear Predictive Coefficients (LPCs), Linear Predictive Cepstral Coefficients (LPCCs) en Band Energy Ratio. Gezien ze niet relevant zijn voor deze thesis verwijzen we naar de literatuur voor de technische details. De vaakst voorkomende is afkomstig uit de spraakherkenning en blijkt ook goede resultaten op te leveren bij geluidsherkenning, het zijn de zogenaamde mel frequency cepstral coefficients (MFCCs). We leggen hier MFCCs uit omdat ze zo belangrijk zijn in het onderzoeksdomein.
2.2.1
Mel frequency cepstral coefficiënten
Voor het uitleggen van de MFCCs beginnen we met een signaal te beschrijving die voor de mens het meest natuurlijk is: het signaal in het tijdsdomein (figuur 2.2a). De eerste stap is overgaan naar het frequentiedomein door een Fourier transformatie 6
2.2. Feature extraction te nemen van het tijdssignaal. We zullen echter niet op het gehele signaal een Fourier transformatie toepassen, maar op korte overlappende segmenten. In de praktijk wordt bijvoorbeeld een segment lengte LST F T van 25 ms gebruikt en een verschuivingstap ST F T van 10 ms (bij fs “ 44100Hz respectievelijk 1102 en 441 samples). Omdat we de Fourier transformatie van korte segmenten nemen spreken we van de Short-Time Fourier Transform (STFT) en verkrijgen een spectrogram (figuur 2.2b). Een spectrogram bevat informatie van het signaal van zowel het tijds-, als het frequentiedomein. De volgende stap is het belangrijkst, we gaan namelijk over naar het mel-frequentie domein. Dit laatste komt uit de spraakherkenning en levert betere resultaten op dan zijn alternatieven [11] en wordt ook vaak gebruikt bij geluidsherkenning. De mel-schaal is een beschrijving voor gevoeligheid tussen verschillende toonhoogtes (pitch). Een mens is gevoeliger voor toonhoogte veranderingen bij lage frequenties dan bij hoge frequenties en door over te gaan naar de mel-schaal zal de informatie gelijkmatiger verdeeld zijn het over het nieuwe spectrum, het mel-frequency spectrum. Een vaak gebruikte transformatie is ´ f ¯ m “ 2595 log10 1 ` , zie figuur 2.1 700
(2.1)
Mel scale transformatie 4000
3500
3000
Mel m
2500
2000
1500
1000
500
0
0
0.2
0.4
0.6
0.8
1
Frequentie f
1.2
1.4
1.6
1.8
2 4
x 10
Figuur 2.1: Transformatie van frequentie domein naar mel-frequenties domein De driehoeken op figuur 2.1 zijn er om in het mel domein evengrote, van gelijk belang, driehoekige melbanden te verkrijgen. Er zijn naast de transformatie in vergelijking 2.1 nog andere transformaties mogelijk. We geven een voorbeeld bij deze transformatie om de schaal beter te begrijpen: een luisteraar neemt tussen 440 Hz en 1000 Hz ( f “ 560Hz) hetzelfde verschil in toonhoogte waar als tussen 3326 Hz en 2000 Hz( f “ 1326Hz), het mel verschil is in beide gevallen 450 Hzmel . De voorgaande transformatie wordt uitgevoerd door middel van een transformatie 7
2. State-of-the-art
Random signaal 0.5
0.4
0.3
amplitude (volt)
0.2
0.1
0
−0.1
−0.2
−0.3
−0.4
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
Tijd (seconden)
(a) Signaal in het tijdsdomein
(b) Spectrogram van het signaal 12
12
10
Melbanden (Magnitude)
10
Melband
8
6
4
8
6
4
2 2
100
200
300
400
500 600 Frequentieband
700
800
900
(c) Mel-transformatie matrix 12
12
10
10
8
6
4
1.5
2
2.5 3 Tijd (Seconden)
3.5
4.5
8
6
4
2
2
1
1.5
2
2.5 3 Tijd (Seconden)
3.5
4
4.5
(e) Logaritme van de magnitude mel’s
1
1.5
2
2.5 3 Tijd (Seconden)
3.5
4
4.5
(f) DCT van de logaritmische mel’s
Figuur 2.2: Stappen voor het bekomen van de MFCCs
8
4
(d) Signaal in het mel-magnitude domein
Melbanden (DCT)
Melbanden (Logaritmisch)
1
1000
2.3. Recognition matrix zoals in figuur 2.2c. Het aantal verkregen melbanden is dus afhankelijk van op hoeveel frequentiebanden we de transformatie toepassen. We verkrijgen dan ons signaal in het mel-magnitude domein zoals in figuur 2.2d. In de volgende stap nemen we de logaritme (figuur 2.2e) en als laatste stap nemen we een Discrete Cosinus Transformatie (DCT) van het mel-frequentie cepstrum (figuur 2.2f). Een DCT decorreleert de informatie uit de verschillende frequentiebanden en na deze transformatie bevat elke frequentieband een disjuncter deel van de informatie. De MFCCs zijn de amplituden van elke mel-frequentieband. In de figuur is het aantal melbanden B gelijk aan het aantal het aantal DCT-coëfficiënten C (nl. 13), dat is niet noodzakelijk zo, C kan kleiner of gelijk zijn aan B. Over het algemeen worden MFCCs bijna altijd gebruikt bij geluidsherkenning. In [5], [9], [12], [13] worden MFCCs gebruikt als kenmerken. In [6] worden de resultaten vergeleken bij het gebruik van verschillende kenmerken, waaronder MFCCs. In [14] worden MFCCs gebruikt als referentiekenmerken om nieuwe methoden mee te vergelijken.
2.3
Recognition
De volgende stap in het herkennen van geluid is het toewijzen van een klasse aan elk segment, beschreven door de gekozen kenmerken. Deze stap is degene die in de patroonherkenning de onbekende data omzet naar gewenste data, in ons geval, de labels van de klassen. Een techniek die vaak terugkomt bij patroonherkenning is K-Nearest Neighbour classificatie, bijvoorbeeld in [4], [6] voor geluidsclassificatie. Ook het gebruik van Support Vector Machines is mogelijk, zoals in [7], [14]. In de meeste gevallen maakt men echter gebruik van Gaussian mixture models (GMMs), zoals in [6], [9]. Net zoals voor MFCCs zullen we GMMs hier uitleggen omdat ze onmisbaar zijn voor een inzicht in het onderzoeksdomein.
2.3.1
Gaussian Mixture Modellen
Een GMM is een model dat gebruik maakt van de normaalverdeling om een set gegevens te modelleren. Dit gebeurt door een aantal normaalverdelingen over eenzelfde toestandsvariabele X op te sommen: fX pxq “
K ÿ
k“1
met N px|µk ,
fik N px|µk ,
ÿ
k
ÿ
k
q, @k : fik • 0 en
K ÿ
k“1
fik “ 1
(2.2)
q de k de multidimensionale normaalverdeling,
µk de multidimentionale verwachtingswaarde van de k de component, ÿ de multidimentionale standaardafwijking van de k de component, k
fik het gewicht van de van de k de component, K het aantal Gaussische verdelingen
9
2. State-of-the-art
De fik worden vaak de ‘mixing coefficients’ genoemd. De dimensie van de Gaussische componenten is natuurlijk de dimensie van de toestandsvariabele. Als bijvoorbeeld X een geluidssignaal is, beschreven door MFCCs zijn is de dimensie gelijk aan het aantal DCT oëfficiënten. In figuur 2.3a ziet men een voorbeeld met eendimensionale normaalverdelingen. De gestreepte (blauwe) verdelingen zijn de componenten en vormen samen de GMM met 0.5, 0.3 en 0.2 als mixing coëfficiënten en K “ 3. In figuur 2.3b is een voorbeeld gegeven met bivariate normaalverdelingen. 0.015
0.2 0.18 0.16
0.01
PDF p(x)
PDF p(x1,x2)
0.14 0.12 0.1 0.08 0.06 0.005
0.04 0.02 0 3
0
0
100
200
300
400
500
600
700
800
900
3 2
1
2 0
1 −1
1000
0 −2
−1 −3
−2 −4
−3
x2
(a) Tweedimensionale GMM
x1
(b) Driedimensionale GMM
Figuur 2.3: Voorbeelden Gaussian Mixture Models Als we GMMs gebruiken voor classificatie is de eerste stap natuurlijk het model bepalen, dit gebeurt aan de hand van trainingsdata. Voor elke klasse zullen we de parameters van de GMM zoeken. Zo zouden bijvoorbeeld figuur 2.3a de kansverdeling kunnen voorstellen van de ééndimensionale (C “ 1) MFCCs en figuur 2.3b van de tweedimensionale (C “ 2) MFCCs van de klasse ‘lopende kraan’. Het vinden van de parameters van een GMM gebeurt met het iteratieve Expectation-maximization (EM) algoritme. We laten de technische uitwerking achterwege. Een uitgebreide uitleg over EM kan gevonden worden in [15]. De volgende stap is bepalen tot welke klasse onbekende data hoort (de herkenning stap). De onbekende data zijn de kenmerken, berekend uit een observatie. Bij een GMM kan dat gebeuren door de Maximum Likelihood Estimator (MLE) te bepalen. Elke klasse, gemodelleerd door een GMM, heeft een waarschijnlijkheid om een bepaalde observatie teweeg te brengen. Bij een onbekende observatie berekenen we de waarschijnlijkheid dat deze bij een bepaalde klasse hoort. De klasse waarbij deze waarschijnlijkheid voor onbekende data maximaal is, is de MLE en kunnen we labellen aan de onbekende data. Op deze manier kunnen we elk segment van onbekende data aan een klasse toewijzen. Ook voor het herkennen van de omgeving vindt men in de literatuur voornamelijk het gebruik van GMMs terug. De aanpak is identiek, men stelt een GMM op voor een omgeving aan de hand van trainingsdata en men berekent de (log) likelihood om 10
2.4. Tijdsafhankelijkheid de omgeving te vinden voor testdata. Dit werd toegepast in [6] en [9]. De kenmerken zijn dezelfde als in de geluidsherkenning, maar de verdelingen (GMMs) zullen er helemaal anders uitzien.
2.4
Tijdsafhankelijkheid
Enkel GMMs gebruiken voor classificatie houdt geen rekening met tijdsafhankelijkheid in de data. We weten dat niet in elk segment van enkele milliseconden een verschillend geluid te horen zal zijn, geluiden duren gemiddeld langer dan de lengte van één segment. Als er bijvoorbeeld één segment verschillend herkend wordt dan een groot aantal omliggende segmenten van dezelfde klasse, dan was dat ene segment hoogstwaarschijnlijk foutief. Er zijn verschillende manieren om deze tijdsafhankelijkheid in rekening te brengen. In dit onderzoeksdomein wordt zeer vaak gebruik gemaakt van Hidden Markov Models (HMMs), welke hier toegelicht worden.
2.4.1
Hidden Markov Modellen
HMMs zijn, hoewel al beschreven in de jaren 1960, pas 20 jaar nadien nuttig gebleken. Tegenwoordig komen ze overal terug, bijvoorbeeld in de spraakherkenning [16] of in de bio-informatica [17]. Volgens [18] is dat ten eerste omdat ze wiskundig een zeer rijke structuur hebben en dus kunnen dienen voor verschillende toepassingen en ten tweede omdat ze in de praktijk zeer efficiënt gebruikt kunnen worden. We bespreken hier uitvoerig wat een HMM is omdat het zeer vaak gebruikt wordt in dit onderzoeksdomein en dus onmisbaar is voor een goede kennis van het onderzoeksdomein. Het eerste ingrediënt nodig voor een HMM is een Markovketen. Stel een systeem waarbij C mogelijke toestanden (states) mogelijk zijn. Op elk tijdstip ondergaat het systeem een verandering van toestand, of deze blijft in dezelfde toestand. De toestand op moment t is qt , en de kans om van toestand S i naar Sj te gaan is de transitie kans aij (state transition probabilty). Om de kans te berekenen op een bepaald tijdstip moeten we de geschiedenis van heel het systeem kennen en wordt de kans beschreven als volgt: P rqt “ Sj |qt´1 “ Si , qt´2 “ Sk , ...s Het aantal toestanden dat in rekening gebracht wordt is de orde van de Markovketen. Vaak gaat men enkel de huidige toestand in rekening brengen en hebben we dus een eerste orde Markovketen. P rqt “ Sj |qt´1 “ Si s In figuur 2.4 zien we een simpel voorbeeld: een Markovketen met drie toestanden en alle overgangsprobabiliteiten tussen die toestanden. 11
2. State-of-the-art a13 a23
a12 Toestand
Toestand
1
3
2 a21
a11
Toestand
a32 a22
a33
a31 Figuur 2.4: 3-state Markovketen We kunnen een Markovketen gebruiken als we een systeem hebben waar we de toestanden fysiek kunnen observeren. Een klassiek voorbeeld is het weer te voorspellen voor enkele opeenvolgende dagen. Er zijn drie toestanden: regen, zon en bewolkt. Als men de overgangsprobabiliteiten kent en men kent het weer op de eerste dag, bijvoorbeeld ‘zon’, kan men de kans berekenen op regen voor de vijfde dag bijvoorbeeld. Men kan ook de kans berekenen op vijf opeenvolgende dagen zon. Dit voorbeeld wordt numeriek uitgewerkt in [18]. In geluidsherkenning zullen deze overgangsprobabiliteiten de probabiliteiten voorstellen dat we vanuit een bepaald geluid overgaan naar een ander geluid. We weten dat bijvoorbeeld na het rinkelen van een telefoon het geluid van een stem zeer waarschijnlijk is, terwijl na het horen van een rinkelende telefoon een startende auto minder waarschijnlijk is. In geluidsherkenning gaat het echter over zeer korte segmenten van enkele milliseconden, dus is de zelftransistie meestal het grootst omdat we hoogstewaarschijnlijk enkele opeenvolgende segmenten van hetzelfde geluid zullen hebben zoals voordien aangehaald. Zoals duidelijk werd uit het voorbeeld stelt elke toestand een verschillende klasse voor. Voorbeelden van klassen die wij zullen gebruiken zijn: stem, lopende kraan, voetstappen en deur. In hoofdstuk 4 wordt dieper ingegaan op de gebruikte klassen. Het verschil tussen een Markovketen en een HMM is dat de toestanden die ons interesseren niet observeerbaar zijn, we spreken van verborgen (=hidden) toestanden. We zullen een ander verschijnsel moeten observeren en iets proberen te weten te komen over de toestanden die ons wel interesseren. In vorig voorbeeld over het weer waren de toestanden die ons interesseerden rechtstreeks waarneembaar, men kan zich inbeelden dat men enkel de luchtvochtigheid kan meten en aan de hand daarvan een uitspraak wil doen over het weer. Er wordt dan een relatie gedefinieerd tussen wat we observeren en wat we willen weten. Deze relatie is stochastisch van aard en gebeurt dus aan de hand van kansverdelingen, dat kan continu of discreet, we spreken van Continue Densiteiten HMM (CDHMM) en Discrete Densiteiten HMM (DDHMM). In figuur 2.5 zien we een voorbeeld met als densiteiten GMMs, maar andere densiteiten zijn mogelijk natuurlijk. Bij patroonherkenning zijn hetgeen we observeren de kenmerken en hetgeen ons 12
2.4. Tijdsafhankelijkheid
a13 a23
a12 Verborgen Toestand 1 a11
a22
Verborgen
Verborgen
Toestand 2
Toestand 3
a21
a33
a32
PDF ppxq
PDF ppxq
PDF ppxq
a31
x
x
x
Observaties O
Figuur 2.5: CDHMM met GMM als Probability Density Function (Probability Density Function (PDF))
interesseert betekenisvolle data voor de toepassing. Bijvoorbeeld bij geluidsherkenning zijn de kenmerken zeer vaak de MFCCs uit 2.2.1 en de verborgen toestanden zijn de verschillende klassen. Als concreet voorbeeld kan je een HMM voorstellen met drie toestanden: lopende kraan, stem en voetstappen met elk een verschillende GMM zoals in afbeelding 2.5. Bij het observeren van MFCCs is het de bedoeling te bepalen wat de achterliggende toestanden zijn. We benadrukken hier nog eens het belang van de HMM die de tijdsafhankelijkheid in rekening brengt in tegenstelling tot een GMM per klasse en simpelweg de (log) MLE te nemen. Wiskundig wordt een HMM beschreven door drie hoofdparameters. De eerste is de transistiematrix A, dewelke eigenlijk al beschreven werd bij Markovketens, de elementen zijn de overgangsprobabiliteiten aij tussen de verborgen toestanden, het is dus een vierkantige matrix uit RM ˆM , en M het aantal toestanden in de HMM. De tweede zijn de observatieprobabiliteiten. Elke toestand heeft een kansdichtheid voor de observaties, in voorgaande voorbeelden de GMMs. Voor elke toestand is er zo’n dichtheid, de verzameling van deze dichtheden vormen , de observatiekansdichtheidmatrix. Het bezit evenveel densiteiten als het aantal verborgen toestanden in de ÷. En als laatste is de kansverdeling van de initiële toestanden. We beschrijven dan 13
2. State-of-the-art de HMM ÷ wiskundig als volgt: ÷ “ tA, , u, met A “ taij u,
aij “ P pqt`1 “ Sj |qt “ Si q,
“ tbj pxqu,
“ t“i u,
bj pxq “ fX px|Sj q,
1 § i, j § M
1§j§M
“i “ P rq1 “ Si s, 1 § i § M
Hierbij is M het aantal verborgen toestanden, aij de transitie kans tussen toestand Si en Sj , x de observaties, bj pxq de observatiekansdichtheid van toestand Sj , “j de kans dat de eerste toestand Sj is. In [18] worden drie problemen van HMMs uitvoerig besproken: ten eerste de waarschijnlijkheid van een bepaalde observatie bij een gegeven model, ten tweede een sequentie verborgen toestanden vinden bij een gegeven model en observatie en ten derde hoe de parameters aangepast kunnen worden om dichter bij de realiteit te liggen. Voor het tweede probleem bestaat geen exacte oplossing, we kunnen namelijk nooit met zekerheid zeggen wat de sequentie van states achter de observaties zijn, het hangt af van welk criterium we eisen en zo zal de optimale sequentie anders zijn bij een ander criterium. Een vaak gebruikte methode is het Viterbi algoritme, het criterium hierbij is simpelweg P pS|÷, Oq te maximaliseren, waar O niet één observatie horende bij één toestand is, maar een reeks opeenvolgende observaties horende bij een reeks opeenvolgende toestanden. Het pad door de toestanden dat het Viterbi algoritme vindt, heet het Viterbi pad en is dus het meest waarschijnlijke pad van verborgen toestanden voor een gegeven observatie O en gegeven model ÷. In [18] vindt men een voorbeeld van een ander criterium en de complete technische uitwerking van het Viterbi algoritme. Ook het vinden van de parameters van de HMM aan de hand van trainingsdata is geen simpele taak, we verwijzen ook hier naar de literatuur [18]. HMMs en het bijhorende Viterbi pad komt vaak terug in de literatuur, zie [5], [6], [9], [19] voor uitgewerkte voorbeelden. We benadrukken om het verschil met een simpele GMM per klasse in te zien: de HMM brengt toestandstransities in rekening die een tijdsafhankelijkheid van de klassen inhoud.
2.5
Besluit
In dit hoofdstuk werden de belangrijkste technieken uit het onderzoeksdomein besproken. Eerst werd een onderscheid gemaakt tussen herkenning (recognition) en classificatie. We bespraken de Mel Frequency Cepstrum Coefficients als belangrijkste kenmerken uit het onderzoeksdomein. Als laatste werden Hidden Markov Modellen besproken om de tijdsafhankelijkheid in de data in rekening te brengen.
14
Hoofdstuk 3
Methode In dit hoofdstuk bespreken we uitvoerig de in deze masterproef gebruikte methode. In sectie 3.1 geven we een globaal overzicht van alle stappen die uitgevoerd worden. In sectie 3.2 bespreken we het probleem van overlappende geluiden, dit is namelijk een algemeen knelpunt in de geluidsherkenning. In sectie 3.3 wordt besproken waarom we de magnitude mel’s gebruiken en geen MFCCs, de meest voorkomende kenmerken in de literatuur. Dit is namelijk de eerste stap naar een oplossing voor overlappende geluiden te herkennen. De tweede stap is het gebruik van Niet-negatieve Matrix Factorisatie (NMF) en wordt besproken in 3.4. In sectie 3.5 en sectie 3.6 bespreken we hoe we met de technieken uit de voorgaande secties de geluiden en de contexten kunnen herkennen (recognition en classification).
3.1
Stappenplan
In afbeelding 3.1 zien we alle verschillende stappen die uitgevoerd worden voor het testen van de methode. Achter elke stap staat in welke sectie deze stap uitgediept wordt. In dit hoofdstuk staan we vooral stil bij stappen 4 t.e.m. 6, dit zijn de stappen die de kern vormen van de herkenning. We bespreken kort de verschillende stappen: 1. We verdelen de opnames in vijf disjunte verzamelingen, met deze verzamelingen worden 5 sets gemaakt, in elk van deze vijf sets is één van de disjuncte verzameling de testset, Qtest , de andere vier sets vormen de trainingsset Qtrainingsset : sectie 5.1 2. Voor elke trainingsset wordt een woordenboek W gevormd (nodig voor de Nietnegatieve Matrix Factorisatie (NMF)), vijf sets betekent dus vijf woordenboeken: sectie 3.4.3. 3. Aan de hand van de vijf sets testdata Qtest,l (l “ 1, 2, ..., 5) worden virtuele scenes xl gegenereerd: hoofdstuk 4. 15
3. Methode 1. 5 fold cross validation (5.1) 5 ˆtQtraining , Qtest u 2. Woordenboek genereren (gebruik Qtraining ) (3.4.3) 5 ˆtQtest , Wu 3. Scenes x genereren (gebruik Qtest ) (4.2) 5 ˆtx, Wu x“1
4. Bereken de MFC’s (voor xl ) (2.2.1, 3.3) MpFpxl qq “V 5. Bereken NMF factorisatie van V (gebruik W) (3.4)
l “l`1
GT’s van alle x
V« WH 6. Beeld af op klassen C (⇧C “ GC H) (3.5) Posteriogram 7. Bereken Viterbi pad flV it (2.4.1) Result “ Result ` flV it neen (tel de verschillende Viterbi paden op) Max lagen? ja 8. Beeld resultaat af op reële tijdsschaal (3.3) eventsdetected 9. Vergelijk met Ground Truth (GT) van xl om te evalueren (6.1)
l == 5
16
Evaluatie waarden
Figuur 3.1: Stappenplan methode
3.2. Probleem van overlappende geluiden 4. De kenmerken (MFC’s) worden berekend voor één van de vijf gegenereerde scenes xl . V is dan het input signaal xl getransformeerd naar het magnitude meldomein, de MFCC’s zoals besproken in 2.2.1, maar in het magnitude meldomein: sectie 3.3. 5. De Mel Frequency Coefficients (MFCs) worden gefactoriseerd door een Niet Negatieve Matrix Factorisatie. Het woordenboek W uit stap 2 wordt gebruikt en H wordt berekend: sectie 3.4. 6. De factorisatie kan afgebeeld worden op de mogelijke klassen: sectie 3.5. 7. Het meest waarschijnlijke pad (Viterbi pad) door de verschillende klassen heen wordt berekend, al dan niet meerdere malen (aantal overlap toegestaan): sectie 2.4.1. Dit pad bepaalt op elk tijdstip een klasse. 8. De tijdschaal van de NMF komt niet overeen met een reële tijdschaal: sectie 3.3. 9. Evalueren van de berekende events: sectie 6.1. Vanaf stap vier wordt alles herhaald voor elk gegenereerde scene, vijf keer dus.
3.2
Probleem van overlappende geluiden
In sectie 2.3.1 werd uitgelegd hoe gebruik werd gemaakt van GMMs om geluiden te herkennen. Een zeer groot probleem hiermee is dat overlappende geluiden heel moeilijk te herkennen zijn. Een model (GMM) hoort bij een klasse en per segment wordt naar de relatie gekeken tussen de observaties en het model. Eenmaal overlappende geluiden voorkomen zullen de observaties verstoord zijn en de resultaten zullen negatief beïnvloed worden. Vaak is het nuttig om overlappende geluiden te detecteren, dat komt neer op het toewijzen van meerdere klassen aan een segment en is een algemeen knelpunt in het onderzoeksdomein. Een (naïeve) manier met GMMs zou zijn om per combinatie overlappende geluiden een GMM op te stellen, bijvoorbeeld een klasse ‘lopende kraan’, een klasse ‘stem’ en een klasse ‘lopende kraan en stem’. Dit zou natuurlijk het aantal nodige modellen exponentieel doen groeien. De manier om dit op te lossen is te voorzien dat overlappende geluiden in een opgenomen sample op een of andere manier gesplitst worden, men spreekt van bron onderscheiding (= source separation) Een eerste vereiste is dat de bron onderscheiding mogelijk blijft bij de gebruikte kenmerken, dit is een probleem bij het gebruik bij MFCCs. We lichten in de volgende sectie toe waarom en wat het alternatief is. Eenmaal gepaste features gevonden zijn hebben we een methode nodig die de verschillende bronnen in een signaal uit elkaar kan houden en dit is waar NMF voor gebruikt wordt, dit wordt uitvoerig besproken in sectie 3.4 17
3. Methode
3.3
Magnitude mel kenmerken
Zoals eerder vermeld kan er geen gebruik gemaakt worden van MFCCs. De gebruikte kenmerken zijn niet de MFCCs maar de mel’s in het magnitude domein (MFC). We weten dat in een opgenomen signaal twee geluiden komende van twee verschillende bronnen gewoon opgeteld kunnen worden. Dus stel een geluidssample x (in het tijdsdomein) dat eigenlijk bestaat uit twee geluiden opgeteld: x “ x1 ` x2
(3.1)
Als we overgaan naar het frequentiedomein blijft de relatie gelden (lineariteit van de Fouriertransformatie F): FpxqFpx1 q ` Fpx2 q (3.2) Ook in het meldomein blijft dit gelden, dus met de M de meltransformatie zoals beschreven in 2.2.1: MpFpxqq « MpFpx1 qq ` MpFpx2 qq
(3.3)
Als we echter de logaritme nemen, verliezen we de lineariteit. a“b`c
(3.4)
œ log a “ log b ` log c
(3.5)
maar: ñ log a « maxpa, bq
(3.6)
De benadering in vergelijking 3.3 is er omdat het gaat over de transformaties in het complexe domein linear zijn en in het magnitude domein slechts benaderend lineair. In deze vergelijking zitten we in het mel magnitude domein. Zolang de lineariteit geldt is het een stuk eenvoudiger om twee signalen te splitsen en kunnen we een gewenste brononderscheidende techniek vinden. Als we MFCCs zouden gebruiken zouden de signalen x1 en x2 moeilijk te onderscheiden zijn. De gebruikte methode die erin slaagt van de signalen te onderscheiden is Niet-Negatieve Matrix Factorisatie en wordt uitvoerig besproken in de volgende sectie. We herhalen kort de stappen in het berekenen van de kenmerken. De eerste stap is het berekenen van de STFT van het signaal x in het tijdsdomein. De STFT heeft een window LST F T van bepaalde tijd (bijvoorbeeld 25 ms zoals in het voorbeeld van sectie 2.2.1) en een verschuivingsstap ST F T kleiner dan het window, zodat we overlappende blokken krijgen (in sectie 2.2.1 was ST F T “ 10ms). De tijdsschaal verkregen in het spectrogram zal dan anders zijn dan in het tijdsdomein, vandaar stap 8 in figuur 3.1, als we willen vergelijken met de GT moeten we eerst onze blokken terugschalen naar de reële tijdsas. Na het berekenen van de STFT voeren we de meltransformatie uit met B melbanden (bijvoorbeeld B “ 26). Na deze transformatie hebben we het signaal x in het magnitude mel domein, de gewenste kenmerken. 18
3.4. Niet-negatieve Matrix Factorisatie
Figuur 3.2: Voorbeeld van een exemplar met B “ 26 en L “ 15
3.4
Niet-negatieve Matrix Factorisatie
NMF is al langer in gebruik bij spraakherkenning, bijvoorbeeld bij de acquisitie van taal bij robots ([2], [20]). Het is pas zeer recent dat het ook in geluidsherkenning gebruikt wordt. Voorbeelden zijn te vinden in [21]–[23].
3.4.1
NMF algemeen
NMF is een ontbinding van een niet-negatieve matrix V in twee niet-negatieve matrices W en H: ˜ “ WH, met V P REˆF , W P REˆD en H P RDˆF V«V ` ` `
(3.7)
Deze ontbinding is niet altijd gelijk en hangt af van welk criterium geminimaliseerd moet worden tussen de matrices en de benadering. Verschillende mogelijkheden zijn de Euclidische afstand, de Frobenius norm en de Kullback-Leibler divergentie. De manieren waarop deze berekend worden, worden besproken in [20] voor de Euclidische afstand en in [2] voor de Frobenius norm, in beide wordt ook ingegaan op het criterium van Kullback-Leibler (KL) divergentie, welke ook hier aan bod zal komen.
3.4.2
NMF en geluidsherkenning
Een geluidssegment kan benaderd worden door een lineaire combinatie van vooraf bepaalde componenten. De verzameling van deze componenten wordt een woordenboek (=dictionary) genoemd. De componenten uit het woordenboek worden vaak atomen genoemd. De atomen uit het woordenboek worden geëxtraheerd uit trainingsdata en worden in dat geval ook exemplars genoemd. De exemplars zijn segmenten in het magnitude meldomein van dimensie B ˆ L, met B het aantal melbanden en L het aantal frames in een atoom. In figuur 3.2 zien we een atoom met 26 melbanden en 15 opeenvolgende frames. Met frames bedoelen we één blok in het tijdsdomein waarvan we naar het meldomein zijn overgegaan. In 2.2.1 gaven we als voorbeeld een blok van 25 ms lang. De atomen worden hervormd naar een vector met dimensie E “ B · L. 19
3. Methode
« 0.0009
`0.0041
0.0024
`0.0016
`0.0010
`0.0015
`0.0007
`...
Figuur 3.3: Voorbeeld NMF ontbinding met atomen met B “ 26 en L “ 15 We berekenen voor een geluidssignaal x in het tijdsdomein de MFCs. Het resultaat V is dat signaal in het magnitude meldomein met dimensie B en lengte T . Als we L kolommen van V nemen kunnen we deze als een vector v van dimensie B · L schrijven en kunnen we deze als volgt benaderen: v«
D ÿ
i“1
wd hd “ Wh, met @d, hd • 0
(3.8)
Hier zijn hi niet-negatieve gewichten of activaties van elk atoom, wi is één atoom en D is het aantal atomen in het woordenboek. W is dan het volledige woordenboek. Vergelijking 3.8 kan gezien worden als een niet-negatieve matrix factorisatie met een vastgelegde matrix W, het woordenboek. Als we vergelijking 3.7 hernemen: ˜ “ WH, met V P REˆF , W P REˆD en H P RDˆF V«V ` ` `
(3.9)
Dan is V ons signaal in het mel magnitude domein met dimensie E en F segmenten die benaderd moeten worden. D is het aantal atomen in het woordenboek. H is dan de matrix die alle activaties bevat om het signaal V te benaderen. Een voorbeeld is te zien in figuur 3.3, hier zien we de benadering van één segment met 26 melbanden en 15 frames door atomen met de 7 grootste activaties.
3.4.3
Het woordenboek
Het gebruikte woordenboek wordt berekend aan de hand van trainingsdata (zie sectie 5.1 om te weten hoe de verdeling tussen trainingsdata en testdata gebeurt). Per klasse berekenen we de kenmerken (MFCs), met B het aantal melbanden en L het aantal frames in een atoom. Het aantal atomen per klasse dat gewenst is kan ook 20
3.4. Niet-negatieve Matrix Factorisatie vastgelegd zijn, natuurlijk is het mogelijk dat dat aantal niet haalbaar is, simpelweg omdat niet genoeg trainingsdata aanwezig is. Anderzijds is het ook belangrijk dat de atomen genoeg informatie bevatten, anders gezegd, dat er effectief geluid in een atoom zit en geen stilte. Dit gebeurt op dezelfde manier als in de spraakherkenning actieve spraak wordt herkend, met Voice Activity Detection (VAD), dit door er simpelweg voor te zorgen dat de energie (Power Spectral Density (PSD)) in een atoom boven een grenswaarde ligt. Omdat een korte sample niet steeds exact in atomen van lengte L kan onderverdeeld worden wordt gebruik gemaakt van een sliding window mechanisme zoals beschreven in [24]. Sliding window Het sliding window mechanisme gaat een kort sample doorlopen met een window lengte L en met een verschuivingstap , dus L ´ overlappende frames (zie figuur 3.4). Stel bijvoorbeeld een sample van T “ 40 frames, atomen met L “ 8 frames en “ 1, het totaal aantal atomen dat uit dit sample gehaald kan worden is dan gelijk aan T ´ L ` 1 “ 33. Hoe kleiner hoe meer atomen we uit een sample kunnen halen en dus voor een klasse kunnen verkrijgen en dus kan dit eventueel bevorderend zijn voor de resultaten, de rekencomplexiteit zal echter verhogen. Als maar een beperkt aantal atomen uit zo’n sample wordt gehaald, gebeurt de selectie ervan willekeurig, zolang dat de drempelwaarde voor de energie gehaald wordt.
L B Sample U T Figuur 3.4: Sliding window
3.4.4
Berekenen van de activaties
We minimaliseren een bepaald criterium en zoals hierboven aangehaald zijn daar verschillende keuzes voor. We kiezen voor de KL-divergentie omdat dit het beste presteert in het mel magnitude domein ([21]). We zoeken dus v, waarvoor: arg min dpv, Whq, h • 0 h
(3.10) 21
3. Methode met KL-divergentie: ˜q “ dpv, v
E ÿ
e“1
ve logp
ve q ´ ve ` v˜e v˜e
(3.11)
Om dit optimalisatie probleem op te lossen wordt een iteratieve formule geconstrueerd, de update-rule. Volgende formule is de gebruikte update rule: ´ ¯ M´ ¯ h – h. ˚ WT pv.{Whq . WT 1 (3.12)
Men kan de details van de berekening voor deze formule vinden in [25]. ‘.*’ en ‘./’ zijn respectievelijk elementsgewijze vermenigvuldiging en elementsgewijze deling. ‘1’ stelt een vector voor waar alle elementen gelijk zijn aan 1, ze is van dimensie E ˆ 1.
3.4.5
Ijle voorstelling
Zoals figuur 3.3 al verraadt is vaak maar een beperkt aantal atomen nodig om een segment met genoeg accuraatheid te benaderen. Dit wil zeggen dat een deel van de elementen uit vector h 0 moet zijn. Gewenst is dat slechts zeer weinig atomen gebruikt worden, h wordt dus zeer ijl, we spreken van sparse representation. Het gebruik van sparse representation in geluidsherkenning ligt in het voordeel dat het oplevert voor bronscheiding (= source separation). Bronscheiding is het uit elkaar houden van geluiden teweeg gebracht door een verschillende bron, anders gezegd overlappende geluiden onderscheiden, iets wat gewenst is. Om een ijle vector te verkrijgen, zullen we het criterium veranderen dat geminimaliseerd wordt. Het criterium wordt gewijzigd zodat elke waarde verschillend van nul bestraft wordt. Dit gebeurt typisch door de L1 norm nog eens op te tellen aan het gekozen afstandscriterium: dpv, Whq ` || . ˚ h||1 , h • 0
(3.13)
ˆ de KL divergentie (zie vergelijking 3.11). is een vector met Wederom met dpv, Whq sparsity parameters en heeft invloed op hoe ijl de representatie is. De update-regel ziet er nu als volgt uit: ´ ¯ M´ ¯ h – h. ˚ WT pv.{Whq . WT 1 ` (3.14)
De afleiding van deze formule kan gevonden worden in [21]. In deze masterproef zullen de waarden in matrix gevarieerd worden om de invloed ervan te bestuderen.
3.4.6
Group sparsity
Naast algemene sparsity op te leggen aan de vector is het mogelijk de sparsity te groeperen, d.w.z. proberen bepaalde deelverzamelingen van atomen te gebruiken, dit wordt group sparsity genoemd. Het idee komt van het herkennen van sprekers bij spraakherkenning [26]: voor elke spreker zal een reeks atomen aanwezig zijn in het woordenboek, wetende dat een opname van een en dezelfde spreker komt, wordt 22
3.4. Niet-negatieve Matrix Factorisatie geprobeerd één deelverzameling te favoriseren. Hier wordt een gelijkaardige methode voorgesteld maar voor de omgeving: in elke omgeving komen een beperkt aantal klassen voor en wetende dat een opname in slechts één omgeving opgenomen is, is het mogelijk om ons tot de deelverzameling van atomen te beperken die horen bij de klassen uit die omgeving. Als de omgeving vooraf gekend is neem je de deelverzameling van atomen horende bij de klassen uit de gekende omgeving. Dat laatste is echter niet het geval dus moet de NMF-berekening aangepast worden zodat dergelijke deelverzamelingen in rekening worden gebracht. De update-regel wordt nu: ´ ¯ M´ ¯ h – h. ˚ WT pv.{Whq . WT 1 ` SR ` GS (3.15)
Vector GS brengt de kost voor de group sparsity in rekening voor elk atoom. Deze wordt elke iteratie opnieuw berekend: a T 2 (3.16) gs “ ⁄gs ˚ h. ˚ pGO GO h. q
Hierin is ⁄gs de parameter die de invloed van de group sparsity bepaalt. Matrix GO is een binaire matrix O ˆ D die L atomen afbeelt op O groepen (in ons geval O omgevingen). We geven hier een eenvoudig voorbeeld. Volgende matrix stelt een woordenboek voor met drie klassen, elk met 10 bijhorende atomen: 1ste klasse 2de klasse 3de klasse hkkkkkkikkkkkkj hkkkkkkikkkkkkj hkkkkkkikkkkkkj ‰ W “ d1 . . . d10 e1 . . . e10 g1 . . . g10
“
(3.17)
Met volgende relatie tussen vier omgevingen en de klassen: d Straat »1 Restaurant —1 – Keuken 0 Badkamer 0
e 1 0 1 0
g 1fi 0ffi “ R fl 0 1
(3.18)
GO is dan simpelweg de uitbreiding van R voor de atomen van de klassen: d1 »1 1 GO “ — – 0 0
... ... ... ... ...
d10 1 1 0 0
e1 1 0 1 0
... ... ... ... ...
e10 1 0 1 0
g1 1 0 0 1
... ... ... ... ...
g10 1 fi 0 ffi fl 0 1
(3.19)
De afleiding van update rule 3.15 en vergelijking 3.16 kan men vinden in [26]. Net zoals bij sparse representation zal ook ⁄gs gevarieerd worden om de invloed ervan te bestuderen. 23
3. Methode
3.5
Recognition
We kunnen de NMF ontbinding gebruiken om de herkenning uit te voeren. Eenmaal de matrix H gevonden is, is het de bedoeling hieruit klassen te halen. De relatie tussen de atomen en de klassen gebeurt equivalent aan de relatie tussen de omgevingen en de atomen, equivalent aan matrix GO hebben we dus ook een matrix GC . Door de matrix GC te vermenigvuldigen met H krijgen we een matrix dat als een klasseposteriorgram kan gezien worden. Een voorbeeld van GC met woordenboek 3.17: d1 «1 GC “ 0 0
... ... ... ...
d10 1 0 0
e1 0 1 0
... ... ... ...
e10 0 1 0
g1 0 0 1
... ... ... ...
g10 0 ff 0 1
(3.20)
Dan is het klasse-posteriorgram: klasse-posteriorgram ⇧C “
GC H , met GC P RCˆD en H P RDˆT |GC H|
(3.21)
Met C het aantal klassen in de klasseverzameling C, D het totaal aantal atomen en T het aantal segmenten dat geclassificeerd moeten worden. De deling door |GC H| is nodig zodat de som van alle posteriorkansen voor elk segment gelijk is aan 1. In figuur 7.1 ziet men links zo een posteriorgram en rechts de GT (Opmerking: de linkse figuur heeft een extra rij voor de achtergrond, let op van de juiste rijen te vergelijken). De x-as zijn de segmenten. De classificatie zou kunnen gebeuren door het maximum te nemen voor elk segment en eventueel de n klassen die hoger zijn dan een vastgelegde waarde (threshold), op deze manier kunnen we overlap detecteren. Zoals in sectie 2.4 vermeld, kunnen we een HMM gebruiken om de tijdsafhankelijkheid in rekening te brengen. We gebruiken dus een HMM met één state per klasse en berekenen het Viterbi pad door het posteriorgram. Om overlap te berekenen zullen we meerdere malen het Viterbi pad berekenen en bij elke berekening van een pad dat pad aftrekken van het huidige posteriorgram. In figuur 7.1 komt geen overlap voor dus zal slecht één Viterbi pad berekend worden.
3.6
Classification
Ook kunnen we de NMF ontbinding gebruiken om de omgeving te herkennen. We gebruiken dan matrix GO om de transformatie naar het posteriorgram uit te voeren, met andere woorden we berekenen een verschillend posteriorgram: omgevingsposteriogram ⇧O “
GO H , met GO P ROˆD en H P RDˆT |GO H|
(3.22)
Het enige verschil hier is dus de matrix GB die naar O omgevingen transformeert. Een opname is afkomstig uit slechts één omgeving, dus moeten we geen omgeving 24
3.7. Besluit
(a) Posteriogram
(b) Origineel
Figuur 3.5: Voorbeeld posteriogram veranderingen detecteren en ook geen overlap. Er wordt geen HMM gebruikt en we nemen als omgeving de omgeving waarvoor de som van de logaritmes van de elementen van het posteriorgram maximaal is (log MLE): Opiq “ arg max i
T ´ÿ
j“1
¯ logppij q , met i “ 1, 2, ..., O
Hierin zijn pij de elementen van het omgevingsposteriorgram ⇧O . Dat posteriorgram is een element van ROˆT , met O het aantal omgevingen en T het aantal segmenten.
3.7
Besluit
In dit hoofdstuk werden de belangrijkste onderdelen van de gebruikte methode besproken. De eerste sectie was een duidelijk overzicht van het stappenplan van de methode. We verklaarden vervolgens waarom we andere kenmerken dan de gebruikelijke MFCCs nodig hebben, namelijk om overlappende events te kunnen detecteren, we gebruiken de verwante MFCs. Daaropvolgend legden we in detail Niet-negatieve Matrix Factorisatie uit, de algebraïsche ontbinding die de nodige brononderscheiding uitvoert. Als laatste legden we uit hoe we deze technieken konden gebruiken om geluiden te herkennen en ze in een omgeving te classificeren.
25
Hoofdstuk 4
Database Gezien het onderzoeksdomein pas recent op gang is gekomen, is het gebruik van een bestaande database niet zo vanzelfsprekend. De meeste databases zijn auteursrechtelijk beschermd of zijn redelijk duur om te gebruiken. Voor de thesis zijn er dus opnames gemaakt. Ter herinnering, nog even kort de gebruikte terminologie: een klasse is een verzameling van alle geluiden die onder eenzelfde label vallen, bijvoorbeeld, ‘lopende kraan’ of ‘startende auto’. Een event is één zo’n geluid uit een klasse. Zo’n geluid vindt plaats in een omgeving, bijvoorbeeld een badkamer of een straat. Een scene is een opname van bepaalde duur in een bepaalde omgeving waar meerdere events voorkomen. Welke klassen en welke omgevingen we gaan gebruiken bespreken we in sectie 4.1. In sectie 4.2 wordt besproken hoe we efficiënter dan in de literatuur een groot aantal scenes kunnen opbouwen. In sectie 4.3 wordt uitgelegd welke elementen nodig zijn om op deze efficiënte manier de realiteit te kunnen benaderen. In 4.4 en 4.5 worden de details gegeven van het voorgestelde programma.
4.1
Klassen en omgevingen
Bij de keuze van klassen en omgevingen is het belangrijk dat de verschillende klassen in verschillende omgevingen voorkomen, maar ook niet in elke omgeving, anders hebben ze geen nut voor het onderscheiden van de verschillende omgevingen. In tabel 4.1 is te zien welke klassen in welke omgevingen voorkomen. De laatste kolom is gewoon een arbitraire omgeving waar alle klassen kunnen voorkomen. We kiezen bewust om bepaalde klassen uit bepaalde omgevingen weg te laten (zoals de stem uit de keuken), dit om meer onderscheid tussen de omgevingen te kunnen maken. We zouden deze tabel kunnen variëren en zien hoe de resultaten daarmee wijzigen. Ook kunnen we ze uitbreiden met meer klassen en meer omgevingen om meer te kunnen zeggen over de resultaten en de experimenten interessanter te maken. 27
4. Database Omgevingen Ñ Klassen Ó Auto Bestek Bestek gerinkel Deur Doorspoelen Douche Glazen Kast Kraan Microgolf Stem Toaster Toetsenbord Voetstappen Waterkoker
Keuken x x
x x x x x
Badkamer
Kantoor
x x x
x
x x
x x
Restaurant Straat x x
x
x
x
x x
x x
Geen x x x x x x x x x x x x x x x
Tabel 4.1: Events in omgevingen
4.2
Mixen
In de literatuur wordt als database zeer vaak gebruik gemaakt van een opgenomen scene van een bepaalde duur. In deze opname wordt dan elk event geannoteerd. Bepaalde opnames zullen gebruikt worden voor het trainen, anderen voor het testen. Men gaat bijvoorbeeld dertig opnames maken van een kantoor en alle geluiden in dat kantoor gaan annoteren met een label: toetsenbord, stem, kast, etc. Van de dertig opnames zal men er twintig gebruiken om te trainen en tien om te testen. Met trainen bedoelen we dus de atomen van het woordenboek opstellen. Met de annotaties in de opnames en een tabel van de vorm 4.1 kunnen we de matrices GO en GC zoals in vergelijkingen 3.20 en 3.19 opstellen. W uit 3.17 zou een voorbeeld kunnen zijn waar uit de trainingsdata tien atomen per klasse moeten geëxtraheerd worden en waar drie klassen aanwezig zijn. Met deze matrices en het woordenboek dat geëxtraheerd wordt uit de trainingsdata kan aan geluidsherkenning gedaan worden. Deze manier van werken heeft enkele nadelen: ten eerste, per omgeving moet je heel wat opnames maken om genoeg trainingsdata en testdata te hebben, ten tweede moet alles manueel geannoteerd worden. Het zou handig zijn om een manier te hebben die automatisch zo een scenes genereert, een manier die virtuele scenes genereert die realistische scenes nabootst. De eerste stap hierin is veel korte opnames (samples) te maken van alle mogelijke events. Met deze opnames kunnen we nu virtuele scenes creëren. Dit wordt gedaan door de korte, droge samples samen te voegen, m.a.w., de samples na elkaar zetten met willekeurige blokken stilte tussen. Dit kan enkele keren opnieuw gedaan worden voor scenes van dezelfde lengte om ze dan op te tellen, zo komen overlappende events voor. 28
4.3. Realistische scenes Een eerste voordeel is dat niet manueel geannoteerd moet worden, elke klasse heeft een reeks opnames, we weten exact waar we welke klasse plaatsen bij het genereren van de scene. Met genoeg korte opnames kunnen we veel variërende scenes genereren. Een ander voordeel is dat we enkele parameters hebben waarmee we kunnen spelen. In de huidige vorm van het algoritme om dergelijke scenes te genereren (sectie 4.4) zijn drie parameters voorzien: ten eerste is er de scene dichtheid, hoeveel events in verhouding met stilte, ten tweede is er de overlap, we kunnen kiezen hoeveel events maximaal kunnen overlappen, en ten derde is er de tijd van de scene. In figuur 4.1 is een voorbeeld te zien van een scene van 80 seconden in een keuken, met een maximale overlap van 2 events, een verhouding van 0.35 tussen geluid en stilte. De bovenste figuur is een vaak gebruikte grafische presentatie, de pianoroll, de y-as geeft de verschillende klassen van C weer de x-as is de tijdsas, op roodgekleurde tijdstippen is die klasse actief. De onderste figuur ligt dichter bij de manier waarop de scenes gegenereerd worden, namelijk door verschillende lagen op te tellen, in dit voorbeeld werden twee lagen gegenereerd en opgeteld. In de volgende sectie bespreken we wat de moeilijkheden zijn met het genereren van virtuele scenes. In sectie 4.4 geven we de pseudo code van het algoritme.
4.3
Realistische scenes
Om perfect realistische scenes te genereren moeten de opnames perfect droog zijn, dit is enkel het geval als de opnames in een dode (anechoïsche) kamer zouden gebeuren, een kamer zonder weergalm. Dat laatste is niet voor alle events haalbaar, denk bijvoorbeeld aan een auto, maar zelf kleinere objecten zouden veel tijd vergen, alleen al een aantal verschillende microgolven willen opnemen zou betekenen dat je al deze microgolven naar een dode kamer zou moeten brengen. De opnames voor onze database zijn niet perfect droog, er is wel gebruik gemaakt van een Reflexion Field van SE Electronics om zo veel mogelijk weergalm te onderdrukken. Zie appendix A voor wat meer informatie. De reden dat opnames perfect droog moeten zijn is omdat de akoestiek van de ruimte veel invloed heeft op een geluid. Als de opnames van de korte samples gebeuren inclusief de weergalm zal dit invloed hebben op de resultaten. Denk maar aan het verschil tussen een lopende kraan in een zeer weergalmende badkamer of een lopende kraan in een droge keuken. De weergalm van de ruimte in de opname van deze korte samples mag de resultaten dus niet beïnvloeden. Een tweede reden is dat we de akoestiek van de ruimte zelf zullen willen toevoegen. Dit laatste kunnen we doen door de Room Impulse Responses (RIRs) te convolueren met de tot hiertoe gemixte scene. De moeilijkheid van dit laatste is het bekomen van deze RIRs. Gezien dit een heel moeilijke taak is en niet het voorwerp uitmaakt is van deze thesis, is dit achterwege gelaten, hoewel het wel een belangrijke stap is om reële scenes automatisch te genereren. Dit laatste zou ons ook een extra parameter geven om mee te spelen om te zien hoe weergalm de resultaten beïnvloedt. Een tweede probleem is achtergrondruis, bij sommige opnames (bijvoorbeeld auto’s) zal achtergrondruis 29
4. Database sowieso aanwezig zijn, het is namelijk zeer moeilijk opnames te doen van auto’s in de openlucht zonder dat er op die locaties geen enkel ander geluid aanwezig is.
(a) Pianoroll
(b) Gegenereerde layers
Figuur 4.1: Voorbeeld automatisch gegenereerde scene in keuken
30
4.4. Algoritme
4.4
Algoritme
We geven hier de pseudocode van het algoritme dat virtuele scenes genereert. (Het hieronder weergegeven algoritme is eigen werk en niet gebaseerd op bestaande literatuur)
1 2 3 4 5 6 7 8 9 10 11 12 13
14 15 16 17 18
19 20 21 22
23 24
Data: Verzameling V met korte, droge opnames scj per klasse c uit C inputs : Densiteit fl, lengte T , overlap ‡, omgeving O output : Virtuele scene S S “ 0; t “ 0; CO Ä C; // Enkel de klassen die in O voorkomen O
Z% “ p100 ´ flq{100; while l § ‡ do while t
end Vc Ä V ; // Deelverzameling van V met enkel samples van c
scj
klasse c – RandomElementpVc q; // Kies random sample
// Toevoegen van stilte voor en na scj met de densiteit fl in rekening gebracht: Silence – Z% ˚ lengthpsij q; i “ RandomNbpr1, lengthpSilenceqsq; presilence “ Silencep1...iq; postsilence “ Silenceppi ` 1q...endq; stotal “ Concatenateppresilence , scj , postsilence q; // Toevoegen aan huidige laag layerpt...t ` sizepstotal qq “ stotal ; t – t ` sizepstotal q; end layer – layerp1...T q; // ‘truncate’ tot lengte T // Layer toevoegen aan S S – S ` layer; end Algorithm 1: Scene generatie algoritme 31
4. Database Enkele opmerkingen: • Regel 8 tot 11: Een klasse wordt verwijderd als hij (random) geselecteerd werd, dit zorgt ervoor dat elke klasse zal voorkomen in een lange scene. Het nadeel is dat dit niet altijd de realiteit weergeeft, sommige klassen zullen vaker wederkeren in het echt, toch doen we dit om zeker te zijn dat de resultaten een homogeen beeld scheppen van het herkennen van de klassen. Een niet-uniforme discrete kansverdeling over de klassen zou een realistischere scene kunnen genereren. Eenmaal geen klasse meer overblijft herinitialiseren we C0 . • Het equivalente wordt gedaan na het random selecteren van een sample uit V , omdat anders identiek dezelfde sample meerdere malen zou kunnen terugkeren. Het is bijna onmogelijk dat exact eenzelfde geluid wordt opgenomen en als dat toevallig een sample zou zijn met zeer goede resultaten of zeer slechte resultaten zou dat de resultaten negatief beïnvloeden. Dit werd hier achterwege gelaten omdat het de pseudocode snel onleesbaar zou maken.
4.5
Details over de opnames
De specificaties van de gebruikte microfoon kunnen gevonden worden in appendix B. Volgende tabel geeft een samenvatting van de opgenomen samples. Klassen Auto Bestek Bestek gerinkel Deur Doorspoelen Douche Glazen Kast Kraan Microgolf Stem Toaster Toetsenbord Voetstappen Waterkoker
Aantal samples 12 13 23 20 11 8 22 35 29 10 54 3 11 18 14
Min duur (s)
Max duur (s)
6 0.625 0.25 0.25 4 7.5 0.5 0.25 4.5 9.5 0.5 1 3.5 1.75 10.4359
36 2.1493 3 3.75 13.5 11.0148 3.25 3.5 16 16.125 7 2 14 8.5 162.3195
Gemiddelde (s) 13.9079 1.377 1.2118 1.5994 8.2491 8.0956 1.0700 0.8337 8.7919 11.9118 2.1802 1 7.9205 3.6145 61.2653
Tabel 4.2: Events in omgevingen We zien in deze tabel dat niet van elke klasse evenveel opnames gemaakt zijn, dat is simpelweg omdat sommige klassen eenvoudiger op te nemen zijn dan anderen of vaker voorkomen. Zo is het eenvoudiger om de stem van personen op te nemen 32
4.6. Besluit dan 20 verschillende microgolven op te nemen. Het voordeel is natuurlijk dat het uitbreiden van deze tabel mogelijk is.
4.6
Besluit
In dit hoofdstuk bespraken we de gebruikte database, voornamelijk de scenes waarop we zouden testen. Er werd stilgestaan bij de nadelen van de in de literatuur gebruikte methodes en er werd een voorstel gedaan om efficiënt scenes te genereren. Het generen van scenes biedt dan wel enkele voordelen maar om realistische scenes te verkrijgen moet heel wat in rekening gebracht worden en zijn uitbreidingen aan het huidige algoritme essentieel.
33
Hoofdstuk 5
Experimentele Setup In dit hoofdstuk geven we alle numerieke details weer van de simulaties alsook de stappen die we nemen om de dataset zo grondig mogelijk te testen.
5.1
Five fold cross validation
Om zo grondig mogelijk te testen maken we gebruik van five fold cross validation. Hierbij wordt de dataset opgesplitst in vijf disjuncte deelverzamelingen met, indien mogelijk, voor elke klasse evenveel samples per deelverzameling. Het programma wordt dan vijf keer gestart, bij elke iteratie kiezen we een nieuwe deelverzameling voor te testen, de andere vier worden gebruikt als trainingset. Voor elke iteratie genereren we een nieuwe scene met de samples uit de testset en maken we een nieuw woordenboek voor de NMF met de samples uit de testset. Welke klassen voorkomen in welke set is ook afhankelijk van de omgeving die meegegeven wordt om een scene te genereren. Dit maakt enkel uit welke scenes uit de deelverzamelingen geselecteerd worden om in de gegenereerde scene te komen en heeft geen invloed op de deelverzamelingen en dus ook niet op de woordenboeken, wat logisch is, we weten namelijk op voorhand de omgeving niet en kunnen ons woordenboek dus ook niet aanpassen aan de omgeving. Parameter
Symbool
Waarde
Sample frequentie
fs
44100 Hz
Stilte in het begin
–
1s
Lengte
T
1000s
Densiteit
fl
70%
Maximum overlap
‡
P r1, 5s
Tabel 5.1: Scene generatie parameters
35
5. Experimentele Setup
5.2
Scene generatie
In tabel 5.2 staan de standaardwaarden voor het genereren van scenes. Het maximum aantal overlappende events toegelaten en de context zullen steeds gespecificeerd worden bij het bespreken van de resultaten, evenals de waarden voor fl en T moesten deze anders zijn dan deze uit de tabel.
5.3
Woordenboek generatie
Parameter Sample frequentie STFT window lengte STFT window verschuifstap Melbanden Exemplar grootte
Symbool
Waarde
fs
44100 Hz
LST F T
25 ms
ST F T
10 ms
B L
Sliding window verschuifstap
26 15 1
Gewenst # exemplars
–
50.000
Activity Detection Threshold
–
0.1
Window functie
–
Hamming
Kanalen
–
2 (Stereo)
Preemphasis
–
0.97
Tabel 5.2: Woordenboek creatie parameters Het aantal exemplars (50.000) is veel meer dan nodig, na een bepaald aantal zal het toevoeg van nog meer exemplars vermoedelijk niet al te veel nut meer hebben, dit is hier niet onderzocht. Het behaalde aantal ligt rond de 9000 exemplars in één woordenboek, dit is niet gelijkmatig verdeeld per klasse.
5.4
Event detectie
De gebruikte HMM is van zeer simpele aard: “16 “ 1(index 16 komt overeen met het achtergrondgeluid, dus stilte in ons geval). Dat wil dus zeggen dat we altijd in stilte beginnen bij het berekenen van het Viterbipad. Het feit dat één seconde stilte wordt toegevoegd aan het begin van een gegenereerde scene komt hiermee overeen. Voor het opstellen van de transitiematrix A hebben we twee parameters, –, welke gelijk wordt gesteld aan elke zelftransitie, aij “ –, voor alle i, j P r1, 16s. De tweede parameter is de fractie van de overblijvende kans dat we naar de achtergrond gaan. De kansen dat we naar een andere klasse gaan is uniform verdeeld. 36
5.4. Event detectie Parameter Sample frequentie STFT window lengte STFT window verschuifstap
Symbool
Waarde
fs
44100 Hz
LST F T
25 ms
ST F T
10 ms
Melbanden Window functie
B –
26 Hamming
Kanalen
–
2 (Stereo)
Preemphasis
–
0.97
NMF iteraties
–
200
aii “ –, met i “ 1, 2, ..., 16
r0.05, 0.95s˚
HMM zelftransitie HMM fractie van transitie voor achtergrond HMM initiële kans klassen HMM initiële kans achtergrond
›
r0.05, 0.95s˚
“i met i “ 1, 2, ..., 15
0
“16
1
SR event sparsity
⁄es
SR background sparsity
r0.05, 0.95s˚
⁄bs
GS group sparsity
⁄gs
r0.05, 0.95s˚ r0.05, 0.95s˚
Tabel 5.3: Event detection parameters (* = zal onderzocht worden in de gegeven intervallen) Stel dat parameter aii “ – dan ziet de matrix A er als volgt uit. »
– a1,2 a1,3 . . . a1,15 — a2,1 – a2,3 a2,15 — — a3,1 a3,2 – a3,15 — — .. . .. — . — –a15,1 a15,2 a15,3 – 1´– 15
1´– 15
1´– 15
1´– 15
fi p1 ´ –q · › p1 ´ –q · › ffi ffi p1 ´ –q · › ffi ffi ffi ffi ffi p1 ´ –q · › fl –
Waar voor alle (verschillende) toestand transities aij : aij “
1 ´ – ´ › · p1 ´ –q , @i ‰ j en i, j P r1, 15s 14
(5.1)
De waarden – en › zullen gevarieerd worden tussen de aangegeven grenzen (zie tabel 5.3) om de optimale parameters hiervoor te bepalen. Voor de sparse representation zijn ook twee variabelen voorzien, de event sparsity ⁄es en de background sparsity ⁄bs . Samen vormen deze dan de vector SR 37
5. Experimentele Setup uit vergelijking 3.15. De vector ziet er dan als volgt uit: T oestand Ñ 1 T “ ⁄ r es SR
2 ⁄es
... ...
15 ⁄es
Achtergrond ⁄bs s
(5.2)
Ook deze parameters zullen onderzocht worden. Voor group sparsity is één parameter voorzien, ⁄gs , deze werd al aangehaald in vergelijking 3.16: a T 2 (5.3) gs “ ⁄gs ˚ h. ˚ pGO GO h. q GS is de vector die in de update-regel gebruikt wordt bij het berekenen van de NMF ontbinding (vergelijking 3.15. En net zoals de vorige parameters zullen we de invloed van deze parameter ook bespreken.
38
Hoofdstuk 6
Resultaten: event detection In dit hoofdstuk bespreken we de resultaten van het event detection algoritme. Eerst bespreken we in 6.1 de verschillende eenheden voor evaluatie. Achteraf gaan we in detail onderzoeken wat de beste configuratie is van enkele parameters om aan event detectie te doen. In een laatste sectie bekijken we de resultaten van de event detectie per context.
6.1
Eenheden voor evaluatie
We hanteren de waarden voorgesteld in [27]. We onderscheiden drie type’s van evaluatie: één op frame-niveau, één op event-niveau en één laatste op klasse-event niveau. De eerste is de meest gedetailleerde, de tweede en derde geven een algemener beeld van het resultaat. De eerste score die gedefinieerd wordt is de Acoustic Event Error Rate (AEER): AEER “
pD ` I ` Sq .100 N
Hierin is N het aantal te detecteren events op een tijdstip, D is het aantal missende events, I is het aantal extra events en S is het aantal substituties, gedefinieerd als S “ mintD, Iu. Hoe lager de AEER, hoe beter het resultaat. Een AEER van 0 zou betekenen dat we perfecte herkenning hebben. Een tweede score die gedefinieerd wordt is de F -score en is een functie van de recall en de precision. De recall is de verhouding tussen het aantal correct herkende frames of events en de GT. De precision is de verhouding tussen het aantal correct herkende frames of events en het totaal aantal herkende frames of events: rec “
correct correct , pre “ GT total
De F -score is dan als volgt gedefinieerd: F “
2.pre.rec pre ` rec 39
6. Resultaten: event detection Op event niveau en klasse-event niveau voorzien we ook twee verschillende toleranties. De ene houdt geen rekening met het stoppen van het event en beschouwt een event correct als het herkende event start binnen een interval van 100ms van het echte event. De tweede houdt ook rekening met wanneer een event stopt; de tolerantie is dezelfde voor de start is nog steeds dezelfde, de tolerantie voor het stoppen is een interval van 50% van de lengte van het event. In de tabellen wordt naar de tweede verwezen met het offset subscript. We definiëren het klasse-event niveau (class-wise event-based) om te voorkomen dat veel voorkomende events de resultaten zouden domineren. Als een moeilijk te herkennen event te vaak voorkomt zullen de scores bij event-based slecht zijn, hoewel dat niet noodzakelijk het geval is. Bij class-wise event-based is de F -score gedefinieerd als: ÿ F “ Fk {K k
Met Fk de F -score van een klasse en K het aantal klassen. Op deze manier vinden we een evenwicht tussen de F -scores van de klassen. We zullen het meest werken met de frame-based F -score.
6.2
Resultaten zonder omgeving
Vooraleer we de resultaten per omgeving bespreken zullen we enkele parameters voor de detectie trachten te optimaliseren. Gezien we ervan uitgaan dat elk event evenveel kans heeft om voor te komen gebruiken we hiervoor een scene waar alle klassen kunnen voorkomen (geen omgeving gespecificeerd). De parameters zouden dan optimaal moeten zijn voor elke omgeving, gezien de verdeling van de klassen in die omgeving ook uniform is.
6.2.1
De parameters van het Hidden Markov Model
We beginnen met een bespreking van de HMM-parameters. We bespraken in 5.4 de details over hoe de HMM werd opgebouwd. De fractie voor de transitie naar achtergrond › De invloed van de achtergrond fractie is te zien in figuur 6.1 voor twee verschillende waarden van ‡. De gebruikte waarde voor de andere parameters zullen steeds onder de grafiek te zien zijn. Wanneer de group sparsity parameter ⁄gs niet gegeven is, wil dat zeggen dat er geen group sparsity gebruikt is. De volle (blauwe) curve geeft de frame-base F -score in functie van een wijzigende fractie voor de achtergrond transitie ›. Het resultaat zonder gebruik van HMM is weergegeven door de gestippelde (rode) curve. De invloed is zeer gering zoals de figuur aangeeft (let op: de y-as loopt slechts over enkele percenten). Bij ‡ “ 1 komen dus geen overlappende events voor en bij densiteit fl “ 70% ligt tussen elk event een periode stilte (zie 4.4). De beste resultaten zullen dus verkregen worden als alle transities naar andere verborgen toestanden, buiten de achtergrond toestand, 40
6.2. Resultaten zonder omgeving 81
60.6
60.5 80.5 60.4 80 FB F−score (%)
FB F−score (%)
60.3
79.5
60.2
60.1 79 60 78.5 59.9
78
0
0.1
0.2
0.3 0.4 0.5 0.6 0.7 HMM fractie voor achtergrond transitie
0.8
0.9
59.8
1
0
0.1
(a) Max overlap ‡ = 1
0.2
0.3 0.4 0.5 0.6 0.7 HMM fractie voor achtergrond transitie
0.8
0.9
1
0.8
0.9
1
(b) Max overlap ‡ = 2
60.6
54.2
54.1
60.4
54 60.2
FB F−score (%)
FB F−score (%)
53.9 60
59.8
53.8
53.7 59.6 53.6
59.4
59.2
53.5
0
0.1
0.2
0.3 0.4 0.5 0.6 0.7 HMM fractie voor achtergrond transitie
0.8
0.9
1
53.4
0
0.1
(c) Max overlap ‡ = 3
0.2
0.3 0.4 0.5 0.6 0.7 HMM fractie voor achtergrond transitie
(d) Max overlap ‡ = 4
Figuur 6.1: Invloed HMM fractie voor achtergrondtransitie › ⁄es “ 0.5, ⁄bs “ 0.8, – “ 0.9
gelijk zijn aan nul, dus als de fractie › naar 1 gaat. Deze stijging is ook zichtbaar on de grafiek. Het verschil is echter niet heel significant (<1%). Bij de andere grafieken waar ‡ groter is, zien we deze trend verminderen en zelfs omdraaien bij ‡ “ 4. Dat laatste is logisch omdat daar net meer kans bestaat dat we niet naar de achtergrondtransitie hoeven te gaan en dus hoe kleiner ›, hoe beter. Na het bespreken van slechts één parameter is al duidelijk dat er bij het vastleggen van de parameters trade-offs gaan moeten gebeuren. We zullen niet de optimale parameters voor alle situaties kunnen kiezen. De zelftransitie – Bij de resultaten van de zelftransitie kwam een zeer opmerkelijke piek tevoorschijn. Deze piek bleek geen uitschieter in de resultaten te zijn en kwam in elke grafiek terug. We tonen daarom ook in figuur 6.3 de resultaten voor een configuratie van de parameters die zeer slecht scoorde, maar ook de piek vertoonde. Intuïtief was deze 41
79
54.6
78
54.5
77
54.4
76
54.3 FB F−score (%)
FB F−score (%)
6. Resultaten: event detection
75
54.2
74
54.1
73
54
72
53.9
71
53.8 0
0.1
0.2
0.3
0.4
0.5 HMM P(zelf)
0.6
0.7
0.8
0.9
1
0
0.1
0.2
0.3
0.4
0.5 0.6 HMM P(zelf)
0.7
0.8
0.9
1
0.8
0.9
1
(b) Max overlap ‡ = 4
(a) Max overlap ‡ = 1
Figuur 6.2: Invloed HMM zelftransitie – (1ste configuratie) ⁄es “ 0.5, ⁄bs “ 0.8, › “ 0.137 54
50
52 50
45
46
FB F−score (%)
FB F−score (%)
48
44 42
40
35
40 38
30
36 34
0
0.1
0.2
0.3
0.4
0.5 0.6 HMM P(zelf)
0.7
(a) Max overlap ‡ = 1
0.8
0.9
1
25
0
0.1
0.2
0.3
0.4
0.5 0.6 HMM P(zelf)
0.7
(b) Max overlap ‡ = 4
Figuur 6.3: Invloed HMM zelftransitie – (2de configuratie) ⁄es “ 0.8, ⁄bs “ 0.5, › “ 0.137
piek niet te verklaren. Normaal gezien zouden de resultaten beter moeten zijn als de zelftransitie relatief hoog is, omdat we niet elk segment van geluid veranderen, zoals de stijging in de bovenste twee figuren naar een hogere –. Logischerwijs zou een optimum moeten voorkomen bij hogere waarden van –. Een onderzoek van deze piek was dus zeker nodig, doch de reden was minder interessant dan gehoopt. De F -score is een functie van de recall en de precision zoals gedefinieerd in sectie 6.1. Bij een lage waarde voor – zal er vaak van toestand gewisseld worden, dit geeft als resultaat dat de recall redelijk hoog is, we zullen namelijk zeer veel verschillende events herkennen ookal zitten er veel verkeerde tussen en dat weerspiegeld zich in de precision, welk aan de lage kant is bij een lage –. We zien dan bij het stijgen van – een sterke daling voorbij nul voor de recall en 42
6.2. Resultaten zonder omgeving een sterke stijging bij de precision. De oorzaak van de piek ligt bij de functie die de F -score is van deze recall en deze precisie en een optimum vertoont bij 0.05 ongeveer in de meeste gevallen (figuur 6.4). De frame-based AEER score vertoonde wel het verwachte gedrag voor ‡ “ 1, maar vanaf ‡ “ 2 kregen we een gelijkaardige karakteristiek, deze kan op dezelfde manier verklaard worden. 0.95
pr e c ision r e c all F -sc or e
0.9
0.85
0.8
0.75
0.7
0.65
0
0.1
0.2
0.3
0.4
0.5 0.6 H M M P(z e lf )
0.7
0.8
0.9
1
Figuur 6.4: recall, precision en F -score ⁄es “ 0.35, ⁄bs “ 0.8, › “ 0.5, ‡ “ 1
Gezien we niet wensen dat elk frame een andere klasse herkent wordt, kijken we naar de resultaten van de event-base of class-wise event based. We zien de event-based AEER en F -score in figuur 6.5. We zien hier duidelijk een stijging naar – “ 1 toe. Anderzijds zien we onder 0.1 een enorme daling van de resultaten (ter herinnering: voor de AEER score geldt: hoe lager, hoe beter). Toch zien we voor ‡ “ 2 en 4 dat de resultaten weer verbeteren eenmaal een dieptepunt bereikt is. Deze zal hoogstwaarschijnlijk een gelijkaardige verklaring hebben en is niet verder onderzocht.
6.2.2
De parameters van de Niet-Negatieve Matrix Factorisatie
NMF event sparsity ⁄es In figuur 6.6a zien we dat de ijlheid in matrix H uit de NMF van cruciaal belang is. Geen sparsity opleggen komt overeen met ⁄es “ 0. De resultaten stijgen zeer sterk met ⁄es ° 0 . We zien echter snel een saturatie bij ˘⁄es “ 0.25, de resultaten blijven zo goed als constant voor alle waarden van ‡ en dalen weer sterk na ⁄es “ 0.8. De eenvoudige verklaring hiervoor is dat als H zo goed als enkel nog maar nullen bezit het posteriorgram ⇧C ook zeer ijl zal zijn en het berekenen van het Viterbi pad wordt daardoor zeer willekeurig. 43
6. Resultaten: event detection 20
800
σ σ σ σ
18 16
= = = =
1 2 3 4
σ σ σ σ
700
= = = =
1 2 3 4
E ve n t b ase d A E E R - sc or e
E ve n t b ase d F - sc or e ( % )
600 14 12 10 8
500
400
300
6 200 4 100
2 0
0
0.1
0.2
0.3
0.4
0.5 0.6 H M M P z e l f, α
0.7
0.8
0.9
(a) Event based F -score (%)
1
0
0
0.1
0.2
0.3
0.4
0.5 0.6 H M M P z e l f, α
0.7
0.8
0.9
1
(b) Event based AEER score
Figuur 6.5: Invloed HMM zelftransitie – ⁄bs “ 0.8, – “ 0.95, › “ 0.5
Anderzijds duiden we er weer op dat niet uit alle resultaten dezelfde conclusies kunnen getrokken worden, zoals bij de HMM parameters. In figuur 6.6b zien we dat voor ‡ “ 2 tot ‡ “ 5 de frame based AEER-resultaten nog wat lijken te verbeteren. Dit in schril contrast met het kelderen van de resultaten in de eerste figuur. De aard van de scoring kan ook weer hier hulp bieden: in de formule van AEER zal bij stijgende ⁄es het aantal missende events D nog dalen, I, het aantal extra events daarentegen zal amper nog stijgen. De score geeft hier dus wederom een vertekend beeld. NMF background sparsity ⁄bg Voor de parameter ⁄bs kunnen we gelijkaardige conclusies trekken als voor ⁄es . We zien echter dat ze niet terug daalt naar het einde toe. De reden hiervoor is dat de parameter enkel invloed heeft op de laatste rij van H en zolang ⁄es een optimale waarde heeft, zullen de resultaten goed blijven. De belangrijkste conclusie uit de laatste twee grafieken over de sparse representation is dat ze onmisbaar is bij het gebruik van NMF.
6.3
Optimale parameters
Zoals al vermeld, zullen we geen parameters kunnen kiezen die in alle gevallen de beste resultaten opleveren. Gezien we er van uitgaan dat de events uniform verdeeld zijn in elke omgeving moeten we enkel een afweging doen tussen de verschillende ‡’s. Voor de achtergrond transitie › nemen we › “ 0.5, dit is het evenwicht tussen de stijging bij ‡ “ 1 en de daling bij ‡ “ 4, we zagen trouwens dat deze parameter 44
6.3. Optimale parameters 75
σ =1 σ =2 σ =3 σ =4 m a xim a
70
65
F B F - sc or e ( % )
60
55
50
45
40
35
30
0
0.1
0.2
0.3
0.4 0.5 0.6 0.7 N M F e v e nt sp ar si ty λ e s
0.8
0.9
1
(a) Frame based F -score (%) 2
σ =1 σ =2 σ =3 σ =4 m in im a
1.8
F B A E E R - sc or e
1.6
1.4
1.2
1
0.8
0.6
0.4
0
0.1
0.2
0.3
0.4 0.5 0.6 N M F e v e nt sp ar si ty λ e s
0.7
0.8
0.9
1
(b) Frame based AEER score
Figuur 6.6: Invloed van NMF event sparsity ⁄es ⁄bs “ 0.8, – “ 0.95, › “ 0.5
geen significante invloed had op de resultaten, dus al te veel verlies bij het slecht kiezen van deze parameter is er niet. We kiezen de zelftransitie – “ 0.95. We bespraken de piek bij lage waarden voor – en verkiezen een systeem waar niet voor elk segment een andere klasse wordt herkend. 45
6. Resultaten: event detection 80
70
F B F - sc or e ( % )
60
50
40
30
20
σ =1 σ =2 σ =3 σ =4 m a xim a
10
0
0
0.1
0.2
0.3
0.4 0.5 0.6 0.7 N M F e v e nt sp ar si ty λ e s
0.8
0.9
1
Figuur 6.7: Invloed van de background sparsity ⁄es ⁄es “ 0.35, › “ 0.5, – “ 0.95
De event sparsity ⁄es kiezen we gelijk aan 0.35. We hebben bij elke waarde van ‡ een plateau van ˘0.3 tot 0.75. Enkel bij ‡ “ 4 zien we een daling naar hogere waarden van ⁄es toe. De background sparsity ⁄bs kiezen we gelijk aan 0.7. Dit is arbitrair, we kiezen het simpelweg in het interval r0.5, 1s.
6.4
Contextafhankelijke event detection
Met de gekozen parameters hebben we het algoritme gedraaid op drie gegenereerde scenes uit elke omgeving (ook nog eens omgeving ‘geen’, die alle klassen bevat). In figuur 6.8 vinden we hiervan de resultaten. De resultaten vallen over de gehele lijn tegen, zonder overlap halen we resultaten van minimaal 65% (keuken) tot maximaal 90% (straat). Hoewel de 90% in de straatomgeving wel meevalt, is dit slechts uitzonderlijk. In de meeste gevallen zitten we tussen 70% en 80%. Zoals verwacht dalen de resultaten bij stijgende ‡. Duidelijk is dat sommige omgevingen betere resultaten behalen dan anderen, dat is simpelweg omdat de events die erin voorkomen eenvoudiger te herkennen zijn en/of eenvoudiger te onderscheiden van de andere klassen. Een interessante bemerking is dat de daling vermindert met overlap (tweede afgeleide is positief). Dat is interessant, want dat betekent dat eenmaal betere resultaten verkregen zouden worden voor overlap, extra overlappende events geen extra euvel meer vormen. Dit laatste werd ook bevestigd door de andere evaluatieëenheden en toont aan dat de NMF erin slaagt meerdere bronnen te onderscheiden. 46
6.4. Contextafhankelijke event detection
90
90
Max imum Minimum Ge midde lde
80
80
75
75
70 65 60
70 65 60
55
55
50
50
45
45
40
1
2
3 O v e r l ap
4
Max imum Minimum Ge midde lde
85
F B F - sc or e ( % )
F B F - sc or e ( % )
85
40
5
1
2
(a) Geen
80
75
75 F B F - sc or e ( % )
F B F - sc or e ( % )
80
70 65 60
70 65 60
55
55
50
50
45
45
1
2
3 O v e r l ap
4
5
Max imum Minimum Ge midde lde
85
40
1
2
3 O v e r l ap
(c) Badkamer
4
5
(d) Straat
90
90
Max imum Minimum Ge midde lde
85 80
80
75
75
70 65 60
70 65 60
55
55
50
50
45
45
1
2
3 O v e r l ap
(e) Kantoor
4
5
Max imum Minimum Ge midde lde
85
F B F - sc or e ( % )
F B F - sc or e ( % )
5
90
Max imum Minimum Ge midde lde
85
40
4
(b) Keuken
90
40
3 O v e r l ap
40
1
2
3 O v e r l ap
4
5
(f) Restaurant
Figuur 6.8: Contextafhankelijk resultaten ifv de overlap ⁄es “ 0.35, ⁄bs “ 0.7, › “ 0.5, – “ 0.95
47
6. Resultaten: event detection Effectieve overlap Ñ
Stilte (%)
1 (%)
‡“1
29.54
70.46
8.58
43.62
‡“3
2.88
18.70
0.77
7.78
‡“5
0.35
2.95
‡“2 ‡“4
2 (%)
3 (%)
4 (%)
5 (%)
-
-
-
-
47.80
-
-
-
44.46
33.96
-
-
26.85
40.27
24.33
-
13.50
30.64
35.37
17.20
Geen
Keuken ‡“1
29.57
70.43
-
-
-
-
8.61
42.83
48.56
-
-
-
‡“3
3.41
18.62
42.10
35.88
-
-
0.88
8.76
25.72
40.07
24.56
-
‡“5
0.39
4.00
17.93
34.81
32.41
10.46
‡“1
30.24
69.76
-
-
-
-
8.76
42.55
48.69
-
-
-
‡“3
3.10
18.93
42.97
34.10
-
-
‡“4
1.02
7.63
26.22
40.80
24.32
-
‡“5
0.36
2.92
12.51
31.31
36.20
16.70
‡“1
30.28
69.72
-
-
-
-
8.86
42.64
48.50
-
-
-
‡“3
2.97
18.71
43.73
34.60
-
-
0.81
7.49
26.93
41.11
23.75
-
‡“5
0.35
2.84
12.87
31.19
36.54
16.21
‡“2 ‡“4
‡“2
Badkamer
Straat ‡“2 ‡“4
Kantoor ‡“1
30.23
69.77
-
-
9.14
41.89
48.97
-
-
-
‡“3
2.85
19.10
43.32
34.73
-
-
‡“4
0.94
7.43
26.38
41.28
23.97
-
‡“5
0.39
2.99
13.24
30.24
35.93
17.21
‡“1
30.08
69.92
-
-
-
-
9.23
41.74
49.02
-
-
-
‡“3
2.81
18.66
44.27
34.26
-
-
0.91
7.45
26.59
41.08
23.97
-
‡“5
0.37
2.94
13.09
30.79
35.96
16.84
‡“2
-
Restaurant ‡“2 ‡“4
Tabel 6.1: Gemiddelde percentages van effectieve overlap per omgeving
48
6.5. Besluit Tabel 6.1 geeft de percentages van de gemiddelde effectieve overlap bij de verschillende ‡’s. Deze tabel is belangrijk omdat we hier zien dat zelfs bij ‡ “ 5 maximaal 17.20% van de tijd effectief vijf events tegelijk voorkomen. De resultaten willen dus niet zeggen dan een frame-base F -score bij ‡ “ 5 van 50%, geldig is voor 100% van de tijd 5 overlappende geluiden.
6.5
Besluit
In dit hoofdstuk werden eerst enkele parameters besproken die invloed konden hebben op de resultaten. Hoewel het nut van de HMM er is, zijn verschillende configuraties van parameters mogelijk, zeker bij overlappende events was het kiezen van de parameters niet eenduidig. Vervolgens werd de efficiëntie van sparse representation aangetoond, zonder de sparse representation zou de aanpak met NMF niet direct relevant zijn voor geluidsherkenning. We kwamen bij het bespreken van de parameters ook tot de vaststelling dat de gebruikte evaluatieëenheden niet altijd de verwachte output gaven door de aarde van deze metrieken. Er moet dus steeds opgepast worden met te snelle conclusies te trekken. De resultaten van de event detectie per context waren uiteenlopend, zo zagen we dat sommige omgevingen zeer goede resultaten hadden en anderen minder. Het opvallendst in het bekijken van deze resultaten was dat de resultaten niet kelderden bij het stijgen van de overlap.
49
Hoofdstuk 7
Resultaten: omgeving- en gelijktijdige herkenning In dit hoofdstuk bespreken we de resultaten van de omgevingsherkenning en van de gelijktijdige herkenning van de omgeving en de geluiden met behulp van group sparsity. We beginnen met de herkenning van de omgeving zonder het gebruik van group sparsity. Daarna gaan we de event detectie uit het vorige hoofdstuk uitbreiden met group sparsity en zien wat de invloed ervan is.
7.1
Herkenning van de omgeving
We kijken eerst naar de resultaten van de omgevingherkenning zonder gebruik te maken van group sparsity. Om de omgevingsherkenning te bespreken, zullen we gebruik maken van confusion matrices, deze geven aan welke omgeving herkend is bij een gegenereerde. Het totaal aantal 15 komt van de 3 verschillende 5 fold cross validation sets, waar telkens 5 gegenereerde scenes uitkwamen. In tabel 7.1 zien we de resultaten van de omgevingherkenning, deze blijkt zeer goed te scoren, enkel voor de restaurantomgeving verliezen we resultaten bij hogere overlap. De zeer goede resultaten liggen aan het weinig voorkomen van dezelfde klassen in verschillende omgevingen, zoals gedefinieerd in tabel 4.1. Hoewel de resultaten van de event detection dus niet denderend waren, zijn de verschillende omgevingen eenvoudig te onderscheiden. De restaurantomgeving wordt bij ‡ “ 5 grotendeels als keukenomgeving herkend. Dit is omdat slecht één klasse, namelijk de klasse ‘stem’, uit de restaurantomgeving niet voorkomt in de keukenomgeving, de andere klassen (‘bestek’, ‘bestekgerinkel’ en ‘glazen’) zijn ook terug te vinden in de keuken. Bovendien is het aantal mogelijke klassen in de keuken een stuk groter, daardoor zal de waarschijnlijkheid van de omgeving ‘keuken’ door fout herkende klassen snel toenemen. Het kan nuttig zijn om een confusion matrix op te stellen voor de verschillende klassen, zo kan uitgemaakt worden welke klassen een knelpunt vormen. 51
7. Resultaten: omgeving- en gelijktijdige herkenning Gedetecteerde omgeving Gegenereerde Ó
keuken
badkamer
kantoor
restaurant
straat
Totaal
Overlap 1 keuken
15
0
0
0
0
15
badkamer
0
15
0
0
0
15
kantoor
0
0
15
0
0
15
restaurant
0
0
0
15
0
15
straat
0
0
0
0
15
15
Overlap 2 keuken
15
0
0
0
0
15
badkamer
0
15
0
0
0
15
kantoor
0
0
15
0
0
15
restaurant
0
0
1
14
0
15
straat
0
0
0
0
15
15
Overlap 3 keuken
15
0
0
0
0
15
badkamer
0
15
0
0
0
15
kantoor
0
0
15
0
0
15
restaurant
0
0
2
13
0
15
straat
0
0
0
0
15
15
Overlap 4 keuken
15
0
0
0
0
15
badkamer
0
15
0
0
0
15
kantoor
0
0
15
0
0
15
restaurant
4
0
0
11
0
15
straat
1
0
0
0
14
15
Overlap 5 keuken
15
0
0
0
0
15
badkamer
0
15
0
0
0
15
kantoor
0
0
15
0
0
15
restaurant
8
0
1
6
0
15
straat
1
0
0
0
14
15
Tabel 7.1: Confusion matrices zonder group sparsity
7.2
Event detection met group sparsity
In de resultaten van de group sparsity zien we geen spectaculaire verbeteringen en zelfs tegengestelde tendenzen bij verschillende omgevingen. De resultaten van de event detection met group sparsity vallen dus erg tegen. Enkele dingen zouden dit kunnen verklaren. Een eerste is simpelweg dat de group sparsity niet correct in rekening wordt gebracht, hoewel dit laatste in eerste opzicht niet het geval leek. Een tweede reden kan zijn dat de sparse representation al het beste uit de NMF haalt. Dit laatste is echter niet al te waarschijnlijk, hoewel het kan dat de resultaten niet 52
7.3. Besluit al te veel wijzigen zou de group sparsity toch enige invloed horen te hebben. Als laatste is ook mogelijk dat de group sparsity de klassen die knelpunten vormen niet specifiek herkenbaar maakt. Een eerste oplossing is om de group sparsity beter in rekening te brengen, door bijvoorbeeld een verschillende update-regel te gebruiken, dus een andere bestraffing (penalty) dan die voorgesteld in [26] en welke in deze masterproef overgenomen werd. 66
90
σ σ σ σ
64
= = = =
1 2 3 4
σ σ σ σ
85
= = = =
1 2 3 4
80
F B F - sc or e ( % )
F B F - sc or e ( % )
62
60
75
70
65 58 60 56 55
54
0
0.5
1
50
1.5
0
0.2
0.4
G r ou p sp ar si t y λ g s
(a) Keuken
0.6 0.8 G r ou p sp ar si t y λ g s
1
1.2
(b) Straat
85
70
σ =1 σ =2 σ =3
σ σ σ σ 65
F B F - sc or e ( % )
F B F - sc or e ( % )
80
75
70
65
60
1.4
= = = =
1 2 3 4
60
55
50
0
0.1
0.2
0.3
0.4 0.5 0.6 G r ou p sp ar si t y λ g s
(c) Kantoor
0.7
0.8
0.9
1
45
0
0.1
0.2
0.3
0.4 0.5 0.6 G r ou p sp ar si t y λ g s
0.7
0.8
0.9
1
(d) Restaurant
Figuur 7.1: Resultaten event detection met group sparsity Gezien de resultaten voor de de event detection dezelfde zijn als in het vorige hoofdstuk zullen de resultaten van de contextherkenning ook dezelfde zijn en gaan we hier niet meer op in.
7.3
Besluit
In dit hoofdstuk zagen we dat contextherkenning met NMF zeer evident is als de klassen die in de verschillende omgevingen voorkomen genoeg verschillen. Ten tweede zagen we dat de resultaten van de group sparsity enorm tegenvielen.
53
Hoofdstuk 8
Besluit De in deze thesis voorgestelde techniek voor geluidsherkenning heeft als doel de kennis die men heeft van enkele omgevingen en de geluiden die erin voorkomen maximaal te benutten, en dus betere resultaten te behalen dan zonder deze kennis. Om dit te verwezenlijken, werd de techniek van Niet-negatieve matrix factorisatie uitgebreid met group sparsity. Deze techniek, zo blijkt althans uit deze thesis, biedt niet zo veel voordelen, of zelfs helemaal geen. We gaven hier verschillende redenen voor: de eerste is eenvoudigweg dat het programma nog niet op punt staat. De tweede is dat de techniek van sparse representation al het beste uit de NMF haalt. Een laatste reden is dat het gebruik van group sparsity geen oplossing biedt voor klassen die knelpunten vormen. Het nut van de group sparsity zou alsnog kunnen worden herbekeken door een alternatieve methode in de berekening van de NMF, bijvoorbeeld door een andere bestraffing, en dus ook een andere update regel, te gebruiken dan in deze masterproef. Er werden ook experimenten uitgevoerd zonder gebruik te maken van group sparsity. Hierbij werden enkele parameters geanalyseerd en kwamen we tot de conclusie dat sparse representation noodzakelijk is bij het gebruik van NMF. Hoewel de sparse representation heel wat voordelen bood, bleven de resultaten ondermaats, zeker bij overlappende geluiden. Overlappende geluiden blijven dus een knelpunt. We kwamen wel tot de conclusie dat bij een stijgend aantal lagen, de resultaten niet kelderen, maar wel minder dalen. Deze vaststelling wijst erop dat eenmaal robuustere systemen ontwikkeld zullen zijn met NMF, het niet ondenkbaar is dat het aantal overlappende events geen rol meer zal spelen. Na de event detection, voerden we de omgevingherkenning uit. De resultaten hiervan waren zeer goed. De reden hiervoor is het grote verschil in klassen tussen elke omgeving. Voor het uitvoeren van de experimenten, werd gebruik gemaakt van scenes die automatisch gegenereerd werden. De gebruikte database, zowel het aantal opnames als het aantal verschillende klassen, kan zeker nog uitgebreid worden. Hetzelfde 55
8. Besluit geldt ook voor het algoritme om scenes te genereren. We zagen dat er nog heel wat factoren zijn die in rekening gebracht moeten worden voor het automatisch genereren van de scenes, voornamelijk de akoestiek van de ruimte. Ook de verhouding tussen veel voorkomende klassen en klassen die zelden voorkomen moet in rekening gebracht worden. Net als in de literatuur te lezen valt, is bij het opmaken van deze masterproef nogmaals gebleken dat de geluidsherkenning, hoe veelbelovend de toekomst ervan ook is, nog een lange weg te gaan heeft.
56
B lagen
57
B lage A
Project Studio Reflexion Filter
Figuur A.1: Informatie sE Electronics Reflexion Filter [28]
59
B lage B
Sennheiser Head ME 20
Figuur B.1: Informatie Microfoon Sennheiser ME20 head [29] 61
Bibliografie [1] NetLogix. (2009). Gunshot detection systems, addres: http://www.netlogix. com/video-security-gunshot-detection.php (bezocht op 22-05-2014). [2] M. Sun, „Constrained non-negative matrix factorization for vocabulary acquisition from continuous speech”, proefschrift, KU Leuven, 2012, isbn: 978-946018-592-2. [3] D. Wang en G. J. Brown, Computational Auditory Scene Analysis: Principles, Algorithms and Applications, English, 1ste ed. New York: Wiley-IEEE Press, sep 2006, isbn: 0471741094. [4] S. Chu, S. Narayanan en C.-C. J. Kuo, „Environmental sound recognition with time-frequency audio features”, IEEE Transaction on audio, speech, and language processing, deel 17, p. 1142–1158, aug 2009. [5] A. Mesaros, T. Heittola, A. Eronen en T. Virtanen, „Acoustic event detection in real lif recordings”, in 18th European Signal Processing Conference, Aalborg, Denmark, 2010, p. 1267–1271. [6] A. J. Eronen, V. T. Peltonen, J. T. Tuoma, A. P. Klapuri, S. Fagerlund, T. Sorsa, G. Lorho en J. Huopaniemi, „Audio-based context recognition”, IEEE Transaction on audio, speech, and language processing, deel 14, jan 2006. [7] S. Fagerlund, „Bird species recognition using support vector machines”, EURASIP Journal on Advances in Signal Processing, deel 1, mei 2007. doi: 10.1155/2007/38637. [8] J. Paulus en T. Virtanen, „Drum transcription with non-negative spectrogram factorisation”, EUSIPCO, p. 4–8, 2005. [9] A. Mesaros, T. Heittola, A. Eronen en T. Virtanen, „Context-dependent sound event detection”, EURASIP Journal on Audio, Speech, and Music Processing, 2013. [10] A. Temko, „Acoustic event detection and classification”, proefschrift, Universitat Politècnica de Catalunya, 2007. [11] T. Ganchev, Contemporary Methods for Speech Parameterization, English, 1ste ed. New York: Springer Science+Business Media, 2011, isbn: 978-1-44198446-3. doi: 10.1007/978-1-4419-8447-0.
63
Bibliografie [12] T. Heittola, A. Mesaros, T. Virtanen en A. Eronen, „Sound event detection in multisource environment using source seperation”, in Workshop on Machine Listening in Multisource Environments, CHiME2011, Florence, Italy, 2011. [13] T. Heittola, A. Mesaros, T. Virtanen en M. Gabbouj, „Supervised model training tor overlapping sound events based on unsupervised source separation”, in Proceedings of the 2013 IEEE International Conference on Acoustics, Speech and Signal Processing, Vancouver, Canada, 2013. [14] C. V. Cotton en D. P. W. Ellis, „Subband autocorrelation features for video soundtrack classification”, in The 38th International Conference on Acoustics, Speech, and Signal Processing, Vancouver, Canada, 2013. [15] C. B. Do en S. Batzoglou, „What is the expectation maximization algorithm?”, Nature Publishing Group, deel 26, p. 897–899, aug 2008. [16] M. Nilsson en M. Ejnarsson, „Speech recognition using hidden markov model”, proefschrift, Blekinge Institute of Technology, mrt 2002. [17] B.-J. Yoon, „Hidden markov models and their applications in biological sequence analysis”, Current Genomics, deel 10, sep 2009. doi: 10 . 2174 / 138920209789177575. [18] L. R. Rabiner, „A tutorial on hidden markov models and seclected applications in speech recognition”, Proceedings of the IEEE, deel 77, p. 257–285, feb 1989. [19] M. Chum, A. Habshush, A. Rahman en C. Sang, „Ieee aasp scene classification challenge using hidden markov models and frame based classification”, tech. rap., 2013. [20] J. Driesen, „Discovering words in speech using matrix factorization”, proefschrift, KU Leuven, 2012, isbn: 978-94-6018-534-2. [21] J. F. Gemmeke, „Noise robust ASR missing dara techniques and beyond”, proefschrift, Radboud Universiteit Nijmegen, 2011, isbn: 978-90-9025878-2. [22] O. Dikmen en A. Mesaros, „Sound event detection using non-negative ditionarie learned from annotaed overallping events”, tech. rap., nov 2013. [23] C. V. Cotton en D. P. W. Ellis, „Spectral vs. spectro-temporal features for acoustic event detection”, in IEEE Workshop on Applications of Signal Processing to Audio and Acoustics, New Paltz, NY, USA, okt 2011. [24] J. Gemmeke, L. ten Bosch, L. Boves en B. Cranen, „Using sparse representations for exemplar based continuous digit recognition”, in EUSIPCO, aug 2009, p. 1755–1759. [25] D. D. Lee en H. S. Seung, „Algorithms for non-negative matrix factorization”, in NIPS, 2000, p. 556–562. addres: citeseer.ist.psu.edu/lee01algorithms. html. [26] A. Hurmalainen, R. Saeidi en T. Virtanen, „Group sparsity for speaker identity discrimination in factorisation-based speech recognition.”, in INTERSPEECH, ISCA, sep 2012. addres: http://dblp.uni-trier.de/db/conf/interspeech/ interspeech2012.html#HurmalainenSV12. 64
Bibliografie [27] D. Giannoulis, E. Benetos, D. Stowell, M. Rossignol, M. Lagrange en M. Plumbley, „Detection and classification of acoustic scenes and events (technical report)”, tech. rap., jan 2013. [28] sE Electronics. (2014). Project studio "baby"reflexion filter portable vocal booth, addres: http : / / www . seelectronics . com / project - studio - reflexion filter (bezocht op 22-04-2014). [29] manualslib. (2014). Sennheiser me 20 manuals, addres: http://www.manualslib. com/products/Sennheiser-Me-20-2543825.html (bezocht op 29-05-2014).
65