audio content analysis - laboratory course · 2013. 5. 15. · 4 5 function[y1,y2]...

Post on 11-Dec-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Audio Content AnalysisLaboratory Course

Fachgebiet Audiokommunikation, TU-Berlin

Sommersemester 2013

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Termin 1

RMS

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Rahmenbedingungen

Zeitlich• 13 Übungstermine• 4-5 Termine Einführung• 6. Termin Kurzvorstellung der Projekte• 9. Termin Zwischenstandsbericht• 12/13. Termin Abschlusspräsentation

Projektarbeit• Gruppenarbeit a 2-3 Leute• Programmierung in Matlab/Octave/Freemat• Sämtliche Abgaben (Code, Kommentare, Paper) und

Präsentationen in englischer Sprache

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Rahmenbedingungen

Zeitlich• 13 Übungstermine• 4-5 Termine Einführung• 6. Termin Kurzvorstellung der Projekte• 9. Termin Zwischenstandsbericht• 12/13. Termin Abschlusspräsentation

Projektarbeit• Gruppenarbeit a 2-3 Leute• Programmierung in Matlab/Octave/Freemat• Sämtliche Abgaben (Code, Kommentare, Paper) und

Präsentationen in englischer Sprache

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Rahmenbedingungen

Zeitlich• 13 Übungstermine• 4-5 Termine Einführung• 6. Termin Kurzvorstellung der Projekte• 9. Termin Zwischenstandsbericht• 12/13. Termin Abschlusspräsentation

Projektarbeit• Gruppenarbeit a 2-3 Leute• Programmierung in Matlab/Octave/Freemat• Sämtliche Abgaben (Code, Kommentare, Paper) und

Präsentationen in englischer Sprache

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Prüfungsleistung

Leistungen• Abgabe aller 4 Programmieraufgaben (unbenotet)• Präsentation des Projektes und Zwischenpräsentationen (benotet)• Ausarbeitung: 4 Seiten Konferenzpaper (benotet)

FragenEmail an:

• flohrer@zplane.de• von_coler@mailbox.tu-berlin.de

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Prüfungsleistung

Leistungen• Abgabe aller 4 Programmieraufgaben (unbenotet)• Präsentation des Projektes und Zwischenpräsentationen (benotet)• Ausarbeitung: 4 Seiten Konferenzpaper (benotet)

FragenEmail an:

• flohrer@zplane.de• von_coler@mailbox.tu-berlin.de

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Grundlegende Tips zu Matlab

• Regelmäßig, z.B. im Kopf von Skripten: clearvars(Vorsicht: ’clear all’ löscht auch Breakpoints!)

• Zu Beginn wichtige Pfade mit addpath() laden• Mit Funktions- und Variablenamen keine Matlab Builtins

überschreiben, wie etwa ’mean()’• Schleifen vermeiden, da sehr langsam!• Mit Semikolon terminieren, sonst ewig viel Output !!• Matlab hat keinen Index ’0’ !

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Grundlegende Tips zu Matlab

• Regelmäßig, z.B. im Kopf von Skripten: clearvars(Vorsicht: ’clear all’ löscht auch Breakpoints!)

• Zu Beginn wichtige Pfade mit addpath() laden• Mit Funktions- und Variablenamen keine Matlab Builtins

überschreiben, wie etwa ’mean()’• Schleifen vermeiden, da sehr langsam!• Mit Semikolon terminieren, sonst ewig viel Output !!• Matlab hat keinen Index ’0’ !

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Grundlegende Tips zu Matlab

• Regelmäßig, z.B. im Kopf von Skripten: clearvars(Vorsicht: ’clear all’ löscht auch Breakpoints!)

• Zu Beginn wichtige Pfade mit addpath() laden

• Mit Funktions- und Variablenamen keine Matlab Builtinsüberschreiben, wie etwa ’mean()’

• Schleifen vermeiden, da sehr langsam!• Mit Semikolon terminieren, sonst ewig viel Output !!• Matlab hat keinen Index ’0’ !

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Grundlegende Tips zu Matlab

• Regelmäßig, z.B. im Kopf von Skripten: clearvars(Vorsicht: ’clear all’ löscht auch Breakpoints!)

• Zu Beginn wichtige Pfade mit addpath() laden• Mit Funktions- und Variablenamen keine Matlab Builtins

überschreiben, wie etwa ’mean()’

• Schleifen vermeiden, da sehr langsam!• Mit Semikolon terminieren, sonst ewig viel Output !!• Matlab hat keinen Index ’0’ !

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Grundlegende Tips zu Matlab

• Regelmäßig, z.B. im Kopf von Skripten: clearvars(Vorsicht: ’clear all’ löscht auch Breakpoints!)

• Zu Beginn wichtige Pfade mit addpath() laden• Mit Funktions- und Variablenamen keine Matlab Builtins

überschreiben, wie etwa ’mean()’• Schleifen vermeiden, da sehr langsam!

• Mit Semikolon terminieren, sonst ewig viel Output !!• Matlab hat keinen Index ’0’ !

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Grundlegende Tips zu Matlab

• Regelmäßig, z.B. im Kopf von Skripten: clearvars(Vorsicht: ’clear all’ löscht auch Breakpoints!)

• Zu Beginn wichtige Pfade mit addpath() laden• Mit Funktions- und Variablenamen keine Matlab Builtins

überschreiben, wie etwa ’mean()’• Schleifen vermeiden, da sehr langsam!• Mit Semikolon terminieren, sonst ewig viel Output !!

• Matlab hat keinen Index ’0’ !

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Grundlegende Tips zu Matlab

• Regelmäßig, z.B. im Kopf von Skripten: clearvars(Vorsicht: ’clear all’ löscht auch Breakpoints!)

• Zu Beginn wichtige Pfade mit addpath() laden• Mit Funktions- und Variablenamen keine Matlab Builtins

überschreiben, wie etwa ’mean()’• Schleifen vermeiden, da sehr langsam!• Mit Semikolon terminieren, sonst ewig viel Output !!• Matlab hat keinen Index ’0’ !

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Funktionen schreiben

1. Anlegen einer Datei mit Namen der Funktion, z.B. my_function.m

2. Definition des Funktionskopfes am Anfang3. Funktionsname = Dateiname !4. Header Kommentar für ’help’

my_function.m:1 % function [y1,y2] = my_function(x1,x2)2 %3 % A dummy function!4

5 function [y1,y2] = my_function(x1,x2)6

