Skip to content

Update main with current latex status. #9

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Feb 27, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion chapter/Basisarchitektur.tex

This file was deleted.

30 changes: 30 additions & 0 deletions chapter/Einleitung.tex
Original file line number Diff line number Diff line change
@@ -1 +1,31 @@
\section{Einleitung}\label{sec:Einleitung}
% Analyse von Audiosignalen unter der Verwendung von Linear Predictive Coding
%
% - Studienarbeit -> Speaker Authentication TODO: Mit echtem Namen ersetzen
% - Problematik: Es werden konkrete Zahlenwerte benötigt um von der Audio auf den Sprecher zu schließen
% -> Zahlenwerte müssen einen Bezug zu einem Sprecher darstellen.
Im Rahmen des Informatikstudiums an der \ac{DHBW} Ravensburg muss im dritten Studienjahr eine Studienarbeit abgelegt werden.
Die Hochschule stellt dafür eine Auswahl an Themen zur Verfügung.
Eines dieser Themen beschäftigt sich mit der Problematik der Sprecherauthentifizierung, wobei es Nutzern ermöglicht werden soll, sich über ihre Stimme zu authentifizieren.

\subsection{Kontext}
Damit ein Zusammenhang zwischen Stimme und Audioaufzeichnung hergestellt werden kann, müssen stimm\-spezifische Merkmale aus dem aufgezeichneten Stimmsignal extrahiert werden.
Im Bereich der Sprecherauthentifizierung haben sich zwei Verfahren zur Berechnung stimm\-spezifischer Merkmale etabliert: \ac{MFCC} und \ac{LPC} \autocite[vgl.][S. 116]{sidorov_text-independent_2010}\autocite[vgl.][S. 726]{chelali_text_2017}.
Während mittels des \ac{MFCC} Verfahrens versucht wird, die Funktionsweise des menschlichen Ohrs abzubilden, versucht das \ac{LPC} Verfahren die Eigenschaften des menschlichen Vokaltrakts aus dem Audiosignal zu extrahieren \autocite[vgl.][S. 117]{sidorov_text-independent_2010}.
Die erhaltenen Werte können anschließend für das Training eines Neuronalen Netzes verwendet werden, welches die Klassifizierung neuer Datensätze während des Authentifizierungsprozesses übernimmt.

\subsection{Ziel der Arbeit}
Im Rahmen dieser Arbeit, soll das \ac{LPC} Verfahren genauer untersucht werden.
Dazu soll ein Programm erstellt werden, welches ein gegebenes Audiosignal mittels \ac{LPC} in eine vordefinierte Anzahl an Koeffizienten umwandelt.
In einem weiteren Schritt soll der Zusammenhang zwischen den berechneten Koeffizienten und der sprechenden Person unter Verwendung eines vereinfachten Neuronalen Netzes aufgezeigt werden.

\subsection{Vorgehensweise}
% 2. Grundlagen: Signalvorverarbeitung + LPC berechnung
% 3. Technische Umsetzung: Applikation
% 4. Validierung: NN Aufbau + Ergebnis.
% 5. Kritische Reflexion und Ausblick
Die Arbeit unterteilt sich in fünf Kapitel.
Im Anschluss an die Einleitung stellt Kapitel~\ref{sec:Grundlagen} die für diese Arbeit relevanten Grundlagen vor.
Kapitel~\ref{sec:TechnischeUmsetzung} kombiniert die vorgestellten Verfahren zu einem ausführbaren Programm.
Die Ergebnisse des erstellten Programms werden in Kapitel~\ref{sec:Validierung} validiert.
Abschließend werden die Erkenntnisse in Kapitel~\ref{sec:Ausblick} interpretiert und die Arbeit wird mit einem Ausblick abgeschlossen.
104 changes: 95 additions & 9 deletions chapter/Grundlagen.tex
Original file line number Diff line number Diff line change
@@ -1,10 +1,96 @@
\section{Grundlagen}\label{sec:Grundlagen}
\subsection{Framing}
\subsection{Windowing (Zeitfenster)}
\begin{itemize}
\item Spektral leakage
\item Hamming und Han Fenster
\item Unterschied zu Framing
\end{itemize}
\subsection{Auto regressive moving average filter}
\subsection{Cepstral vectors}
% TODO: Einleitender Text

