next up previous
Next: About this document ... Up: mythesis Previous: Πειράματα κωδικοποίησης

Subsections

Αναγνώριση σε ασύρματα και ενσύρματα δίκτυα δεδομένων

Εισαγωγή

Στο Εισαγωγικό κεφάλαιο αναφερθήκαμε στις ραγδαίες εξελίξεις στο χώρο των δικτύων και τον ασύρματων επικοινωνιών και προτείναμε τη χρησιμοποίηση αυτών των νέων τεχνολογιών για την περαιτέρω εξάπλωση εφαρμογών αναγνώρισης φωνής. Στο πρώτο μέρος αυτού του κεφαλαίου θα εξετάσουμε διεξοδικά τις αναμενόμενες εξελίξεις στους τομείς του διαδικτύου και των ασύρματων επικοινωνιών. Θα δούμε πως μπορούμε να χρησιμοποιήσουμε εφαρμογές αναγνώρισης φωνής σε αυτά τα περιβάλλοντα, βασιζόμενοι στην κωδικοποίηση που αναπτύξαμε σε αυτή την εργασία (βλέπε Κεφάλαιο 2). Η κωδικοποίηση που αναπτύξαμε παίζει καταλυτικό παράγοντα, μειώνοντας στο ελάχιστο τις απαιτήσεις εύρους ζώνης και καθιστώντας δυνατή και με μικρό κόστος την ανάπτυξη αντίστοιχων εφαρμογών στα παραπάνω περιβάλλοντα.

Αναφέραμε επίσης στο Εισαγωγικό κεφάλαιο, ότι τέτοιες εφαρμογές εκ των πραγμάτων θα χρησιμοποιούν το μοντέλο πελάτη - εξυπηρετητή για αναγνώριση φωνής. Στο δεύτερο μέρος του κεφαλαίου, περιγράφεται μια τέτοια υλοποίηση του πελάτη (Speech Recognition Applet Demo) για αναγνώριση φωνής στο διαδίκτυο μέσα από ένα δίαυλο εύρους 2kbps, με τον πελάτη να χρησιμοποιεί το σύστημα Yarrow που εξετάσαμε στο Κεφάλαιο 3, και τον εξυπηρετητή το σύστημα αναγνώρισης φωνής Decipher κατάλληλα αλλαγμένο για συνεργασία με το Yarrow. Επίσης Θα εξετάσουμε την αρχιτεκτονική του πελάτη και τον τρόπο επικοινωνίας με τον αναγνωριστή. Θα αρχίσουμε αυτό το κεφάλαιο εξετάζοντας πρώτα τις εφαρμογές αναγνώρισης φωνής που κυριαρχούν σήμερα.

Εφαρμογές αναγνώρισης φωνής σήμερα

Οι εφαρμογές αναγνώρισης φωνής χωρίζονται σε 5 κατηγορίες :

Οι εφαρμογές αναγνώρισης φωνής πρέπει να παρέχουν πραγματικά οφέλη στο χρήστη, με τη μορφή αυξημένης παραγωγικότητας, ευκολίας χρήσης και ενός πιο φυσικού τρόπου επικοινωνίας. Ο χρήστης πρέπει να νοιώθει άνετα μέσα από το διάλογο με το σύστημα το οποίο θα πρέπει να είναι αρκετά ευέλικτο, προσφέροντας βοήθεια στο χρήστη και ένα αποτελεσματικό τρόπο επικοινωνίας. Επίσης η υψηλή ακρίβεια αναγνώρισης και η λειτουργία σε πραγματικό χρόνο αποτελούν απαραίτητα συστατικά επιτυχίας μιας εφαρμογής αναγνώρισης φωνής.

Την μεγαλύτερη απήχηση από τις παραπάνω, έχουν οι εφαρμογές αναγνώρισης φωνής για ανάκτηση πληροφοριών με τη χρήση τηλεφώνου. Η χρήση μέσω ενός απλού τηλεφώνου κάνει τις υπηρεσίες αυτές προσβάσιμες σε οποιονδήποτε. Οι πληροφορίες αφορούν εύρεση εισιτηρίων για αεροπορικές πτήσεις, αγορά προϊόντων, χρηματοοικονομικά μεγέθη και άλλες. Στις Ηνωμένες Πολιτείες τέτοιες εφαρμογές δέχονται καθημερινά αρκετές δεκάδες χιλιάδων τηλεφωνικών κλήσεων. Τέτοιες υπηρεσίες είναι βέβαια προσβάσιμες και από κινητά τηλέφωνα κάτι που αποτελεί μεγάλο πλεονέκτημα καθώς κάνει την πρόσβαση σε αυτές τις υπηρεσίες προσβάσιμη από οπουδήποτε.

Προκειμένου να γίνει εκμετάλλευση του πλούτου των πληροφοριών που υπάρχει στο διαδίκτυο, έχει αναπτυχθεί το πρότυπο της VoiceXML. Είναι μια τεχνολογία που βασίζεται στην XML και που θα επιτρέψει να γίνει προσβάσιμο το περιεχόμενο δικτυακών τόπων μέσα από το τηλέφωνο. Τέτοιο δικτυακοί τόποι θα ονομάζονται voice portals (φωνητικές πύλες) και αναμένεται ότι η νέα αυτή αγορά που δημιουργείται, θα έχει μεγάλη ανάπτυξη τα προσεχή χρόνια.