7 y1 = x2;8 y2 = x1;

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Funktionen schreiben

1. Anlegen einer Datei mit Namen der Funktion, z.B. my_function.m

2. Definition des Funktionskopfes am Anfang3. Funktionsname = Dateiname !4. Header Kommentar für ’help’

my_function.m:1 % function [y1,y2] = my_function(x1,x2)2 %3 % A dummy function!4

5 function [y1,y2] = my_function(x1,x2)6

7 y1 = x2;8 y2 = x1;

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Funktionen schreiben

1. Anlegen einer Datei mit Namen der Funktion, z.B. my_function.m

2. Definition des Funktionskopfes am Anfang

3. Funktionsname = Dateiname !4. Header Kommentar für ’help’

my_function.m:1 % function [y1,y2] = my_function(x1,x2)2 %3 % A dummy function!4

5 function [y1,y2] = my_function(x1,x2)6

7 y1 = x2;8 y2 = x1;

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Funktionen schreiben

1. Anlegen einer Datei mit Namen der Funktion, z.B. my_function.m

2. Definition des Funktionskopfes am Anfang3. Funktionsname = Dateiname !

4. Header Kommentar für ’help’

my_function.m:1 % function [y1,y2] = my_function(x1,x2)2 %3 % A dummy function!4

5 function [y1,y2] = my_function(x1,x2)6

7 y1 = x2;8 y2 = x1;

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Funktionen schreiben

1. Anlegen einer Datei mit Namen der Funktion, z.B. my_function.m

2. Definition des Funktionskopfes am Anfang3. Funktionsname = Dateiname !4. Header Kommentar für ’help’

my_function.m:1 % function [y1,y2] = my_function(x1,x2)2 %3 % A dummy function!4

5 function [y1,y2] = my_function(x1,x2)6

7 y1 = x2;8 y2 = x1;

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Funktionen schreiben

1. Anlegen einer Datei mit Namen der Funktion, z.B. my_function.m

2. Definition des Funktionskopfes am Anfang3. Funktionsname = Dateiname !4. Header Kommentar für ’help’

my_function.m:1 % function [y1,y2] = my_function(x1,x2)2 %3 % A dummy function!4

5 function [y1,y2] = my_function(x1,x2)6

7 y1 = x2;8 y2 = x1;

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Funktionen schreiben

1. Anlegen einer Datei mit Namen der Funktion, z.B. my_function.m

2. Definition des Funktionskopfes am Anfang3. Funktionsname = Dateiname !4. Header Kommentar für ’help’

my_function.m:1 % function [y1,y2] = my_function(x1,x2)2 %3 % A dummy function!4

5 function [y1,y2] = my_function(x1,x2)6

7 y1 = x2;8 y2 = x1;

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Wichtige Datentypen

ArrayA = [1 2 3; 4, 5, 6 ] A = 1 2 3

4 5 6Zugriff: a = A(1,1) = 1

Cell arrayB = {1 2 ’drei’; 4 [2 , 3] 6} A = 1 2 drei

4 [2, 3] 6Zugriff: b = B{1,3} = ’drei’

StructS.name = ’Track1’; S.duration = 120;Zugriff: NAME = S.name;

Struct ArrayS(1).name = ’Track1’; S(2).name = ’Track_2’;Zugriff: NAME = S(2).name = ’Track_2’;

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Wichtige Datentypen

ArrayA = [1 2 3; 4, 5, 6 ] A = 1 2 3

4 5 6Zugriff: a = A(1,1) = 1

Cell arrayB = {1 2 ’drei’; 4 [2 , 3] 6} A = 1 2 drei

4 [2, 3] 6Zugriff: b = B{1,3} = ’drei’

StructS.name = ’Track1’; S.duration = 120;Zugriff: NAME = S.name;

Struct ArrayS(1).name = ’Track1’; S(2).name = ’Track_2’;Zugriff: NAME = S(2).name = ’Track_2’;

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Wichtige Datentypen

ArrayA = [1 2 3; 4, 5, 6 ] A = 1 2 3

4 5 6Zugriff: a = A(1,1) = 1

Cell arrayB = {1 2 ’drei’; 4 [2 , 3] 6} A = 1 2 drei

4 [2, 3] 6Zugriff: b = B{1,3} = ’drei’

StructS.name = ’Track1’; S.duration = 120;Zugriff: NAME = S.name;

Struct ArrayS(1).name = ’Track1’; S(2).name = ’Track_2’;Zugriff: NAME = S(2).name = ’Track_2’;

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Wichtige Datentypen

ArrayA = [1 2 3; 4, 5, 6 ] A = 1 2 3

4 5 6Zugriff: a = A(1,1) = 1

Cell arrayB = {1 2 ’drei’; 4 [2 , 3] 6} A = 1 2 drei

4 [2, 3] 6Zugriff: b = B{1,3} = ’drei’

StructS.name = ’Track1’; S.duration = 120;Zugriff: NAME = S.name;

Struct ArrayS(1).name = ’Track1’; S(2).name = ’Track_2’;Zugriff: NAME = S(2).name = ’Track_2’;

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Wichtige Datentypen

ArrayA = [1 2 3; 4, 5, 6 ] A = 1 2 3

4 5 6Zugriff: a = A(1,1) = 1

Cell arrayB = {1 2 ’drei’; 4 [2 , 3] 6} A = 1 2 drei

4 [2, 3] 6Zugriff: b = B{1,3} = ’drei’

StructS.name = ’Track1’; S.duration = 120;Zugriff: NAME = S.name;

Struct ArrayS(1).name = ’Track1’; S(2).name = ’Track_2’;Zugriff: NAME = S(2).name = ’Track_2’;

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Einige Funktionen

Audiodateien:wavread(), wavwrite(), sound(), ...

Daten speichern und ladensave, load; dlmread(), dlmwrite(); textscan(), fprintf() ...

Plotsplot(), stem(), stairs(), imagesc(); set(gca,’...’); print() ...

Rechenoperationenfft(), fftshift(), ifft(); abs(), mean(), var(), sum(); diff() ...

Immer erst prüfen, ob Matlab benötigte Funktionen bereitstellt!Es gibt mehr Builtins als man denkt!(Je nach installierten Paketen.)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Einige Funktionen

Audiodateien:wavread(), wavwrite(), sound(), ...

Daten speichern und ladensave, load; dlmread(), dlmwrite(); textscan(), fprintf() ...

Plotsplot(), stem(), stairs(), imagesc(); set(gca,’...’); print() ...

