Forum: Digitale Signalverarbeitung / DSP / Machine Learning audio analyse mittels Wavelets


von flex (Gast)


Lesenswert?

Hallo,
ich arbeite für ein Paper für ein Referat aus. Mittlerweile habe ich 
mich etwas in die Theorie über Wavelets eingearbeitet.
Dies ist das Paper das ich ausarbeiten muss.
http://soundlab.cs.princeton.edu/publications/2001_amta_aadwt.pdf

Für mein Referat soll ich den ersten teil ausarbeiten, also die 
Klassifizierung.
Ich hänge im Kapitel 3 und 4.

Kapitel
Nur zum verständnis im Kapitel es wird gesagt

"As a multirate filterbank the DWT can be viewed
as a constant Q filterbank with octave spacing
between the centers of the filters. Each subband
contains half the samples of the neighboring higher
frequency subband."

Ich versteh das so ich wende den normalen schnellen DWT algoritmus an. 
Also signalreihe nach einander aufteilen in hochpass und tiefpass 
gefilterte werte. Als Filterkoefizienten für Daubechies4 liefert mir 
Matlab

loD=-0.1294    0.2241    0.8365    0.4830
und
HiD=-0.4830    0.8365   -0.2241   -0.1294

mit diesen Falte und downsample ich den Eingangsstrom und erhalte yhigh 
und ylow getrennt.

auf ylow und yhigh wende ich dann wieder und wieder den selben 
algoritmus bei jedem durchlauf erhalte ich neue subbänder.


SOWEIT MEIN VERSTÄNDNIS ABER:
was ist mit "constant Q filterbank with octave spacing" ist damit genau 
dieser algorithmus gemeint? Also jedesmal tiefpass hochpass aufteilen 
und downsampeln.


zum Kapitel 4

window size 65536 samples at 22050 Hz -> ergibt für mich auch 3 sekunden
daraus folgere ich nehme immer die Sampels aus 3 sekunden signal und 
wende darauf meine DWT an.

Aber was ich jetzt nicht verstehe hops size of 512 sekunden. Das würde 
für mich heissen ich wiederhole das alle 512 sekunden das macht aber 
keinen sinn. Ein musikstück ist doch nur im schnitt 3,5 minuten lang und 
512 sekunden ist doch drüber

und dann die frage
"Twelve levels
(subbands) of coefficients are used resulting in a
feature vector with 45 dimensions (12 + 12 + 11)"

also ich hätte daraus gelesen das ich den DWT Algorithmus 12 mal anwende 
aber was ist dann mit dem feature vector gemeint und (12 +12 +11)

danach wird dann davon gesprochen das ich das mit einem MfCC algorithmus 
udn STFT vergleiche. Das glaube ich würde ich dann nciht mehr machen 
sondern musik mit dem vorgestellten Verfahren auswerten und so eine 
eigene datenbank erstelle und diese dann mit neuen musikstücken 
vergleiche.

Naja vielleicht kann mir ja jemand helfen um mich dem Verständnis näher 
zu bringen. Ih bin da wirklich über jede hilfe dankbar

liebe Grüße Felix

von Oliver Sievers (Gast)


Lesenswert?

Hallo,

Im Kapitel 4 geht es um "machine learning" in der die Koeffizienten 
genutzt werden um einen N-Dimensionalen (hier 45 Dimensional) Raum zu 
"erzeugen", der entsprechent segmentiert werden soll:

Segmente:
MusicSpeech (Music, Speech)
Voices (Male, Female, Sports Announcing)
Classical  (Choir,  Orchestra,  Piano,  String
Quartet)

Das Programm soll also lernen die Musik entsprechend zu Klassifizieren.

OK?

Wohl eher nicht :), suche mal nach SVM (Support Vector Machines) dann 
wird es klarer.

von flex (Gast)


Lesenswert?

doch habs mittlerweile verstanden.
ausser das mit der hop size. Aber seit dem auch mein Proffessor darauf 
keine Antwort wusste, weil die hop size von 512 sekunden einfach keinen 
sinn macht lass ich die weg.

aber wenns jemand noch interessiert also der beschriebene algorithmus 
zur musik erkennung geht wie folgt

man nehme musiksamples jeweils 30 sekunden
die werden mit 22,050 khz abgetastet.

dann erstmal tiefpassfiltern auf FS/2 wegen images
dann 12 mal wavelet zerlegen mit db4.
dabei wird der Pyramiden algorithmus angewendet
dieser ist etwas verwirrend benannt da sein ablauf nicht pyramidenförmig 
ist sondern immer nur der tiefpassgefilterte wert zur bestimmung des 
nächsten subbandes genommen wird. Also am beispiel wirds vielleicht 
klarer

die samples die nach dem ersten samplen mit FS/2 vorliegen
werden hoch und tiefpass gefiltert. der hochpass gefilterte teil wird 
als erster ausgangs vektor genommen d1. der tiefpass gefilterte teil 
wird wiederum zerlegt in tiefpass und hochpass. es entsteht d2 und 
wieder der tiefpass teil. usw

d1 beinhaltet die frequenzanteile von FS/2 also hier 11.025 bis ca 5500 
hz
d2 5500 bis 2750 usw

diese frequenzen entsprechen auch den oktaven von tönen(jeder oktaven 
sprung ist eine verdopplung der frequenz) und sind damit gut zur musik 
erkennung geeignet.



 d1 bis d12 werden
die mittelwerte berechnet. ->12 eigenschaften
die standard abweichungen -> 12 eigenschaften
die mittelwerte über zwei subbänder hinweg -> 11 eigenschaften


es werden jeweils 30sekunden sampels genommen der algorithmus wird 10 
mal in 3 sekunden schritten angewandt. 9 *(12+12+11) vektoren werden zum 
trainig genommen mit 1*(12+12+11) wird getestet.

anders als im Paper hab ich das mit bayes gemacht.

vergleich von jazz mit techno geht gut (ja ist nich so schwer;-))

jazz wird mit 96% erkannt
techno immerhin mit 76%

naja wollte das nur mal aufschrieben falls es jemand nochmal ausarbeiten 
muss.

von Oliver Sievers (Gast)


Lesenswert?

Ich gehe davon aus, das der Text bezüglich hop size irrtümlich Sekunden 
angibt. In der Literatur ist es eher üblich hop size in bezug aud 
samples anzugeben. Es sind hier wohl 512 samples (windows) gemeint. Da 
müsste man beim Verfasser des Textes mal nachfragen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.