\section{Σχεδιασμός υλοποίησης}

Μετά από μελέτη των προηγούμενων υλοποιήσεων και πειραματισμό με την εξαγωγή
διάφορων χαρακτηριστικών (features) στη Matlab αποφασίσαμε να ακολουθήσουμε την
παρακάτω πορεία αντιμετώπισης του προβλήματος.

\subsection{Παραθυροποίηση}

Για την παραθυροποίηση του σήματος θα γίνει χρήση Hamming παραθύρων με επικάλυψη
50\%. Η τελική χρονική διάρκεια των παραθύρων αναμένεται να είναι στο πεδίο του
μισού με ενός δευτερολέπτου (0.5-1 sec) και θα καθοριστεί στη πορεία μέσω trial
and error τεχνικών.

\subsection{Χαρακτηριστικά}

Τα χαρακτηριστικά που έχουν επιλεγεί είναι τα εξής:
\begin{enumerate}[noitemsep]
\item ΜFCCs (Mel Frequency Cepstral Coefficients)
\item Silence ratio
\item ZCR (Zero-Crossing Rate)
\item SC (Spectral Centroid)
\item SR (Spectral Rolloff)
\item SF (Specral Flux)
\item 4Hz modulation
\item Minimum Energy Density (MED)
\end{enumerate}

Τα συγκεκριμένα χαρακτηριστικά εμφανίζουν τις μεγαλύτερες ακρίβειες στη
ταξινόμηση ενώ ταυτόχρονα έχουν μικρή ετεροσυσχέτιση. Άλλα χαρακτηριστικά μπορεί
να προστεθούν στη πορεία μετά από αναλυτικότερη έρευνα της βιβλιογραφείας.

\subsection{Μοντέλο ταξινόμησης}

Από την βιβλιογραφική έρευνα διαπιστώθηκε ότι οι διαφορετικές επιλογές
χαρακτηριστικών επηρεάζουν την ακρίβεια των μοντέλων. Έτσι με μία συγκεκριμένη
επιλογή χαρακτηριστικών μπορεί τα πιθανοτικά μοντέλα (Naive Bayes, GMM, κ.α.) να
είναι αποτελεσματικότερα των SVM ή των νευρωνικών. Αλλά με επιλογή διαφορετικών
features να ισχύει το αντίθετο. Για τον λόγο αυτό είναι απαραίτητο, αφού
αποφασιστεί το σετ των χαρακτηριστικών να γίνει εκπαίδευση και testing πολλών
μοντέλων πριν την τελική επιλογή.
Έτσι η πρόταση μας είναι η δοκιμή των περισσότερων ευραίως διαδεδομένων μοντέλων,
όπως: Decision trees, Bayesian networks, Gaussian mixture model, Hidden Markov
Model, SVMs, Artificial Neural networks, Genetic Algorithms.

\subsection{Stack}

Τόσο για την εξερεύνηση του χώρου των χαρακτηριστικών όσο και για την εκπαίδευση
και τον έλεγχο του μοντέλου θα χρησιμοποιηθεί το προγραμματιστικό περιβάλλον της
R. Το περιβάλλον αυτό είναι ειδικά σχεδιασμένο για στατιστικούς υπολογισμούς
(statistical computing) και αποτελεί (μαζί με την python) το στάνταρ της
βιομηχανίας μηχανικής μάθησης. Επίσης παρέχεται αφθονία βιβλιοθηκών έτοιμων
machine learning αλγορίθμων από τις οποίες θα χρησιμοποιηθούν μεταξύ άλλων οι:
'e1071', 'rpart', 'nnet', 'random forest'.

Σε διάφορα στάδια της εργασίας ενδέχεται να χρησιμοποιηθεί και η γλώσσα Matlab
λόγω της ευκολίας που προσφέρει στους μαθηματικούς υπολογισμούς.