Rechenoperationenfft(), fftshift(), ifft(); abs(), mean(), var(), sum(); diff() ...

Immer erst prüfen, ob Matlab benötigte Funktionen bereitstellt!Es gibt mehr Builtins als man denkt!(Je nach installierten Paketen.)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Einige Funktionen

Audiodateien:wavread(), wavwrite(), sound(), ...

Daten speichern und ladensave, load; dlmread(), dlmwrite(); textscan(), fprintf() ...

Plotsplot(), stem(), stairs(), imagesc(); set(gca,’...’); print() ...

Rechenoperationenfft(), fftshift(), ifft(); abs(), mean(), var(), sum(); diff() ...

Immer erst prüfen, ob Matlab benötigte Funktionen bereitstellt!Es gibt mehr Builtins als man denkt!(Je nach installierten Paketen.)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Einige Funktionen

Audiodateien:wavread(), wavwrite(), sound(), ...

Daten speichern und ladensave, load; dlmread(), dlmwrite(); textscan(), fprintf() ...

Plotsplot(), stem(), stairs(), imagesc(); set(gca,’...’); print() ...

Rechenoperationenfft(), fftshift(), ifft(); abs(), mean(), var(), sum(); diff() ...

Immer erst prüfen, ob Matlab benötigte Funktionen bereitstellt!Es gibt mehr Builtins als man denkt!(Je nach installierten Paketen.)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Einige Funktionen

Audiodateien:wavread(), wavwrite(), sound(), ...

Daten speichern und ladensave, load; dlmread(), dlmwrite(); textscan(), fprintf() ...

Plotsplot(), stem(), stairs(), imagesc(); set(gca,’...’); print() ...

Rechenoperationenfft(), fftshift(), ifft(); abs(), mean(), var(), sum(); diff() ...

Immer erst prüfen, ob Matlab benötigte Funktionen bereitstellt!Es gibt mehr Builtins als man denkt!(Je nach installierten Paketen.)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Einige Funktionen

Audiodateien:wavread(), wavwrite(), sound(), ...

Daten speichern und ladensave, load; dlmread(), dlmwrite(); textscan(), fprintf() ...

Plotsplot(), stem(), stairs(), imagesc(); set(gca,’...’); print() ...

Rechenoperationenfft(), fftshift(), ifft(); abs(), mean(), var(), sum(); diff() ...

Immer erst prüfen, ob Matlab benötigte Funktionen bereitstellt!Es gibt mehr Builtins als man denkt!(Je nach installierten Paketen.)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Für die Performance

• Verwendung von arrayfun(), cellfun() und structfun()

• So selten wie möglich über Zeilen/Spalten loopen• Beachten: Matlab hat einen begrenzten Speicher für einzelne

Variablen: (z.B. 583 MB pro Array in Windows)

Tips zum Debuggen

• Conditional Breakpoints verwenden!• Verwenden von try ... catch

• Bei langen Schleifenaufgaben helfen regelmäßige Feedbacks:disp(’Done with File ’num2str(i) ’of ’num2str(nFiles) ’Files !’)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Für die Performance

• Verwendung von arrayfun(), cellfun() und structfun()

• So selten wie möglich über Zeilen/Spalten loopen• Beachten: Matlab hat einen begrenzten Speicher für einzelne

Variablen: (z.B. 583 MB pro Array in Windows)

Tips zum Debuggen

• Conditional Breakpoints verwenden!• Verwenden von try ... catch

• Bei langen Schleifenaufgaben helfen regelmäßige Feedbacks:disp(’Done with File ’num2str(i) ’of ’num2str(nFiles) ’Files !’)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Für die Performance

• Verwendung von arrayfun(), cellfun() und structfun()

• So selten wie möglich über Zeilen/Spalten loopen

• Beachten: Matlab hat einen begrenzten Speicher für einzelneVariablen: (z.B. 583 MB pro Array in Windows)

Tips zum Debuggen

• Conditional Breakpoints verwenden!• Verwenden von try ... catch

• Bei langen Schleifenaufgaben helfen regelmäßige Feedbacks:disp(’Done with File ’num2str(i) ’of ’num2str(nFiles) ’Files !’)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Für die Performance

• Verwendung von arrayfun(), cellfun() und structfun()

• So selten wie möglich über Zeilen/Spalten loopen• Beachten: Matlab hat einen begrenzten Speicher für einzelne

Variablen: (z.B. 583 MB pro Array in Windows)

Tips zum Debuggen

• Conditional Breakpoints verwenden!• Verwenden von try ... catch

• Bei langen Schleifenaufgaben helfen regelmäßige Feedbacks:disp(’Done with File ’num2str(i) ’of ’num2str(nFiles) ’Files !’)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Für die Performance

• Verwendung von arrayfun(), cellfun() und structfun()

• So selten wie möglich über Zeilen/Spalten loopen• Beachten: Matlab hat einen begrenzten Speicher für einzelne

Variablen: (z.B. 583 MB pro Array in Windows)

Tips zum Debuggen

• Conditional Breakpoints verwenden!• Verwenden von try ... catch

• Bei langen Schleifenaufgaben helfen regelmäßige Feedbacks:disp(’Done with File ’num2str(i) ’of ’num2str(nFiles) ’Files !’)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Für die Performance

• Verwendung von arrayfun(), cellfun() und structfun()

• So selten wie möglich über Zeilen/Spalten loopen• Beachten: Matlab hat einen begrenzten Speicher für einzelne

Variablen: (z.B. 583 MB pro Array in Windows)

Tips zum Debuggen• Conditional Breakpoints verwenden!

• Verwenden von try ... catch

• Bei langen Schleifenaufgaben helfen regelmäßige Feedbacks:disp(’Done with File ’num2str(i) ’of ’num2str(nFiles) ’Files !’)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Für die Performance

• Verwendung von arrayfun(), cellfun() und structfun()

• So selten wie möglich über Zeilen/Spalten loopen• Beachten: Matlab hat einen begrenzten Speicher für einzelne

Variablen: (z.B. 583 MB pro Array in Windows)

Tips zum Debuggen• Conditional Breakpoints verwenden!• Verwenden von try ... catch

• Bei langen Schleifenaufgaben helfen regelmäßige Feedbacks:disp(’Done with File ’num2str(i) ’of ’num2str(nFiles) ’Files !’)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Für die Performance

• Verwendung von arrayfun(), cellfun() und structfun()

