add results and update methods
authorMart Lubbers <mart@martlubbers.net>
Fri, 26 May 2017 12:23:19 +0000 (14:23 +0200)
committerMart Lubbers <mart@martlubbers.net>
Fri, 26 May 2017 12:23:19 +0000 (14:23 +0200)
asr.pre
asr.tex
intro.tex
methods.tex

diff --git a/asr.pre b/asr.pre
index 267e8b8..604494a 100644 (file)
--- a/asr.pre
+++ b/asr.pre
@@ -11,6 +11,8 @@
 \usepackage{todonotes}               % Todo's
 \usepackage{float}                   % Floating tables
 \usepackage{csquotes}                % Typeset quotes
 \usepackage{todonotes}               % Todo's
 \usepackage{float}                   % Floating tables
 \usepackage{csquotes}                % Typeset quotes
+\usepackage{subcaption}              % Subfigures and captions
+\usepackage{multirow}                % Multirow tables
 
 \graphicspath{{img/}}
 
 
 \graphicspath{{img/}}
 
diff --git a/asr.tex b/asr.tex
index a051094..273cdfa 100644 (file)
--- a/asr.tex
+++ b/asr.tex
@@ -17,6 +17,7 @@
 \newacronym{PLP}{PLP}{Perceptual Linear Prediction}
 \newacronym{PPF}{PPF}{Posterior Probability Features}
 \newacronym{ZCR}{ZCR}{Zero-crossing Rate}
 \newacronym{PLP}{PLP}{Perceptual Linear Prediction}
 \newacronym{PPF}{PPF}{Posterior Probability Features}
 \newacronym{ZCR}{ZCR}{Zero-crossing Rate}
+\newacronym{RELU}{ReLU}{Rectified Linear Unit}
 \newglossaryentry{dm}{name={Death Metal},
        description={is an extreme heavy metal music style with growling vocals and
        pounding drums}}
 \newglossaryentry{dm}{name={Death Metal},
        description={is an extreme heavy metal music style with growling vocals and
        pounding drums}}
@@ -27,7 +28,7 @@
        description={is a technique of converting a time representation signal to a
        frequency representation}}
 \newglossaryentry{MS}{name={Mel-Scale},
        description={is a technique of converting a time representation signal to a
        frequency representation}}
 \newglossaryentry{MS}{name={Mel-Scale},
-       description={is a human ear inspired scale for spectral signals.}}
+       description={is a human ear inspired scale for spectral signals}}
 \newglossaryentry{Viterbi}{name={Viterbi},
        description={is a dynamic programming algorithm for finding the most likely
        sequence of hidden states in a \gls{HMM}}}
 \newglossaryentry{Viterbi}{name={Viterbi},
        description={is a dynamic programming algorithm for finding the most likely
        sequence of hidden states in a \gls{HMM}}}
index 10be98f..a64a9b2 100644 (file)
--- a/intro.tex
+++ b/intro.tex
@@ -42,8 +42,6 @@ tenth century\cite{friis_vikings_2004}:
        howling, only more untamed.
 \end{displayquote}
 
        howling, only more untamed.
 \end{displayquote}
 
-\section{\gls{dm}}
-
 %Literature overview / related work
 \section{Related work}
 Applying speech related processing and classification techniques on music
 %Literature overview / related work
 \section{Related work}
 Applying speech related processing and classification techniques on music
index 078ebbf..9478b87 100644 (file)
@@ -68,7 +68,7 @@ The training and test data is divided as follows:
        \end{tabular}
 \end{table}
 
        \end{tabular}
 \end{table}
 
-\section{\gls{MFCC} Features}
+\section{\acrlong{MFCC} Features}
 The waveforms in itself are not very suitable to be used as features due to the
 high dimensionality and correlation. Therefore we use the often used
 \glspl{MFCC} feature vectors which has shown to be
 The waveforms in itself are not very suitable to be used as features due to the
 high dimensionality and correlation. Therefore we use the often used
 \glspl{MFCC} feature vectors which has shown to be