\subsection{Signalvorverarbeitung}
Um ein gegebenes Audiosignal einheitlich verarbeiten zu können, muss dieses zunächst mittels verschiedener Verfahren vorbereitet werden.
Ziel dieser Vorverarbeitung ist es, die Effizienz und Effektivität des anschließenden Verarbeitungsprozess zu erhöhen und somit ein verbessertes Ergebnis zu erzielen \autocite[vgl.][S. 11672]{lokesh_speech_2019}.
Die Vorverarbeitung im Rahmen dieser Arbeit beinhaltet die vier Schritte Rauschreduzierung, Pausen entfernen, Framing und Windowing, welche in den folgenden Unterkapiteln genauer erläutert werden.

\subsubsection{Rauschreduzierung}
Um störende Frequenzen aus dem Audiosignal zu entfernen wird eine Rauschreduzierungsfunktion verwendet.
Die in dieser Arbeit verwendete Funktion nutzt den sogenannten Spectral Noise Gate Algorithmus.
Dabei wird zunächst die Signatur des Rauschens ermittelt.
Basierend darauf kann das Rauschen anschließend verringert werden \autocite[vgl.][S. 25]{kiapuchinski_spectral_2012}.

\subsubsection{Pausen entfernen}
Die für die Sprecherauthentifizierung relevanten Daten stecken in dem aufgezeichneten Signal der Stimme.
Sprechpausen innerhalb des Audiosignals enthalten somit keine brauchbaren Informationen, weshalb diese herausgefiltert werden müssen.
Durch den vorangehenden Schritt der Rauschreduzierung kann hier ein stark vereinfachtes Verfahren gewählt werden.
Liegt das Signal für einen definierten Zeitraum unterhalb einer definierten Lautstärke, werden die entsprechenden Signalwerte aus dem Gesamtsignal entfernt.

\subsubsection{Framing}
Das Unterteilen von Audiosignalen in kleinere Blöcke (Frames) wird als Framing bezeichnet.
Dabei muss zunächst eine einheitliche Blockgröße festgelegt werden.
Außerdem wird eine Überlagerungszeit definiert, welche eine Überlappung der einzelnen Blöcke verursacht.
Durch die Überlappung wird ein Zusammenhang zwischen zwei benachbarten Frames und damit auch den anschließend berechneten Koeffizienten hergestellt.
% TODO: Quelle hinzufügen
% TODO: Warum wird überlagert -> Quelle

\subsubsection{Windowing}
\begin{figure}
\centering
\includegraphics[width=0.8\textwidth, keepaspectratio]{images/hann_window.png}
\caption{Von Hann Fensterfunktion \autocite{noauthor_numpyhanning_nodate}}
\label{fig:vonHannFenster}
\end{figure}
Um die bei der Unterteilung des Audiosignals entstandenen Diskontinuitäten aufzulösen, wird eine Fensterfunktion auf die einzelnen Blöcke angewendet.
Abbildung~\ref{fig:vonHannFenster} zeigt die von Hann Fensterfunktion, welche neben dem Hamming Fenster zu den typischen Fensterfunktionen in der Audiosignalverarbeitung zählt.
Durch den Nulldurchgang am Anfang und Ende der Fensterfunktion werden die Amplituden des Blocksignals nach Anwenden der Funktion an den Grenzen auf Null gezogen, wodurch sich ein kontinuierlicher, periodischer Signalverlauf ergibt.

Wird der Schritt des Windowing nicht durchgeführt, führt dies zu einem Phänomen namens Spectral leakage.
Der Amplitudensprung an den Blockenden resultiert in der Registrierung einer vielzahl von Frequenzen, welches die korrekte Ermittlung der sich im Signal befindenden Frequenzen erschwert.
Wie der Name bereits beschreibt, wird aus einer eindeutigen Frequenz, ein Spektrum aus Frequenzen.
% TODO: Wird Windowing in diesem Anwendungsfall überhaupt benötigt?
% Warum ist es relevant wenn ich im weiteren Verlauf keine FFT durchführe?

\subsection{Linear Predictive Coding Koeffizientenberechnung}
\subsubsection{Autoregression Modell}
Die \ac{AR} basiert auf dem Konzept der multiplen Regression und wird auf zeitlich veränderliche Prozesse angewandt.
Dabei wird eine Kriteriumsvariable unter Betrachtung von n Prädiktorvariablen vorhergesagt \autocite[vgl.][S. 37-38]{canela_multiple_2019}.
Im Speziellen Fall der \ac{AR}, handelt es sich bei den Prädiktorvariablen um vorhergehende Werte des Prozesses.
Ein \ac{AR} Modell sagt somit den Wert zu einem Zeitpunkt $n$, basierend auf $p$ Vorgängerwerten des Prozesses voraus.
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}.
\begin{equation}
\hat{s}_{n} = \sum_{k=1}^{p} s_{n-k}a_{k}
\label{eq:autoregression}
\end{equation}