• So selten wie möglich über Zeilen/Spalten loopen• Beachten: Matlab hat einen begrenzten Speicher für einzelne

Variablen: (z.B. 583 MB pro Array in Windows)

Tips zum Debuggen• Conditional Breakpoints verwenden!• Verwenden von try ... catch

• Bei langen Schleifenaufgaben helfen regelmäßige Feedbacks:disp(’Done with File ’num2str(i) ’of ’num2str(nFiles) ’Files !’)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Blockweise Signalanalyse

Global Feaures Instantaneous Features

Gründe für eine blockweise Analyse1. Interesse am Verlauf von Signaleigenschaften

(Amplituden-Hüllkurve)2. Zerlegung des Signals in quasi-stationäre Segmente (z.B. für eine

STFT)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Blockweise Signalanalyse

Global Feaures Instantaneous Features

Gründe für eine blockweise Analyse1. Interesse am Verlauf von Signaleigenschaften

(Amplituden-Hüllkurve)2. Zerlegung des Signals in quasi-stationäre Segmente (z.B. für eine

STFT)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Parameter für Block-Processing

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Parameter für Block-Processing

HopsizeLh = 1ms · · · 1000ms

FramesizeLf = 1ms · · · 1000ms

OverlapErgibt sich aus Hopsize und Framesize

FensterungVerschiedene Fensterfunktionen:boxcar, tri, hann, hamming, ...

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Parameter für Block-Processing

HopsizeLh = 1ms · · · 1000ms

FramesizeLf = 1ms · · · 1000ms

OverlapErgibt sich aus Hopsize und Framesize

FensterungVerschiedene Fensterfunktionen:boxcar, tri, hann, hamming, ...

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Parameter für Block-Processing

HopsizeLh = 1ms · · · 1000ms

FramesizeLf = 1ms · · · 1000ms

OverlapErgibt sich aus Hopsize und Framesize

FensterungVerschiedene Fensterfunktionen:boxcar, tri, hann, hamming, ...

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Parameter für Block-Processing

HopsizeLh = 1ms · · · 1000ms

FramesizeLf = 1ms · · · 1000ms

OverlapErgibt sich aus Hopsize und Framesize

FensterungVerschiedene Fensterfunktionen:boxcar, tri, hann, hamming, ...

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Parameter für Block-Processing

HopsizeLh = 1ms · · · 1000ms

FramesizeLf = 1ms · · · 1000ms

OverlapErgibt sich aus Hopsize und Framesize

FensterungVerschiedene Fensterfunktionen:boxcar, tri, hann, hamming, ...

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Schematische Implementierung (Doch mit Schleife)

1 x = read wavefile;2

3 % analysis parameters4 nHop = size of hop in samples;5 nWin = length of window in samples;6 nFrames = number of frames to fit into x;7 % allocate output memory8 y = zeros(nFrames,1);9

10 for frmCnt = 1:nFrames11

12 % get segment13 thisFrame = x((frmCnt-1)*nHop +1 : (frmCnt-1)*nHop + nWin);14

15 % compute value16 thisValue = my_function(thisFrame);17

18 % assign value to output19 y(frmCnt) = thisValue;20 end

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Schematische Implementierung (Doch mit Schleife)1 x = read wavefile;2

3 % analysis parameters4 nHop = size of hop in samples;5 nWin = length of window in samples;6 nFrames = number of frames to fit into x;7 % allocate output memory8 y = zeros(nFrames,1);9

10 for frmCnt = 1:nFrames11

12 % get segment13 thisFrame = x((frmCnt-1)*nHop +1 : (frmCnt-1)*nHop + nWin);14

15 % compute value16 thisValue = my_function(thisFrame);17

18 % assign value to output19 y(frmCnt) = thisValue;20 end

Einführung Termin 1 Termin 2 Termin 3 Termin 4

RMS

Root Mean Square:

RMS(x) =

√√√√ 1N

N∑i=1

x2(i)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

RMS

Root Mean Square:

RMS(x) =

√√√√ 1N

N∑i=1

x2(i)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Energieverlauf

Beispiel (Instrumentalsolo)

500 1,000 1,500 2,000 2,5000

2

4

6

·10−3

Frame

RMS

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Energieverlauf

Beispiel - logarithmisch (Instrumentalsolo)

500 1,000 1,500 2,000 2,500−15

−10

−5

Frame

RMS/dB

FS

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Download

http://zplane.de/downloads/uni/git.wav

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Termin 2

Grundfrequenz

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Fragen zur letzten Aufgabe?

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Termin 2

Autokorrelationsfunktion und Grundfrequenzverlauf

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Autokorrelationsfunktion

rxx[τ ] =L−τ∑j=1

xjxj−τ (1)

Spezielle Fälle:• AKF für Rauschen?• AKF für Sinus?

Normierung auf 1 üblich!Hier aber erstmal nicht wichtig...

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Autokorrelationsfunktion

rxx[τ ] =L−τ∑j=1

xjxj−τ (1)

Spezielle Fälle:• AKF für Rauschen?• AKF für Sinus?

Normierung auf 1 üblich!Hier aber erstmal nicht wichtig...

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Autokorrelationsfunktion

rxx[τ ] =L−τ∑j=1

xjxj−τ (1)

Spezielle Fälle:• AKF für Rauschen?• AKF für Sinus?

Normierung auf 1 üblich!Hier aber erstmal nicht wichtig...

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Autokorrelationsfunktion und F0

Ermittlung der Grundfrequenz durch AKF:• Verwerfen des globalen Maximums bei τ = 0

• Suche des nächsten signifikanten Maximums• Lage des Maximums entspricht der Periodendauer in Samples

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Autokorrelationsfunktion und F0

Ermittlung der Grundfrequenz durch AKF:• Verwerfen des globalen Maximums bei τ = 0• Suche des nächsten signifikanten Maximums

• Lage des Maximums entspricht der Periodendauer in Samples

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Autokorrelationsfunktion und F0

Ermittlung der Grundfrequenz durch AKF:• Verwerfen des globalen Maximums bei τ = 0• Suche des nächsten signifikanten Maximums• Lage des Maximums entspricht der Periodendauer in Samples

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Autokorrelationsfunktion

900 1800-1

0

1

τ

r xx

Abbildung: Einseitige normierte Autokorrelationsfunktion eines periodischenSignals mit erstem Nulldurchgang und signifikantem Maximum zurGrundfrequenzerkennung

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Autokorrelationsfunktion

900 1800-1

0

1

Erster Nulldurchgang