@@ -107,29 +107,137 @@ built incrementally in several steps.
                functions.
 \end{enumerate}
 
                functions.
 \end{enumerate}
 
-\section{\gls{ANN} Classifier}
-\todo{Spectrals might be enough, no decorrelation}
+The default number of \gls{MFCC} parameters is twelve. However, often a
+thirteenth value is added that represents the energy in the data.
+
+\section{Experimental setup}
+\subsection{Features}
+The thirteen \gls{MFCC} features are chosen to feed to the classifier. The
+parameters of the \gls{MFCC} features are varied in window step and window
+length. The default speech processing parameters are tested but also bigger
+window sizes since arguably the minimal size of a singing voice segment is a
+lot bigger than the minimal size of a subphone component on which the
+parameters are tuned.  The parameters chosen are as follows:
+
+\begin{table}[H]
+       \centering
+       \begin{tabular}{lll}
+               \toprule
+               step (ms) & length (ms) & notes\\
+               \midrule
+               10 & 25 & Standard speech processing\\
+               40 & 100 &\\ 
+               80 & 200 &\\
+               \bottomrule
+       \end{tabular}
+       \caption{\Gls{MFCC} parameter settings}
+\end{table}
 
 
-\section{Experiments}
 \subsection{\emph{Singing} voice detection}
 The first type of experiment conducted is \emph{Singing} voice detection. This
 is the act of segmenting an audio signal into segments that are labeled either
 as \emph{Singing} or as \emph{Instrumental}. The input of the classifier is a
 feature vector and the output is the probability that singing is happening in
 \subsection{\emph{Singing} voice detection}
 The first type of experiment conducted is \emph{Singing} voice detection. This
 is the act of segmenting an audio signal into segments that are labeled either
 as \emph{Singing} or as \emph{Instrumental}. The input of the classifier is a
 feature vector and the output is the probability that singing is happening in
-the sample.
-
-\begin{figure}[H]
-       \centering
-       \includegraphics[width=.5\textwidth]{bcann}
-       \caption{Binary classifier network architecture}\label{fig:bcann}
-\end{figure}
+the sample. This results in an \gls{ANN} of the shape described in
+Figure~\ref{fig:bcann}. The input dimension is thirteen and the output is one.
 
 \subsection{\emph{Singer} voice detection}
 The second type of experiment conducted is \emph{Singer} voice detection. This
 is the act of segmenting an audio signal into segments that are labeled either
 with the name of the singer or as \emph{Instrumental}. The input of the
 classifier is a feature vector and the outputs are probabilities for each of
 
 \subsection{\emph{Singer} voice detection}
 The second type of experiment conducted is \emph{Singer} voice detection. This
 is the act of segmenting an audio signal into segments that are labeled either
 with the name of the singer or as \emph{Instrumental}. The input of the
 classifier is a feature vector and the outputs are probabilities for each of
