You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: chapter/Ausblick.tex
+1-1
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@ \section{Kritische Reflexion und Ausblick}\label{sec:Ausblick}
2
2
In dieser Arbeit wurde ein lineares Verfahren entwickelt, welches Audiodateien zunächst in vier sequenziellen Schritten vorverarbeitet und anschließend in \ac{LPC} Koeffizienten umrechnet.
3
3
Der theoretische Ansatz hinter der \ac{LPC} Berechnung zeigt dabei bereits ein hohes Potenzial der Koeffizienten für die Verwendung im Kontext Sprecherauthentifizierung.
4
4
5
-
Im Rahmen der Implementierung der vorgestellten Verfahren wird auf einen Modularen Ansatz gesetzt, der eine Erweiterung des entwickelten Programms um verschiedene Verfahren der Koeffizientenberechnung ermöglicht, wodurch dieses als Basis für die anschließende Studienarbeit verwendet werden kann.
5
+
Im Rahmen der Implementierung der vorgestellten Verfahren wird auf einen modularen Ansatz gesetzt, der eine Erweiterung des entwickelten Programms um verschiedene Verfahren der Koeffizientenberechnung ermöglicht, wodurch dieses als Basis für die anschließende Studienarbeit verwendet werden kann.
6
6
Gleichzeitig können relevante Größen wie die Länge der zu erstellenden Frames oder die Anzahl zu berechnender Koeffizienten als Parameter den entsprechenden Funktionen übergeben werden, wodurch eine hohe Flexibilität erreicht wird.
7
7
8
8
Die abschließende Validierung der Ergebnisse dieser Arbeit bestätigen die in der Einleitung getroffene These.
Copy file name to clipboardExpand all lines: chapter/Einleitung.tex
+1-1
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@ \subsection{Kontext}
11
11
Die erhaltenen Werte können anschließend für das Training eines \acp{NN} verwendet werden, welches die Klassifizierung neuer Datensätze während des Authentifizierungsprozesses übernimmt.
12
12
13
13
\subsection{Ziel der Arbeit}
14
-
Im Rahmen dieser Arbeit, soll das \ac{LPC} Verfahren genauer untersucht werden.
14
+
Im Rahmen dieser Arbeit soll das \ac{LPC} Verfahren genauer untersucht werden.
15
15
Dazu soll ein Programm erstellt werden, welches ein gegebenes Audiosignal mittels \ac{LPC} in eine vordefinierte Anzahl an Koeffizienten umwandelt.
16
16
In einem weiteren Schritt soll der Zusammenhang zwischen den berechneten Koeffizienten und der sprechenden Person unter Verwendung eines vereinfachten \acp{NN} aufgezeigt werden.
Die \ac{AR} basiert auf dem Konzept der multiplen Regression und wird auf zeitlich veränderliche Prozesse angewandt.
53
53
Dabei wird eine Kriteriumsvariable unter Betrachtung von n Prädiktorvariablen vorhergesagt \autocite[vgl.][S. 37-38]{canela_multiple_2019}.
54
-
Im Speziellen Fall der \ac{AR}, handelt es sich bei den Prädiktorvariablen um vorhergehende Werte des Prozesses.
54
+
Im speziellen Fall der \ac{AR}, handelt es sich bei den Prädiktorvariablen um vorhergehende Werte des Prozesses.
55
55
Ein \ac{AR} Modell sagt somit den Wert zu einem Zeitpunkt $n$, basierend auf $p$ Vorgängerwerten des Prozesses voraus.
56
56
Es gilt somit der in Formel~\ref{eq:autoregression} dargestellte Zusammenhang, wobei $\hat{s}_n$ den vorausgesagten Wert, $s_{n-k}$ die vorhergehenden Werte, $a_{k}$ die Regressionsgewichte und $p$ die Anzahl an verwendeten Vorgängerwerten darstellt \autocite[][S. 1304]{atal_effectiveness_1974}.
Da die Struktur der Formanten Sprecherspezifisch ist, kann der Sprecher somit über die \ac{LPC} Koeffizienten identifiziert werden \autocite[vgl.][S. 117]{sidorov_text-independent_2010}.
78
78
\newline
79
79
\newline
80
-
Zur Berechnung der \ac{LPC} Koeffizienten wird zunächst die selbe Annahme wie in Kapitel~\ref{sec:Framing} getroffen, dass sich die Form des Vokaltrakts und das in den Stimmritzen erzeuge Signal über den betrachteten Zeitraum nicht verändert \autocite[vgl.][S. 1304]{atal_effectiveness_1974}.
80
+
Zur Berechnung der \ac{LPC} Koeffizienten wird zunächst die selbe Annahme wie in Kapitel~\ref{sec:Framing} getroffen, dass sich die Form des Vokaltrakts und das in den Stimmritzen erzeugte Signal über den betrachteten Zeitraum nicht verändert \autocite[vgl.][S. 1304]{atal_effectiveness_1974}.
81
81
Somit lassen sich die Koeffizienten des \ac{AR} Filters mittels des Burg Algorithmus berechnen.
Folglich findet auch die Implementierung der Signalvorverarbeitung, sowie die \ac{LPC} Berechnung mit Hilfe der Sprache Python statt.
6
6
7
7
Um Programmierfehler zu vermeiden, sowie die Effizienz des Codes zu erhöhen, werden Funktionen aus verschiedenen Bibliotheken verwendet.
8
-
Als Basis wird die Bibliothek \textKlasse{numpy} verwendet, welche Funktionen für die Bearbeitung von Arrays und Matrizen bereitstellt, sowie die Bibliothek \textKlasse{librosa} für Audio spezifische Funktionen wie das Laden von WAV Dateien.
8
+
Als Basis wird die Bibliothek \textKlasse{numpy} verwendet, welche Funktionen für die Bearbeitung von Arrays und Matrizen bereitstellt, sowie die Bibliothek \textKlasse{librosa} für Audiospezifische Funktionen wie das Laden von WAV Dateien.
9
9
10
10
\subsection{Klasse AudioPreprocessor}
11
11
Die Klasse \textKlasse{AudioPreprocessor} (vgl. Quellcode~\ref{code:AudioPreprocessor}) beinhaltet die Funktionen für die Schritte der Signalvorverarbeitung (vgl. Kapitel~\ref{sec:Signalvorverarbeitung}).
12
12
Die Funktion \textFunktion{remove\_noise} implementiert die Rauschreduzierung unter Verwendung der Bibliothek \textKlasse{noisereduce}.
13
13
Für die Funktion \textFunktion{remove\_silence} wurde wie bereits erwähnt ein eigener Algorithmus entwickelt (vgl. Zeile~\ref{line:removeSilenceStart}-\ref{line:removeSilenceEnd}), der in Kapitel~\ref{sec:Rauschreduzierung} genauer erläutert ist.
14
-
Die Abschließende Unterteilung des Audiosignals in Frames, sowie das Windowing der Frames findet mit Hilfe von \textKlasse{numpy} Operationen in den Funktionen \textFunktion{create\_frames} und \textFunktion{window\_frames} statt.
14
+
Die abschließende Unterteilung des Audiosignals in Frames, sowie das Windowing der Frames findet mit Hilfe von \textKlasse{numpy} Operationen in den Funktionen \textFunktion{create\_frames} und \textFunktion{window\_frames} statt.
15
15
Die passende Fensterfunktion wird dabei ebenfalls durch die \textKlasse{numpy} Bibliothek bereitgestellt (vgl. Zeile~\ref{line:windowFunction}).
16
16
17
17
\subsection{Klasse FeatureExtractor}
18
18
Mit Blick auf die an diese Arbeit folgende Studienarbeit wird für die Implementierung der Koeffizientenberechnung ein Ansatz gewählt, der eine einfache Erweiterung des Programms um verschiedene andere Verfahren wie etwa \ac{MFCC} ermöglicht.
19
-
Dazu wird das Design Pattern Strategie in abgewandelter Form verwendet, wobei zunächst ein Interface für die Berechnungsverfahren erstellt werden muss (vgl. Quellcode~\ref{code:ExtractorInterface}).
19
+
Dazu wird das Designmuster Strategie in abgewandelter Form verwendet, wobei zunächst ein Interface für die Berechnungsverfahren erstellt werden muss (vgl. Quellcode~\ref{code:ExtractorInterface}).
20
20
Dieses definiert die Funktion \textFunktion{calculate\_features}, welche in den abgeleiteten Klassen implementiert wird.
21
21
Die Klasse \textKlasse{LPCExtractor} (vgl. Quellcode~\ref{code:LPCExtractor}) nutzt hierfür die von der Bibliothek \textKlasse{librosa} bereitgestellt Funktion \textFunktion{lpc} um für die übergebenen Frames die zugehörigen \ac{LPC} Koeffizienten zu berechnen und anschließend zurückzugeben.
22
22
Der \ac{LPC} Koeffizient nullter Ordnung wird dabei von der Funktion standardmäßig mit der Zahl eins befüllt und ist kein Teil der berechneten \ac{LPC}-Ordnung, weshalb dieser manuell entfernt werden muss (vgl. Z.~\ref{line:removeLPC0}).
Damit sichergestellt werden kann, dass die in dieser Arbeit erarbeitete Parametrisierung von Stimmaufzeichnungen eine Aussage über die jeweilige sprechende Person ermöglicht, muss der Zusammenhang zwischen den berechneten \ac{LPC} Koeffizienten und der sprechenden Person gezeigt werden.
3
3
Dies erfolgt in der Klasse \textKlasse{FeatureEvaluator} (vgl. Quellcode~\ref{code:FeatureEvaluator}).
4
4
5
-
Hierfür wird wie bereits eingangs erwähnt ein einfaches \ac{NN} mit Hilfe der Python-Bibliothek \textKlasse{tensorflow} trainiert.
5
+
Hierfür wird wie bereits eingangs erwähnt ein einfaches \ac{NN} mit Hilfe der Bibliothek \textKlasse{tensorflow} trainiert.
6
6
Das \ac{NN} besteht dabei aus einem Input-Layer mit 30 * 12 Features = 360 Neuronen, zwei Hidden-Layern mit je 16 Neuronen, sowie einem Output-Layer (vgl. Z.~\ref{line:NNStart}-\ref{line:NNEnd}).
7
7
Da im Output-Layer für jede Sprecher-ID ein Neuron erstellt wird, passt sich die Anzahl der Neuronen an die höchste verwendete Sprecher-ID an (vgl. Z.~\ref{line:NNOutput}).
8
8
\newline
9
9
\newline
10
10
Als Datengrundlage kommt ein von Vibhor Jain erstellter Datensatz zum Einsatz, welcher auf der Internetseite kaggle.com zur Verfügung steht und Audio-Datensätze zu 50 unterschiedlichen Sprechern bereitstellt \autocite[vgl.][]{vibhor_jain_speaker_2019}.
11
-
Für jeden Sprecher existieren dabei Aufzeichnungen mit einer Dauer von bis zu einer Stunde, welche in einminütige WAV-Dateien heruntergebrochen wurden.
11
+
Für jeden Sprecher existieren dabei Aufzeichnungen mit einer Dauer von bis zu einer Stunde, welche in einminütige WAVDateien heruntergebrochen wurden.
12
12
Die Dateien mit Index null bis einschließlich 14 jedes Sprechers werden zum Training des \ac{NN} verwendet.
13
13
Alle Dateien ab Index 15 können somit zum Testen des \ac{NN} verwendet werden.
Da für jeden Frame zwölf Koeffizienten berechnet werden, enthält jeder Chunk somit 360 \ac{LPC} Werte.
19
19
Für eine einfach skalierbare Erstellung des Datensatzes wird die Funktion \textFunktion{create\_dataset} (vgl. Z.~\ref{line:createDatasetStart}-\ref{line:createDatasetEnd}) verwendet, welche neben dem erstellten Datensatz eine weitere Liste, die die Zuordnung des Datensatzes zu der Sprecher-ID enthält, zurückgibt.
20
20
21
-
Bevor die Trainingsdaten nun für das Training des \ac{NN} verwendet werden, werden diese gemischt, um ein besseres Trainings-Ergebnis zu erzielen (vgl. Z.~\ref{line:shuffle}).
21
+
Bevor die Trainingsdaten nun für das Training des \ac{NN} verwendet werden, werden diese gemischt, um ein besseres Trainingsergebnis zu erzielen (vgl. Z.~\ref{line:shuffle}).
22
22
\newline
23
23
\newline
24
-
Für die Evaluation des trainierten Modells, wird ein Test-Datensatz nach dem selben Verfahren aus den Dateien ab Index 15 für die Personen 21 bis 30 erstellt.
24
+
Für die Evaluation des trainierten Modells, wird ein Testdatensatz nach dem selben Verfahren aus den Dateien ab Index 15 für die Personen 21 bis 30 erstellt.
25
25
Somit wird zunächst sichergestellt, dass es sich bei den Testdaten um unbekannte Werte für das \ac{NN} handelt.
26
26
27
27
Mit der Funktion \textFunktion{evaluate\_model} (vgl. Z.~\ref{line:evaluateModelStart}-\ref{line:evaluateModelEnd}) kann nun die Genauigkeit, sowie die Fehlerrate des \ac{NN} ermittelt werden.
28
-
Der in dieser Arbeit verwendete Test-Datensatz wurde von dem Modell zu 70,54 Prozent korrekt vorhergesagt, bei einer Fehlerrate von 5,47.
28
+
Der in dieser Arbeit verwendete Testdatensatz wurde von dem Modell zu 70,54 Prozent korrekt vorhergesagt, bei einer Fehlerrate von 5,47.
29
29
Die Fehlerrate berechnet sich dabei nach dem categorical crossentropy Verfahren.
Copy file name to clipboardExpand all lines: pages/abstract.tex
+1-1
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@
10
10
% Deutsche Zusammenfassung
11
11
\begin{abstract}
12
12
Um Sprecher anhand von Stimmaufzeichnungen in einem System zu authentifizieren, muss das analoge Audiosignal in digitale Parameter umgewandelt werden, die einen Bezug zu der sprechenden Person ermöglichen.
13
-
Diese Arbeit beschäftigt sich mit der Berechnung von Lineare Predictive Coefficients, welche Eigenschaften der Stimmerzeugung im Vokaltrakt modellieren.
13
+
Diese Arbeit beschäftigt sich mit der Berechnung von Linear Predictive Coefficients, welche Eigenschaften der Stimmerzeugung im Vokaltrakt modellieren.
14
14
Der Zusammenhang zwischen Sprecher und berechneten Koeffizienten wird unter der Verwendung eines Neuronalen Netzes überprüft.
15
15
In der Auswertung mit einem kleinen Datensatz von 10 Personen zeigt sich eine Vorhersagegenauigkeit von 70,54 Prozent, wodurch der grundsätzliche Zusammenhang gezeigt ist.
0 commit comments