τ

r xx

Abbildung: Einseitige normierte Autokorrelationsfunktion eines periodischenSignals mit erstem Nulldurchgang und signifikantem Maximum zurGrundfrequenzerkennung

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Autokorrelationsfunktion

900 1800-1

0

1Gesuchtes Maximum bei τMAX

Erster Nulldurchgang

τ

r xx

Abbildung: Einseitige normierte Autokorrelationsfunktion eines periodischenSignals mit erstem Nulldurchgang und signifikantem Maximum zurGrundfrequenzerkennung

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Implementierung

• Erstellen einer Funktion [f_0] = get_F0(x,fs)

• Verwenden von xcorr(,’maxlag’)• max() innerhalb sinnvoller Indizes anwenden• Umrechnung von τMAX in Frequenz

• Anpassen der Funktion blockwise_RMS()

Begrenzung des Frequenzbereichs!Nur innerhalb eines Bereiches Suchen, der für musikalischeGrundfrequenzen sinnvoll ist!

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Implementierung

• Erstellen einer Funktion [f_0] = get_F0(x,fs)• Verwenden von xcorr(,’maxlag’)

• max() innerhalb sinnvoller Indizes anwenden• Umrechnung von τMAX in Frequenz

• Anpassen der Funktion blockwise_RMS()

Begrenzung des Frequenzbereichs!Nur innerhalb eines Bereiches Suchen, der für musikalischeGrundfrequenzen sinnvoll ist!

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Implementierung

• Erstellen einer Funktion [f_0] = get_F0(x,fs)• Verwenden von xcorr(,’maxlag’)• max() innerhalb sinnvoller Indizes anwenden

• Umrechnung von τMAX in Frequenz• Anpassen der Funktion blockwise_RMS()

Begrenzung des Frequenzbereichs!Nur innerhalb eines Bereiches Suchen, der für musikalischeGrundfrequenzen sinnvoll ist!

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Implementierung

• Erstellen einer Funktion [f_0] = get_F0(x,fs)• Verwenden von xcorr(,’maxlag’)• max() innerhalb sinnvoller Indizes anwenden• Umrechnung von τMAX in Frequenz

• Anpassen der Funktion blockwise_RMS()

Begrenzung des Frequenzbereichs!Nur innerhalb eines Bereiches Suchen, der für musikalischeGrundfrequenzen sinnvoll ist!

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Implementierung

• Erstellen einer Funktion [f_0] = get_F0(x,fs)• Verwenden von xcorr(,’maxlag’)• max() innerhalb sinnvoller Indizes anwenden• Umrechnung von τMAX in Frequenz

• Anpassen der Funktion blockwise_RMS()

Begrenzung des Frequenzbereichs!Nur innerhalb eines Bereiches Suchen, der für musikalischeGrundfrequenzen sinnvoll ist!

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Implementierung

• Erstellen einer Funktion [f_0] = get_F0(x,fs)• Verwenden von xcorr(,’maxlag’)• max() innerhalb sinnvoller Indizes anwenden• Umrechnung von τMAX in Frequenz

• Anpassen der Funktion blockwise_RMS()

Begrenzung des Frequenzbereichs!Nur innerhalb eines Bereiches Suchen, der für musikalischeGrundfrequenzen sinnvoll ist!

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Implementierung

• Erstellen einer Funktion [f_0] = get_F0(x,fs)• Verwenden von xcorr(,’maxlag’)• max() innerhalb sinnvoller Indizes anwenden• Umrechnung von τMAX in Frequenz

• Anpassen der Funktion blockwise_RMS()

Begrenzung des Frequenzbereichs!Nur innerhalb eines Bereiches Suchen, der für musikalischeGrundfrequenzen sinnvoll ist!

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Blockgröße

Kriterien für die Wahl der Blockgröße?

• Minimale Länge <—> Tiefste Frequenz• Maximale Länge <—> Bedingung der Stationarität

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Blockgröße

Kriterien für die Wahl der Blockgröße?• Minimale Länge <—> Tiefste Frequenz• Maximale Länge <—> Bedingung der Stationarität

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Probleme

• Peak Picking

• Subharmonic Error (starke Obertöne)• Abhängigkeit der Genauigkeit von der Samplerate

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Probleme

• Peak Picking• Subharmonic Error (starke Obertöne)

• Abhängigkeit der Genauigkeit von der Samplerate

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Probleme

• Peak Picking• Subharmonic Error (starke Obertöne)• Abhängigkeit der Genauigkeit von der Samplerate

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Upsampling

Erhöhung der GenauigkeitDurch Upsampling des Signals oder der AKF vor der Suche desMaximums können die Werte für f0 feiner quantisiert werden.

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Grundfrequenzverlauf - Violine

0 50 100 150 200 250100

200

300

400

500

Frame

F0

Abbildung: Grundfrequenzverlauf mit Subharmonic Errors

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Testen

Ideen für Testverfahren / -signale?

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Termin 3

Spectral Features

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Fragen zur letzten Aufgabe?

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Themen für Projekte

Vorschläge:• Pitcherkennung• Onset/Beat/Tempo erkennung• Harmonieerkennung• Tonarterkennung• Strukturerkennung (strophe/refrain etc.)• Instrumentenklassifikation• monophon/polyphon Erkennung• ...

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Themen für Projekte

Vorschläge:• Pitcherkennung• Onset/Beat/Tempo erkennung• Harmonieerkennung• Tonarterkennung• Strukturerkennung (strophe/refrain etc.)• Instrumentenklassifikation• monophon/polyphon Erkennung• ...

Einführung Termin 1 Termin 2 Termin 3 Termin 4

DFT

X[k] =N−1∑n=0

x[n]e−j2πk nN (2)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Betragsspektrum

200 400 600 800 1,000 1,200 1,400 1,600 1,800 2,0000

20

40

60

Sample

|X[k

]|

Abbildung: Betragsspektrum (f = 0...fs) eines Flötentons (Block - 2000Samples)

SymmetrieDie Fouriertransformierte eines reellen Signals ist symmetrisch!

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Betragsspektrum

200 400 600 800 1,000 1,200 1,400 1,600 1,800 2,0000

20

40

60

Sample

|X[k

]|

Abbildung: Betragsspektrum (f = 0...fs) eines Flötentons (Block - 2000Samples)

SymmetrieDie Fouriertransformierte eines reellen Signals ist symmetrisch!

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Einseitges Betragsspektrum

100 200 300 400 500 600 700 800 900 1,0000

