Η ανάκαμψη των φωνητικών εφαρμογών

Μέχρι τα μέσα -τουλάχιστον, για τα δεδομένα της Ελλάδας- της περασμένης δεκαετίας τα κλειστά (συνήθως APIs για τη δημιουργία φωνητικών και τηλεφωνικών γενικότερα αλληλεπιδραστικών εφαρμογών αρνούνταν πεισματικά να παραδώσουν τη σκυτάλη στο ανοιχτά πρότυπα VXML (πλέον στην έκδοση 3.0), CCXML, GRXML κλπ.

Και παρόλο που αρκετοί ήθελαν να δημιουργήσουν τέτοιες εφαρμογές ως μια από τις βασικές εκδοχές του ubiquitous computing (μιας και το mobile web ήταν ακόμη στα σπάργανα), χάθηκε η ευκαιρία ο χώρος να ακολουθήσει τους ρυθμούς εξέλιξης των εφαρμογών web. Βέβαια, με δεδομένες τις δυνατότητες των σημερινών συσκευών δεν μιλάμε για αντικατάσταση των εφαρμογών ιστού αλλά για συμπλήρωσή τους για εκείνες τις περιπτώσεις που ακόμη και η περιοριστική παροχή πληροφοριών με γραμμικό τρόπο είναι πιο κατάλληλη (ή η μόνη διαθέσιμη μέσω της κλήσης ενός τηλεφωνικού αριθμού κι από την πιο απλή τηλεφωνική συσκευή).

Οι λόγοι της υστέρησης, πέρα από τον παραπάνω, είναι πολλοί:

  • κλειστή φύση των εφαρμογών τηλεφωνίας αλλά και της επικοινωνίας με μηχανές αναγνώρισης ομιλίας/σύνθεσης φωνής που ελέγχονταν από λίγες μεγάλες εταιρείες
  • διαρκώς νέα APIs και εργαλεία (γραφικά ή μη) που πρέπει να υιοθετηθούν από τους προγραμματιστές
  • μεγάλο κόστος εγκατάστασης τηλεπικοινωνιακών υποδομών διασύνδεσης και ακριβό υλικό τηλεφωνίας
  • μη εξοικείωση με τις τεχνολογίες τηλεφωνίας από το ευρύ κοινό προγραμματιστών
  • Οι τεχνολογίες web απαλλαγμένες από τα παραπάνω προβλήματα έγιναν το κύριο μέσο για τη διάδοση/διάχυση των πληροφοριών. Τα πράγματα άρχισαν να αλλάζουν με την είσοδο της προσέγγισης του ανοιχτού λογισμικού/λογισμικού ανοιχτού κώδικα στο χώρο της τηλεφωνίας (βλ. Asterisk) και του VoIP. Με τα εργαλεία αυτά υπήρχε πλέον η δυνατότητα να εγκαταστήσει και να φτιάξει εφαρμογές τηλεφωνίας οποιοσδήποτε με σχετικά μειωμένου κόστους εξοπλισμό και με υπηρεσίες που δίνονταν από τους τηλεπικοινωνιακούς παρόχους σε οικιακούς χρήστες.

    Το πρόβλημα όμως της ευρείας αποδοχής των εφαρμογών τηλεφωνίας παρέμενε μέχρι που μια νέα προσέγγιση υπόσχεται πλέον να δώσει λύση μέσω της σύγκλισης με τις τεχνολογίες ιστού και τη λογική της φιλοξενίας και την παροχή ως υπηρεσία (SaaS ή στη συγκεκριμένη περίπτωση VaaS: Voice as a Service): οι τηλεφωνικές υπηρεσίες βασισμένες στο σύννεφο (cloud telephony/voice).

    Θα λέγαμε ότι μέσα στο 2010, υπήρξε μια έκρηξη εμφάνισης πολλών εταιρειών και λύσεων προς την κατεύθυνση αυτή με τα ακόλουθα βασικά κοινά χαρακτηριστικά:

  • Παρέχεται ένα web based API μέσω του οποίου οι χρήστες/εφαρμογές μπορούν να καλέσουν βασικές υπηρεσίες τηλεφωνίας όπως η απάντηση κλήσεων, η αναπαραγωγή ήχου, η συλλογή επιλογών μέσω DTMF τόνων, η εγγραφή ήχου κλπ
  • Τα αποτελέσματα αποστέλλονται, στη συνέχεια, στα πλαίσια μιας αίτησης προς το διακομιστή της εφαρμογής για την περαιτέρω επεξεργασία και για να αποφασιστεί από την εφαρμογή πώς θα εξελιχθεί η αλληλεπίδραση
  • Η παραμετροποίηση/εγκατάσταση του απαιτούμενου υλικού, η εξασφάλιση τηλεφωνικού αριθμού/δρομολόγησης κλπ γίνεται από τον πάροχο χωρίς να πρέπει να ανησυχεί τον χρήστη
  • Έχει υιοθετηθεί πολιτική πληρωμής ανάλογα με τη χρήση με αποτέλεσμα το αρχικό κόστος εγκατάστασης να είναι πλέον μηδενικό
  • Κάποιες (με πρωτοπόρο τo tropo.com της Voxeo) προσπαθούν να εντάξουν από την αρχή και τις δυνατότητες αναγνώρισης και σύνθεσης ομιλίας
  • Τα χαρακτηριστικά αυτά έχουν αρχίσει να δίνουν μια νέα ώθηση στις τηλεφωνικές εφαρμογές και στον ολοένα και πιο πρωτοποριακό συμπληρωματικό συνδυασμό (και όχι βέβαια να λειτουργούν ανταγωνιστικά) με εφαρμογές web αλλά και εφαρμογές που αξιοποιούν άλλα κανάλια επικοινωνίας (πολύκαναλικές εφαρμογές) ώστε να μιλάμε πλέον για ανάκαμψή τους.

    Ανάμεσα στις πιο δημοφιλείς τέτοιες υπηρεσίες είναι:

  • Tropo (μέσω του Tropo WebAPI και ευρεία χρήση JSON)
  • Twilio (μέσω της υποστήριξης της TwiML)
  • Cloudvox|IfByPhone (με υιοθέτηση του FastAGI από τον κόσμο του Asterisk ως API
  • Teleku (UPDATE 2010-08-14 η οποία εξαγοράστηκε από τη Voxeo)
  • Invox
  • QuickFuse (με online γραφικό εργαλείο workflow)
  • VoiceSage
  • Παρόλο που με την προσέγγιση αυτή πράγματι διευρύνεται η βάση των προγραμματιστών που μπορούν να τις αξιοποιήσουν λόγω της απλούστευσης αλλά και η δυνατότητα για mashups, το βασικό θέμα είναι ότι το προγραμματιστικό μοντέλο επιστρέφει εκεί που βρισκόταν όχι πριν από τη VXML (και τον ενσωματωμένο form interpretation αλγόριθμο) αλλά ακόμη κι πριν από τους πίνακες καταστάσεων (state-tables ή state-machines).

    Αυτό που αναμένεται πλέον είναι, μαζί κι από την εμπειρία χρήσης της VXML σε δυναμικές εφαρμογές, τουλάχιστον όταν έρθει η ανάγκη για πιο πολύπλοκες εφαρμογές από αυτές ενός απλού κατευθυνόμενου διαλόγου ή μιας απλής business διαδικασίας, να αναδυθούν/προταθούν νέα μοντέλα και μηχανισμοί που θα δίνουν τη δυνατότητα στον προγραμματιστή ανεξάρτητα από την πλατφόρμα που θα επιλέξει να επιτύχει πιο εύκολα την επιθυμητή αίσθηση αλληλεπίδρασης (Voice User Interface).

    UPDATE: Μια πολύ ενδιαφέρουσα διάκριση σε γενιές συστημάτων IVR κάνει Nickolay Schmyrev, βασικός συντελεστής της ανάπτυξης του Sphinx στο άρθρο του εδώ.
    Ουσιαστικά αναφέρεται στις παραπάνω υπηρεσίες τηλεφωνίας ως τη δεύτερη γενιά μετά την πρώτη γενιά των εφαρμογών βασισμένων σε VXML και αφήνει υποσχέσεις για εφαρμογές τρίτης γενιάς βασισμένων στην υποβοήθηση της σημασιολογική ανάλυση του διαλόγου μέσα και από αξιοποίηση dialogue manager, όπως ο Ravenclaw, o DMCPP κ.α.

    Κάποιος χρειάζεται τη φωνή σου

    Το VoxForge είναι μια πρωτοποριακή προσπάθεια για συλλογή μεταγραφών (transcriptions) ομιλίας, δηλαδή συνδυασμών ηχητικών καταγραφών αλλά και του περιεχομένου τους (σε κείμενο και άλλες σημάνσεις) σε διάφορες γλώσσες – ανάμεσά τους και για ελληνικά– , ώστε να αξιοποιηθούν από εργαλεία εκπαίδευσης ακουστικών μοντέλων Αναγνώρισης Ομιλίας του Ελεύθερου και Ανοικτού Κώδικα λογισμικού (ΕΛΛΑΚ), ανεξάρτητα από λειτουργικό σύστημα.

    Οι τελικές συλλογές δεδομένων διατίθενται υπό την άδεια GPL ενώ και τα μοντέλα που δημιουργούνται με τη χρήση τους επίσης συγκεντρώνονται για τις διάφορες μηχανές αναγνώρισης ομιλίας (όπως το CMU Sphinx , το Julius, το HTK κ.α.) και επαναδιατίθενται.

    Ο λόγος για αυτό είναι διότι δεν υπάρχουν ελεύθερα διαθέσιμες τέτοιες συλλογές δεδομένων παρόλο που αρκετές έχουν δημιουργηθεί στα πλαίσια και από χρηματοδότηση ερευνητικών προσπαθειών (π.χ. κάποιες που διαχειρίζεται η elda) ή μέσω άλλων πηγών (π.χ. audio-books). Για τα ελληνικά δεδομένα, ενθαρρυντικό είναι το γεγονός ότι πρόσφατα χρηματοδοτήθηκε έργο για τη συγκέντρωση, καταγραφή και επαναδιάχυση γλωσσικών πόρων (CLARIN-EL).

    Στις περιπτώσεις αυτές, οι εφαρμογές Ανοιχτου Λογισμικού καταφεύγουν στην εξαγορά των συλλογών δεδομένων, χωρίς όμως τη δυνατότητα αναδιανομής λόγω των περιοριστικών αδειών χρήσης, με αποτέλεσμα να μπορούν να διανείμουν μόνο τα τελικά «τελικά» Ακουστικά Μοντέλα, περιορίζοντας κατά πολύ την ευελιξία αλλά και τις δυνατότητες βελτίωσης που θα μπορούσε να επιφέρει η συμμετοχή πολλών δημιουργών/εθελοντών στη δημιουργία τους.

    Πώς Μπορεί να Βοηθήσει κάποιος;

    Το VoxForge έχει αναπτύξει ειδική εφαρμογή (java applet) που ζητά από το χρήστη/εθελοντή να διαβάσει μια σειρά από προτάσεις που έχει επιλέξει, έχοντας ενεργοποιημένο το μικρόφωνό του. Με τον τρόπο αυτό καταγράφεται η ομιλία του χρήστη, συσχετίζεται με την αντίστοιχη πρόταση και αποστέλλεται στο VoxForge. Την ίδια στιγμή ο χρήστης μπορεί να διαλέξει κάποια στοιχεία όπως π.χ. προφορά, τύπο μικροφώνου κ.α.

    Το κείμενο από όπου αντλούνται οι προτάσεις προς εκφώνηση είναι το Καλαμιές στον άνεμο, όπως είχε προτείνει ο SteliosK με βασικό μειονέκτημα, όμως, τον ατελή τρόπο χωρισμού του σε προτάσεις. Ακόμη, παρόλο που προτάθηκε (από τον ..γράφοντα) ο εμπλουτισμός των προτάσεων αυτών και με προτάσεις που συχνά χρησιμοποιούνται σε εφαρμογές του είδους (π.χ. ψηφία, αριθμοί. ημερομηνίες κλπ), δεν φαίνεται να έχει υιοθετηθεί ακόμη από την εφαρμογή συλλογής.

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

    Όχι μπάρμαν, μπάτμαν!

    Ανάμεσα στα μπόλικα έξυπνα σποτάκια (της Tribe) στα πλαίσια των εορτασμών για τα 20 χρόνια Mega, ένα μου κίνησε την προσοχή μιας και μου θύμισε ένα θέμα που συχνά συναντούσαμε στις εφαρμογές με αναγνώριση ομιλίας:

    Όπως μπορεί να παρατηρήσει κανείς (προς το τέλος του βίντεο, αφήστε το να παίξει), ο Δημήτρης Κουρούμπαλης καλείται να απαντήσει στην ερώτηση: «Τι θα ήθελες να ήσουν;»
    Η ενθουσιώδης του απάντηση «ο μπάτμαν» …παρερμηνεύεται σε «ο μπάρμαν» με αποτέλεσμα να μπει σε μια διαδικασία αλλαγής της επιθυμίας του (τουλάχιστον του ..επιτρέπεται από το «τζίνι») που όμως κι αυτή δημιουργεί επιπλοκές αφού η φράση του «όχι μπάρμαν, μπάτμαν» λαμβάνεται ως «(όχι), μπάρμαν μπάτμαν»!
    Το αποτέλεσμα είναι εναγωνίως να ..παρακαλάει στο τέλος: «όχι μπάρμαν μπάτμαν, μπάτμαν σκέτο!» …

    Το σποτάκι δεν συνεχίζει αλλά σίγουρα αν το «τζίνι» είχε υλοποιηθεί σαν μια εφαρμογή αναγνώρισης ομιλίας περιορισμένης γραμματικής (όπως υλοποιείται η συντριπτική πλειοψηφία των εφαρμογών αυτού του τύπου σήμερα για πρόσβαση μέσω τηλεφώνου), τότε δεν είναι δύσκολο να μαντέψουμε την απάντησή του: «Συγγνώμη, αλλά δεν σας κατάλαβα»… Χαχα! 🙂

    Νομίζω είναι ένα καλό παράδειγμα για το πόσο σημαντικό ρόλο παίζει το κομμάτι της διαχείρισης διαλόγου στην «ανάκαμψη» όταν το αποτέλεσμα της διαδικασίας αναγνώρισης ομιλίας δεν είναι το επιθυμητό.

    Τα παραπάνω μου θύμισαν και μια ..κλασική σκηνή με αναφορά στις -επιστημονικής φαντασίας για την εποχή- δυνατότητες της τεχνολογίας αναγνώρισης ομιλίας. Ρε Βαγγέληη!!

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

    Επικοινωνία με υπολογιστή μέσω Φωνής – Πού βρισκόμαστε;

    Ένα πολύ ενδιαφέρον άρθρο στο NewYorker αναλύει τη σημερινή κατάσταση στο χώρο της επικοινωνίας ανθρώπου υπολογιστή μέσω της φυσικής ομιλίας και βεβαίως πόσο αυτή απέχει από τις αρχικές προσδοκίες, που βέβαια εν πολλοίς είχαν καλλιεργηθεί από τα δημιουργήματα της επιστημονικής φαντασίας (βλ. τον υπολογιστή HAL στην ταινία «Η Οδύσσεια του Διαστήματος» που είχε πλήρεις διαλογικές ικανότητες).

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

    Στη συνέχεια γίνεται αναφορά στις τρέχουσες ερευνητικές προσπάθειες που αφορούν στη μεγάλη τους πλειοψηφία αυτή τη στιγμή στην ανίχνευση της συναισθηματικής κατάστασης του ομιλούντα αλλά και στα εργαλεία που θα βοηθούν για την αξιοποίηση μιας τέτοιας πληροφορίας, ενώ -περιέργως- δεν υπάρχουν αναφορές στις προσπάθειες συνδυασμού πολλών πηγών πληροφόρησης (π.χ. «εκμετάλλευση» της αναγνώρισης εκφράσεων του προσώπου) ξεχνώντας ίσως ότι ο HAL από το πρώτο ακόμη Space Odyssey (2001) είχε τη δυνατότητα να «διαβάζει» και τα χείλη! Ούτε λόγος όμως και σε άλλες «πολυτροπικές» εφαρμογές, όπου με αφορμή και νέο πρόσφατο specification από το W3C η ..συζήτηση έχει «ανάψει»…

    ΥΓ. Οι πρώτες πατέντες για αναγνώριση φωνής χρονολογούνται δεκαετία 1930-1940. Οι σχετικές αναρτήσεις στο αρμόδιο γραφείο των ΗΠΑ εμπεριέχουν ακόμη και αναλυτικά σχέδια υλοποίησης τέτοιων συστημάτων με ηλεκτρομηχανικές βέβαια ακόμη τεχνικές (!).

    Αναγνώριση ομιλίας μακριά από τη φορητή συσκευή …

    Οι προσπάθειες για multimodal διαδραστικότητα φαίνεται ότι επαναφέρουν την ιδέα της Distributed Speech Recognition (αν και λίγο μεταμορφωμένης ως Network Based Recognition).
    H έλευση του Android (και της βασισμένης σε Java υλοποίησής του) νομίζω είναι μια καλή αφορμή να επανεξεταστούν σχετικές προσπάθειες. Μανόλη, τι λες;