Εξελίξεις στο χώρο των επικοινωνιών : δίκτυα δεδομένων

Ο χώρος του διαδικτύου αποτελεί ένα ώριμο πια τεχνολογικά χώρο που πραγματικά έχει αλλάξει τη ζωή μας σε τεχνολογικό, οικονομικό και κοινωνικό επίπεδο. Οι δυνατότητες επικοινωνίας που προσφέρει, καθώς και η γρήγορη πρόσβαση σε πληροφορίες, αποτελούν τα πιο δυνατά χαρακτηριστικά του. Πώς μπορούν οι εφαρμογές αναγνώρισης φωνής να εκμεταλλευτούν αυτή τη τεχνολογία? Είδαμε παραπάνω ένα τέτοιο παράδειγμα με τη χρήση της τεχνολογίας VoiceXML μέσω τηλεφωνικού δικτύου (σταθερού ή ασύρματου). Το χαρακτηριστικό αυτών των προσπαθειών, είναι η πρόσβαση μέσω δικτύου φωνής.

Εδώ θα παρουσιάσουμε άλλες προσπάθειες εφαρμογής αναγνώρισης φωνής, που βασίζονται σε δίκτυα δεδομένων, τόσο μέσα από ενσύρματες όσο και ασύρματες συνδέσεις. Ο διαχωρισμός αυτός μεταξύ δικτύων δεδομένων και φωνής συνεχίζει να υφίσταται παρ''όλες τις προσπάθειες για σύγκλιση των δυο αυτών τρόπων επικοινωνίας. Και ενώ τα δίκτυα φωνής, συνεχίζουν να κυριαρχούν στη επικοινωνία μεταξύ ανθρώπων5.1, για την επικοινωνία ανθρώπου-μηχανής (παράδειγμα η αναζήτηση πληροφοριών) τα δίκτυα δεδομένων υπερτερούν.

Ασύρματα δίκτυα νέας γενεάς

Η ταχεία ανάπτυξη των ασύρματων δικτύων και η εξάπλωση τις κινητής τηλεφωνίας, μαζί με την μεγάλη ανάπτυξη που υφίσταται η αγορά embedded συστημάτων, consumer electronics και μιας πληθώρας άλλων συσκευών από palmtops και PDAs έως smartphones, δείχνει ότι οδεύουμε στην μετά PC εποχή. Αν στην εποχή των mainframes είχαμε πολλούς ανθρώπους να μοιράζονται ένα υπολογιστικό σύστημα και στην εποχή του PC την δυνατότητα ο κάθε άνθρωπος να έχει τον δικό του υπολογιστή, σήμερα οδεύουμε στην εποχή που η αναζήτηση και επεξεργασία πληροφοριών, θα γίνεται από πολλές διαφορετικού τύπου τέτοιες συσκευές , τις οποίες πιθανότατα θα κατέχουν πολλοί από εμάς. Και αν η πρόσβαση στο διαδίκτυο από τον προσωπικό υπολογιστή έχει γίνει τόσο εύκολη και απαραίτητη, γιατί να μην ισχύει το ίδιο και για αυτές τις συσκευές, που ήδη σήμερα θεωρούνται απαραίτητα εργαλεία, όπως ένα PDA ή ένα κινητό τηλέφωνο? Μέχρι το τέλος αυτής της παραγράφου, θα επικεντρώσουμε την ανάλυσή μας στην περιοχή της κινητής τηλεφωνίας, αφού αυτή αποτελεί το πιο δημοφιλές και οικείο παράδειγμα, χωρίς να δοθεί όμως η εντύπωση ότι οι εξελίξεις αφορούν αποκλειστικά σε αυτή τη περιοχή.

Σύμφωνα λοιπόν με τελευταίες έρευνες της Forrester Research, μέχρι το 2003 θα υπάρχουν 1 δισ. κινητά τηλέφωνα σε δίκτυα GSM 3ης γενεάς, αριθμός πολύ μεγαλύτερος των μέχρι τότε αναμενόμενων προσωπικών υπολογιστών που θα είναι διασυνδεμένοι στο δίκτυο! Μιλάμε λοιπόν για το κινητό διαδίκτυο (mobile internet) του αύριο, στο οποίο καθοριστικό ρόλο θα παίξει η υποστήριξη ενός γρήγορου και αξιόπιστου ασύρματου δικτύου δεδομένων. Στη σημερινή κινητή τηλεφωνία, ήδη υπάρχει υποστήριξη δεδομένων (σε πολύ μικρές ταχύτητες) και αντίστοιχες υπηρεσίες (SMS ,WAP). Στο δρόμο προς τη κινητή τηλεφωνία 3ης γενεάς θα μας οδηγήσουν πρωτόκολλα όπως τα GPRS, EDGE, WCDMA με βασικό χαρακτηριστικό όλων, την πλήρη υποστήριξη δικτύων δεδομένων IP και X25 σε υψηλές ταχύτητες (broadband networks).

Οφέλη για παροχείς δικτύων, εφαρμογών και τελικό χρήστη