20

40

60

Sample

|X[k

]|

Abbildung: Einseitiges Betragsspektrum (f = 0...fs/2) eines Flötentons (Block- 2000 Samples)

VorteilDas einseitige Betragsspektrum eignet sich für die Berechung von Vertei-lungsmerkmalen

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Einseitges Betragsspektrum

100 200 300 400 500 600 700 800 900 1,0000

20

40

60

Sample

|X[k

]|

Abbildung: Einseitiges Betragsspektrum (f = 0...fs/2) eines Flötentons (Block- 2000 Samples)

VorteilDas einseitige Betragsspektrum eignet sich für die Berechung von Vertei-lungsmerkmalen

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Anwendung Spektrale Merkmale

• Unterscheidung verschiedener Signale (z. B. Sprache vs. Musik)• Segmentierung eines Signals (z.B. Tonal vs Noise)• Voice Activity Detection• Transientenerkennung• Rückschlüsse auf Klangeindruck (z.B. Klar vs. Dumpf)• ...

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Beispiele für Spektrale Merkmale

Spektrale Verteilung• Spectral Centroid• Spectral Spread• Spectral Skewness• Spectral Kurtosis• Spectral Decrease• Spectral Rolloff• Spectral Slope• Spectral Flatness• Spectral Crest Factor• ...

Veränderung des Spektrums• Spectral Flux• Spectral Variation• Instantaneous Frequency Fluctuation• ...

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Beispiele für Spektrale Merkmale

Spektrale Verteilung• Spectral Centroid• Spectral Spread• Spectral Skewness• Spectral Kurtosis• Spectral Decrease• Spectral Rolloff• Spectral Slope• Spectral Flatness• Spectral Crest Factor• ...

Veränderung des Spektrums• Spectral Flux• Spectral Variation• Instantaneous Frequency Fluctuation• ...

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Beispiele für Spektrale Merkmale

Spektrale Verteilung• Spectral Centroid• Spectral Spread• Spectral Skewness• Spectral Kurtosis• Spectral Decrease• Spectral Rolloff• Spectral Slope• Spectral Flatness• Spectral Crest Factor• ...

Veränderung des Spektrums• Spectral Flux• Spectral Variation• Instantaneous Frequency Fluctuation• ...

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Spectral Rolloff

BeschreibungDer Spectral Rolloff gibt die Frequenz an, unterhalb welcher sich der Groß-teil der Gesamtenergie befindet. (meist 95 %)

Berechnung:S∗∑k=1|X|2[k] = 0.95

K∑k=1|X|2[k] (3)

SRLO = S∗

K(4)

Berechnung über Verteilungsfunktion!

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Spectral Rolloff

BeschreibungDer Spectral Rolloff gibt die Frequenz an, unterhalb welcher sich der Groß-teil der Gesamtenergie befindet. (meist 95 %)

Berechnung:S∗∑k=1|X|2[k] = 0.95

K∑k=1|X|2[k] (3)

SRLO = S∗

K(4)

Berechnung über Verteilungsfunktion!

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Spectral Rolloff

20 40 60 80 100 120 140 160 180

·104

Frame

Rolloff

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2·105Sample

x[n

]

Abbildung: Spectral Rolloff und Zeitsignal (Flöte)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Spectral Centroid

BeschreibungDer Spectral Centroid gibt den Schwerpunkt der spektralen Verteilung an.

Berechnung:SCNT =

∑Kk=1 k · |X|[k]∑Kk=1 |X|[k]

(5)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Spectral Centroid

BeschreibungDer Spectral Centroid gibt den Schwerpunkt der spektralen Verteilung an.

Berechnung:SCNT =

∑Kk=1 k · |X|[k]∑Kk=1 |X|[k]

(5)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Spectral Centroid

20 40 60 80 100 120 140 160 180

·106

Frame

Centroid

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2·105Sample

x[n

]

Abbildung: Spectral Centroid und Zeitsignal (Flöte)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Spectral Flux

BeschreibungDer Spectral Flux gibt an, wie stark sich das Betragsspektrum mit der Zeitändert.

Berechnung:

SFLX = 1K

K∑k=1

(|X[n− 1, k]| − |X[n, k]|)2 (6)

Berechung über die euklidische Distanz aufeinanderfolgender Frames!ImplementierungDer vorherige Frame muss in der Schleife behalten werden!

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Spectral Flux

BeschreibungDer Spectral Flux gibt an, wie stark sich das Betragsspektrum mit der Zeitändert.

Berechnung:

SFLX = 1K

K∑k=1

(|X[n− 1, k]| − |X[n, k]|)2 (6)

Berechung über die euklidische Distanz aufeinanderfolgender Frames!

ImplementierungDer vorherige Frame muss in der Schleife behalten werden!

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Spectral Flux

BeschreibungDer Spectral Flux gibt an, wie stark sich das Betragsspektrum mit der Zeitändert.

Berechnung:

SFLX = 1K

K∑k=1

(|X[n− 1, k]| − |X[n, k]|)2 (6)

Berechung über die euklidische Distanz aufeinanderfolgender Frames!ImplementierungDer vorherige Frame muss in der Schleife behalten werden!

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Spectral Flux

20 40 60 80 100 120 140 160 180Frame

Flux

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2·105Sample

x[n

]

Abbildung: Spectral Flux und Zeitsignal (Flöte)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Subplots

Verwendung:1. subplot(n,m,i)

2. plot(x)

Parameter:n = Anzahl der Subplot-Zeilen

m = Anzahl der Subplot-Spalten

i = Wahl des Subplots (n ·m)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Subplots

Verwendung:1. subplot(n,m,i)

2. plot(x)

Parameter:n = Anzahl der Subplot-Zeilen

m = Anzahl der Subplot-Spalten

i = Wahl des Subplots (n ·m)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Download

WaveFiles liegen hier:

http://zplane.de/downloads/uni/aca3.zip

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Termin 4

Klassifikation: KNN

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Organisatorisch

22.5: Vorstellung der Projekte

1. 2 Minuten , 2-3 Folien2. Was habt ihr vor?3. Was gibt es schon (Literatur)?4. Welche Probleme wird es geben?5. Grober Zeiplan!

19.6: Zwischenbericht

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Nachtrag zu Spectral Features

In der Praxis werden unterschiedliche Versionen vonFeatures verwendet:

ÜbungRolloff:∑S∗

k=1 |X|2[k] = 0.95∑Kk=1 |X|2[k]

