Επικοινωνία Ανθρώπου Υπολογιστή Β4. Συστήματα προφορικών διαλόγων (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/
Οι διαφάνειες αυτές βασίζονται εν μέρει στην ύλη του βιβλίου Speech and Language Processing των D. Jurafsky και J.H. Martin, 2 η έκδοση, Pearson Education, 2009. 2
Τι θα ακούσετε Συστήματα προφορικών διαλόγων. Αρχές συνομιλίας, διαλογικές πράξεις, πρωτοβουλία, στρατηγικές επιβεβαίωσης. Διαχείριση διαλόγων με αυτόματα πεπερασμένων καταστάσεων ή πλαίσια. 3
Συστήματα προφορικών διαλόγων Πολλές εφαρμογές, όπως: o κλείσιμο εισιτηρίων ή παροχή πληροφοριών, o πλοήγηση κατά την οδήγηση, o έλεγχος ή προγραμματισμός οικιακών συσκευών, o έλεγχος γνώσεων, γενικότερα εκπαίδευση μαθητών/φοιτητών. Πολλές από τις έννοιες που θα συναντήσουμε εφαρμόζονται και σε συστήματα γραπτών διαλόγων. o Πρόσφατα (πάλι) μεγάλο ενδιαφέρον για chatbots π.χ. αγορών. Η προφορική γλώσσα διαφέρει πολύ από τη γραπτή. Ααα, καλημέρα. Θαα... Θα ήθελα να κλείσω για... εεεε... Μπορείτε να μου πείτε εε... για Αθήνα... γύρωω στις πέντε... γι αύριο μιλάω, έτσι; εεε... αν έχει θέσεις με Ολυμπιακή. 4
Συστήματα προφορικών διαλόγων «Θέλω να πάω στο Ηράκλειο.» (φωνή) αναγνώριση φωνής [θέλω, θα, πάω, στο,???] ανάλυση φυσικής γλώσσας διαχείριση διαλόγου παραγωγή φυσικής γλώσσας σύνθεση φωνής parameter-input(arrive-to, noise) parameter-ask(arrive-to) [πού, θέλετε, να, πάτε, ;] άλλα συστήματα «Πού θέλετε να πάτε;» (φωνή) 5
Δομή διαλόγων Εν γένει ένας συνομιλητής κάθε φορά έχει το λόγο. o Αποφεύγουν να μιλούν ταυτόχρονα (turn taking). o Ενδέχεται ένας συνομιλητής να επιχειρήσει να πάρει το λόγο όσο μιλάει άλλος, αλλά υπάρχουν σημεία του διαλόγου όπου αυτό θεωρείται πιο φυσιολογικό (και ευγενικό). o Π.χ. όταν ο ομιλητής δείχνει να έχει σχεδόν ολοκληρώσει αυτό που λέει ή όταν ρωτήσει κάποιον άλλον. Συχνά αναμένεται ένας συνομιλητής να ανταποκριθεί με συγκεκριμένο τρόπο (adjacency pairs, dialogic pairs). o Π.χ. χαιρετισμός χαιρετισμός, αίτημα αποδοχή ή απόρριψη. o Μια καθυστερημένη ανταπόκριση σε τέτοια σημεία μπορεί να εκληφθεί ως απόρριψη, άρνηση ή αγένεια (significant silence). Συχνά αναμένεται συγκεκριμένη δομή διαλόγου. o Π.χ. χαιρετισμός χαιρετισμός, αίτημα, συλλογή προτιμήσεων, επιβεβαίωση, αποχαιρετισμός. 6
Πράξεις ομιλίας (speech acts) Όταν ένας συνομιλητής μιλά, εκτελεί μια ενέργεια (πράξη ομιλίας), που εντάσσεται σε ένα σχέδιο (πλάνο) που εκτελεί. o Π.χ. «Έχετε εισιτήρια;» ως μέρος ενός σχεδίου μετάβασης σε έναν προορισμό, που περιλαμβάνει και ενέργειες όπως αγορά εισιτηρίου, επιβίβαση, αποβίβαση στη στάση o Είδη πράξεων ομιλίας: εντολή («δώσε μου»), δέσμευση («δεν θα φύγω πριν»), δήλωση («προσλαμβάνεστε»), o Το πραγματικό είδος μιας πράξης ομιλίας μπορεί να είναι έμμεσο («Μπορείς να μου δώσεις το αλάτι;», indirect speech act). Ο ακροατής πρέπει να καταλάβει (και) το πραγματικό είδος της πράξης ομιλίας. o o Ένας συνεργατικός ακροατής επιχειρεί να καταλάβει και το σχέδιο του ομιλητή και να τον βοηθήσει να το εκτελέσει. Π.χ. ερώτηση: «Τι ώρα θέλετε να ταξιδέψετε;», απάντηση: «Έχω μια συνάντηση στο κέντρο της Αθήνας στις 9:30.» 7
Διαλογικές πράξεις και επιβεβαίωση Στην περίπτωση των διαλόγων, οι πράξεις ομιλίας επεκτείνονται σε διαλογικές πράξεις (dialogue acts), ώστε να περιλαμβάνουν και πράξεις επιβεβαίωσης κλπ. o Ένα σύστημα διαλόγων πρέπει να αναγνωρίζει (και) τα είδη των διαλογικών πράξεων των συνομιλητών του. o Π.χ. με επιβλεπόμενη μηχανική μάθηση. Ιδιότητες όπως: είδος προηγούμενης διαλογικής πράξης, χαρακτηριστικές λέξεις (π.χ. «Θα ήθελα», «Όχι»), ένταση φωνής, ερωτηματικός τόνος, χρονική διάρκεια, Οι συνομιλητές χρειάζεται να επιβεβαιώνουν διαρκώς ότι τα όσα ακούν γίνονται κατανοητά (grounding). o Η παραμονή του συνομιλητή είναι ασθενής επιβεβαίωση. o Ισχυρότερη επιβεβαίωση: ο συνομιλητής παίρνει το λόγο όπως αναμένεται, γνέφει καταφατικά, συμπληρώνει ή παραφράζει τα λεγόμενα του συνομιλητή του κλπ. 8
Προφορικοί διάλογοι με το CSLU Toolkit Το CSLU Toolkit διατίθεται ελεύθερα (βλ. http://www.cslu.ogi.edu/toolkit/). 9
Διαχείριση διαλόγων με αυτόματα πεπερασμένων καταστάσεων Πολλά συστήματα χρησιμοποιούν διαχειριστές διαλόγου βασισμένους σε αυτόματα πεπερασμένων καταστάσεων. Στην πιο απλή περίπτωση, σε κάθε κατάσταση το σύστημα περιμένει συγκεκριμένες λέξεις. Ανάλογα με τη λέξη που θα ακούσει, πηγαίνει σε νέα κατάσταση. o Στο προηγούμενο παράδειγμα, στην κατάσταση size, ο χρήστης μπορούσε να πει «small», «medium» ή «large». o Σε κάποιες καταστάσεις εκτελούνται και ενέργειες, όπως π.χ. κλείσιμο εισιτηρίου. Για να μπορεί ο χρήστης να πει ολόκληρες προτάσεις, συχνά προστίθεται σε κάθε κατάσταση μια γραμματική αναμενόμενων προτάσεων. o Υποβοηθούν την αναγνώριση φωνής καθορίζοντας τις δυνατές ακολουθίες λέξεων του χρήστη σε κάθε κατάσταση. 10
Με διπλό κλικ στην κατάσταση order 11
Με διπλό κλικ στην έξοδο της order «Semantic grammar»: τα μη τερματικά αντιστοιχούν σε είδη οντοτήτων, ενεργειών κλπ., όχι σε γραμματικές κατηγορίες (π.χ. NP, VP). αρχικό σύμβολο: pizza : διάζευξη [...]: προαιρετικό $...: μη τερματικό σύμβολο *sil: παύση *any: λέξεις εκτός λεξικού %%: μην περιλάβεις την αριστερή του λέξη στο αποτέλεσμα της αναγνώρισης 12
Φωνητικό λεξικό 13
Διπλό κλικ στην κατάσταση verify $order(recog): Το αποτέλεσμα της αναγνώρισης φωνής στην κατάσταση order. 14
Πρωτοβουλία (initiative) Στα συστήματα με αυτόματα ως μοντέλα διαλόγου, ο διάλογος καθοδηγείται κυρίως από το σύστημα. o Πρωτοβουλία συστήματος (system initiative): το σύστημα έχει τον έλεγχο. Π.χ. το σύστημα προσφέρει συγκεκριμένες επιλογές και ο χρήστης επιλέγει ή το σύστημα ρωτά τις τιμές συγκεκριμένων παραμέτρων και ο χρήστης τις δίνει. Εναλλακτικά, ο διάλογος καθοδηγείται από το χρήστη. o Πρωτοβουλία χρήστη (user initiative): ο χρήστης έχει τον έλεγχο. Π.χ. θέτει ερωτήσεις ή δίνει εντολές και το σύστημα απαντά. Σε διαλόγους μεταξύ ανθρώπων, ο διάλογος συχνά δεν είναι διαρκώς υπό τον έλεγχο του ίδιου συνομιλητή. o Μικτή πρωτοβουλία (mixed initiative): π.χ. το σύστημα ξεκινά με «Πώς μπορώ να σας εξυπηρετήσω;», κατόπιν παίρνει την πρωτοβουλία όταν χρειάζεται («Τι ώρα θέλετε να πετάξετε;»). 15
Διαχείριση διαλόγων μέσω πλαισίων Η υποστήριξη μικτής πρωτοβουλίας είναι συχνά ευκολότερη με τη χρήση πλαισίων. o Υποστηρίζονται από τη VoiceXML (βλ. J&M). Πώς μπορώ να σας εξυπηρετήσω; #$#$@#$ να [ requesttype κλείσω] @#$#$ [ destination για Αθήνα] @#$@ [ departtime στις πέντε] #$$@#$ [ date αύριο] $@##$$ [ carrier με Ολυμπιακή] requesttype booking Θέλετε να κλείσετε ή να αλλάξετε εισιτήριο; carrier OA Με ποια εταιρεία θέλετε να πετάξετε; date 23/5/11 Ποια ημερομηνία θέλετε να πετάξετε; departfrom Από πού θέλετε να αναχωρήσετε; destination ATH Ποιος είναι ο προορισμός σας; departtime 17:00 Τι ώρα θέλετε να αναχωρήσετε; 16
Διαχείριση διαλόγων μέσω πλαισίων Το σύστημα χρησιμοποιεί μια γραμματική που καλύπτει προτάσεις για οποιαδήποτε πεδία του πλαισίου. o Η γραμματική εξάγει και τις τιμές των πεδίων. o Δυσκολότερη έτσι όμως η αναγνώριση φωνής, γιατί η γραμματική επιτρέπει μεγαλύτερη ποικιλία προτάσεων. Αν λείπει η τιμή ενός πεδίου, το σύστημα παίρνει την πρωτοβουλία και ρωτά για αυτό. o Για κάθε πεδίο, το πλαίσιο παρέχει κατάλληλη ερώτηση. Μπορεί να χρησιμοποιούνται πολλά πλαίσια. o Π.χ. να υπάρχει και πλαίσιο για κλείσιμο αυτοκινήτου. o Ενδέχεται να χρησιμοποιείται γράφος με κόμβους-πλαίσια (π.χ. πρώτα πλαίσιο για κλείσιμο εισιτηρίων, μετά πλαίσιο για κλείσιμο ξενοδοχείου). 17
Αντί για γραμματικές Αντί για γραμματικές, ενδέχεται να χρησιμοποιείται ένα γλωσσικό μοντέλο και μέθοδοι αυτόματης επισημείωσης ακολουθιών. o Το γλωσσικό μοντέλο βοηθά την αναγνώριση φωνής να δώσει προτεραιότητα σε πιο πιθανές προτάσεις. o Η αυτόματη επισημείωση σημειώνει φράσεις που αντιστοιχούν σε τιμές πεδίων ενός πλαισίου. Π.χ. μέσω μηχανικής μάθησης (βλ. μάθημα ΤΝ). o Απαιτείται και κανονικοποίηση των φράσεων-τιμών. [ ignore Καλημέρα θα ήθελα] [ noise #$#$@#$] [ ignore παρακαλώ να] [ requesttype κλείσω] [ noise @#$#$] [ destination για Αθήνα] [ noise @#$@] [ departtime στις πέντε] [ noise #$$@#$] [ date αύριο] [ noise $@##$$] [ carrier με Ολυμπιακή] 18
Εντοπισμός τιμών πεδίων tˆ arg max P( t w ) arg max k k k 1 1 1 t k 1 k k 1 t1 arg max P( t ) P( w t ) k 1 t k k k 1 1 1 P( t ) P( w t ) k k k 1 1 1 k Pw ( 1 ) arg max P( t1) P( t2 t1) P( t3 t1, t2) P( tk t1,, tk 1) t P( w t ) P( w w, t ) P( w w, t ) P( w w, t ) k k 2 k k 1 k 1 1 2 1 1 3 1 1 k 1 1 [ ignore Καλημέρα θα ήθελα] [ noise #$#$@#$] [ ignore παρακαλώ να] [ requesttype κλείσω] [ noise @#$#$] [ destination για Αθήνα] [ noise @#$@] [ departtime στις πέντε] [ noise #$$@#$] [ date αύριο] [ noise $@##$$] [ carrier με Ολυμπιακή] 19
Εντοπισμός τιμών πεδίων με (semi-)hmm 1 η απλούστευση: Θεωρούμε (μοντέλο Μ-γραμμάτων) ότι η πιθανότητα εμφάνισης μιας ετικέτας εξαρτάται μόνο από τις προηγούμενες M 1. 2 η απλούστευση: P( t t,, t ) P( t t ) i 1 i 1 i 1 i i M 1 P( w w, t ) P( w w, t ) i 1 k i 1 i 1 1 i i M 1 i Θεωρούμε (semi-hmm) ότι η πιθανότητα εμφάνισης μιας λέξης στην ακολουθία εξαρτάται μόνο από την ετικέτα της και τις προηγούμενες M 1 λέξεις. Αντίθετα από τα HMM, όπου εξαρτάται μόνο από την ετικέτα της. [ ignore Καλημέρα θα ήθελα] [ noise #$#$@#$] [ ignore παρακαλώ να] [ requesttype κλείσω] [ noise @#$#$] [ destination για Αθήνα] [ noise @#$@] [ departtime στις πέντε] [ noise #$$@#$] [ date αύριο] [ noise $@##$$] [ carrier με Ολυμπιακή] 20
Παραγωγή αποκρίσεων Είτε με χρήση απλών σχεδιότυπων (templates). o Π.χ. «Ώστε θέλετε μια $order(recog) πίτσα.» Είτε με τεχνικές παραγωγής κειμένων (βλ. μάθημα ΤΝ). o Η επιλογή περιεχομένου (τι θα πούμε;) συνήθως γίνεται από το διαχειριστή διαλόγων. o Ενδέχεται να προστίθενται και ετικέτες στο παραγόμενο κείμενο, οι οποίες να καθοδηγούν το συνθέτη φωνής. o Ετικέτες: προσωδία ερώτησης ή δήλωσης, ημερομηνίες, χρηματικά ποσά κλπ., μέρη του λόγου (π.χ. «object», αλλά «OBJect»). 21
Στρατηγικές επιβεβαίωσης Ρητή επιβεβαίωση (explicit confirmation). o «Είπατε ότι θέλετε να πάτε στην Αθήνα;» o «Ώστε θέλετε να πετάξετε προς την Αθήνα, αύριο, στις 9:00, με την Ολυμπιακή;» o Συνήθως προτιμότερη μόνο σε κρίσιμα σημεία ή όταν η βεβαιότητα αναγνώρισης/κατανόησης φωνής είναι μικρή. Υπονοούμενη επιβεβαίωση (implicit confirmation). o «Τι ώρα θέλετε να φύγετε για την Αθήνα;» o Προτιμότερη σε μη κρίσιμα σημεία, με επαρκή βεβαιότητα. Απόρριψη (rejection), αν η βεβαιότητα είναι χαμηλή. o Π.χ. αρχικά σύντομη απόρριψη («Συγγνώμη, τι είπατε;»), κατόπιν πιο κατευθυνόμενη («Συγγνώμη, πότε είπατε ότι θέλετε να φύγετε;»), με τελικά εντελώς ελεγχόμενη είσοδο (π.χ. «Παρακαλώ πληκτρολογήστε»). 22
Διάβασμα Το μεγαλύτερο μέρος της ύλης αυτής της ενότητας καλύπτεται από το κεφάλαιο 24 των J&M. o Εισαγωγή κεφ. 24 και ενότητες 24.1 24.4. Περισσότερες πληροφορίες για τα θέματα αυτής της ενότητας θα βρείτε (προαιρετικά) στις διαφάνειες του μεταπτυχιακού μαθήματος «Γλωσσική Τεχνολογία». Περισσότερες πληροφορίες για τα συστήματα προφορικών διαλόγων θα βρείτε στα βιβλία: o o o «Spoken Dialogue Systems», των J. Jokinen και M. McTear, Morgan & Claypool Publishers, 2010. «Spoken Dialogue Technology Towards the Conversational User Interface», του M.F. McTear, Springer, 2004. Υπάρχουν στη βιβλιοθήκη. 23