Η υλοποίηση αναπτύχθηκε στη γλώσσα Python 3 και χρησιμοποιήθηκε πληθώρα βιβλιοθηκών (modules) όπως η essentia για την εξαγωγή χαρακτηριστικών, η scikit-learn για την προεπεξεργασία δεδομένων και την εκπαίδευση των μοντέλων, η seaborn για την δημιουργία διαγραμμάτων και την οπτικοποίηση των χαρακτηριστικών. Παράλληλα, σε συνδυασμό με όλες αυτές χρησιμοποιήθηκαν και άλλες βιβλιοθήκες όπως η numpy, η pandas, η matplotlib, η multiprocessing, η οs, η pyaudio και άλλες. Για την εκπαίδευση, δοκιμάστηκαν τα μοντέλα SVM, Decision Trees, Multilayer Perceptron, Naive Bayes και Random Forest, λεπτομέριες για τα οποία θα αναφερθούν στα επόμενα κεφάλαια.
Το dataset που χρησιμοποιήθηκε για την εκπαίδευση του μοντέλου είναι το προτεινόμενο GTZAN dataset \footnote{\href{http://opihi.cs.uvic.ca/sound/music_speech.tar.gz}{GTZAN dataset download}, last accessed: \today}, το οποίο αποτελείται από 128 αρχεία διάρκειας 30 δευτερολέπτων. Κάθε κλάση (μουσική/ομιλία) αποτελείται από 64 αρχεία ενώ δεν υπάρχουν αρχεία που να περιέχουν και τις δύο κλάσεις. Όλα τα αρχεία ήχου είναι δειγματοληπτημένα στα 22050 Hz, μονοκάναλα, με βάθος ήχου 16-bit και σε μορφή WAV.
Για την εξαγωγή των χαρακτηριστικών από τα αρχεία ήχου του σετ δεδομένων, αρχικά τμηματήσαμε κάθε σήμα αρχείου σε τμήματα (frames) με μέγεθος 6144 δείγματα (\textasciitilde278 ms), το οποίο προέκυψε μετά από επαναλαμβανόμενες δοκιμές. Έπειτα, τα τμήματα, παραθυροποιήθηκαν με παράθυρο τύπου Hamming, ίσου μεγέθους. Στη συνέχεια, έγινε η εξαγωγή των χαρακτηριστικών στο πεδίο του χρόνου και στο πεδίο της συχνότητας. Επίσης έγινε εξαγωγή των συντελεστών MFCC. Τα χαρακτηριστικά που εξήχθησαν, τελικά, είναι 27, και αναλύονται στη συνέχεια.
Είναι ο ρυθμός της αλλαγής πρόσημου κατά τη διάρκεια του σήματος, δηλαδή ο ρυθμός με τον οποίο το σήμα αλλάζει από θετικό σε αρνητικό και αντίστροφα. Σε κάποιο βαθμό, δείχνει την μέση συχνότητα του σήματος ως εξής:
όπου $sgn()$ η συνάρτηση πρόσημου και $x(n)$ το διακριτό σήμα ήχου. Στη γενική περίπτωση, το ZCR για την μουσική είναι αρκετά υψηλότερο από ότι στην ομιλία.
Το spectral cendroid ή αλλιώς φασματικό κέντρο, όπως αναφέρεται στο \cite{al2006speech}, είναι μία μετρική που χρησιμοποιείται ώστε να χαρακτηρίσει ένα φάσμα. Υποδεικνύει πού βρίσκεται το κέντρο του φάσματος. Έχει ισχυρή σύνδεση με την ``φωτεινότητα'' ενός ήχου, δηλαδή με την χροιά. Συνήθως, το κέντρο του φάσματος της ομιλίας συγκεντρώνεται σε χαμηλές συχνότητες και έπειτα συμπτύσσεται πολύ γρήγορα στις υψιλότερες συχνότητες ενώ δεν υπάρχει DC συνιστώσα. Αντίθετα, στην μουσική δεν έχει παρατηρηθεί κάποιο συγκεκριμένο σχήμα του φάσματος.
Το συγκεκριμένο χαρακτηριστικό αναπαριστά την τιμή της συχνότητας, κάτω από την οποία βρίσκεται το 95\% της ενέργειας του σήματος. Όπως προαναφέρθηκε, η ενέργεια του μουσικού σήματος συγκεντρώνεται σε υψηλότερες συχνότητες σε σχέση με το σήμα της ομιλίας. Η μαθηματική του έκφραση δίνεται ως:
όπου το $X(k)$ είναι ο διακριτός μετασχηματιμός Fourier (DFT) του $x(t)$, το αριστερό μέρος της παραπάνω εξίσωσης είναι το άθροισμα της ενέργειας κάτω από την συχνότητα v, ενώ το δεξί είναι 95\% της συνολικής ενέργειας του σήματος στο συγκεκριμένο χρονικό τμήμα.
Το χαρακτηριστικό Spectral Flux ή αλλιώς της φασματικής ροής, όπως αναφέρεται στο \cite{al2006speech} μετράει την φασματική διαφορά ανάμεσα στα τμήματα. Η μουσική έχει μεγαλύτερο ρυθμό διαφοράς ενώ έχει πιο δραστικές αλλαγές ανάμεσα στα τμήματα από ότι η ομιλία. Σημειώνεται ότι η μουσική εναλλάσσεται ανάμεσα σε περιόδους μετάβασης και στατικές περιόδους ενώ η ομιλία, γενικότερα, έχει έναν πιο σταθερό ρυθμό εναλλαγών. Ως αποτέλεσμα, η τιμή της φασματικής ροής είναι υψηλότερη για την μουσική σε σχέση με την ομιλία.
Το envelope είναι μία ομαλή καμπύλη που καλύπτει το περίγραμμα ενός ταλαντούμενού σήματος. Εκφράζει τις χρονικές αλλαγές στο πλάτος του σήματος. Οι αλλαγές αυτές είναι υπεύθυνες για πολλές πτυχές της ακουστικής αντίληψης, συμπεριλαμβανομένου της έντασης, της χροιάς, της οξύτητας και τις χωρικής ακουστότητας.
To flatness ή αλλιώς επιπεδότητα του ήχου, είναι μία μετρική η οποία χρησιμοποιείται στην ανάλυση ψηφιακών σημάτων για να χαρακτηρίσει το φάσμα ενός ηχητικού σήματος. Συνήθως μετριέται σε decibels (dB), και αποτελεί έναν τρόπο ποσοτικοποίησης του πόσο κοντά είναι ένας ήχος σε θόρυβο και πόσο σε τονικότητα. Η αναφορά στην τονικότητα γίνεται με την έννοια του αριθμού των κορυφών σε ένα φάσμα συχνοτήτων που θα υπήρχαν λόγω των πολλαπλών ημίτονων σε αντίθεση με το επίπεδο φάσμα του λευκού θορύβου. Τα μουσικά σήματα, τείνουν να αποτελούνται από πολλαπλούς τόνους, ο καθένας με την δική του κατανομή αρμονικών ενώ στην ομιλία δεν εμφανίζεται αυτό.
Αυτό το χαρακτηριστικό αναφέρεται στην χρονική διάρκεια ανάμεσα στη χρονική στιγμή που το σήμα γίνεται ακουστικά αντιληπτό μέχρι τη χρονική στιγμή που φτάνει την μέγιστη έντασή του.
Η προοδευτική μείωση του πλάτους ενός σήματος με την πάροδο του χρόνου. Αυτή η συμπεριφορά ξεκινάει μόλις το perceptual attack time φτάσει στο μέγιστό του. Σε αυτήν την φάση το πλάτος του σήματος μειώνεται μέχρι να φτάσει σε ένα συγκεκριμένο πλάτος στο οποίο διατηρείται μέχρι να αρχίσει να σβήνει.
Στην επεξεργασία ήχου, το cepstrum συχνοτήτων Mel (Μel frequency cepstrum - MFC) είναι μια αναπαράσταση του βραχυπρόθεσμου φάσματος έντασης ενός ήχου, βασισμένου σε έναν γραμμικό μετασχηματισμό συνημιτόνου του λογαριθμισμένου φάσματος έντασης σε μια μη γραμμική κλίμακα της συχνότητας (μη γραμμικής κλίμακας Mel). Οι συντελεστές του cepstrum συχνότητας Mel (MFCCs – Mel Frequency Cepstrum Coefficients) είναι οι συντελεστές εκείνοι που αποτελούν στο σύνολο τους το φάσμα MFC.
Τα σήματα ομιλίας έχουν χαρακτηριστικό μέγιστο στη διαμόρφωση ενέργειας γύρω στα 4Hz του ρυθμού συλλαβών. Για να μοντελοποιηθεί αυτή η ιδιότητα ακολουθείται η παρακάτω διαδικασία\footnote{\href{https://www.irit.fr/recherches/SAMOVA/FeaturesExtraction.html\#me4hz}{IRIT/SAMoVA - 4 Hz modulation energy}, last accessed: \today}: το σήμα χωρίζεται σε τμήματα, εξάγονται οι συντελεστές Mel Frequency Spectrum και υπολογίζεται η ενέργεια σε 40 κανάλια αντίληψης. Αυτή η ενέργεια έπειτα φιλτράρεται με ένα ζωνοδιαβατό φίλτρο, κεντραρισμένο στα 4Hz. Η ενέργεια αθροίζεται για όλα τα κανάλια, και κανονικοποιείται με βάση τη μέση ενέργεια του κάθε τμήματος. Η διαμόρφωση δίνεται από το κανονικοποιημένο άθροισμα της φιλτραρισμένης ενέργειας. Η ομιλία περιέχει περισσότερη διαμόρφωση από την μουσική.
Στο διάγραμμα [\ref{featureTable:table1}] φαίνονται ενδεικτικά κάποια από τα χαρακτηριστικά που υπολογίστηκαν και το πόσο αποτελεσματικά είναι στον διαχωρισμό των κλάσεων.
Κατά την προεπεξεργασία των δεδομένων, δοκιμάστηκαν διάφορες τεχνικές έτσι ώστε να βρεθούν η βέλτιστη επιλογή χαρακτηριστικών και συνδυασμός μεθόδων. Οι μέθοδοι που δοκιμάστηκαν είναι η κλιμακοποίηση, κανονικοποίηση και ο συνδυασμός τους. Επίσης για την επιλογή των χαρακτηριστικών δοκιμάστηκαν το κατώφλι με βάση τη διακύμανση (VarianceThreshold) και η εκατοστιαία επιλογή (PercentileSelection), ενώ έγινε δοκιμή διάφορων τιμών των παραμέτρων αυτών των αλγορίθμων.
Τα αποτελέσματα παρουσιάζονται στον πίνακα \ref{table:tab}. Στην κλιμακοποίηση όλα τα χαρακτηριστικά έχουν μηδενικό μέσο και απόκλιση ίση με τη μονάδα ενώ στην κανονικοποίηση μετατοπίζονται οι τιμές τους ώστε να ανήκουν στο εύρος $[0,1]$. Τα VarianceThreshold και PercentileSelection, που είναι συναρτήσεις του sub-module feature\_selection της scikit-learn, αποκλείουν χαρακτηριστικά μέσω μετρικών αξιολόγησής τους. Στο VarianceThreshold, η μείωση του αριθμού των χαρακτηριστικών γίνεται με όρους διακύμανσης, δηλαδή αφαιρούνται όλα τα χαρακτηριστικά των οποίων η διακύμανση δεν ξεπερνά κάποιο κατώφλι, ενώ η PercentileSelection κατατάσσει τα χαρακτηριστικά με βάση τη διακριτική του ικανότητα και καταργεί όλα τα χαρακτηριστικά τα οποία βρίσκονται κάτω από ένα ποσοστό των καλύτερων καθορισμένο από το χρήστη.
Εν τέλει, αποφασίστηκε να χρησιμοποιηθεί μόνο η κλιμακοποίηση, επειδή η κανονικοποίηση δεν είχε κανένα αποτέλεσμα και το κέρδος σε ταχύτητα ταξινόμησης των παραπάνω τρόπων μείωσης του αριθμού χαρακτηριστικών δεν ήταν αρκετό συγκριτικά με την μείωση της ακρίβειας ώστε να δικαιολογήσει τη χρήση τους στην υλοποίηση. Βοήθησαν παρ' όλα αυτά στον προσδιορισμό των χαρακτηριστικών που υπερτερούν.
Στη συνέχεια, σε μία προσπάθεια περαιτέρω κατανόησης και κατάταξης των χαρακτηριστικών με βάση τη διακριτική τους ικανότητα, απομονώθηκαν όλα και ελέγχθηκαν ως προς την ακρίβειά τους ένα προς ένα. Τα αποτελέσματα έδειξαν ότι, τελικά, κανένα χαρακτηριστικό από μόνο του δεν είναι ικανό να δώσει ικανοποιητικό ποσοστό ακρίβειας. Ακόμα και αν πάρουμε το καλύτερο σε όρους ακρίβειας και το δοκιμάσουμε σε συνδυασμό με τα επόμενα καλύτερα, φαίνεται ότι η ακρίβεια αυξάνεται λίγο αλλά όχι αρκετά. Τέλος, αν επαναληφθεί ακόμα μία φορά η διαδικασία, φαίνεται ότι έχουμε και πάλι μια μικρή αύξηση στην ακρίβεια, η οποία όμως είναι αρκετά μακρυά από την ακρίβεια που επιτυγχάνεται χρησιμοποιώντας όλα τα χαρακτηριστικά.
\caption{Ακρίβεια μεμονωμένων χαρακτηριστικών και συνδυασμών τους. \vspace{1em}\\\tiny
1: όπου ``With best first'' εννοείται ο συνδυασμός του χαρακτηριστικού με το καλύτερο, ενώ ``With best second'' εννοείται ο συνδυασμός του χαρακτηριστικού με τον καλύτερο συνδυασμό που προέκυψε στο προηγούμενο βήμα}
Άρα, γίνεται προφανές ότι δεν υπάρχει κάποιο συγκεκριμένο, μοναδικό χαρακτηριστικό το οποίο ευθύνεται για το μεγαλύτερο ποσοστό της ακρίβειας του μοντέλου αλλά είναι ο συνδυασμός τους.