Centroid:SCNT =

∑K

k=1k·|X|[k]∑K

k=1|X|[k]

Beides ist korrekt - ja nach Anwendung liefert eineVersion aber bessere Ergebnisse!

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Nachtrag zu Spectral Features

In der Praxis werden unterschiedliche Versionen vonFeatures verwendet:

ÜbungRolloff:∑S∗

k=1 |X|2[k] = 0.95∑Kk=1 |X|2[k]

Centroid:SCNT =

∑K

k=1k·|X|[k]∑K

k=1|X|[k]

Beides ist korrekt - ja nach Anwendung liefert eineVersion aber bessere Ergebnisse!

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Nachtrag zu Spectral Features

In der Praxis werden unterschiedliche Versionen vonFeatures verwendet:

ÜbungRolloff:∑S∗

k=1 |X|2[k] = 0.95∑Kk=1 |X|2[k]

Centroid:SCNT =

∑K

k=1k·|X|[k]∑K

k=1|X|[k]

VorlesungRolloff:∑S∗

k=1 |X|[k] = 0.95∑Kk=1 |X|[k]

Centroid:SCNT =

∑K

k=1k·|X|2[k]∑K

k=1|X|2[k]

Beides ist korrekt - ja nach Anwendung liefert eineVersion aber bessere Ergebnisse!

Einführung Termin 1 Termin 2 Termin 3 Termin 4

«

Einführung Termin 1 Termin 2 Termin 3 Termin 4

K-Nearest Neighbors

• Klassifikationsalgorithmus• Einfache Theorie, einfache Implementierung• 1.Training -> 2.Klassifikation

1: Training

1. Alle Samples in Trainingset einer Klasse Kn zuordnen2. Alle Samples mit Varianz Normieren

2: Klassifikation

1. Unbekanntes Sample S soll einer Klasse aus Kn zugeordnet werden2. Sample mit Varianz aus Training normieren3. k nächste Nachbarn im Merkmalsraum finden4. Häufigste Klasse in nächsten Nachbarn bestimmen -> FERTIG

Einführung Termin 1 Termin 2 Termin 3 Termin 4

K-Nearest Neighbors

• Klassifikationsalgorithmus• Einfache Theorie, einfache Implementierung• 1.Training -> 2.Klassifikation

1: Training1. Alle Samples in Trainingset einer Klasse Kn zuordnen

2. Alle Samples mit Varianz Normieren

2: Klassifikation

1. Unbekanntes Sample S soll einer Klasse aus Kn zugeordnet werden2. Sample mit Varianz aus Training normieren3. k nächste Nachbarn im Merkmalsraum finden4. Häufigste Klasse in nächsten Nachbarn bestimmen -> FERTIG

Einführung Termin 1 Termin 2 Termin 3 Termin 4

K-Nearest Neighbors

• Klassifikationsalgorithmus• Einfache Theorie, einfache Implementierung• 1.Training -> 2.Klassifikation

1: Training1. Alle Samples in Trainingset einer Klasse Kn zuordnen2. Alle Samples mit Varianz Normieren

2: Klassifikation

1. Unbekanntes Sample S soll einer Klasse aus Kn zugeordnet werden2. Sample mit Varianz aus Training normieren3. k nächste Nachbarn im Merkmalsraum finden4. Häufigste Klasse in nächsten Nachbarn bestimmen -> FERTIG

Einführung Termin 1 Termin 2 Termin 3 Termin 4

K-Nearest Neighbors

• Klassifikationsalgorithmus• Einfache Theorie, einfache Implementierung• 1.Training -> 2.Klassifikation

1: Training1. Alle Samples in Trainingset einer Klasse Kn zuordnen2. Alle Samples mit Varianz Normieren

2: Klassifikation

1. Unbekanntes Sample S soll einer Klasse aus Kn zugeordnet werden2. Sample mit Varianz aus Training normieren3. k nächste Nachbarn im Merkmalsraum finden4. Häufigste Klasse in nächsten Nachbarn bestimmen -> FERTIG

Einführung Termin 1 Termin 2 Termin 3 Termin 4

K-Nearest Neighbors

• Klassifikationsalgorithmus• Einfache Theorie, einfache Implementierung• 1.Training -> 2.Klassifikation

1: Training1. Alle Samples in Trainingset einer Klasse Kn zuordnen2. Alle Samples mit Varianz Normieren

2: Klassifikation1. Unbekanntes Sample S soll einer Klasse aus Kn zugeordnet werden

2. Sample mit Varianz aus Training normieren3. k nächste Nachbarn im Merkmalsraum finden4. Häufigste Klasse in nächsten Nachbarn bestimmen -> FERTIG

Einführung Termin 1 Termin 2 Termin 3 Termin 4

K-Nearest Neighbors

• Klassifikationsalgorithmus• Einfache Theorie, einfache Implementierung• 1.Training -> 2.Klassifikation

1: Training1. Alle Samples in Trainingset einer Klasse Kn zuordnen2. Alle Samples mit Varianz Normieren

2: Klassifikation1. Unbekanntes Sample S soll einer Klasse aus Kn zugeordnet werden2. Sample mit Varianz aus Training normieren

3. k nächste Nachbarn im Merkmalsraum finden4. Häufigste Klasse in nächsten Nachbarn bestimmen -> FERTIG

Einführung Termin 1 Termin 2 Termin 3 Termin 4

K-Nearest Neighbors

• Klassifikationsalgorithmus• Einfache Theorie, einfache Implementierung• 1.Training -> 2.Klassifikation

1: Training1. Alle Samples in Trainingset einer Klasse Kn zuordnen2. Alle Samples mit Varianz Normieren

2: Klassifikation1. Unbekanntes Sample S soll einer Klasse aus Kn zugeordnet werden2. Sample mit Varianz aus Training normieren3. k nächste Nachbarn im Merkmalsraum finden

4. Häufigste Klasse in nächsten Nachbarn bestimmen -> FERTIG

Einführung Termin 1 Termin 2 Termin 3 Termin 4

K-Nearest Neighbors

• Klassifikationsalgorithmus• Einfache Theorie, einfache Implementierung• 1.Training -> 2.Klassifikation

1: Training1. Alle Samples in Trainingset einer Klasse Kn zuordnen2. Alle Samples mit Varianz Normieren

2: Klassifikation1. Unbekanntes Sample S soll einer Klasse aus Kn zugeordnet werden2. Sample mit Varianz aus Training normieren3. k nächste Nachbarn im Merkmalsraum finden4. Häufigste Klasse in nächsten Nachbarn bestimmen -> FERTIG