Ήδη το GPRS (βλέπε [#!Wi0!#]), θα τεθεί σε εφαρμογή στις αρχές του 2001 και οι παροχείς κινητής τηλεφωνίας πασχίζουν να κερδίσουν τις σχετικές άδειες καταβάλλοντας υπέρογκα ποσά, ελπίζοντας να εξασφαλίσουν ένα μερίδιο στην νέα αγορά που γεννιέται. Τα κέρδη από αυτή την μετάβαση στα δίκτυα αυτά (τα οποία στην πλειοψηφία τους βασίζονται στα ήδη υπάρχοντα με κύριες αλλαγές σε λογισμικό) θα είναι μεγάλα, τόσο για τους παροχείς αυτών των δικτύων αλλά και για τον χρήστη αυτής της νέας τεχνολογίας.

Για τους παροχείς, δίνεται η ευκαιρία να εκμεταλλευτούν καλλίτερα την χωρητικότητα του δικτύου, καθώς πρόκειται για packet switched τεχνολογία (σε αντίθεση με τη σημερινή circuit switched). Αυτό σημαίνει ότι τα time slots δεσμεύονται δυναμικά για τη μεταφορά δεδομένων και όχι στατικά, ανεξάρτητα από την ανάγκη για bandwidth. Αυτό βέβαια αποτελεί μεγάλο πλεονέκτημα και για το χρήστη, αφού η χρέωση θα είναι ανά πακέτο πληροφορίας και όχι ανά χρόνο σύνδεσης (κάτι τέτοιο άλλωστε δεν θα υφίσταται αφού θα είναι συνεχώς συνδεμένος στο δίκτυο του παροχέα).

Ο κάτοχος ενός κινητού τηλεφώνου, θα μπορεί να έχει πρόσβαση στο διαδίκτυο ή στο εταιρικό εσωτερικό δίκτυο (corporate intranet) από οπουδήποτε. Τα κινητά τηλέφωνα θα εξελίσσονται διαρκώς και θα είναι δυνατό ο χρήστης να εγκαθιστά κατάλληλο λογισμικό για κάποια υπηρεσία. Αυτός είναι και ο λόγος που αναμένεται μεγάλο μερίδιο της μελλοντικής αυτής αγοράς να δεσμευτεί από υπηρεσίες παροχής εφαρμογών (ASPs). Παρ''όλες όμως τις δυνατότητες που θα παρέχουν τα κινητά ή άλλες παρόμοιες συσκευές, η αλληλεπίδραση θα παραμένει ακόμα σε χαμηλά επίπεδα (οθόνη 5 γραμμών ή με μικρή ανάλυση). Σε κάτι τέτοιο μπορεί να βοηθήσει η αναγνώριση φωνής με τα συγκριτικά πλεονεκτήματα που προσφέρει.

Χρήση κωδικοποίησης φωνής αυτής της εργασίας

Αφού είδαμε στην προηγούμενο παράγραφο το περιβάλλον πιθανής χρησιμοποίησης μιας τεχνολογίας όπως αυτής που αναπτύχθηκε σε αυτή την εργασία (διαδίκτυο, ασύρματες επικοινωνίες), θα δείξουμε πως μπορεί αυτή να χρησιμοποιηθεί στη πράξη, στα δυο παραπάνω περιβάλλοντα ξεκινώντας από το δεύτερο (ασύρματες επικοινωνίες). Πρώτα όμως τονίζουμε ότι σκοπός αυτής της παραγράφου είναι να δειχτεί κάτι τέτοιο από τεχνικής άποψης και όχι από άποψη δημιουργίας νέων εφαρμογών ή υπηρεσιών. Γι αυτό το λόγο και βασιζόμενοι στη παράγραφο 5.1, όπου είδαμε ότι η πιο διαδεδομένη εφαρμογή αναγνώρισης φωνής είναι η χρησιμοποίηση του σημερινού ενσύρματου και ασύρματου τηλεφωνικού δικτύου για ανάκτηση πληροφοριών κάθε είδους5.2, θα δώσουμε έμφαση στο πως μπορεί να επεκταθεί η υπηρεσία αυτή στα δυο παραπάνω περιβάλλοντα.

Χρήση στις ασύρματες επικοινωνίες

Το μεγάλο πλεονέκτημα των δικτύων 3ης γενεάς, είναι η υποστήριξη δικτύου δεδομένων βασισμένο στο IP καθώς και οι μεγαλύτερες ταχύτητες μεταφοράς. Αυτό σημαίνει ότι αυτόματα παύει να υφίσταται ο διαχωρισμός δικτύων φωνής και δεδομένων. Ο πλούτος των πληροφοριών στο διαδίκτυο γίνεται αυτόματα διαθέσιμος με ένα interface όμως, όχι απόλυτα ικανοποιητικό.

Χρησιμοποιώντας το μοντέλο πελάτη-εξυπηρετητή που αναφέραμε στο Εισαγωγικό Κεφάλαιο προτείνουμε τη κωδικοποίηση της φωνής στο κινητό τηλέφωνο και την αποστολή σε συμπιεσμένη πια μορφή του αιτήματος για ανάκτηση της ζητούμενης πληροφορίας στον αναγνωριστή, μέσα από το δίκτυο δεδομένων. Τα πλεονεκτήματα για αυτή τη προσέγγιση είναι ότι ο χρήστης δεν χρειάζεται να ασχοληθεί ο ίδιος με την απαιτούμενη πλοήγηση μέχρι να βρει τη πληροφορία που επιζητά, γιατί αυτό θα γίνεται αυτόματα με τη χρήση απλά της φωνής. Επιπρόσθετα, το κόστος για κάτι τέτοιο θα είναι πολύ χαμηλό, αφού ο απαιτούμενος αριθμός πακέτων που θα χρειάζεται να σταλούν στον αναγνωριστή είναι πολύ λίγα.

Σε αυτή την ενότητα θα εξετάσουμε ζητήματα που έχουν να κάνουν με μια τέτοια σχεδίαση, όπως τη δυνατότητα χρήσης συσκευών με υποστήριξη ασύρματου δικτύου δεδομένων (π.χ.κινητού) για τη κωδικοποίηση της φωνής και ζητήματα που αφορούν στην επικοινωνία δεδομένων σε τέτοια περιβάλλοντα (π.χ. GPRS). Πρώτα όμως θα μιλήσουμε για την δημιουργία ενός προτύπου (standard) για παρόμοιες εφαρμογές που προάγεται αυτό το καιρό από το Ινστιτούτο Τηλεπικοινωνιών της Ευρώπης.

Σχετικά πρότυπα : ETSI proposal

Το ETSI σύστησε πριν καιρό την ομάδα εργασίας STQ-Aurora DSR με σκοπό την δημιουργία ενός προτύπου για ανάπτυξη κατανεμημένων εφαρμογών αναγνώρισης φωνής, με πρόσβαση από κινητές συσκευές. Η πρώτη έκδοση του στάνταρ δημοσιεύτηκε το Φεβρουάριο του 2000 και προτείνει το μοντέλο πελάτη-εξυπηρετητή, όπως άλλωστε και το δικό μας μοντέλο. Η επεξεργασία του front-end γίνεται στον πελάτη, ο οποίος παράγει ακουστικά διανύσματα μεγέθους 14 στοιχείων (13 cepstral παράμετροι συν μια επιπρόσθετη παράμετρος για ευρωστία παρουσία θορύβου). Χρησιμοποιούν επίσης διανυσματικό κβαντισμό (split-Vq τεχνική με 2 υποδιανύσματα, σύμφωνα με πρόταση της Motorola). Προκύπτει κωδικοποίηση με ρυθμό δεδομένων 4.8Kbps, πολύ μεγαλύτερο από το 2Kbps που πετύχαμε σε αυτή την εργασία. Για περισσότερες πληροφορίες παραπέμπουμε στην [#!Wi1!#].

Τεχνολογία ασύρματων συσκευών πληροφορίας

Αρχικά, τα κινητά τηλέφωνα, είχαν μόνο δυνατότητες φωνητικής επικοινωνίας. Αργότερα προστέθηκαν υπηρεσίες αποστολής/λήψης σύντομων μηνυμάτων (SMS), ενώ πρόσφατα απέκτησαν πρόσθετες δυνατότητες αναζήτησης πληροφοριών στο διαδίκτυο, με υπηρεσίες όπως WAP και iMode. Πρόσφατα τέλος, εμφανίστηκαν και τα πρώτα κινητά με υποστήριξη GPRS. Κατά γενική ομολογία, οι δυνατότητές τους θα αυξηθούν κατακόρυφα στο σύντομο μέλλον. Θα μιλάμε για ασύρματες συσκευές πληροφορίας (Wireless Information Devices - WIDs), με δυο κύριες υποκατηγορίες : τα έξυπνα τηλέφωνα (smartphones) φωνο-κεντρικές (voice-centric) συσκευές με επιπλέον δυνατότητες ανταλλαγής πληροφορίας και communicators, πληροφοριο-κεντρικές (information-centric) συσκευές με δυνατότητες φωνής και εισόδου από πληκτρολόγιο, στυλό ή άλλο τρόπο (φωνή?).

Οι συσκευές αυτές, έχουν συνήθως επεξεργαστές με πολύ μικρή κατανάλωση ισχύος και με ταχύτητες που φτάνουν αυτή τη στιγμή έως και τα 200MHZ (ARM). Τρέχουν ειδικά σχεδιασμένα λειτουργικά συστήματα σαν το Symbian (κοινοπραξία Ericsson, Nokia, Mototola) με βιβλιοθήκες ανάπτυξης προγραμμάτων σε γλώσσες όπως C++, Java. Ειδικά για ανάπτυξη με τη χρήση Java, υπάρχει η ειδική έκδοση της πλατφόρμας, με την κωδική ονομασία J2ME (Java 2 Micro Edition, βλέπε [#!Wi2!#]) η οποία παρέχει την ιδεατή μηχανή KVM, με απαιτήσεις μνήμης μόλις 100K. Επίσης, υποστηρίζει περιορισμένο αριθμό APIs της πλατφόρμας, για μεταφορά απλών σε πόρους και τεχνικές προγραμμάτων. Δυστυχώς όμως, δεν υπάρχει υποστήριξη πραγματικών αριθμών(floats), κάτι που κάνει αυτή τη στιγμή δύσκολη τη μεταφορά πακέτων σαν αυτό που αναπτύχθηκε με το Yarrow σύστημα. Κάτι τέτοιο όμως είναι πολύ πιθανό να αλλάξει σύντομα.

Δίκτυα 2.5 και 3ης γενεάς : υποσχέσεις, περιορισμοί και συμπεράσματα

Παρά τον ενθουσιασμό που υπάρχει γύρω από τις υπηρεσίες μεγάλου εύρους ζώνης, που θα έρθουν με τα δίκτυα 3ης γενεάς, κανείς πρέπει να κρατάει κάποιες επιφυλάξεις. Πρώτος λόγος, είναι ότι το εύρος ζώνης που ανακοινώνονται για τα πρωτόκολλα αυτά, είναι το θεωρητικό μέγιστο. Για παράδειγμα, για το GPRS μέγιστο θεωρητικό εύρος ζώνης θεωρούνται τα 171.2kbps (κάτι που απαιτεί δέσμευση 8 time slots και χρήση κωδικοποίησης CS-4), στην πράξη όμως δεν αναμένεται να ξεπεράσει τα 20-30kbps. Τα επόμενα πρωτόκολλα μέχρι τα 3ης γεννεάς, θα υποστηρίζουν θεωρητικά μέχρι και 2Mbps, ποτέ όμως δεν πρόκειται να δούμε κάτι τέτοιο στη πράξη. Επίσης, όσο πιο εξελιγμένα είναι τα πρωτόκολλα αυτά, τόσο περιορισμένα αναμένεται να είναι από άποψη κάλυψης : για παράδειγμα το EDGE δεν αναμένεται να καλύψει περιοχές εκτός πόλεων.

Όμως, ανεξάρτητα από το εύρος ζώνης, η πιο σημαντική καινοτομία αυτών των δικτύων, είναι όπως είπαμε η υποστήριξη δικτύων δεδομένων IP, όπως ακριβώς αυτά του διαδικτύου. Φυσικά, αφού το πρωτόκολλο είναι το ίδιο, αναμένει κανείς να είναι εύκολο να μεταφερθούν οι υπάρχουσες εφαρμογές του διαδικτύου, σε συσκευές σε τέτοια δίκτυα. Κάτι τέτοιο δεν ισχύει απόλυτα τουλάχιστον, αφού το ασύρματο κανάλι έχει εντελώς διαφορετική συμπεριφορά από ένα ενσύρματο. Τα δυο βασικότερα χαρακτηριστικά που το διαφοροποιούν, είναι το υψηλότερο επίπεδο θορύβου από τη μια και η πολύ μεγαλύτερη καθυστέρηση (latency) των πακέτων από τη άλλη. Έτσι π.χ. από τα συστήματα πελάτη εξυπηρετητή ευνοούνται αυτά με μικρό αριθμό ανταλλαγής πληροφορίας (μικρό αριθμό αιτήσεων/απαντήσεων), όπως η εφαρμογή μας, ενώ αντίθετα π.χ. η πλοήγηση σε μια σελίδα απαιτεί πολύ μεγάλο αριθμό τέτοιων αιτήσεων.

Βλέπουμε επομένως, ότι η ανάπτυξη εφαρμογών για πρόσβαση από ασύρματο περιβάλλον, απαιτεί να συμπεριληφθούν υπόψη διάφοροι παράγοντες που έχουν να κάνουν τόσο με τα ίδια τα δίκτυα, όσο και με τις συσκευές που παρέχουν πρόσβαση σε αυτά. Προκειμένου να υποστηριχθεί περαιτέρω η ανάπτυξη τέτοιων εφαρμογών, έχει ιδρυθεί ανάλογη πρωτοβουλία (Mobile Applications Initiative) (βλέπε [#!Wi3!#]). Επίσης πρέπει να γίνει κατανοητό, ότι δεν είναι όλες οι εφαρμογές κατάλληλες για ένα τέτοιο περιβάλλον, άλλες για τεχνικούς λόγους και άλλες για λόγους χρησιμότητας. Αναμένεται τέτοιες εφαρμογές, να είναι απλές από άποψη χρήσης και να παρέχουν γρήγορη και εύκολη ανάκτηση, μικρών σε ποσότητα αλλά σημαντικών πληροφοριών, στο πλαίσιο στο οποίο ανήκει άλλωστε και η δική μας εφαρμογή (βλέπε [#!Wi3!#]).

Χρήση στο διαδίκτυο

Αφού είδαμε πως μπορεί να αναπτυχθούν εφαρμογές αναγνώρισης φωνής στα ασύρματα δίκτυα δεδομένων, θα κάνουμε το ίδιο και για το περιβάλλον του διαδικτύου. Για το περιβάλλον του διαδικτύου, τέτοιες εφαρμογές υπάρχουν ήδη (βλέπε [#!W1!#],[#!W2!#],[#!W3!#],[#!W4!#],[#!W5!#]), αν και δεν υπάρχει ακόμα ανάλογη εμπορική εκμετάλλευση. Η πιο ώριμη προσπάθεια είναι το σύστημα WEB GALAXY του Μ.Ι.Τ, η οποία επιτρέπει πρόσβαση μέσω διαδικτύου σε συγκεκριμένες βάσεις πληροφοριών (καιρός, αεροπορικά ταξίδια, οδηγός πόλης). Έμφαση σε αυτή τη προσπάθεια, έχει δοθεί περισσότερο στο τμήμα της κατανόησης φυσικής γλώσσας, στο πώς δηλαδή θα ερμηνευθεί η αίτηση του πελάτη, για την εύρεση της κατάλληλης πληροφορίας.

Και σε αυτή την ενότητα, επικεντρώνουμε τη προσοχή μας σε εφαρμογές αναγνώρισης φωνής για ανάκτηση μικρού όγκου πληροφοριών, σαν αυτή που είδαμε στη παράγραφο 5.1 (με μετάδοση φωνής μέσω τηλεφωνικού δικτύου). Αν αντικαταστήσουμε τον τρόπο αυτό επικοινωνίας, με μετάδοση φωνής μέσω του WWW, με μοναδικό περιορισμό την πρόσβαση στο διαδίκτυο και τις μικρές απαιτήσεις σε πόρους (εύρος ζώνης, επεξεργαστική ισχύς, μνήμη), έχουμε τα εξής πλεονεκτήματα :

Από τη μεριά του χρήστη :

Από τη μεριά του παροχέα μιας τέτοιας υπηρεσίας :

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

Γενική εικόνα του συστήματος

Σε αντίθεση με το κλασικό μονολιθικό σύστημα αναγνώρισης φωνής, η εφαρμογή μας ακολουθεί εκ των πραγμάτων το μοντέλο πελάτη - εξυπηρετητή (client - server), όπως άλλωστε κάνουν οι περισσότερες ιντερνετικές εφαρμογές. Ο πελάτης είναι ένα εφαρμογίδιο (applet)5.3, που αιχμαλωτίζει το σήμα της φωνής και το στέλνει μέσω δικτύου στον εξυπηρετητή προς αναγνώριση. Αυτό γίνεται αφού πρώτα εφαρμόσει ένα κατάλληλο σχήμα κωδικοποίησης της φωνής, με στόχο να ελαττώσει όσο γίνεται το απαιτούμενο εύρος ζώνης (bandwidth). Ένα μέσο μηχάνημα, είναι ικανό να εκτελέσει όλες αυτές τις λειτουργίες σε πραγματικό χρόνο ( real time.). Ο αναγνωριστής (Recognizer Server) επιτελεί όλο το δύσκολο έργο της αναγνώρισης και ενημερώνει τον πελάτη για το αποτέλεσμα. Η γενική μορφή του συστήματος φαίνεται στο Σχήμα 5.1.

Figure: Επικοινωνία πελάτη - αναγνωριστή μέσω Web
[scale = 0.440]images/web-images/eps/fig1.eps

Όπως φαίνεται στο σχήμα, το σύστημα αποτελείται από 3 κομμάτια : Τον πελάτη(applet), τον αναγνωριστή καθώς και από το συνδετικό τους κρίκο, που κάνει τη διασύνδεση των δυο (Client Recognizer Interface - CRI).

Αρχιτεκτονική του πελάτη

Ο πελάτης είναι ένα Java applet που εκτελεί τις ακόλoυθες λειτουργίες : Για κάθε μια από τις παραπάνω λειτουργίες υπάρχει ένα software module (Plugin) που είναι υπεύθυνο για να τις εκτελέσει. Άρα έχουμε 3 plugins : το Audio (AP), το Compression (CP) και το Network (NP).

Figure: Το applet με τα 3 plugins που το αποτελούν.
[scale = 0.500]images/web-images/eps/fig2.eps

Audio Plugin

Η Java είναι μια γλώσσα προγραμματισμού ανεξάρτητη πλατφόρμας. Σαν τέτοια, δεν παρέχει τη δυνατότητα στον προγραμματιστή να επιτελέσει λειτουργίες εξαρτώμενες από κάποια συγκεκριμένη πλατφόρμα (platform depended). Για να κάνει κανείς κάτι τέτοιο θα πρέπει να κάνει τον προγραμματισμό για αυτές τις λειτουργίες σε κάποια άλλη γλώσσα προγραμματισμού, και στη συνέχεια να κάνει σύνδεση του κώδικα αυτού, με την ιδεατή μηχανή (virtual machine) της Java μέσω ενός αρκετά πολύπλοκου τρόπου. Για τέτοιες λειτουργίες η Java διαθέτει τη τεχνολογία Java Native Interface (JNI). Ο platform depented κώδικας γράφτηκε σε C και μεταγλωττίστηκε σε βιβλιοθήκη, η οποία φορτώνεται από τον java κώδικα του audio plugin σε run-time για να επιτελέσει τις ζητούμενες λειτουργίες (recording/rendering). Η πλατφόρμα στην οποία έγινε η υλοποίηση είναι το λειτουργικό σύστημα Linux. Παρόλα αυτά, ο audio driver5.4 που χρησιμοποιήθηκε, υπάρχει διαθέσιμος σε όλες τις πλατφόρμες UNIX. Σε επερχόμενη έκδοση του Java 2 SDK αναμένεται η υποστήριξη των παραπάνω λειτουργιών μέσω ενός νέου API το οποίο θα αντικαταστήσει την παρούσα υλοποίηση του Audio Plugin

Compression Plugin

Το plugin αυτό επιτελεί 3 λειτουργίες χρησιμοποιώντας clients που είδαμε στο προηγούμενο κεφάλαιο (package sri.star.coding.clients). Είναι το πλέον βασικό plugin , που χρησιμοποιεί όλη τη τεχνολογία που αναπτύχθηκε για αυτή την εργασία.

Network Plugin

Αυτό το plugin είναι υπεύθυνο για την δικτυακή επικοινωνία με τον αναγνωριστή. Παίρνει σαν είσοδο το συμπιεσμένο feature και το μεταδίδει στον αναγνωριστή. Επίσης ανακτά το αποτέλεσμα της αναγνώρισης και ενημερώνει το χρήστη για τυχόν προβλήματα.

Figure: Επικοινωνία πελάτη αναγνωριστή μέσω deamon, deamon threads & RAS για μια συγκεκριμένη εφαρμογή-υπηρεσία. Για κάθε τέτοια εφαρμογή, ο RAS μπορεί να χρησιμοποιεί ένα γκρουπ αναγνωριστών, δρώντας έτσι σαν μηχανισμός εξισορρόπισης φορτίου (load balancing mechanism).
[scale = 0.500]images/web-images/eps/fig3.eps

Επικοινωνία πελάτη αναγνωριστή

Η επικοινωνία των πελατών με τον αναγνωριστή, πρέπει να υποστηρίζει την εξυπηρέτηση πολλών πελατών ταυτόχρονα. Η πιο λογική υλοποίηση, θα ήταν να ενσωματωθεί αυτή η ικανότητα απευθείας στον κώδικα του αναγνωριστή. Δηλαδή για κάθε πελάτη, ο αναγνωριστής θα δημιουργούσε ένα καινούριο process, το οποίο θα διάβαζε από το socket με το πελάτη τα συμπιεσμένα δεδομένα και θα του έστελνε το αποτέλεσμα της αναγνώρισης. Για λόγους όμως υλοποίησης κυρίως, αποφασίστηκε να ενσωματωθεί αυτή η ικανότητα σε ένα σύνολο αντικειμένων, που αποτελούν τελικά το συνδετικό κρίκο μεταξύ των πελατών και του αναγνωριστή. Η δομή του συστήματος όπως έχει αυτή τη στιγμή, είναι αυτή που φαίνεται στο Σχήμα  [*]. Οι πελάτες επικοινωνούν με τον αναγνωριστή μέσω του daemon. O daemon είναι ένας δαίμονας που το μόνο που κάνει είναι να δημιουργεί ένα νέο thread για κάθε νέο πελάτη π.χ. για τον πελάτη i δημιουργείται το thread i, το οποίο είναι υπεύθυνο για να εξυπηρετήσει τον πελάτη. Το thread θα διαβάσει τα συμπιεσμένα δεδομένα από το socket με τον πελάτη. Στη συνέχεια θα ζητήσει κάποιο id από τον Recognizer Access Server (RAS) το οποίο καθορίζει τη σειρά προτεραιότητας στην αναγνώριση. Στην συνέχεια το thread θα προσπαθήσει να κερδίσει πρόσβαση στον αναγνωριστή με βάση το id του. Όταν έρθει η σειρά του, ο RAS θα επικοινωνήσει με τον αναγνωριστή. Ο αναγνωριστής θα διαβάσει τα δεδομένα και θα επιστρέψει την πρόταση που αναγνώρισε στο thread, το οποίο με τη σειρά του θα την επιστρέψει στον πελάτη.

Εναλλακτικές προσεγγίσεις

Η υλοποίηση αυτή, υποθέτει ότι υπάρχει διαθέσιμος ένας μόνο αναγνωριστής, ο οποίος μάλιστα εξυπηρετεί σειριακά τις αιτήσεις για αναγνώριση. Σε ένα άλλο σενάριο (π.χ. μια πραγματική υπηρεσία), θα μπορούσε να υπάρχει μια φάρμα τέτοιων αναγνωριστών χωρισμένη σε γκρουπς, καθένα από τα οποία αντιστοιχεί σε μια καθορισμένη υπηρεσία ή εφαρμογή π.χ. ένα γκρουπ με αναγνωριστές για κράτηση αεροπορικών εισιτηρίων, ένα άλλο για πληροφορίες κίνησης μετοχών κ.ο.κ. Σε αυτή τη περίπτωση σε κάθε Recognizer Access Server (RAS), αντιστοιχεί ένα τέτοιο γκρουπ αναγνωριστών και τότε ο RAS ενεργεί και σαν μηχανισμός εξισορρόπησης φορτίου (load balancing mechanism). Σε αυτή τη περίπτωση για κάθε τέτοια υπηρεσία, θα υπάρχει και ένας διαφορετικός daemon στον οποίο και θα απευθύνεται ο πελάτης.

Φυσικά, υπάρχουν ακόμα ένα σωρό τέτοιες λεπτομέρειες. Σε κάθε περίπτωση, αυτό που πρέπει να σημειωθεί είναι ότι στο demo αυτό, έχουν γίνει πολλές απλοποιήσεις όπως για παράδειγμα στην υλοποίηση της επικοινωνίας πελάτη-αναγνωριστή και σε καμιά περίπτωση δεν αντιπροσωπεύει μια ``πραγματική'' εφαρμογή.

Speech Recognition Applet Demo

Όπως φαίνεται στις επόμενες εικόνες του applet, υπάρχουν 4 panels(πάνελς) με τα 3 πρώτα να αντιστοιχούν στα 3 plugins και το 4ο στο σύστημα βοήθειας του χρήστη. Σε κάθε ένα από τα 3 αυτά πάνελς, υπάρχουν διαθέσιμες 2 περιοχές. Η πρώτη (περιοχή επιλογών - settings area), επιτρέπει στο χρήστη να καθορίσει ποιες επιλογές θα χρησιμοποιήσει, ενώ η δεύτερη, (περιοχή ενεργειών - action area), να επιτελέσει την αντίστοιχη λειτουργία του παρόντος πάνελ (π.χ. συμπίεση για το Compress Panel). Τέλος, κοινή για όλα τα panels είναι η περιοχή μηνυμάτων (Message Console), η οποία δίνει πληροφορίες κατά τη διάρκεια της λειτουργίας του demo. Στη συνέχεια θα εξεταστεί η λειτουργία του κάθε πάνελ χωριστά.

Figure: AudioPanel
[scale = 0.500]images/web-images/ps/audio.ps

AudioPanel

Το AudioPanel (βλέπε Σχήμα [*]), περιλαμβάνει επιλογές που έχουν να κάνουν με την ποιότητα του συστήματος ήχου, καθώς αυτή έχει να κάνει με το front-end. Αυτόματα ελέγχεται τι είδος codebooks υπάρχουν. Αν αυτά έχουν παραχθεί για παράδειγμα, μόνο για υψηλής ποιότητας ήχο, τότε η επιλογή για χαμηλή ποιότητα ήχου απενεργοποιείται, όπως φαίνεται και στο Σχήμα [*]. Εκτός από την ποιότητα ήχου, υπάρχει επιλογή και για την χρησιμοποίηση JNI (java SDK 1) ή του java SDK 2 κώδικα.

Στην περιοχή ενεργειών, ο χρήστης καλείται να καθορίσει μια πρόταση για είσοδο στο front-end. Μπορεί να ηχογραφήσει μια νέα κυματομορφή ή και να επιλέξει μια από τις διαθέσιμες. Για τη πρώτη ενέργεια, ο χρήστης πρέπει να επιλέξει το δεύτερο κουμπί (το τρίτο καθορίζει το τέλος της ηχογράφησης, ενώ το πρώτο την αναπαραγάγει) από τα 3 κουμπιά ήχου, ενώ για τη δεύτερη επιλογή, χρησιμοποιείται η μπάρα επιλογής που βρίσκεται στα δεξιά. Ενδιάμεσα γίνεται η επιλογή του τρόπου που επιθυμεί ο χρήστης.

Figure: CompressPanel
[scale = 0.500]images/web-images/ps/compress.ps

CompressPanel

Εδώ (βλέπε Σχήμα [*]), ο χρήστης επιλέγει το είδος του feature που θα παραχθεί (Single ή Csptrum) και το είδος κωδικοποίησης (Index ή Centroid Coded κβαντισμό). Στην περιοχή ενεργειών, υπάρχουν το κουμπί έναρξη (Start button) και η μπάρα προόδου (progress bar) που δείχνει το ποσοστό της εκτελούμενης εργασίας που έχει γίνει έως τώρα. Σε αυτό το πάνελ επιτελούνται δυο εργασίες : Η παραγωγή του feature από το front-end και στη συνέχεια η κωδικοποίηση με βάση το επιλεγμένο σχήμα κωδικοποίησης.

Figure: RecognizePanel
[scale = 0.500]images/web-images/ps/recognize.ps

RecognizePanel

Φτάνοντας στο Recognize panel, είμαστε έτοιμοι να στείλουμε το συμπιεσμένο πια μήνυμα στο αναγνωριστή, αρκεί να επιλέξουμε το κουμπί start. Και εδώ όπως και στη περιοχή ενεργειών του προηγούμενου πάνελ, υπάρχει μπάρα προόδου που ενημερώνει το χρήστη για τη πρόοδο της αναγνώρισης . Στη περιοχή επιλογών, ο χρήστης μπορεί να καθορίσει την διεύθυνση IP και το port του μηχανήματος στο οποίο τρέχει ο daemon. Στην εικόνα [*] βλέπουμε ότι ο daemon τρέχει στο τοπικό μηχάνημα, αλλά φυσικά οποιαδήποτε έγκυρη διεύθυνση μπορεί να καθοριστεί (π.χ. 147.27.8.126). Το Network plugin θα αναλάβει την επικοινωνία με τον αναγνωριστή και μόλις ανακτηθεί το αποτέλεσμα της αναγνώρισης, θα εμφανιστεί στη μπάρα κειμένου που βρίσκεται στο πάνω μέρος του πάνελ (Recognition Result text field).

Figure: HelpPanel
[scale = 0.500]images/web-images/ps/help.ps

HelpPanel

Η βοήθεια για τη λειτουργία του applet χωρίζεται στα εξής μέρη :

Συμπεράσματα

Indexindex


next up previous
Next: About this document ... Up: mythesis Previous: Πειράματα κωδικοποίησης
root 2001-02-24