-the singers and a probability for the instrumental label.
+the singers and a probability for the instrumental label. This results in an
+\gls{ANN} of the shape described in Figure~\ref{fig:mcann}. The input dimension
+is yet again thirteen and the output dimension is the number of categories. The
+output is encoded in one-hot encoding. This means that the categories are
+labeled as \texttt{1000, 0100, 0010, 0001}.
+
+\subsection{\acrlong{ANN}}
+The data is classified using standard \gls{ANN} techniques, namely \glspl{MLP}.
+The classification problems are only binary and four-class so therefore it is
+interesting to see where the bottleneck lies. How abstract the abstraction can
+go. The \gls{ANN} is built with the Keras\footnote{\url{https://keras.io}}
+using the TensorFlow\footnote{\url{https://github.com/tensorflow/tensorflow}}
+backend that provides a high-level interface to the highly technical networks.
+
+The general architecture of the networks is show in Figure~\ref{fig:bcann} and
+Figure~\ref{fig:mcann} for respectively the binary classification and
+multiclass classification. The inputs are fully connected to the hidden layer
+which is fully connected too the output layer. The activation function used is
+a \gls{RELU}. The \gls{RELU} function is a monotonic symmetric one-sided
+function that is also known as the ramp function. The definition is given in
+Equation~\ref{eq:relu}. \gls{RELU} was chosen because of its symmetry and
+efficient computation. The activation function between the hidden layer and the
+output layer is the sigmoid function in the case of binary classification. Of
+which the definition is shown in Equation~\ref{eq:sigmoid}. The sigmoid is a
+monotonic function that is differentiable on all values of $x$ and always
+yields a non-negative derivative. For the multiclass classification the softmax
+function is used between the hidden layer and the output layer. Softmax is an
+activation function suitable for multiple output nodes. The definition is given
+in Equation~\ref{eq:softmax}.
+
+The data is shuffled before fed to the network to mitigate the risk of
+over fitting on one album. Every model was trained using $10$ epochs and a
+batch size of $32$.
+
+\begin{equation}\label{eq:relu}
+       f(x) = \left\{\begin{array}{rcl}
+               0 & \text{for} & x<0\\
+               x & \text{for} & x \geq 0\\
+       \end{array}\right.
+\end{equation}
+
+\begin{equation}\label{eq:sigmoid}
+       f(x) = \frac{1}{1+e^{-x}}
+\end{equation}
+
+\begin{equation}\label{eq:softmax}
+       \delta{(\boldsymbol{z})}_j = \frac{e^{z_j}}{\sum\limits^{K}_{k=1}e^{z_k}}
+\end{equation}
+
+\begin{figure}[H]
+       \begin{subfigure}{.5\textwidth}
+               \centering
+               \includegraphics[width=.8\linewidth]{bcann}
+               \caption{Binary classifier network architecture}\label{fig:bcann}
+       \end{subfigure}%
+%
+       \begin{subfigure}{.5\textwidth}
+               \includegraphics[width=.8\linewidth]{mcann}
+               \caption{Multiclass classifier network architecture}\label{fig:mcann}
+       \end{subfigure}
+       \caption{\acrlong{ANN} architectures.}
+\end{figure}
 
 \section{Results}
 
 \section{Results}
+\begin{table}[H]
+       \centering
+       \begin{tabular}{rccc}
+               \toprule
+                  & \multicolumn{3}{c}{Parameters (step/length)}\\
+                   & 10/25 & 40/100 & 80/200\\
+               \midrule
+               3h  & 0.86 (0.34) & 0.87 (0.32) & 0.85 (0.35)\\
+               5h  & 0.87 (0.31) & 0.88 (0.30) & 0.87 (0.32)\\
+               8h  & 0.88 (0.30) & 0.88 (0.31) & 0.88 (0.29)\\
+               13h & 0.89 (0.28) & 0.89 (0.29) & 0.88 (0.30)\\
+               \bottomrule
+       \end{tabular}
+       \caption{Binary classification results (accuracy (loss))}
+\end{table}
 
 
+\begin{table}[H]
+       \centering
+       \begin{tabular}{rccc}
+               \toprule
+                  & \multicolumn{3}{c}{Parameters (step/length)}\\
+                   & 10/25 & 40/100 & 80/200\\
+               \midrule
+               3h  & 0.83 (0.48) & 0.82 (0.48) & 0.82 (0.48)\\
+               5h  & 0.85 (0.43) & 0.84 (0.44) & 0.84 (0.44)\\
+               8h  & 0.86 (0.41) & 0.86 (0.39) & 0.86 (0.40)\\
+               13h & 0.87 (0.37) & 0.87 (0.38) & 0.86 (0.39)\\
+               \bottomrule
+       \end{tabular}
+       \caption{Multiclass classification results (accuracy (loss))}
+\end{table}