Zur Bestimmung der Regressionsgewichte wurden verschiedene rekursive Verfahren entwickelt.
Neben der Yule-Walker Methode stellt der Burg Algorithmus eine beliebte Alternative dar, welcher in \citeauthor[][S. 443]{marple_new_1980} beschrieben ist.
% Evtl: Formeln des Burg Algorithmus auflisten und erklären
% Evtl: Was hat Yule-Walker und Levinson damit zu tun?

\subsubsection{Linear Predictive Coding}
Wie bereits zu Beginn der Arbeit erwähnt, wird bei dem Verfahren \ac{LPC} der Ansatz verfolgt, Rückschlüsse von dem akustischen Signal auf die Stimmerzeugung zu ziehen.
Dazu wird ein \ac{AR} Filter verwendet um ein vereinfachtes Modell des menschlichen Stimmtrakts zu erstellen.
Die Regressionsgewichte $a_k$ entsprechen dabei den \ac{LPC} Koeffizienten.
\newline
\newline
% TODO: Aktuell Wikipedia Formant
Bei der Stimmerzeugung spielen die sogenannten Formanten eine Rolle.
Diese beschreiben die akustische Energie in einem unveränderlichen Frequenzbereich, welche wiederum von den Resonanz- und Interferenzeigenschaften des Artikulationsraums abhängen.
Dadurch werden bestimmte Frequenzen verstärkt, während andere gedämpft werden.
Das durch die \ac{LPC} Koeffizienten erstellte Modell erfasst die Resonanzeigenschaften des Signals, wodurch Rückschlüsse auf die Formanten geschlossen werden können.
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}.
\newline
\newline
Zur Berechnung der \ac{LPC} Koeffizienten wird zunächst die Annahme 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}.
Somit lassen sich die Koeffizienten des \ac{AR} Filters mittels des Burg Algorithmus berechnen.


% \subsection{Cepstral vectors/coefficients}
% % TODO: Was sind Cepstral coefficients
% % TODO: Warum werden sie verwendet, was ist der Vorteil?
% % 1. Woher kommt der Begriff Cepstrum
% % 2. Was ist der Sinn und Zweck des Cepstrums
% % 3. Warum sollte es nach LPC für LPCC verwendet werden
% % 4. Wie sieht die Formel dazu aus?
% Formel~\ref{eq:cepstralcoefficients1} und Formel~\ref{eq:cepstralcoefficients} \autocite[][S. 1305]{atal_effectiveness_1974}.
% \begin{equation}
% c_{1} = a_{1}
% \label{eq:cepstralcoefficients1}
% \end{equation}
% \begin{equation}
% c_n = \sum_{k=1}^{n-1}(1-\frac{k}{n})a_{k}c_{n-k} + a_{n} , 1 < n < p
% \label{eq:cepstralcoefficients}
% \end{equation}
1 change: 1 addition & 0 deletions chapter/Validierung.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
\section{Validierung}\label{sec:Validierung}
Binary file added images/hann_window.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
174 changes: 174 additions & 0 deletions literatur/literatur.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@

@book{institute_of_electrical_and_electronics_engineers_2014_2014,
address = {Piscataway, NJ},
title = {2014 {IEEE} {International} {Conference} on {Signal} {Processing}, {Communications} and {Computing} ({ICSPCC} 2014): {Guilin}, {China}, 5 - 8 {August} 2014},
isbn = {978-1-4799-5274-8 978-1-4799-5275-5},
shorttitle = {2014 {IEEE} {International} {Conference} on {Signal} {Processing}, {Communications} and {Computing} ({ICSPCC} 2014)},
language = {eng},
publisher = {IEEE},
editor = {Institute of Electrical {and} Electronics Engineers},
year = {2014},
keywords = {LPC, LPCC, MFCC, Pre-Processing},
annote = {Literaturangaben},
file = {Speaker_recognition_based_on_principal_component_analysis_of_LPCC_and_MFCC.pdf:/home/henry/Zotero/storage/4ZJ4KIT4/Speaker_recognition_based_on_principal_component_analysis_of_LPCC_and_MFCC.pdf:application/pdf;Table of Contents PDF:/home/henry/Zotero/storage/FKZKW2TM/Institute of Electrical and Electronics Engineers - 2014 - 2014 IEEE International Conference on Signal Proce.pdf:application/pdf},
}

