Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
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:
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:
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