ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΑΚΟΥΣΤΙΚΗΣ ΚΑΙ ΤΗΛΕΟΠΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Αναγνώριση ομιλίας και αλληλεπίδραση ανθρώπου-υπολογιστή με χρήση φωνητικών εντολών Γκουγκούσης Ηρακλής ΑΕΜ: 7868 Επίβλεψη: Παπανικολάου Γεώργιος Θεσσαλονίκη, Οκτώβριος 2017 1
Ευχαριστίες Η εργασία αυτή διεξάχθηκε κατά το ακαδημαϊκό έτος 2016-2017 και με την ολοκλήρωση της θα ήθελα να ευχαριστήσω όλα τα άτομα που αγαπώ και με βοήθησαν και στάθηκαν κοντά μου σε αυτό το χρονικό διάστημα. Πρωτίστως, θέλω να ευχαριστήσω τον κ. Γεώργιο Παπανικολάου ο οποίος με εισήγαγε στην επιστήμη της ηλεκτροακουστικής και που μου έδωσε την ευκαιρία να ασχοληθώ με αυτό το θέμα που με ενδιέφερε σε πλαίσιο διπλωματικής εργασίας. Θερμές ευχαριστίες θέλω να δώσω στον υπ. διδάκτορα Λάζαρο Βρύση και στον επίκουρο καθηγητή του τμήματος Δημοσιογραφίας και Μέσων Μαζικής Επικοινωνίας ΑΠΘ κ. Χαράλαμπο Δημουλά για την πολύτιμη βοήθεια που μου προσέφεραν και την υπομονή που έδειξαν κατά τη διάρκεια της εκπόνησης της εργασίας αυτής. Επίσης ευχαριστώ θερμά τους: Αντωνόπουλο Δημήτρη, Βαβούρη Αθηνά, Εμμανουηλίδου Ευτέρπη, Θεοδωρίδου Χριστίνα, Λουίζου Παυλίνα, Τασιά Παναγιώτη και Σοπαλίδη Βασίλη που έκατσαν αρκετές ώρες μαζί μου για να τους ηχογραφήσω και να συλλέξω τα απαραίτητα αρχεία για τις δοκιμές που πραγματοποίησα στα πλαίσια του έργου αυτού. Τέλος, περισσότερο από όλους θέλω να ευχαριστήσω την οικογένεια μου που με στήριξε όλα τα χρόνια που ήμουν φοιτητής. Αφιερώνω την διπλωματική εργασία αυτή στον πατέρα μου. 2
Σύνοψη Η αυτόματη αναγνώριση ομιλίας (automatic speech recognition - ASR) και η χρήση φωνητικών εντολών για την αλληλεπίδραση με ηλεκτρονικές συσκευές είναι ένα θέμα που έχει απασχολήσει την επιστημονική κοινότητα ιδιαίτερα έντονα τα τελευταία χρόνια. Είναι ένα αντικείμενο που συνδυάζει γνώσεις από πολλά επιστημονικά πεδία όπως θεωρία πιθανοτήτων, γλωσσολογία, ψηφιακή επεξεργασία σήματος μεταξύ άλλων. Στηριζόμενοι σε καθιερωμένες μεθόδους, ερευνητές σε όλο τον κόσμο έχουν βελτιστοποιήσει υπάρχουσες διαδικασίες και έχουν προτείνει εντελώς νέες για την κατασκευή συστημάτων αναγνώρισης ομιλίας αλλά και πως μπορούν αυτά να ενσωματωθούν σε ευρύτερα συστήματα που χρησιμοποιούν φωνητικές εντολές για αλληλεπίδραση με υπολογιστές. Μερικά από τα ερευνητικά έργα είναι θεωρητικά, όπως η χρήση νευρωνικών δικτύων για την εκπαίδευση ακουστικών μοντέλων, και άλλα τεχνικά, όπως η αξιοποίηση της επεξεργαστικής δύναμης σύγχρονων καρτών γραφικών για την κατασκευή συστημάτων ASR. Το βασικό έργο που περιγράφεται στην παρούσα διπλωματική εργασία είναι η κατασκευή ενός αυτόνομου, υψηλής ακρίβειας συστήματος αναγνώρισης ομιλίας περιορισμένου λεξιλογίου (50 λέξεων), με υποστήριξη για ελληνική και αγγλική γλώσσα, το οποίο εκπαιδεύεται επάνω σε συγκεκριμένο ομιλητή, κατασκευασμένο χρησιμοποιώντας το λογισμικό ανοιχτού κώδικα Kaldi. Στο κεφάλαιο 1, παρουσιάζεται μια σύντομη ιστορική αναδρομή των τεχνολογιών αυτόματης αναγνώρισης ομιλίας. Στο κεφάλαιο 2, γίνεται ανάλυση της παραδοσιακής διαδικασίας δημιουργίας συστημάτων ASR που στηρίζεται σε Κρυφά Μοντέλα Μαρκόβ (Hidden Markov Model - HMMs) και Μοντέλα Γκαουσιανών Μιγμάτων (Gaussian Mixture Models - GMMs). Στο κεφάλαιο 3, περιγράφεται αναλυτικά η διαδικασία εκπαίδευσης και αξιολόγησης του συστήματος και στο κεφάλαιο 4 σχολιάζονται τα αποτελέσματα. Τέλος, στο παράρτημα Α αναλύεται σε βάθος ο τρόπος λειτουργίας του Kaldi Toolkit. 3
Abstract Title: Speech recognition and voice command assisted man-machine interaction Automatic speech recognition (ASR) and the use of voice commands to interact with electronic devices is a subject that the scientific community has shown great interest in, particularly in recent years. It combines knowledge from many scientific fields such as probability theory, linguistics, digital signal processing among many others. Based on established methods, researchers around the world have optimized existing processes and have proposed enitrely new ones to construct speech recognition systems but also describe how to integrate them into larger systems that use voice commands to interact with computers. Part of the research is theoretical, such as examining the use of various neural networks for training acoustic models, but another part is technical, such as the utilization of the vast processing power of graphics cards for the construction of ASR systems. The aim of this thesis was the creation of an autonomous, high accuracy, limited vocabulary (50 words) ASR system with support for Greek and English, which will be trained on a particular speaker, built using the open source speech recognition toolkit Kaldi. In chapter 1, a brief historical overview of speech recognition technologies is given. In chapter 2, an analysis of the traditional method for constructing ASR systems, which involves Hidden Markov Models (HMMs) and Gaussian Mixture Models (GMMs), can be found. In chapter 3, the process by which the aforementioned system is trained and tested is described, and in chapter 4, the results are reviewed. Finally, in Appendix A, the inner workings of Kaldi are presented in great detail. 4
Περιεχόμενα 1 Εισαγωγή 9 1.1 Περιγραφή Προβλήματος............................. 11 1.2 Ιστορία Τεχνολογίας Αναγνώρισης Ομιλίας................... 12 1.3 Μοντέρνα Εργαλεία Για Αυτόματη Αναγνώριση Ομιλίας............ 13 1.3.1 CMU Sphinx............................... 13 1.3.2 HTK.................................... 14 2 Μέθοδοι Και Αλγόριθμοι Αναγνώρισης Ομιλίας 15 2.1 Διαδικασία Αυτόματης Αναγνώρισης Ομιλίας.................. 16 2.2 Mel Frequency Cepstral Coefficients...................... 18 2.3 Hidden Markov Models............................. 26 2.3.1 Ορισμός.................................. 27 2.3.2 Αξιολόγηση................................ 28 2.3.3 Αναγνώριση Και Εκπαίδευση....................... 29 2.4 Gaussian Mixture Models............................ 30 2.4.1 Ορισμός.................................. 30 2.5 Weighted Finite State Transducers (WFST).................. 31 2.5.1 Σταθμισμένοι Δέκτες........................... 31 2.5.2 Σταθμισμένοι Μετατροπείς........................ 33 2.5.3 Πράξεις Επάνω ή Ανάμεσα σε WFSTs.................. 34 2.5.4 Αλγόριθμος Viterbi............................ 36 2.6 Γλωσσική Μοντελοποίηση............................ 40 2.6.1 N-grams.................................. 40 2.7 Ακουστική Μοντελοποίηση............................ 43 2.7.1 Ακουστικά Μοντέλα Βασισμένα σε HMM................ 43 2.7.2 Βελτίωση Δομής Με Χρήση GMM................... 48 3 Πειραματικό Σκέλος 49 3.1 Ορισμός Γλωσσικών Παραμέτρων........................ 50 3.2 Συλλογή Δεδομένων............................... 55 3.3 Δημιουργία Γλωσσικού Μοντέλου........................ 56 3.4 Εκπαίδευση Ακουστικών Μοντέλων....................... 56 5
3.5 Αξιολόγηση Εκπαιδευμένων Μοντέλων..................... 58 4 Αποτελέσματα Και Συμπεράσματα 60 4.1 Αποκωδικοποίηση Συνόλου Αξιολόγησης Και Λήψη Αποτελεσμάτων..... 60 4.2 Συμπεράσματα................................... 62 4.3 Ιδέες Για Περαιτέρω Μελέτη........................... 63 Αʹ Kaldi Toolkit 65 Αʹ.1 Ιστορία....................................... 66 Αʹ.2 Εγκατάσταση................................... 67 Αʹ.3 Προετοιμασία Αρχείων Για Δημιουργία Μοντέλων με Kaldi.......... 69 Αʹ.3.1 Επισκόπηση................................ 69 Αʹ.3.2 Ο φάκελος data.............................. 70 Αʹ.3.3 Ο φάκελος lang.............................. 72 Αʹ.4 Μέθοδοι Και Αλγόριθμοι Του Kaldi....................... 74 Αʹ.4.1 Εξαγωγή Χαρακτηριστικών........................ 74 Αʹ.4.2 Ακουστική Μοντελοποίηση....................... 74 Αʹ.4.3 Γλωσσική Μοντελοποίση......................... 74 Αʹ.4.4 Αποκωδικοποίηση............................. 74 Αʹ.5 Παραδείγματα Χρήσης Του Kaldi........................ 76 Αʹ.5.1 Μελέτη Παραδειγμάτων.......................... 76 Αʹ.5.2 Το Πιο Απλό Παράδειγμα: Ναι ή Όχι?................. 77 6
Κατάλογος σχημάτων 2.1 Αρχιτεκτονική ενός Συστήματος ASR Βασισμένο σε HMM.......... 16 2.2 Μπλοκ Διάγραμμα Διαδικασίας Υπολογισμού MFCC............. 19 2.3 Μια Ενδεικτική Τράπεζα Mel Φίλτρων...................... 22 2.4 Τύπος Υπολογισμού Φίλτρων Mel........................ 24 2.5 Τράπεζα 10 Mel Φίλτρων............................. 24 2.6 Παράδειγμα Μαρκοβιανής Αλυσίδας....................... 26 2.7 Παράδειγμα Κρυφού Μοντέλου Μαρκόβ..................... 27 2.8 Παραδείγματα σταθμισμένων δεκτών πεπερασμένων καταστάσεων. Συμβατικά, οι καταστάσεις αναπαρίστανται με κύκλους και σημειώνονται με έναν μοναδικό αριθμό που αντιστοιχεί σε αυτές. Η αρχική κατάσταση αναπαρίσταται από κύκλο με έντονο περίγραμμα, οι τελικές καταστάσεις με διπλό κύκλο. Η ετικέτα l και το βάρος w μιας μετάβασης σημειώνονται πάνω από τά βέλη που τους αντιστοιχούν με την μορφή l/w.................................. 32 2.9 Παραδείγματα σταθμισμένων μετατροπέων πεπερασμένων καταστάσεων. Έχουν αρκετές ομοιότητες με τους δέκτες του σχήματος 2.8, η διαφορά είναι οι ετικέτες εξόδου που εισάγονται σε κάθε μετάβαση. Η ετικέτα εισόδου i, η ετικέτα εξόδου o, και το βάρος w της κάθε μετάβασης σημειώνονται πάνω στο βέλος που αντιστοιχεί στην κάθε μετάβαση ως i : o/w................. 33 2.10 Παράδειγμα Σύνθεσης Μετατροπέων....................... 34 2.11 Ντετερμινισμός Σταθμισμένου Αυτομάτου. Ένα τυπικό σταθμισμένο αυτόματο στο σχήμα 2.11αʹ και το ισοδύναμο ντετερμινιστικό αυτόματο στο σχήμα 2.11βʹ 35 2.12 Μετακίνηση Βαρών (Weight Pushing) Και Ελαχιστοποίηση. (α ) Ντετερμινιστικό Σταθμισμένο Αυτόματο Α. (β ) Ισοδύναμο Σταθμισμένο Αυτόματο Με Βάρη Μετακινημένα Προς Την Τελική Κατάσταση. (γ ) Ελαχιστοποιημένο Σταθμισμένο Αυτόματο, Ισοδύναμο με το Α................... 36 2.13 Μηχανή Πεπερασμένων Καταστάσεων και Κανάλι................ 36 2.14 Γράφος Μαρκόβ 4 Καταστάσεων......................... 37 2.15 Trellis Diagram για τον Γράφο Μαρκόβ του σχήματος 2.14.......... 37 2.16 Μοντέλο Φωνήματος ΗΜΜ........................... 43 2.17 Μοντελοποίηση Με Εξάρτηση Από Συμφραζόμενα............... 46 2.18 Δημιουργία Μοντέλων Φωνημάτων Με Κοινές Καταστάσεις.......... 47 3.1 Λεξιλόγιο Ελληνικών Και Αγγλικών Λέξεων.................. 50 7
3.2 Φωνήματα Για Την Ελληνική Γλώσσα...................... 51 3.3 Φωνήματα Για Την Αγγλική Γλώσσα...................... 52 3.4 Λεξικό Για Την Ελληνική Γλώσσα........................ 53 3.5 Λεξικό Για Την Αγγλική Γλώσσα........................ 54 3.6 Χαρακτηριστικά Αρχείων Ήχου - Αποτέλεσμα Εντολής soxi.......... 55 4.1 Αποτελέσματα Για Ελληνικό Λεξιλόγιο (Μέσος Όρος 3 Εκτελέσεων).... 61 4.2 Αποτελέσματα Για Αγγλικό Λεξιλόγιο (Μέσος Όρος 3 Εκτελέσεων)..... 62 8
Κεφάλαιο 1 Εισαγωγή Το παρόν έγγραφο θα παρουσιάσει μια σύντομη ιστορική αναδρομή στις τεχνολογίες αναγνώρισης ομιλίας, μια εικόνα της σημερινής κατάστασης των τεχνολογιών και εμβάθυνση στον τρόπο λειτουργίας ενός συγκεκριμένου προγράμματος για αναγνώριση ομιλίας, του Kaldi 1. Η ομιλία αποτελεί τον πιο φυσικό και πλέον διαδεδομένο τρόπο επικοινωνίας μεταξύ των ανθρώπων. Η εξέλιξη διαφόρων τομέων της τεχνολογίας και της επιστήμης επέτρεψε την ανάπτυξη συστημάτων και εργαλείων με τα οποία μπορούν να αυτοματοποιηθούν διαδικασίες που σχετίζονται με την ομιλία. Παραδείγματος χάριν, η χρήση ανθρώπων τηλεφωνητών σε τηλεφωνικά κέντρα έχει αντικατασταθεί από αυτόματα συστήματα εξυπηρέτησης μέσω τηλεφώνου. Ειδικά για την περίπτωση των εφαρμογών που λειτουργούν υπό στάσιμες συνθήκες θορύβου ή τρόπου ομιλίας, η σύγχρονη τεχνολογία ομιλίας επιτρέπει την αντικατάσταση ανθρώπωνυπαλλήλων συνομιλητών από διαλογικά συστήματα. Τις τελευταίες δεκαετίες η ανάπτυξη συστημάτων που αφορούν την φωνητική αλληλεπίδραση μεταξύ ανθρώπου και μηχανής έχει αυξηθεί σημαντικά. Η επικοινωνία ανθρώπου μηχανής περιλαμβάνει την μετάδοση μηνυμάτων από τον άνθρωπο στην μηχανή, δηλαδή την μετατροπή φυσικής ομιλίας σε κείμενο (ή αναγνώριση ομιλίας), και την μετάδοση μηνυμάτων από την μηχανή στον άνθρωπο, δηλαδή την μετατροπή ενός αυτομάτως παραγόμενου κειμένου σε συνθετική ομιλία (ή σύνθεση ομιλίας). Η αυξημένη ανάπτυξη τέτοιων συστημάτων και λειτουργιών οφείλεται κατά κύριο λόγο στην δημιουργία βάσεων δεδομένων με ηχογραφήσεις ομιλίας μεγάλου όγκου, δηλαδή αρκετών ωρών ομιλίας. Η εξάρτηση της ανάπτυξης συστημάτων τεχνολογίας ομιλίας από μεγάλες βάσεις δεδομένων προφορικού λόγου οφείλεται στα ιδιαίτερα χαρακτηριστικά που παρουσιάζει η ομιλία σε σχέση με άλλα βιομετρικά χαρακτηριστικά. Για παράδειγμα, τα δακτυλικά αποτυπώματα ενός ανθρώπου παραμένουν σταθερά μετά την ηλικία των 10 ετών και είναι μοναδικά για κάθε άνθρωπο. Αντίθετα με τα δακτυλικά αποτυπώματα, η ομιλία παρουσιάζει μεγάλη ευαισθησία στην μίμηση, στη συναισθηματική κατάσταση του ομιλητή, στην υγεία του φωνητικού συστήματος κ.λπ. Έτσι, είναι προφανές ότι από ομιλητή σε ομιλητή, ή ακόμη και σε διαφορετικές συνθήκες του ίδιου ομιλητή, η ομιλία παρουσιάζει μεγάλες αποκλίσεις. Οι αποκλίσεις αυτές σε συνδυασμό με το ότι η τεχνολογία ομιλίας βασίζεται κατά κόρον σε στατιστικές μεθόδους, προαπαιτεί μεγάλο εύρος δεδομένων εκπαίδευσης ούτως ώστε να καλυφθούν όσο το δυνατό περισσότερες 9
από τις αποκλίσεις αυτές. Η δημιουργία μεγάλων βάσεων δεδομένων με ηχογραφήσεις ομιλίας από διαφορετικούς ομιλητές και σε διαφορετικές συνθήκες και περιβάλλοντα εργασίας επέτρεψε την ανάπτυξη συστημάτων αυτόματης αναγνώρισης ομιλίας ανεξάρτητα του ομιλητή, και μεγάλου λεξιλογίου, σε αντίθεση με παλιότερα συστήματα που περιορίζονταν συνήθως σε ένα ομιλητή και σε περιορισμένο λεξιλόγιο (π.χ. αναγνώριση ψηφίων, ή μεμονωμένων λέξεων). Ένα πρόβλημα που υπάρχει με τις βάσεις δεδομένων ομιλίας είναι ότι για να μπορεί να τις εκμεταλλευθεί κατάλληλα ένα σύστημα θα πρέπει να υποστούν προ-επεξεργασία. Η προεπεξεργασία αυτή περιλαμβάνει συνήθως την ακολουθία των λέξεων που αντιστοιχούν στο φωνητικό μήνυμα που ειπώθηκε. Εκτός από αυτό τα συστήματα τεχνολογίας ομιλίας εκμεταλλεύονται πληροφορία η οποία βρίσκεται και σε χαμηλότερα επίπεδα, όπως για παράδειγμα η ακολουθία φωνημάτων που αντιστοιχούν στο φωνητικό σήμα, οι συλλαβές των λέξεων, η προσωδία της ομιλίας και οι θέσεις των φωνητικών μεταβάσεων. Η προ-επεξεργασία των βάσεων στα διάφορα επίπεδα πληροφορίας μπορεί να γίνει με το χέρι. Ωστόσο, σε περίπτωση που η βάση αποτελείται από μερικές ώρες ηχογραφήσεων ομιλίας είναι προφανές ότι η λύση αυτή είναι απαγορευτική. Ενώ τα περισσότερα από τα προαναφερθέντα επίπεδα πληροφορίας μπορούν να εξαχθούν με ικανοποιητική ποιότητα και ακρίβεια, με αυτόματες μεθόδους, η εύρεση των θέσεων των φωνητικών μεταβάσεων αποτελεί σήμερα ένα σημαντικό πεδίο έρευνας, αφού θεωρείται η πιο δύσκολα εξαγόμενη πληροφορία, από μια βάση ομιλίας. Μάλιστα, η δυσκολία του προβλήματος σε συνδυασμό με την αναγκαιότητα εξαγωγής των θέσεων των ορίων των φωνημάτων για εφαρμογές όπως η σύνθεση ομιλίας, αυξάνει την σπουδαιότητα του προβλήματος αυτού. Η δουλειά μιας μηχανής αυτόματης αναγνώρισης ομιλίας (ASR) είναι να δέχεται στην είσοδο της ήχο και να τον μετατρέψει σε γραπτό κείμενο. Αυτό καλείται μερικές φορές αποκωδικοποίηση, επειδή μπορείτε να σκεφτείτε τον ήχο ως κανάλι εισόδου και τη γραπτή μορφή, είτε πρόκειται για μια ακολουθία λέξεων είτε για ήχους ομιλίας, ως το κανάλι εξόδου, με τον αποκωδικοποιητή να λειτουργεί μεταξύ τους. Μόλις η ομιλία μετατραπεί σε κάποια αναπαράσταση κειμένου, μπορεί να χρησιμοποιηθεί για την αποστολή συμβάντων σε μια εφαρμογή. Τα συστήματα αναγνώρισης ομιλίας αντλούν από πηγές γνώσης όπως γλωσσολογία, θεωρία πιθανοτήτων και ψηφιακή επεξεργασία σήματος και βρίσκουν το καλύτερο συνδυασμένο αποτέλεσμα που εντοπίζει την καλύτερη ακολουθία ήχων και λέξεων που εναρμονίζουν τα φωνητικά μοντέλα, τα μοντέλα λέξεων από ένα λεξικό προφοράς και ένα «γλωσσικό μοντέλο» ή μια γραμματική που προβλέπει ποιες λέξεις είναι πιθανές (ή γενικά εφικτές). Τα περισσότερα σύγχρονα συστήματα ASR χρησιμοποιούν στατιστικές μεθόδους για την εκπαίδευση μοντέλων για κάθε ένα από αυτά τα επίπεδα. Τα κρυφά μοντέλα μαρκόβ (HMM), τα δέντρα αποφάσεων και άλλες τεχνικές στατιστικής και μηχανικής μάθησης χρησιμοποιούνται σε όλο το σύστημα και στην επιστήμη ομιλίας συνολικά. Στο πλαίσιο αυτής της διπλωματικής εργασίας θα παρουσιαστούν πολλά μαθηματικά μοντέλα και τεχνικές που χρησιμοποιούνται στην σύγχρονη αναγνώριση ομιλίας, αναλυτική περιγραφή του λογισμικού ανοιχτού κώδικα Kaldi, και η διαδικασία υλοποίησης ενός συστήματος αυτόματης αναγνώρισης ομιλίας μικρού λεξιλογίου και λίγων ομιλητών. 10
1.1 Περιγραφή Προβλήματος Προπονητές αθλητικών ομάδων συχνά χρησιμοποιούν βίντεο αγώνων εκ των υστέρων για να το μελετήσουν και με αυτό το τρόπο να εντοπίσουν τα λάθη που έκαναν οι παίκτες της ομάδας τους, να διακρίνουν στρατηγικές και αδυναμίες των αντιπάλων παικτών μεταξύ άλλων. Ένα πρόβλημα που αντιμετωπίζεται συχνά είναι ότι συλλέγονται μεγάλες ποσότητες τηλεοπτικού υλικού και δεν υπάρχει κάποιος εύκολος και αξιόπιστος τρόπος να εξακριβωθούν τα χρήσιμα από τα άχρηστα κομμάτια. Μια μέθοδος που έχει χρησιμοποιηθεί είναι η επισήμανση κρίσιμων γεγονότων. Δηλαδή, θα υπάρχει ένα άτομο που παρακολουθεί το βίντεο και όποτε συμβαίνει κάτι αξιοσημείωτο σημειώνει ότι την χρονική στιγμή Χ ο παίκτης Υ έκανε την κίνηση Ζ ή κάτι παρεμφερές. Η διαδικασία αυτή έχει την σημαντική αδυναμία του χρόνου, καθώς το άτομο αυτό θα πρέπει χειροκίνητα να σταματάει το βίντεο όποτε συμβαίνει κάτι που πρέπει να σημειωθεί, να καταγράφει χρονική στιγμή, ενέργεια και παίκτες που εμπλέκονται. Προτείνεται μια καλύτερη μέθοδος. Θα αναπτυχθεί ένα σύστημα λογισμικού που θα αναγνωρίζει φωνητικές εντολές και θα μπορεί αυτόματα να επισημάνει σημαντικά γεγονότα κατ αυτό το τρόπο. Το λογισμικό θα αποτελείται από πολλά επιμέρους κομμάτια, και η αναγνώριση ομιλίας είναι ένα από αυτά, το οποίο περιγράφεται αναλυτικά στην παρούσα διπλωματική εργασία. Το ASR σύστημα που περιγράφεται εδώ έχει τους εξής βασικούς σκοπούς: να μπορεί να αναγνωρίζει συγκεκριμένους όρους που σχετίζονται με το μπάσκετ από ένα ειδικό και περιορισμένο λεξικό (αγγλικό και ελληνικό), να μπορεί να εκπαιδεύεται επάνω στην φωνή του ατόμου που επιθυμεί να το χρησιμοποιήσει και να έχει το μέγιστο δυνατό ποσοστό επιτυχίας αναγνώρισης λέξεων. 11
1.2 Ιστορία Τεχνολογίας Αναγνώρισης Ομιλίας Η επιθυμία για αυτοματοποίηση απλών εργασιών δεν είναι μοντέρνα επιδίωξη, αλλά μια που παρατηρείται περισσότερο από 100 χρόνια στο παρελθόν. Το 1932, ερευνητές των Bell Labs, όπως ο Harvey Fletcher ξεκίνησαν να μελετούν σε βάθος την επιστήμη πίσω από την αντίληψη προφορικής ομιλίας, όμως η έρευνα τους θα αργούσε πολύ να φέρει κάποιο ουσιαστικό αποτέλεσμα. Αρκετά χρόνια αργότερα, το 1952 2, οι Davis, Biddulph και Balashek των Bell Labs δημιούργησαν ένα σύστημα, ονόματι Audrey, ικανό να αναγνωρίσει αριθμητικά ψηφία από έναν ομιλητή. Ερευνητές από τις ΗΠΑ, την Ιαπωνία, την Αγγλία και τη Σοβιετική Ένωση τις δεκαετίες του 1950,1960, υλοποίησαν μερικά ακόμα συστήματα αυτόματης αναγνώρισης ομιλίας, όλα με λεξιλόγιο περίπου 10 λέξεων και δυνατότητα αναγνώρισης ενός ομιλητή. Προς τα τέλη της δεκαετίας του 60, ένας απόφοιτος του Stanford, ο Raj Reddy, ασχολήθηκε για πρώτη φορά με την αναγνώριση συνεχόμενης ομιλίας. Προηγούμενα συστήματα είχαν το μειονέκτημα ότι περίμεναν από τον χρήστη να αφήνει παύσεις ανάμεσα στις λέξεις που προφέρει. Το σύστημα του Reddy χρησιμοποιήθηκε για να δίνει προφορικές εντολές σε ένα παιχνίδι σκακιού. Επίσης, εκείνη την περίοδο Σοβιετικοί ερευνητές επινόησαν τον αλγόριθμο Dynamic Time Warping (DTW), ο οποίος χειρίζεται τα σήματα ήχου χωρίζοντας τα σε παράθυρα μικρού μήκους, πχ 10ms, και εξετάζοντας καθένα ανεξάρτητα από το άλλο. Παρόλο που ο DTW στην πορεία αντικαταστάθηκε από πιο εκλεπτυσμένους αλγορίθμους, η φιλοσοφία του χωρισμού σημάτων ήχου σε μικρότερα επιμέρους κομμάτια συνεχίζεται μέχρι και σήμερα. Όλα τα συστήματα αναγνώρισης ομιλίας μέχρι τα τέλη της δεκαετίας ήταν περιορισμένα σε ένα μόνο ομιλητή. Το 1971, η DARPA έδειξε ενδιαφέρον για την αναγνώριση ομιλίας και δημιούργησε το Speech Understanding Research Program. Το κρατικά χρηματοδοτούμενο πρόγραμμα αυτό είχε τον φιλόδοξο στόχο να δημιουργήσει ένα ολοκληρωμένο σύστημα αναγνώρισης με λεξιλόγιο μεγέθους τουλάχιστον 1000 λέξεων. 12
1.3 Μοντέρνα Εργαλεία Για Αυτόματη Αναγνώριση Ομιλίας Η χρήση φωνητικών εντολών για αλληλεπίδραση με υπολογιστές και κινητά τηλέφωνα έχει γίνει αρκετά δημοφιλής τα τελευταία χρόνια και κατά συνέπεια πολλές εταιρίες, όπως Microsoft, Apple, Google, Mozilla κλπ, έχουν δείξει μεγάλο ενδιαφέρον σε τεχνολογίες αναγνώρισης ομιλίας. Το λογισμικό Kaldi είναι αυτό που χρησιμοποιείται για την διεκπεραίωση αυτής της εργασίας και αναλύεται στο παράρτημα. Σε αυτή την ενότητα, θα δοθεί μια σύντομη περιγραφή σε άλλα δυο σημαντικά συστήματα λογισμικού που έχουν χρησιμοποιηθεί στο παρελθόν. 1.3.1 CMU Sphinx Το CMU Sphinx, ή Sphinx εν συντομία, είναι ο γενικός όρος που περιγράφει μια ομάδα συστημάτων αναγνώρισης ομιλίας που αναπτύχθηκαν στο πανεπιστήμιο Carnegie Mellon. Αυτά περιλαμβανουν μια σειρά αποκωδικοποιητών ομιλίας (Sphinx 1-4) και ένα εκπαιδευτή ακουστικών μοντέλων (SphinxTrain). Το Sphinx Group υποστηρίζεται εδώ και πολλά χρόνια από τη χρηματοδότηση της Υπηρεσίας Προηγμένων Έργων Άμυνας (Defense Advanced Research Projects Agency) και οι μηχανές αναγνώρισης που κυκλοφόρησαν είναι εκείνες που η ομάδα χρησιμοποίησε για τα διάφορα έργα του DARPA και τις αντίστοιχες αξιολογήσεις τους. Στις αρχές του 2000, το Sphinx Group κυκλοφόρησε το Sphinx2, ένα πραγματικού χρόνου, μεγάλου λεξιλόγιου, ανεξάρτητο από ομιλητή σύστημα αναγνώρισης ομιλίας ως ελεύθερο λογισμικό υπό την άδεια τύπου Apache. Το Sphinx2 είναι ο μηχανή που χρησιμοποιείται στα συστήματα διαλόγου του Sphinx Group που απαιτούν αλληλεπίδραση ομιλίας σε πραγματικό χρόνο, όπως η υλοποίηση του έργου DARPA Communicator. Τα προ-κατασκευασμένα ακουστικά μοντέλα περιλαμβάνουν τα αμερικανικά αγγλικά και τα γαλλικά. Το Sphinx2 είναι ένας αξιοπρεπής υποψήφιος για φορητές και ενσωματωμένες συσκευές και τηλεφωνικά και επιτραπέζια συστήματα που απαιτούν σύντομους χρόνους απόκρισης. Αρκετά χρόνια αργότερα κυκλοφόρησε το Sphinx4, το οποίο είναι η τελευταία προσθήκη στο repository λογισμικού του CMU. Έχει σχεδιαστεί από κοινού από το πανεπιστήμιο Carnegie Mellon, τα εργαστήρια της Sun Microsystems και τα εργαστήρια Mitsubishi Electric Research Laboratories. Είναι διαφορετικά σχεδιασμένο από τα προηγούμενα συστήματα Sphinx από άποψη ευελιξίας και αλγοριθμικών πτυχών. Χρησιμοποιεί νεότερες στρατηγικές αναζήτησης, είναι καθολικό στην αποδοχή διαφόρων ειδών γραμματικών και γλωσσικών μοντέλων, τύπων ακουστικών μοντέλων και ροών χαρακτηριστικών. Οι αλγόριθμες καινοτομίες που περιλαμβάνονται στο σχεδιασμό του συστήματος της επιτρέπουν να ενσωματώσει πολλών πηγών πληροφοριών με κομψό τρόπο. Το σύστημα αναπτύσσεται εξ ολοκλήρου στην πλατφόρμα Java και είναι εξαιρετικά φορητό, ευέλικτο και ευκολότερο στη χρήση με multithreading 3. Σημαντικό πλεονέκτημα του Sphinx έναντι άλλων είναι ότι είναι φιλικό και προσιτό προς τον μέσο χρήστη. Προσφέρει πολλά προεκπαιδευμένα μοντέλα για αρκετές γλώσσες και υπάρχει 13
αναλυτικό documentation για το πως πρέπει να χρησιμοποιούνται. Επίσης, σε αντίθεση με άλλα προγράμματα ανοιχτού κώδικα ASR, έχει καλή υποστηρίξη και για Windows, πράγμα που οφείλεται σε μεγάλο βαθμό από το γεγονός ότι είναι γραμμένο σε Java. 1.3.2 HTK Το HTK είναι ένα εργαλείο λογισμικού για την κατασκευή και τον χειρισμό συστημάτων που χρησιμοποιούν μοντέλα Markov με συνεχή πυκνότητα που έχουν αναπτυχθεί από την ομάδα Speech στο τμήμα Μηχανικών του Πανεπιστημίου του Cambridge. Το HTK έχει σχεδιαστεί ώστε να είναι αρκετά ευέλικτο ώστε να υποστηρίζει τόσο την έρευνα όσο και την ανάπτυξη των συστημάτων HMM και επίσης να παρέχει μια πλατφόρμα για αξιολογήσεις αναφοράς (benchmarks). Μπορεί να χρησιμοποιηθεί για να εκτελέσει ένα ευρύ φάσμα εργασιών, συμπεριλαμβανομένης της απομόνωσης ή της συνδεδεμένης αναγνώρισης ομιλίας χρησιμοποιώντας μοντέλα που βασίζονται σε ολόκληρες μονάδες λέξεων ή υπο-λέξεων. Το HTK περιλαμβάνει μια βιβλιοθήκη λογισμικού καθώς και διάφορα εργαλεία (προγράμματα) που εκτελούν εργασίες όπως κωδικοποίηση δεδομένων, διάφορα στυλ εκπαίδευσης HMM, συμπεριλαμβανομένης της ενσωματωμένης επανεκτίμησης Baum-Welch, αποκωδικοποίησης Viterbi, ανάλυσης αποτελεσμάτων και επεξεργασίας HMM defitinions. Το HTK είναι πρωτίστως ένα εργαλείο για την κατασκευή κρυφών μοντέλων μαρκόβ (HMM) 4. Τα μοντέλα HMM μπορούν να χρησιμοποιηθούν για να μοντελοποιήσουν μια τυχαία χρονική σειρά και η βαση του HTK στηρίζεται σε αυτό. Ωστόσο, το HTK είναι πρωτίστως σχεδιασμένο για την κατασκευή εργαλείων επεξεργασίας λόγου βασισμένων σε HMM, ιδιαίτερα αναγνωριστών (recognisers). Έτσι, μεγάλο μέρος της υποδομής στο HTK είναι αφιερωμένο σε αυτό το έργο. Το Kaldi σε μεγάλο βαθμό μοιράζεται κώδικα με το HTK. Πολλοί από τους developers του Kaldi ξεκίνησαν αρχικά να δουλεύουν με το HTK και να κατασκευάζουν ολοκληρωμένα συστήματα αναγνώρισης ομιλίας βασισμένα σε αυτό. Ωστόσο, σε αρκετά σημεία βρήκαν το HTK αρκετά περιοριστικό και για αυτό τροποποίησαν κομμάτια του κώδικα ώστε να είναι πιο γενικευμένα και να μπορούν να χρησιμοποιηθούν σε συνδυασμό με άλλα προγράμματα. Μετά από κάποιο σημείο συνειδητοποίησαν ότι οι αλλαγές που έκαναν είναι πολλές και σημαντικές οπότε πήραν την απόφαση να τις αποκαλύψουν στο κοινό υπό ένα κοινό όνομα, Kaldi. 14
Κεφάλαιο 2 Μέθοδοι Και Αλγόριθμοι Αναγνώρισης Ομιλίας Στο κεφάλαιο αυτό θα γίνει αναφορά σε αρκετές μεθόδους που χρησιμοποιούνται σήμερα σε συστήματα αναγνώρισης ομιλίας. Αρχικά, θα αναφερθούν μερικές βασικές έννοιες που είναι απαραίτητες για την κατανόηση των παραπάνω και στη συνέχεια θα γίνει αναλυτικότερη περιγραφή της διαδικασίας που ακολουθείται για να συνδυαστούν όλα τα απαραίτητα δεδομένα και να ληφθεί ένα ολοκληρωμένο σύστημα αυτόματης αναγνώρισης ομιλίας. 15
2.1 Διαδικασία Αυτόματης Αναγνώρισης Ομιλίας Ο στόχος της αυτόματης αναγνώρισης ομιλίας στην απλούστερη του μορφή είναι η εξαγωγή γλωσσικών πληροφοριών από ένα ψηφιακό αρχείο ήχου. Ένα τυπικό τέτοιο αρχείο δεν περιέχει εν γένει κάποια πληροφορία που είναι άμεσα χρήσιμη για την διάκριση λέξεων ή φράσεων. Μπορεί να γίνει κάποια επιφανειακή ανάλυση της έντασης ή του συχνοτικού περιεχομένου όμως αυτά, δεν αρκούν για την αναγνώριση των ζητούμενων πληροφοριών. Για να επιτευχθεί ο στόχος, απαιτούνται πολλά ενδιάμεσα βήματα. Τα βασικά συστατικά ενός συστήματος αναγνώρισης ομιλίας απεικονίζονται στο σχήμα 2.1 5. Σχήμα 2.1: Αρχιτεκτονική ενός Συστήματος ASR Βασισμένο σε HMM Η κυματομορφή εισόδου από ένα μικρόφωνο μετατρέπεται σε μια σειρά από ακουστικά διανύσματα Y = y 1,..., y T σε μια διαδικασία που ονομάζεται εξαγωγή χαρακτηριστικών. Ο αποκωδικοποιητής στη συνέχεια επιχειρεί να βρει την ακολουθία από λέξεις W = w 1,..., w K που είναι πιθανότερο να έχει παράξει το Y, δηλαδή το: ŵ = arg max{p (w Y )} (2.1) w Ωστόσο επειδή το P (w Y ) είναι δύσκολο να μοντελοποιηθεί, χρησιμοποιείται ο νόμος του Bayes για να μετασχηματίσει την παραπάνω εξίσωση στο ισοδύναμο πρόβλημα: ŵ = arg max{p (Y w)p (w)} (2.2) w Η πιθανότητα P (w) υπολογίζεται από το γλωσσικό μοντέλο, ενώ για τον υπολογισμό του P (Y w) απαιτείται ένα ακουστικό μοντέλο. Η βασική μονάδα ήχου που αναπαρίσταται από το ακουστικό μοντέλο ονομάζεται φώνημα. Η αγγλική γλώσσα απαιτεί περίπου 40 τέτοια φωνήματα, ενώ η ελληνική περίπου 30. Για οποιαδήποτε λέξη w, το αντίστοιχο ακουστικό μοντέλο δημιουργείται συνθέτοντας μοντέλα μεμονωμένων φωνημάτων για να σχηματίσουν λέξεις όπως αυτές ορίζονται στο λεξικό 16
προφορών. Οι παράμετροι των μοντέλων φωνημάτων εκτιμώνται από το σύνολο δεδομένων εκπαίδευσης, το οποίο αποτελείται από κυματομορφές ομιλίας και τις αντίστοιχες μεταγραφές τους (transcription). Το γλωσσικό μοντέλο είναι τυπικά της μορφής Ν-gram, στο οποίο η πιθανότητα μιας λέξης εξαρτάται από τις Ν-1 προηγούμενες. Επομένως, συνοπτικά τα βήματα είναι: Χωρισμός του αρχείου ήχου σε πολλά μικρότερα κομμάτια (frames). Εξαγωγή χαρακτηριστικών από το αρχείο ήχου (MFCC είναι το πιο κοινό). Αναγνώριση φωνημάτων χρησιμοποιώντας το ακουστικό μοντέλο Εύρεση των πιθανών λέξεων που σχηματίζονται από τα φωνήματα που αναγνωρίστηκαν (πχ όμως, ώμος ακούγονται το ίδιο. Και οι δυο θα ήταν υποψήφιες για την ίδια σειρά φωνημάτων). Επιλέγεται η πιο πιθανή λέξη με βάση τα συμφραζόμενα (context). Ενώνονται όλα μαζί και λαμβάνεται το τελικό αποτέλεσμα. Στις ακόλουθες ενότητες θα παρουσιαστούν αναλυτικά όλα οι επιμέρους μαθηματικές έννοιες που απαιτούνται για την κατανόηση της διαδικασίας αυτής. 17
2.2 Mel Frequency Cepstral Coefficients Ένα από τα σημαντικότερα βήματα σε οποιοδήποτε σύστημα αυτόματης αναγνώρισης ομιλίας είναι η εξαγωγή χαρακτηριστικών που βοηθούν στην εξακρίβωση των γλωσσικών περιεχομένων του ήχου και η απόρριψη όλων των υπολοίπων, που περιέχουν θόρυβο περιβάλλοντος, συναίσθημα κλπ. Το κύριο πράγμα που πρέπει να έχει κανείς υπόψη για την ανθρώπινη ομιλία είναι ότι οι ήχοι που παράγονται από τους ανθρώπους φιλτράρονται από το σχήμα της φωνητικής οδού του καθενός, που περιλαμβάνει τη γλώσσα, τα δόντια κλπ. Αυτό το σχήμα καθορίζει την τελική μορφή του ήχου που παράγεται. Εάν προσδιοριστούν τα χαρακτηριστικά της φωνητική οδού με ακρίβεια, αυτό επιτρέπει την εξακρίβωση του φωνήματος που προφέρεται. Οι Mel Frequency Cepstral Coefficients (MFCC) είναι ένα ευρέως χρησιμοποιημένο χαρακτηριστικό ηχητικού σήματος στην αναγνώριση ομιλίας. Εισήχθηκαν από τους Davis και Mermelstein κατά την δεκαετία του 1980 και έχουν παραμείνει σημαντικά έως και σήμερα. Η ενότητα αυτή θα παρουσιάσει τα βασικά χαρακτηριστικά των MFCC, γιατί είναι χρήσιμα στην αναγνώριση ομιλίας και πως υλοποιούνται. Πολύ συνοπτικά, τα βήματα που ακολουθούνται για την εξαγωγή των χαρακτηριστικών αυτών είναι τα εξής: 1. Χωρίζουμε το σήμα σε μικρά πλαίσια. 2. Για κάθε πλαίσιο, υπολογίζουμε την εκτίμηση της φασματικής πυκνότητας ισχύος. 3. Εφαρμόζουμε πάνω της την τράπεζα φίλτρων Mel και υπολογίζουμε το άθροισμα ενέργειας για κάθε φίλτρο. 4. Λογαριθμίζουμε τα αθροίσματα. 5. Υπολογίζουμε DCT του διανύσματος λογαρίθμων. 6. Κρατάμε τις τιμές 2-13, απορρίπτουμε τις υπόλοιπες. Αυτή είναι η βασική διαδικασία. Σε μερικές περιπτώσεις εφαρμόζεται και περαιτέρω επεξεργασία, όπως υπολογισμός συντελεστών δέλτα, δέλτα-δέλτα και liftering του τελικού διανύσματος. Θα περιγραφούν με περισσότερη λεπτομέρεια παρακάτω. Η διαδικασία αυτή φαίνεται και στο παρακάτω μπλοκ διάγραμμα: 18
Σχήμα 2.2: Μπλοκ Διάγραμμα Διαδικασίας Υπολογισμού MFCC Η Κλίμακα Mel Η συχνότητα ενός ηχητικού κύματος μετριέται τυπικά σε Hertz, μια μονάδα που υποδεικνύει πόσες ολόκληρες ταλαντώσεις πραγματοποιεί σε 1 δευτερόλεπτο. Η συχνότητα σχετίζεται με τον τόνο της φωνής, όσον αφορά την ανθρώπινη ακοή. Όμως, η κλίμακα Hertz δεν είναι ιδανική εάν μιλάμε για τόνο φωνής, καθώς το ανθρώπινο αυτί είναι πολυ πιο ευαίσθητο σε αλλαγές στις χαμηλές συχνότητες παρά στις υψηλές. Δηλαδή μια γραμμική μεταβολή σε Hertz, δεν αντιστοιχεί σε αντίστοιχη μεταβολή στην ανθρώπινη αντίληψη. Για αυτό το λόγο επινοήθηκε η κλίμακα Mel. Είναι ένας μετασχηματισμός των Hertz, στον οποίο μια μεταβολή σε Mel αντιστοιχεί σε παρόμοια μεταβολή στην ανθρώπινη αντίληψη. Για να μετατρέψουμε Hertz σε Mel, χρησιμοποιείται ο εξής τύπος: Και η αντίστροφη διαδικασία: m = 1125ln(1 + f/700) (2.3) f = 700(e m/1125 + 1) (2.4) Γιατί Τα Κάνουμε Αυτά Θα προχωρήσουμε λίγο πιο αργά τώρα και θα δούμε για ποιo λόγο κάθε ένα από αυτά τα βήματα είναι απαραίτητο. Ένα ηχητικό σήμα είναι διαρκώς μεταβαλλόμενο, οπότε για λόγους απλότητας θεωρούμε ότι για μικρές χρονικές διάρκειες, το σήμα δεν αλλάζει (εννοώντας ότι τα στατιστικά χαρακτηριστικά του είναι αμετάβλητα, ότι είναι δηλαδή στατιστικά στάσιμο, προφανώς τα δείγματα αλλάζουν ακόμα και σε μικρά χρονικά διαστήματα). Για αυτό το λόγο χωρίζουμε το σήμα σε πλαίσια διάρκειας 20-40ms. Αν ήταν μικρότερα, τότε δεν θα είχαμε αρκετά δείγματα για να 19
πάρουμε μια ικανοποιητική εκτίμηση του φάσματος, ενώ αν ήταν μεγαλύτερα, τα στατιστικά χαρακτηριστικά του σήματος θα άλλαζαν κατά τη διάρκεια του πλαισίου, και η παραδοχή που αναφέρθηκε προηγουμένως δεν θα ίσχυε. Το επόμενο βήμα είναι να υπολογίσουμε την φασματική πυκνότητα ισχύος (προσεγγιστικά), ώστε να διαπιστώσουμε πόση ενέργεια υπάρχει σε κάθε περιοχή συχνοτήτων. Η πληροφορία αυτή μας είναι χρήσιμη, καθώς έχει άμεση σχέση με το πως αντιλαμβάνεται τον ήχο το ανθρώπινο αυτί. Ο κοχλίας, ένα όργανο στο εσωτερικό του αυτιού, δονείται σε συγκεκριμένα σημεία ανάλογα με τον ήχο που φτάνει στο αυτί, και οι δονήσεις αυτές στέλνουν σήμα στον εγκέφαλο που τον ενημερώνουν ποιες συχνότητες περιέχονται μέσα σε αυτόν. Η προσέγγιση μας κάνει μια παρόμοια δουλειά, διακρίνει δηλαδή ποιες συχνότητες υπάρχουν μέσα στο σήμα. Όμως, περιέχει επίσης και αρκετές πληροφορίες που δεν είναι απαραίτητες για αυτόματη αναγνώριση ομιλίας. Συγκεκριμένα, το ανθρώπινο αυτί δε μπορεί να διακρίνει την διαφορά ανάμεσα σε δυο πολύ κοντινές συχνότητες, πράγμα που ισχύει σε ακόμα μεγαλύτερο βαθμό για τις υψηλές συχνότητες. Για αυτό το λόγο, χωρίζουμε το φάσμα σε περιοχές και παίρνουμε το άθροισμα εντάσεων της κάθε περιοχής για να πάρουμε μια ιδέα για την ενέργεια που περιέχεται σε περιοχές συχνοτήτων, όχι για κάθε μια ξεχωριστά. Αυτό πετυχαίνεται χρησιμοποιώντας μια τράπεζα φίλτρων Mel: to πρώτο φίλρο είναι πολύ στενό και μας υποδεικνύει πόση ενέργεια υπάρχει γύρω από τα 0 Hz. Καθώς αυξάνεται η συχνότητα, τα φίλτρα αποκτούν όλο και περισσότερο πλάτος, εκεί δηλαδή που δεν μας απασχολούν και τόσο οι μικρές αλλαγές. Εν τέλει, αναγκαστικά θα χρησιμοποιήσουμε Hertz, όμως η κλίμακα Mel μας δείχνει με ποιό τρόπο να τοποθετήσουμε τα φίλτρα μας ώστε να δώσουν το καλύτερο αποτέλεσμα. Μόλις υπολογίσουμε τις ενέργειες ανά Mel περιοχή, τις λογαριθμίζουμε. Αυτό, και πάλι, γιατί το ανθρώπινο αυτί αντιλαμβάνεται την ένταση του ήχου με λογαριθμικό τρόπο (ενδεικτικά, για να καταλάβει το αυτί την παραμικρή διαφορά έντασης ανάμεσα σε δυο ήχους, ο ένας πρέπει να είναι διπλάσιος του άλλου). Δηλαδή, έπειτα από τη λογαρίθμιση οι τιμές της ενέργειας θα μοιάζουν πολύ περισσότερο με αυτό που αντιλαμβάνεται ο άνθρωπος, παρά αυστηρά την ατμοσφαιρική πίεση που υπάρχει στον αέρα. Το τελικό βήμα είναι να υπολογιστεί ο διακριτός μετασχηματισμός συνημιτόνου των λογαριθμημένων ενεργειών. Καθώς τα φίλτρα επικαλύπτονται, οι ενέργειες που υπολογίσαμε σχετίζονται μεταξύ τους. Ο μετασχηματισμός αυτός αφαιρεί την συσχέτιση αυτή που σημαίνει ότι πλέον διαγώνιοι πίνακες ετεροσυσχέτισης μπορούν να χρησιμοποιηθούν για την μοντελοποίηση των χαρακτηριστικών, όπως για παράδειγμα σε ένα σύστημα που χρησιμοποιεί Hidden Markov Models. Όμως, κρατάμε 12 στοιχεία από τα 26 συνολικά. Αυτό συμβαίνει διότι οι υψηλότεροι συντελεστές DCT αντιπροσωπεύουν πολύ γρήγορες εναλλαγές σε ενέργειες περιοχών και έπειτα από έρευνα διαπιστώθηκε ότι αυτές οι γρήγορες αλλαγές υποβιβάζουν την συμπεριφορά συστημάτων αναγνώρισης ομιλίας και για αυτό το λόγο απορρίπτονται. Βήματα Αλγορίθμου Δεδομένου πεπερασμένου αναλογικού ηχητικού σήματος s(t), ακολουθούμε την εξής διαδικασία για την εξαγωγή των MFCC: 20
1. Το μετατρέπουμε σε ψηφιακό με συχνότητα δειγματοληψίας που επιλέγεται ανάλογα με την περίπτωση. Στο παράδειγμα αυτό θεωρείται ότι το σήμα είναι δειγματοληπτημένο στα 16kHz. Εννοείται γίνεται και κβαντισμός των τιμών του αλλά δε θα μας απασχολήσει αυτό. Θα αναφερόμαστε στο ψηφιοποιημένο σήμα ως s(n). 2. Το χωρίζουμε σε πλαίσια (frames) διάρκειας 20-40 ms. 25ms είναι το τυπικό. Η απόσταση μεταξύ πλαισίων είναι συνήθως 10ms, που σημαίνει ότι υπάρχει κάποια επικάλυψη των κοντινών, η οποία δεν μας πειράζει. Για παράδειγμα, το πρώτο πλαίσιο θα είναι 0-25ms του σήματος, το δεύτερο θα είναι 10-35ms του σήματος, κ.ο.κ. Εάν το σήμα δε μπορεί να χωριστεί σε άρτιο αριθμό δειγμάτων, τότε το επεκτείνουμε με μηδενικά στο τέλος ώστε να γίνεται. Δεδομένου διάρκειας πλαισίου 25ms, προκύπτει ότι το κάθε πλαίσιο θα περιέχει 0.025 * 16000 = 400 δείγματα. Στα πλαίσια θα αναφερόμαστε με τον συμβολισμό s i (n), όπου i ο αριθμός του πλαισίου και n ο αριθμός του δείγματος, με τιμές από [1-400]. 3. Υπολογίζουμε τον διακριτό μετασχηματισμό Fourier για κάθε frame, στον οποίο θα αναφερόμαστε ως S i (k), με τον τύπο: N S i (k) = s i (n)h(n)e j2πkn/n, n=1 1 k K όπου h(n) είναι ένα hamming window με Ν στοιχεία. Τυπικά, χρησιμοποιούμε 512 στοιχεία για Fourier, δηλαδή K = 512, δηλαδή χρειάζεται αντίστοιχη επέκταση με μηδενικά σε κάθε frame. Τώρα, υπολογίζουμε το: P i (k) = 1 N S i(k) 2 όπου P i (k) είναι μια εκτίμηση της πυκνότητας ισχύος. Τυπικά, από τα 512 δείγματα του Fourier, κρατάμε τα 257 πρώτα από το φάσμα ισχύος. 4. Υπολογίζεται η Mel τράπεζα φίλτρων. Πρόκειται για ένα σύνολο τριγωνικών φίλτρων (20-40 φίλτρα συνολικά, 26 είναι το τυπικό) η οποία εφαρμόζεται στην εκτίμηση του φάσματος ισχύος από το προηγούμενο βήμα. Η τράπεζα αυτή είναι ουσιαστικά 26 διανύσματα με 257 στοιχεία το καθένα. Το κάθε ένα από αυτά είναι κατά κύριο λόγο μηδενικό, αλλά είναι μή-μηδενικό σε μια συγκεκριμένη περιοχή συχνοτήτων (δειγμάτων). Αργότερα θα παρουσιαστεί αναλυτική μεθοδολογία υπολογισμού αυτών των φίλτρων. Προς το παρόν, θεωρούμε πως υπολογίστηκαν και προχωράμε παρακάτω. Τα 26 διανύσματα που έχουμε τα πολλαπλασιάζουμε με το P i (k) και στο τέλος υπολογίζουμε το άθροισμα των τιμών του καθενός. Στο τέλος, θα καταλήξουμε με ένα μόνο διάνυσμα 26 τιμών που το καθένα θα περιέχει το άθροισμα του γινομένου του αντίστοιχου φίλτρου με το P i (k). Στην επόμενη ενότητα παρουσιάζεται η αναλυτική μεθοδολογία υπολογισμού της τράπεζας φίλτρων. Ένα σχήμα που ίσως ξεκαθαρίσει την διαδικασία αυτού του βήματος: 21
Σχήμα 2.3: Μια Ενδεικτική Τράπεζα Mel Φίλτρων 5. Παίρνουμε το λογάριθμο του διανύσματος με τα αθροίσματα. 6. Υπολογίζουμε τον διακριτό μετασχηματισμό συνημιτόνου (DCT) επάνω στους λογαρίθμους, το αποτέλεσμα είναι και αυτό ένα διάνυσμα 26 τιμών. 7. Οι MFCC είναι οι τιμές 2 έως 13 του διανύσματος με τις τιμές του DCT. Επομένως, οι MFCC είναι 12 αριθμοί που σχετίζονται με κάθε πλαίσιο του ηχητικού σήματος και μας δίνουν χρήσιμες πληροφορίες για τα περιεχόμενα του. Προφανώς, όσα είναι τα πλαίσια στα οποία χωρίστηκε το ηχητικό σήμα, τόσα θα είναι και τα διανύσματα MFCC, με 12 στοιχεία το καθένα. Υπολογισμός Των Φίλτρων Mel Σε αυτή την ενότητα παρουσιάζεται ένα απλουστευμένο παράδειγμα υπολογισμού τράπεζας φίλτρων Mel, όπου υπολογίζονται 10 φίλτρα για ευκολία παρουσίασης. Στην πραγματικότητα χρησιμοποιούνται 26 ή και περισσότερα, όπως αναφέρθηκε παραπάνω. 22
Για να πάρουμε την τράπεζα φίλτρων που φαίνεται στο σχήμα 2.3, πρέπει να ορίσουμε άνω και κάτω όριο συχνότητας (σε Hertz). Για κάτω όριο μια καλή τιμή είναι 100-300 Hz και το άνω όριο θα εξαρτάται συνήθως από την συχνότητα δειγματοληψίας (βλ. θεωρία Nyquist). Αν το σήμα είναι δειγματοληπτημένο στα 8kHz, τότε η ανώτερη συχνότητα που μπορεί να απεικονιστεί είναι 4kHz, αν είναι δειγματοληπτημένο στα 16kHz τότε θα είναι τα 8kHz κ.ο.κ. Στο παράδειγμα που ακολουθεί θεωρούμε κάτω συχνότητα τα 300Hz και άνω συχνότητα τα 8kHz. 1. Χρησιμοποιώντας την εξίσωση 2.3, μετατρέπουμε την άνω και κάτω συχνότητα από Hertz σε Mel. Εδώ θα είναι: 300Hz γίνονται 401.25Mel και 8000Hz γίνονται 2834.99Mel. 2. Σε αυτό το παράδειγμα θα δημιουργήσουμε 10 φίλτρα για τα οποία χρειαζόμαστε 12 σημεία. Οπότε, στην κλίμακα Mel δημιουργούμε 12 σημεία, με αρχή το 401.25 και τέλος το 2834.99 που ισαπέχουν μεταξύ τους. Σε περιβάλλον GNU Octave, αυτό γίνεται ως εξής: mel = l i n s p a c e ( 4 0 1. 2 5, 2 8 3 4. 9 9, 1 2 ) mel = 401.25 622.50 843.75 1065.00 1286.25 1507.50 1728.74 1949.99 2171.24 2392.49 2613.74 2834.99 3. Τώρα χρησιμοποιούμε την εξίσωση 2 για να τα μετατρέψουμε σε Hertz: f = 700*( exp ( mel /1125) 1 ) f = 299.99 517.33 781.90 1103.97 1496.04 1973.32 2554.33 3261.62 4122.63 5170.76 6446.70 7999.94 Η αρχική και τελική συχνότητα είναι ακριβώς αυτές που θέλαμε και ότι τα ενδιάμεσα σημεία δεν έχουν ίση απόσταση μεταξύ τους, όπως στην κλίμακα Mel. 4. Όταν όμως ασχολούμαστε με μεμονωμένα frame, δεν έχουμε την απαραίτητη ανάλυση συχνότητας ώστε να τοποθετήσουμε τα φίλτρα σε αυτά ακριβώς τα σημεία, επομένως πρέπει να τα στρογγυλοποιήσουμε προς τα κάτω ώστε να χωράνε στο κοντινότερο FFT bin. Για να το κάνουμε αυτό, πρέπει να γνωρίζουμε το μέγεθος του FFT και το samplerate. f = f l o o r ( ( n f f t +1)* f / samplerate ) To όποίο μας δίνει την εξής ακολουθία: f = 9 16 25 35 47 63 81 104 132 165 206 256 Βλέπουμε ότι το τελευταίο φίλτρο σταματάει στην τιμή 256, η οποία αντιστοιχεί στα 8kHz, δεδομένου 16kHz samplerate και 512 point FFT. 23
5. Τώρα υπολογίζουμε τα φίλτρα. Το πρώτο φίλτρο ξεκινάει από το πρώτο σημέιο, φτάνει το μέγιστο του στο δεύτερο σημείο και ξαναμηδενίζεται στο τρίτο σημείο. Το δεύτερο φίλτρο ξεκινάει απο το δεύτερο σημείο, φτάνει το μέγιστο του στο τρίτο σημείο και ξαναμηδενίζεται στο τέραρτο σημείο κ.ο.κ. Ο τύπος με βάση τον οποίο υπολογίζονται οι τιμές είναι ο εξής: Σχήμα 2.4: Τύπος Υπολογισμού Φίλτρων Mel όπου M είναι ο αριθμός των φίλτρων που θέλουμε, και f() είναι η λίστα με M + 2 συχνότητες που ισαπέχουν σε Mel κλίμακα. Μια ενδεικτική τράπεζα 10 Mel φίλτρων: Σχήμα 2.5: Τράπεζα 10 Mel Φίλτρων Παραλλαγές Στους Υπολογισμούς Με την διαδικασία που περιγράφηκε παραπάνω, κάθε frame του σήματος θα έχει ένα διάνυσμα μήκους 12 ή 13 (ανάλογα με πόσους συντελεστές του DCT κρατήσουμε, εξαρτάται από την περίπτωση) και θα περιέχει μόνο πληροφορίες για το ίδιο το frame. Σε μερικές περιπτώσεις, έχει διαπιστωθεί ότι βελτιώνεται η απόδοση των αλγορίθμων αναγνώρισης ομιλίας αν επεκταθούν τα feature vectors ώστε να συμπεριλαμβάνουν πληροφορία και από γειτονικά frames, τυπικά το αμέσως επόμενο και το αμέσως προηγούμενο. Αυτό γίνεται υπολογίζοντας 24
τους συντελεστές Δέλτα και Δέλτα Δέλτα. Αν ένα feature vector ενός frame i ονομάζεται c i, τότε τα διανύσματα αυτά είναι: c i = c i+1 c i 1 c i = c i+1 c i 1 και μπορούμε έτσι να επεκτείνουμε το διάνυσμα του frame i: c i = [c i c i c i ] Η διαδικασία αυτή έχει δώσει καλά αποτελέσματα σε πολλές περιπτώσεις. Είναι πάνω στην κρίση του κάθε σχεδιαστή συστήματος κατά πόσο θα χρησιμοποιηθούν. Άλλες παραλλαγές είναι η προσθήκη της συνολικής ενέργειας του frame στο διάνυσμα, πραγματοποίηση cepstral mean normalization και υπολογισμός των φίλτρων χρησιμοποιώντας την κλίμακα bark αντί για mel. Υλοποιήσεις Μια υλοποίηση σε γλώσσα Python υπάρχει στο link. Υπάρχουν επίσης υλοποιήσεις σε περιβάλλον Matlab και σε γλώσσα C 25
2.3 Hidden Markov Models Τα Κρυφά Μοντέλα Μαρκόβ (Hidden Markov Models - HMM) είναι ένα ισχυρό στατιστικό εργαλείο που χρησιμεύει στην μοντελοποίηση συστημάτων τα οποία χαρακτηρίζονται από μία διαδικασία που παράγει μία αισθητή ακολουθία 6. Τα Κρυφά Μοντέλα Μαρκόβ εφαρμόζονται σε πολλά πεδία ενδιαφέροντος στην επεξεργασία σήματος και ειδικά στην ανάλυση ομιλίας. Πιο συγκεκριμένα, έχουν επιτυχή εφαρμογή σε χαμηλού επιπέδου διεργασίες της Επεξεργασίας Φυσικής Γλώσσας (Natural Language Processing-NLP), όπως στην επισήμανση μέρος-του-λόγου (part-of-speech tagging), στην κατάτμηση φράσης (phrase chunking) και στην εξαγωγή πληροφοριών από έγγραφα. Η Μαρκοβιανή θεωρία πήρε το όνομά της από τον Andrei Markov στις αρχές του 20ου αιώνα, αλλά η θεωρία των Κρυφών Μαρκοβιανών Μοντέλων στην πραγματικότητα αναπτύχθηκε από τον Baum και τους συνεργάτες του στην δεκαετία του 1960. Μαρκοβιανές Αλυσίδες: Στο Σχήμα 2.6 παρουσιάζεται μια Αλυσίδα Μαρκόβ. Το συγκεκριμένο σχήμα περιγράφει ένα απλό μοντέλο για ένα χρηματιστηριακό δείκτη. Έχει 3 καταστάσεις (Bull, Bear, Even) και 3 δείκτες παρατήρησης (πάνω, κάτω, αμετάβλητο). Το μοντέλο είναι μια μηχανή περιορισμένων καταστάσεων (finite state automaton) με πιθανοτικές μεταβάσεις ανάμεσα σε καταστάσεις (states). Δεδομένης μιας ακολουθίας παρατηρήσεων (observations), για παράδειγμα πάνω-κάτω-κάτω, μπορούμε εύκολα να επαληθεύσουμε ότι η σειρά καταστάσεων που παρήγαγε αυτές τις παρατηρήσεις ήταν η: Bull-Bear-Bear και η πιθανότητα αυτής της ακολουθίας παρατηρήσεων είναι απλά το γινόμενο των βαρών των μεταβάσεων, δηλαδή 0.2 0.3 0.3. Σχήμα 2.6: Παράδειγμα Μαρκοβιανής Αλυσίδας Κρυφά Μοντέλα Μαρκόβ: Στο Σχήμα 2.7 παρουσιάζεται ένας τρόπος με τον οποίο θα μπορούσε η προηγούμενη Αλυσίδα Μαρκόβ να επεκταθεί σε Κρυφό Μοντέλο Μαρκόβ. Το 26
καινούριο μοντέλο τώρα επιτρέπει όλα τα σύμβολα παρατήρησης να αποχωριστούν από κάθε κατάσταση με συγκεκριμένη πιθανότητα. Αυτή η αλλαγή κάνει το μοντέλο περισσότερο εκφραστικό, και ικανό να αναπαραστήσει σε μεγαλύτερο βαθμό την διαίσθηση μας. Εδώ, για παράδειγμα, ότι μια Bull αγορά θα έχει και καλές και κακές μέρες, αλλά οι καλές θα είναι περισσότερες. Η κρίσιμη διαφορά με την αλυσίδα είναι ότι τώρα αν λάβουμε την ακολουθία up-down-down, δεν μπορούμε πλέον να υπολογίσουμε με απόλυτη σιγουριά από ποια ακολουθία καταστάσεων προήλθε, άρα αυτή μπορεί να χαρακτηριστεί κρυφή. Ωστόσο, μπορούμε να υπολογίσουμε όλες τις ακολουθίες καταστάσεων που μπορεί να έδωσαν τις παρατηρήσεις με αυτή τη σειρά, καθώς και την πιθανότητα της κάθε μιας. Στη συνέχεια, περιγράφονται οι πιο συχνοί υπολογισμοί που επιθυμούμε να κάνουμε πάνω σε ένα ΚΜΜ. Σχήμα 2.7: Παράδειγμα Κρυφού Μοντέλου Μαρκόβ 2.3.1 Ορισμός Ο τυπικός ορισμός του HMM έχει ως εξής: λ = (A, B, π) (2.5) S είναι το σύνολο των καταστάσεων, και V το σύνολο των παρατηρήσεων, δηλαδή: S = (s 1, s 2,..., s N ) (2.6) V = (v 1, v 2,..., v N ) (2.7) 27
Ορίζουμε Q ως μια σταθερή ακολουθία καταστάσεων μήκους T, και μια αντίστοιχη ακολουθία παρατηρήσεων O: Q = (q 1, q 2,..., q T ) (2.8) O = (o 1, o 2,..., o T ) (2.9) είναι ένας πίνακας μετάβασης, περιέχει την πιθανότητα της κατάστασης i, που ακολουθείται από την κατάσταση i. Τονίζεται ότι οι πιθανότητες μετάβασης είναι ανεξάρτητες του χρόνου t: A = [a ij ], a ij = P (q t = s j q t 1 = s i ). (2.10) B είναι ο πίνακας παρατηρήσεων, περιέχει την πιθανότητα της παρατήρησης k να έχει παραχθεί από την κατάσταση j, ανεξαρτήτως του t: π είναι ο αρχικός πίνακας πιθανοτήτων: B = [b i (K)], b i (k) = P (x t = v k q t = s i ). (2.11) π = [π i ], π i = P (q 1 = s i ). (2.12) Το μοντέλο αυτό κάνει 2 υποθέσεις. Η πρώτη, που ονομάζεται Μαρκοβιανή υπόθεση (Markov assumption), δηλώνει ότι η παρούσα κατάσταση εξαρτάται μόνο από την αμέσως προηγούμενη. Αυτό εκπροσωπεί την μνήμη του μοντέλου: P (q t q t 1 1 ) = P (q t q t 1 ) (2.13) Η υπόθεση ανεξαρτησίας δηλώνει ότι η παρατήρηση την στιγμή t εξαρτάται μόνο από την παρούσα κατάσταση, είναι ανεξάρτητη από όλες τις προηγούμενες καταστάσεις και παρατηρήσεις: 2.3.2 Αξιολόγηση P (o t o t 1 1, q t 1) = P (o t q t ) (2.14) Δεδομένου ενός HMM και μιας ακολουθίας παρατηρήσεων, επιθυμούμε τον υπολογισμό του P (O λ), την πιθανότητα της ακολουθίας σύμφωνα με αυτό το δοσμένο μοντέλο. Το πρόβλημα μπορεί επίσης να χαρακτηριστεί και ως αξιολόγηση της ικανότητας ενός μοντέλου να προβλέψει μια ακολουθία παρατηρήσεων. Η πιθανότητα των παρατηρήσεων O για μια συγκεκριμένη ακολουθία Q είναι: P (O Q, λ) = T P (o t q t, λ) = b q1 (o 1 ) b q2 (o 2 )...b qt (o 2 ) (2.15) t=1 28
και η πιθανότητα της ακολουθίας καταστάσεων είναι: P (Q λ) = π q1 a q1q2 a q2q3...a qt 1qT (2.16) ώστε να μπορούμε να υπολογίσουμε την πιθανότητα των παρατηρήσεων ως εξής: P (O λ) = Q P (O Q, λ)p (Q λ) = q1...qt π q1 b q1 (o 1 )a q1q2 b q2 (o 2 )...a qt 1qT b qt (o T ) (2.17) Αυτό το αποτέλεσμα επιτρέπει την αξιολόγηση της πιθανότητας του O, όμως το να γίνει αυτό άμεσα θα ήταν δύσκολο, καθώς η πολυπλοκότητα αυξάνεται εκθετικά με το Τ. Μια καλύτερη προσέγγιση είναι να αναγνωριστεί ότι πολλοί περιττοί (επαναλαμβανόμενοι) υπολογισμοί θα πραγματοποιούνται με την παραπάνω εξίσωση και επομένως αποθηκεύοντας τα ενδιάμεσα αποτελέσματα σε cache οδηγούν σε μείωση πολυπλοκότητας. 2.3.3 Αναγνώριση Και Εκπαίδευση Στο στάδιο της αναγνώρισης, υποθέτουμε ότι έχουμε στην διάθεση μας περισσότερα του ενός HMM, κάθε ένα εκ των οποίων περιγράφεται από ένα διαφορετικό σύνολο παραμέτρων. Προφανώς, κάθε HMM μοντελοποιεί μία διαφορετική στάσιμη κατά τμήματα διεργασία. Για παράδειγμα, ένα HMM μπορεί να μοντελοποιεί μία διεργασία δύο πηγών εκπομπής παρατηρήσεων, μία Gaussian και μία εκθετική x 2 (δύο καταστάσεις), ενώ ένα άλλο HMM αντιστοιχεί σε μία διεργασία τριών πηγών, πχ. Τριών Gaussians πηγών με διαφορετικές μέσες τιμές και μητρώα συνδιασποράς. Κατά την φάση της αναγνώρισης, ο στόχος είναι ο ακόλουθος: με δεδομένη μία ακολουθία παρατηρήσεων και ένα πλήθος Μ από HMM (κάθε ένα εκ των οποίων μοντελοποιεί διαφορετική διεργασία), να αποφασιστεί ποιο από τα ΗΜΜ είναι περισσότερο πιθανό να εκπέμψει την συγκεκριμένη ακολουθία παρατηρήσεων. Δύο μέθοδοι που δίνουν λύση σε αυτό το πρόβλημα είναι η μέθοδος Baum-Welch (γνωστή και ως μέθοδος οποιασδήποτε διαδρομής any path method) και η μέθοδος Viterbi (ή μέθοδος καλύτερης διαδρομής best path method). Οι δύο αυτές μέθοδοι υπολογίζουν, για κάθε ΗΜΜ, ένα αποτέλεσμα (score) που βασίζεται σε πιθανότητες. Το ΗΜΜ που γεννά το μέγιστο σκορ θεωρείται ως το πιο πιθανό να έχει εκπέμψει τη συγκεκριμένη ακολουθία παρατηρήσεων. Η φάση αναγνώρισης προϋποθέτει ότι όλες οι παράμετροι που προσδιορίζουν τα ΗΜΜ έχουν προηγουμένως εκτιμηθεί και είναι επομένως γνωστές. Στην φάση της εκπαίδευσης γίνετε εκτίμηση των παραμέτρων του εκάστοτε ΗΜΜ. Προς την κατεύθυνση αυτή, χρησιμοποιείται μία ακολουθία παρατηρήσεων ικανού μήκους (ή και περισσότερες), που έχει γεννηθεί από την αντίστοιχη στοχαστική διεργασία, προκειμένου να γίνει εκτίμηση των άγνωστων παραμέτρων (πχ. Χρησιμοποιώντας τεχνικές που βασίζονται στην λογική της μέγιστης πιθανοφάνειας για την εκτίμηση των παραμέτρων). 29
2.4 Gaussian Mixture Models 2.4.1 Ορισμός Η βάση των Γκαουσιανών Μιγμάτων (Gaussian Mixture Models) είναι η διαδεδομένη γκαουσιανή ή κανονική κατανομή, που δίνεται από τον τύπο: p(x) = ( 1 exp 2πσ 2 ) (x µ)2 2σ 2 (2.18) όπου µ η μέση τιμή και σ η διασπορά. Η κατανομή αυτή μπορεί να επεκταθεί και για πολλές μεταβλητές. Έστω μια τυχαία μεταβλητή n-διαστάσεων X = [X 1, X 2,..., X n ] με γκαουσιανή κατανομή X N(µ m, C m ). Η συνάρτηση πυκνότητας πιθανότητας για αυτή τη τυχαία μεταβλητή είναι: ( 1 p(x) = n exp 1 ) 2π det C 2 (x µ)t C 1 (x µ) (2.19) [ όπου µ ] = [E[X 1 ], E[X 2 ],..., E[X n ]] είναι το διάνυσμα μέσων τιμών και C = Cov[X i, X j ] ; i, j = 1, 2,..., n ο πίνακας συνδιασποράς. Παρ όλα αυτά, η κατανομή γκαουσιανών πολλών μεταβλητών εξακολουθεί να έχει ξεκάθαρους περιορισμούς όσο αφορά την μοντελοποίηση πραγματικών δεδομένων, τα οποία δεν ακολουθούν κατ ανάγκη την καμπύλη Gauss 7. Μια πολύ πιο ευέλικτη προσέγγιση είναι η πρόσθεση πολλών Γκαουσιανών κατανομών, η κάθε μια σταθμισμένη με ένα συντελεστή c m. Αυτό ονομάζεται ένα μοντέλο μιγμάτων και οι επιμέρους γκαουσιανές κατανομές (µ m, C m ) ονομάζονται στοιχεία (components). Κάθε στοιχείο έχει δική του μέση τιμή µ m και συνδιασπορά C m. H συνάρτηση πυκνότητας πιθανότητας για M στοιχεία δίνεται από τον τύπο: p(x) = M c m (µ m, C m ) = m=1 M m=1 ( c m n exp 1 ) 2π det Cm 2 (x µ m) T Cm 1 (x µ m ) (2.20) Τονίζεται επίσης ότι το άθροισμα των συντελεστών ισούται με ένα. M c m = 1 (2.21) m=1 Αυξάνοντας τον αριθμό των στοιχείων και τροποποιώντας τις παραμέτρους του κάθε στοιχείου, το γκαουσιανό μίγμα μπορεί να αναπαραστήσει σχεδόν οποιοδήποτε σύνολο δεδομένων με υψηλή ακρίβεια. 30
2.5 Weighted Finite State Transducers (WFST) Οι σταθμισμένοι μετατροπείς πεπερασμένων καταστάσεων (weighted finite state transducers - WFST) είναι μαθηματικές κατασκευές που ανήκουν στην ευρύτερη θεωρία αυτομάτων 8. Στο κεφάλαιο αυτό θα δοθεί μια γενική περιγραφή αυτών των μοντέλων και πως αυτά χρησιμοποιούνται με μεγάλη επιτυχία στην κατασκευή ολοκληρωμένων συστημάτων αυτόματης αναγνώρισης ομιλίας. Οι WFST προσφέρουν μια κοινή και φυσική αναπαράσταση πολλών δομών κρίσιμης σημασίας για τα συστήματα αυτόματης αναγνώρισης ομιλίας, όπως Κρυφά Μοντέλα Μαρκόβ (HMM), μοντέλα αναπαράστασης εξάρτησης από συμφραζόμενα, λεξικά προφορών, στατιστικών γραμματικών, και πλέγματα λέξεων ή φωνημάτων. Ελεύθερες βιβλιοθήκες γενικής χρήσης, όπως η OpenFST 9, που προσφέρουν αναλυτική υλοποίηση των WFST σε κάποια γνωστή γλώσσα προγραμματισμού (C++ στην προκειμένη περίπτωση), τους κάνουν ένα πολύ ισχυρό εργαλείο στα χέρια έμπειρου προγραμματιστή. Μεγάλο μέρος της αναγνώρισης ομιλίας σήμερα είναι βασισμένη σε μοντέλα όπως τα Κρυφά Μοντέλα Μαρκόβ, λεξικά ή n-gram γλωσσικά μοντέλα τα οποία μπορούν να αναπαρασταθούν με WFST. Ένας σταθμισμένος μετατροπέας πεπερασμένων καταστάσεων είναι αυτόματο του οποίου οι μεταβάσεις καταστάσεων έχουν σύμβολα εισόδου και εξόδου. Κατά συνέπεια, ένα μονοπάτι μέσα από τον μετατροπέα κωδικοποιεί μια συμβολοσειρά στην είσοδο σε μια καινούρια στην έξοδο. Ένας σταθμισμένος μετατροπέας αναθέτει και βάρη στις μεταβάσεις, πέρα από την κωδικοποίηση συμβολοσειρών (strings) εισόδου εξόδου. Τα βάρη αυτά μπορεί να αναπαριστούν πιθανότητες, χρονικές διάρκειες, ποινές ή οποιαδήποτε άλλη ποσότητα που συσσωρεύεται κατά μήκος ενός μονοπατιού ώστε να υπολογιστεί το συνολικό κόστος μετατροπής μιας συμβολοσειράς εισόδου σε μια διαφορετική στην έξοδο. Επομένως, οι σταθμισμένοι μετατροπείς είναι μια φυσική επιλογή για την αναπαράσταση των πιθανοτικών μοντέλων πεπερασμένων καταστάσεων που συναντώνται στην επεξεργασία ομιλίας. 2.5.1 Σταθμισμένοι Δέκτες Σταθμισμένα αυτόματα πεπερασμένων καταστάσεων, ή σταθμισμένοι δέκτες (weighted acceptors), χρησιμοποιούνται ευρέως στην αυτόματη αναγνώριση ομιλίας. Τα παρακάτω σχήματα περιέχουν μερικά γνώρισμα παραδείγματα. Το σχήμα 2.8αʹ είναι ένα πολύ απλό γλωσσικό μοντέλο. Οι έγκυρες σειρές λέξεων προσδιορίζονται από τις λέξεις σε κάθε ολοκληρωμένη διαδρομή και οι πιθανότητα τους είναι το γινόμενο όλων των πιθανοτήτων μετάβασης, των βαρών. Το αυτόματο στο σχήμα 2.8βʹ δίνει όλες τις πιθανές προφορές της λέξης data, που χρησιμοποιείται στο γλωσσικό μοντέλο. Κάθε έγκυρη προφορά είναι η σειρά φωνημάτων σε κάθε ολοκληρωμένη διαδρομή και η πιθανότητα του υπολογίζεται ακριβώς όπως και στην προηγούμενη περίπτωση. Τέλος, το αυτόματο στο σχήμα 2.8γʹ κωδικοποιεί μια τυπική αριστερά-προςδεξιά τριών-κατανομών-hmm δομή για ένα φώνημα, με τις ετικέτες πάνω σε ένα μονοπάτι να προσδιορίζουν τις έγκυρες συμβολοσειρές των ακουστικών κατανομών για το δεδομένο φώνημα. 31
(αʹ) Απλό Κομμάτι Γλωσσικού Μοντέλου (βʹ) Σύνολο Πιθανών Προφορών Της Λέξης Data (γʹ) Δομή Τριών HMM Για Ένα Φώνημα Σχήμα 2.8: Παραδείγματα σταθμισμένων δεκτών πεπερασμένων καταστάσεων. Συμβατικά, οι καταστάσεις αναπαρίστανται με κύκλους και σημειώνονται με έναν μοναδικό αριθμό που αντιστοιχεί σε αυτές. Η αρχική κατάσταση αναπαρίσταται από κύκλο με έντονο περίγραμμα, οι τελικές καταστάσεις με διπλό κύκλο. Η ετικέτα l και το βάρος w μιας μετάβασης σημειώνονται πάνω από τά βέλη που τους αντιστοιχούν με την μορφή l/w. Τα αυτόματα αυτά αποτελούνται από ένα σύνολο καταστάσεων: μια αρχική και μια ομάδα από τελικές καταστάσεις (με αντίστοιχα βάρη) και ένα σύνολο από μεταβάσεις ανάμεσα σε καταστάσεις. Κάθε μετάβαση έχει μια κατάσταση εκκίνησης και κατάσταση προορισμού, μια ετικέτα και ένα βάρος. Τέτοιες δομές ονομάζονται, σταθμισμένοι δέκτες πεπερασμένων καταστάσεων (weighted finite state acceptors - WFSA), καθώς δέχονται ή αναγνωρίζουν κάθε συμβολοσειρά που μπορεί να διαβαστεί πάνω σε ένα μονοπάτι από την αρχική προς κάποια τελική κατάσταση. Σε κάθε έγκυρη συμβολοσειρά ανατίθεται ένα βάρος, συγκεκριμένα το άθροισμα των βαρών των μεταβάσεων από τις οποίες πέρασε, μαζί με το βάρος της τελικής κατάστασης. Ουσιαστικά, ένας τέτοιος δέκτης αναπαριστά ένα σύνολο από συμβολοσειρές, αυτές που γίνονται δεκτές. Εάν είναι σταθμισμένος, τότε αναθέτει σε κάθε συμβολοσειρά και ένα βάρος. Τυπικά, συστήματα αναγνώρισης ομιλίας επιδιώκουν, με τον αποκωδικοποιητή τους, να συνδυάσουν και να βελτιστοποιήσουν αυτόματα όπως αυτά στα σχήματα 2.8αʹ 2.8βʹ 2.8γʹ. Βρίσκει προφορές λέξεων από το λεξικό και τις αντικαθιστά στην γραμματική του. Αναπαραστάσεις φωνητικών δέντρων ενδεχομένως να χρησιμοποιούνται για να εντοπίσουν και να αφαιρέσουν 32
πλεονασμούς στις διαδρομές, και κατά συνέπεια να βελτιώσουν την αποδοτικότητα των αναζητήσεων. 2.5.2 Σταθμισμένοι Μετατροπείς Ένας σταθμισμένος μετατροπέας πεπερασμένων καταστάσεων (WFST) έχει πολλά κοινά με έναν δέκτη, μόνο που έχει μια ετικέτα εισόδου, μια ετικέτα εξόδου και βάρος σε κάθε μετάβαση. Τα παραδείγματα στο σχήμα 2.9 κωδικοποιούν τις ίδιες πληροφορίες των WFSA του σχήματος 2.8 χρησιμοποιώντας WFST. Το σχήμα 2.9αʹ αναπαριστά το ίδιο γλωσσικό μοντέλο με το σχήμα 2.8αʹ αναθέτοντας σε κάθε μετάβαση πανομοιότυπες ετικέτες εισόδου και εξόδου. Αυτό δεν προσθέτει κάποια καινούρια πληροφορία στην προκειμένη περίπτωση, όμως είναι ένας βολικός τρόπος για να αναπαρασταθεί ολόκληρη η πληροφορία ενός WFSA με WFST. Η διαδικασία αυτή είναι σημαντική καθώς οι βιβλιοθήκες λογισμικού που χρησιμοποιούνται χειρίζονται μόνο WFST. (αʹ) (βʹ) Σχήμα 2.9: Παραδείγματα σταθμισμένων μετατροπέων πεπερασμένων καταστάσεων. Έχουν αρκετές ομοιότητες με τους δέκτες του σχήματος 2.8, η διαφορά είναι οι ετικέτες εξόδου που εισάγονται σε κάθε μετάβαση. Η ετικέτα εισόδου i, η ετικέτα εξόδου o, και το βάρος w της κάθε μετάβασης σημειώνονται πάνω στο βέλος που αντιστοιχεί στην κάθε μετάβαση ως i : o/w. Το σχήμα 2.9βʹ αναπαριστά ένα απλό λεξικό προφορών ως αντιστοίχιση φωνημάτων σε λέξεις του λεξικού, στη συγκεκριμένη περίπτωση data και dew, με πιθανότητες που εκπροσωπούν τους εναλλακτικούς τρόπους προφοράς. Μετατρέπει μια συμβολοσειρά φωνημάτων που σχηματίζεται από κάποιο μονοπάτι (ξεκινώντας από την αρχική κατάσταση προς κάποια τελική) σε μια λέξη, με ένα συγκεκριμένο βάρος. Ο μετατροπέας αυτός περιέχει περισσότερες πληροφορίες σε σχέση με αυτόν στο Σχήμα 2.8βʹ. Καθώς οι λέξεις κωδικοποιούνται με βάση την ετικέτα εξόδου, είναι εφικτό να συνδυαστούν μετατροπείς προφορών για περισσότερες από μια λέξεις, χωρίς να χάνεται η μοναδικότητα 33
της λέξης. Παρομοιώς, δομές HMM όπως αυτής του σχήματος 2.8γʹ μπορούν να ενωθούν σε ένα μοναδικό μετατροπέα που διατηρεί τις ιδιότητες ενός μοντέλου φωνημάτων. Η περίπτωση αυτή αναδεικνύει το βασικό πλεονέκτημα των μετατροπέων σε σχέση με τους δέκτες: ο μετατροπέας μπορεί να αναπαραστήσει την σχέση ανάμεσα σε δυο επίπεδα αναπαράστασης, για παράδειγμα ανάμεσα σε φωνήματα και λέξεις. Ειδικότερα, ένας μετατροπέας προσδιορίζει μια δυαδική σχέση ανάμεσα σε συμβολοσειρές: δυο συμβολοσειρές είναι συνδεδεμένες όταν υπάρχει μονοπάτι από κάποια αρχική προς κάποια τελική κατάσταση εντός του μετατροπέα η οποία έχει την πρώτη συμβολοσειρά ως αλληλουχία συμβόλων εισόδου και την δεύτερη ως αλληλουχία συμβόλων εξόδου. Γενικώς, αυτό είναι μια σχέση και όχι συνάρτηση καθώς η ίδια συμβολοσειρά εισόδου μπορεί να μετατραπεί σε πολλές συμβολοσειρές στην έξοδο, ακολουθώντας διαφορετικά μονοπάτια. Φυσικά, σε έναν σταθμισμένο μετατροπέα στην κάθε διαδρομή αναθέτεται και ένα βάρος. Στη συνέχεια, θα παρουσιαστούν μερικές από τις πιο κοινές πράξεις ανάμεσα σε μετατροπείς και πως χρησιμοποιούνται σε εφαρμογές αυτόματης αναγνώρισης ομιλίας. 2.5.3 Πράξεις Επάνω ή Ανάμεσα σε WFSTs Composition Η σύνθεση (composition) μετατροπέων είναι η ένωση διαφορετικών επιπέδων αναπαράστασης. Για παράδειγμα, ένα λεξικό προφορών μπορεί να ενωθεί με μια γραμματική λέξεων για να δημιουργήσει έναν μετατροπέα φωνημάτων-λέξεων των οποίων οι συμβολοσειρές είναι περιορισμένες από την γραμματική. (αʹ) (βʹ) (γʹ) Σχήμα 2.10: Παράδειγμα Σύνθεσης Μετατροπέων 34
Determinization Σε ένα ντετερμινιστικό αυτόματο, κάθε κατάσταση έχει το πολύ μια μετάβαση για οποιαδήποτε μοναδική ετικέτα εισόδου. Στο παρακάτω σχήμα φαίνονται χαρακτηριστικά παραδείγματα ντετερμινιστικού και μη αυτόματου. (αʹ) (βʹ) Σχήμα 2.11: Ντετερμινισμός Σταθμισμένου Αυτομάτου. Ένα τυπικό σταθμισμένο αυτόματο στο σχήμα 2.11αʹ και το ισοδύναμο ντετερμινιστικό αυτόματο στο σχήμα 2.11βʹ Το βασικό πλεονέκτημα ενός ντετερμινιστικού αυτόματου σε σχέση με ένα μηντετερμινιστικό είναι η έλλεψη πλεονασμών. Περιέχει το πολύ ένα μονοπάτι που αντιστοιχεί σε μια δεδομένη συμβολοσειρά εισόδου, πράγμα που μειώνει τον χρόνο και τον αποθηκευτικό χώρο που απαιτείται για την επεξεργασία της. Αυτό το χαρακτηριστικό είναι ιδιαίτερα χρήσιμο για αυτόματη αναγνώριση ομιλίας λόγω πλεονασμών που εντοπίζονται σε λεξικά προφορών σε συστήματα με μεγάλα λεξιλόγια. Minimization Δεδομένου ενός ντετερμινιστικού αυτόματου, γίνεται να μειωθεί το μεγεθός του μέσω της διαδικασίας ελαχιστοποίησης (minimization), διαδικασία που έχει κέρδος σε χώρο και χρόνο μακροπρόθεσμα. Οποιοδήποτε ντετερμινιστικό αυτόματο μπορεί να ελαχιστοποιηθεί χρησιμοποιώντας κλασικούς αλγορίθμους 10,11. Με τον ίδιο τρόπο, οποιοδήποτε ντετερμινιστικό σταθμισμένο αυτόματο μπορεί να ελαχιστοποιηθεί χρησιμοποιώντας μια τροποποίηση των κλασικών αλγορίθμων 12. Το αποτέλεσμα εφαρμογής του παραπάνω αλγορίθμου θα είναι ένα ισοδύναμο με το προηγούμενο που περιέχει τον ελάχιστο αριθμό καταστάσεων και τις ελάχιστες δυνατές μεταβάσεις ανάμεσα σε όλα τα σταθμισμένα αυτόματα που είναι ισότιμα με το αρχικό (σε αυτή τη περίπτωση ισοδύναμο σημαίνει για ίδια είσοδο λαμβάνεται ίδια έξοδος). 35
(αʹ) (βʹ) (γʹ) Σχήμα 2.12: Μετακίνηση Βαρών (Weight Pushing) Και Ελαχιστοποίηση. (α ) Ντετερμινιστικό Σταθμισμένο Αυτόματο Α. (β ) Ισοδύναμο Σταθμισμένο Αυτόματο Με Βάρη Μετακινημένα Προς Την Τελική Κατάσταση. (γ ) Ελαχιστοποιημένο Σταθμισμένο Αυτόματο, Ισοδύναμο με το Α. 2.5.4 Αλγόριθμος Viterbi Ο αλγόριθμος Viterbi παράγει τις εκτιμήσεις μέγιστης πιθανότητας των διαδοχικών καταστάσεων μιας μηχανής πεπερασμένων καταστάσεων (finite-state machine) από την ακολουθία των αποτελεσμάτων που έχουν φθαρεί από διαδοχικούς ανεξάρτητους όρους παρεμβολών. Σχήμα 2.13: Μηχανή Πεπερασμένων Καταστάσεων και Κανάλι Το σχήμα 2.13 μια τυπική FSM που αποτελείται από ένα καταχωρητή μετατόπισης (shift register) L-βαθμίδας που οδηγείται από μια ακολουθία εισόδου u Q-τάξης. Κατά συνέπεια, μετά από κάθε μετατόπιση, η FSM μένει σε μια από τις καταστάσεις QL. 36