@incollection{satapathy_svm_2015,
address = {Cham},
title = {{SVM} and {HMM} {Modeling} {Techniques} for {Speech} {Recognition} {Using} {LPCC} and {MFCC} {Features}},
volume = {327},
isbn = {978-3-319-11932-8 978-3-319-11933-5},
url = {http://link.springer.com/10.1007/978-3-319-11933-5_58},
urldate = {2023-01-18},
booktitle = {Proceedings of the 3rd {International} {Conference} on {Frontiers} of {Intelligent} {Computing}: {Theory} and {Applications} ({FICTA}) 2014},
publisher = {Springer International Publishing},
author = {Ananthi, S. and Dhanalakshmi, P.},
editor = {Satapathy, Suresh Chandra and Biswal, Bhabendra Narayan and Udgata, Siba K. and Mandal, J.K.},
year = {2015},
doi = {10.1007/978-3-319-11933-5_58},
note = {Series Title: Advances in Intelligent Systems and Computing},
pages = {519--526},
}

@article{bimbot_tutorial_2004,
title = {A {Tutorial} on {Text}-{Independent} {Speaker} {Verification}},
volume = {2004},
issn = {1687-6180},
url = {https://asp-eurasipjournals.springeropen.com/articles/10.1155/S1110865704310024},
doi = {10.1155/S1110865704310024},
language = {en},
number = {4},
urldate = {2023-01-17},
journal = {EURASIP Journal on Advances in Signal Processing},
author = {Bimbot, Frédéric and Bonastre, Jean-François and Fredouille, Corinne and Gravier, Guillaume and Magrin-Chagnolleau, Ivan and Meignier, Sylvain and Merlin, Teva and Ortega-García, Javier and Petrovska-Delacrétaz, Dijana and Reynolds, Douglas A.},
month = dec,
year = {2004},
pages = {22},
}

@article{lokesh_speech_2019,
title = {Speech recognition system using enhanced mel frequency cepstral coefficient with windowing and framing method},
volume = {22},
issn = {1386-7857, 1573-7543},
url = {http://link.springer.com/10.1007/s10586-017-1447-6},
doi = {10.1007/s10586-017-1447-6},
language = {en},
number = {S5},
urldate = {2023-02-07},
journal = {Cluster Computing},
author = {Lokesh, S. and Devi, M. Ramya},
month = sep,
year = {2019},
keywords = {MFCC, Pre-Processing, Framing, Windowing},
pages = {11669--11679},
}

@misc{noauthor_numpyhanning_nodate,
title = {numpy.hanning — {NumPy} v1.24 {Manual}},
url = {https://numpy.org/doc/stable/reference/generated/numpy.hanning.html},
urldate = {2023-02-07},
file = {numpy.hanning — NumPy v1.24 Manual:/home/henry/Zotero/storage/65F33M93/numpy.hanning.html:text/html},
}

@incollection{sidorov_text-independent_2010,
address = {Berlin, Heidelberg},
title = {Text-{Independent} {Speaker} {Identification} {Using} {VQ}-{HMM} {Model} {Based} {Multiple} {Classifier} {System}},
volume = {6438},
isbn = {978-3-642-16772-0 978-3-642-16773-7},
url = {http://link.springer.com/10.1007/978-3-642-16773-7_10},
urldate = {2023-01-23},
booktitle = {Advances in {Soft} {Computing}},
publisher = {Springer Berlin Heidelberg},
author = {Zulfiqar, Ali and Muhammad, Aslam and Martinez-Enriquez, Ana Maria and Escalada-Imaz, G.},
editor = {Sidorov, Grigori and Hernández Aguirre, Arturo and Reyes García, Carlos Alberto},
year = {2010},
doi = {10.1007/978-3-642-16773-7_10},
note = {Series Title: Lecture Notes in Computer Science},
keywords = {LPC, MFCC, HMM, unused, Vector Quantization},
pages = {116--125},
file = {Zulfiqar et al. - 2010 - Text-Independent Speaker Identification Using VQ-H.pdf:/home/henry/Zotero/storage/GBRNZ6B7/Zulfiqar et al. - 2010 - Text-Independent Speaker Identification Using VQ-H.pdf:application/pdf},
}

@article{marple_new_1980,
title = {A new autoregressive spectrum analysis algorithm},
volume = {28},
issn = {0096-3518},
url = {http://ieeexplore.ieee.org/document/1163429/},
doi = {10.1109/TASSP.1980.1163429},
language = {en},
number = {4},
urldate = {2023-02-17},
journal = {IEEE Transactions on Acoustics, Speech, and Signal Processing},
author = {Marple, L.},
month = aug,
year = {1980},
pages = {441--454},
}

@incollection{canela_multiple_2019,
address = {Cham},
title = {Multiple {Regression}},
isbn = {978-3-030-17553-5 978-3-030-17554-2},
url = {http://link.springer.com/10.1007/978-3-030-17554-2_4},
language = {en},
urldate = {2023-02-17},
booktitle = {Quantitative {Methods} for {Management}},
publisher = {Springer International Publishing},
author = {Canela, Miguel Ángel and Alegre, Inés and Ibarra, Alberto},
collaborator = {Canela, Miguel Ángel and Alegre, Inés and Ibarra, Alberto},
year = {2019},
doi = {10.1007/978-3-030-17554-2_4},
keywords = {Multiple Regression},
pages = {37--45},
}

@article{atal_effectiveness_1974,
title = {Effectiveness of linear prediction characteristics of the speech wave for automatic speaker identification and verification},
volume = {55},
issn = {0001-4966},
url = {http://asa.scitation.org/doi/10.1121/1.1914702},
doi = {10.1121/1.1914702},
language = {en},
number = {6},
urldate = {2023-02-16},
journal = {The Journal of the Acoustical Society of America},
author = {Atal, B. S.},
month = jun,
year = {1974},
keywords = {LPCC},
pages = {1304--1312},
}

@article{chelali_text_2017,
title = {Text dependant speaker recognition using {MFCC}, {LPC} and {DWT}},
volume = {20},
issn = {1381-2416, 1572-8110},
url = {http://link.springer.com/10.1007/s10772-017-9441-1},
doi = {10.1007/s10772-017-9441-1},
language = {en},
number = {3},
urldate = {2023-01-23},
journal = {International Journal of Speech Technology},
author = {Chelali, Fatma Zohra and Djeradi, Amar},
month = sep,
year = {2017},
keywords = {LPC, MFCC, unused},
pages = {725--740},
file = {Chelali und Djeradi - 2017 - Text dependant speaker recognition using MFCC, LPC.pdf:/home/henry/Zotero/storage/GKPS5493/Chelali und Djeradi - 2017 - Text dependant speaker recognition using MFCC, LPC.pdf:application/pdf},
}

@inproceedings{kiapuchinski_spectral_2012,
address = {Irvine, CA, USA},
title = {Spectral {Noise} {Gate} {Technique} {Applied} to {Birdsong} {Preprocessing} on {Embedded} {Unit}},
isbn = {978-1-4673-4370-1 978-0-7695-4875-3},
url = {http://ieeexplore.ieee.org/document/6424625/},
doi = {10.1109/ISM.2012.12},
urldate = {2023-02-27},
booktitle = {2012 {IEEE} {International} {Symposium} on {Multimedia}},
publisher = {IEEE},
author = {Kiapuchinski, Davi Miara and Lima, Carlos Raimundo Erig and Kaestner, Celso Antonio Alves},
month = dec,
year = {2012},
keywords = {Spectral Noise Gate},
pages = {24--27},
}
2 changes: 1 addition & 1 deletion main.tex
Original file line number Diff line number Diff line change
Expand Up @@ -160,8 +160,8 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\include{chapter/Einleitung}
\include{chapter/Grundlagen}
\include{chapter/Basisarchitektur}
\include{chapter/TechnischeUmsetzung}
\include{chapter/Validierung}
\include{chapter/Ausblick}

%%%%%%%%%%%%%%%%%%%%%%% Literaturverzeichnis %%%%%%%%%%%%%%%%%%%%%%%
Expand Down
5 changes: 5 additions & 0 deletions pages/abkuerzungsverzeichnis.tex
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,10 @@ \section*{Abkürzungsverzeichnis}
\begin{acronym}
\acro{DHBW}[DHBW]{Duale Hochschule Ba\-den-\-Würt\-tem\-berg}
\acroplural{DHBW}[DHBW]{Dualen Hochschule Ba\-den-\-Würt\-tem\-berg}
\acro{FFT}[FFT]{Fast Fourier Transform}
\acro{LPC}[LPC]{Linear Predicitve Coding}
\acro{LPCC}[LPCC]{Linear Prediction Cepstral Coefficient}
\acro{MFCC}[MFCC]{Mel-frequency Cepstral Coefficients}
\acro{AR}[AR]{Autoregression}
\end{acronym}
\newpage