Einführung Termin 1 Termin 2 Termin 3 Termin 4

2D Merkmalsraum vor dem Training

0 5 · 10−7 1 · 10−6 1.5 · 10−6 2 · 10−6 2.5 · 10−6 3 · 10−60

0.2

0.4

0.6

0.8

Feature 1

Feature2

Einführung Termin 1 Termin 2 Termin 3 Termin 4

TRAINING: 2D Merkmalsraum nach Zuweisung

0 5 · 10−7 1 · 10−6 1.5 · 10−6 2 · 10−6 2.5 · 10−6 3 · 10−60

0.2

0.4

0.6

0.8

Feature 1

Feature2

Class 1Class 2

Einführung Termin 1 Termin 2 Termin 3 Termin 4

KLASSIFIKATION: Klasse für Sample finden

0 5 · 10−7 1 · 10−6 1.5 · 10−6 2 · 10−6 2.5 · 10−6 3 · 10−60

0.2

0.4

0.6

0.8

Feature 1

Feature2

Class 1Class 2Sample

Einführung Termin 1 Termin 2 Termin 3 Termin 4

K=1,3,5 Eindeutige Zuordung

0 5 · 10−7 1 · 10−6 1.5 · 10−6 2 · 10−6 2.5 · 10−6 3 · 10−60

0.2

0.4

0.6

0.8

Feature 1

Feature2

Class 1Class 2Sample

Einführung Termin 1 Termin 2 Termin 3 Termin 4

K=1,3,5 Eindeutige Zuordung

0 5 · 10−7 1 · 10−6 1.5 · 10−6 2 · 10−6 2.5 · 10−6 3 · 10−60

0.2

0.4

0.6

0.8

Feature 1

Feature2

Class 1Class 2Sample

Einführung Termin 1 Termin 2 Termin 3 Termin 4

K=1,3,5 Eindeutige Zuordung

0 5 · 10−7 1 · 10−6 1.5 · 10−6 2 · 10−6 2.5 · 10−6 3 · 10−60

0.2

0.4

0.6

0.8

Feature 1

Feature2

Class 1Class 2Sample

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Etwas komplizierterer Fall

0 5 · 10−7 1 · 10−6 1.5 · 10−6 2 · 10−6 2.5 · 10−6 3 · 10−60

0.2

0.4

0.6

0.8

Feature 1

Feature2

Class 1Class 2Sample

Einführung Termin 1 Termin 2 Termin 3 Termin 4

K=3 Klasse 2

0 5 · 10−7 1 · 10−6 1.5 · 10−6 2 · 10−6 2.5 · 10−6 3 · 10−60

0.2

0.4

0.6

0.8

Feature 1

Feature2

Class 1Class 2Sample

Einführung Termin 1 Termin 2 Termin 3 Termin 4

K=5 Klasse 1

0 5 · 10−7 1 · 10−6 1.5 · 10−6 2 · 10−6 2.5 · 10−6 3 · 10−60

0.2

0.4

0.6

0.8

Feature 1

Feature2

Class 1Class 2Sample

Einführung Termin 1 Termin 2 Termin 3 Termin 4

K wählen

• Ungerade• Möglichst groß• Aber nur wirkliche “Nachbarn” sollen einbezogen werden

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Klassifikation: tonal-percussive

Trainingset:Set mit perkussiven und tonalen EinzelklängenTrainingset (11 Files in 2 Ordnern)

1: Berechnung der instantaneous Features pro Sample• Spectral Rolloff• Spectral Centroid• Spectral Flux

2: Für jedes Sample drei Werte extrahieren:• Mittelwert des Rolloff• Mittelwert des Centroid• Varianz des Flux

-> 3 Merkmale pro Sample -> 3D Merkmalsraum

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Klassifikation: tonal-percussiveTrainingset:Set mit perkussiven und tonalen EinzelklängenTrainingset (11 Files in 2 Ordnern)

1: Berechnung der instantaneous Features pro Sample• Spectral Rolloff• Spectral Centroid• Spectral Flux

2: Für jedes Sample drei Werte extrahieren:• Mittelwert des Rolloff• Mittelwert des Centroid• Varianz des Flux

-> 3 Merkmale pro Sample -> 3D Merkmalsraum

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Klassifikation: tonal-percussiveTrainingset:Set mit perkussiven und tonalen EinzelklängenTrainingset (11 Files in 2 Ordnern)

1: Berechnung der instantaneous Features pro Sample• Spectral Rolloff• Spectral Centroid• Spectral Flux

2: Für jedes Sample drei Werte extrahieren:• Mittelwert des Rolloff• Mittelwert des Centroid• Varianz des Flux

-> 3 Merkmale pro Sample -> 3D Merkmalsraum

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Klassifikation: tonal-percussiveTrainingset:Set mit perkussiven und tonalen EinzelklängenTrainingset (11 Files in 2 Ordnern)

1: Berechnung der instantaneous Features pro Sample• Spectral Rolloff• Spectral Centroid• Spectral Flux

2: Für jedes Sample drei Werte extrahieren:• Mittelwert des Rolloff• Mittelwert des Centroid• Varianz des Flux

-> 3 Merkmale pro Sample -> 3D Merkmalsraum

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Klassifikation: tonal-percussiveTrainingset:Set mit perkussiven und tonalen EinzelklängenTrainingset (11 Files in 2 Ordnern)

1: Berechnung der instantaneous Features pro Sample• Spectral Rolloff• Spectral Centroid• Spectral Flux

2: Für jedes Sample drei Werte extrahieren:• Mittelwert des Rolloff• Mittelwert des Centroid• Varianz des Flux

-> 3 Merkmale pro Sample -> 3D Merkmalsraum

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Klassifikation: tonal-percussive

3: Trainieren

4: Merkmalspaare plotten und Trennbarkeit evaluieren

5: KlassifikationTestset (4 Files)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Klassifikation: tonal-percussive

3: Trainieren

4: Merkmalspaare plotten und Trennbarkeit evaluieren

5: KlassifikationTestset (4 Files)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Klassifikation: tonal-percussive

3: Trainieren

4: Merkmalspaare plotten und Trennbarkeit evaluieren

5: KlassifikationTestset (4 Files)

Einführung Termin 1 Termin 2 Termin 3 Termin 4

Download

https://www.zplane.de/downloads/uni/knn.zip

top related