thesis

A Voice Assistant for cooking based on a natural language to SPARQL transformation pipeline using Rasa

Abstract

Οι φωνητικοί βοηθοί είναι συστήματα που μπορούν να αλληλεπιδρούν με τον άνθρωπο με εκφωνούμενη φυσική γλώσσα και αποτελούν ένα ενδιαφέρον και ταχέως αναπτυσσόμενο πεδίο της Τεχνητής Νοημοσύνης και της Επεξεργασίας Φυσικής Γλώσσας. Κατατάσσονται κυρίως σε δύο κατηγορίες με βάση τη λειτουργία τους, τα συστήματα που προσανατολίζονται στη συνομιλία και αυτά που έχουν ως στόχο τη διεκπεραίωση εργασιών. Στην παρούσα διπλωματική εργασία παρουσιάζουμε τον σχεδιασμό και την ανάπτυξη του SousChef, ενός ολοκληρωμένου φωνητικού βοηθού για μαγειρική. Ο στόχος του συστήματος είναι να βοηθήσει τον χρήστη στην εκτέλεση μιας συνταγής, απαντώντας σε σχετικές ερωτήσεις. Στη βάση του συστήματος βρίσκεται ένας μηχανισμός που μετατρέπει τις ερωτήσεις φυσικής γλώσσας σε ερωτήματα SPARQL, χρησιμοποιώντας το λογισμικό Rasa. Για το σκοπό αυτό, έχει δημιουργηθεί μια οντολογία συνταγών και επίσης έχει εκπαιδευτεί ένα μοντέλο αναγνώρισης ονομαστικών οντοτήτων (NER). Τα δεδομένα εκπαίδευσης του μοντέλου αποτελούνται από ένα σύνολο ελληνικών συνταγών επισημειωμένων με οντότητες σχετικές με τη συνταγή. Για την εκπαίδευση του μοντέλου χρησιμοποιείται το τμήμα του Rasa που αφορά στην κατανόηση φυσικής γλώσσας, βάση του οποίου αποτελεί η αρχιτεκτονική DIET. Στη συνέχεια, για την εκπαίδευση ολόκληρου του διαλόγικού συστήματος χρησιμοποιείται το όλο Rasa Stack, με δεδομένα εκπαίδευσης ένα σύνολο ερωτήσεων που σχετίζονται με την παρασκευή μιας συνταγής. Το μοντέλο δεν εκπαιδεύεται από την αρχή, αλλά γίνεται fine-tuning του ήδη εκπαιδευμένου μοντέλου ταξινόμησης. Έτσι, όταν ο βοηθός λαμβάνει μια διεύθυνση URL από τον χρήστη, εξάγει από τον κώδικα HTML το κείμενο που περιλαμβάνει τη συνταγή και το τροφοδοτεί στο μοντέλο NER. Οι οντότητες που εξάγονται γεμίζουν δυναμικά την οντολογία, η οποία στη συνέχεια είναι έτοιμη για αναζήτηση. Κάθε φορά που ο χρήστης θέτει μια ερώτηση, ανάλογα με την πρόθεση και τις οντότητες που βρέθηκαν σε αυτήν, εκτελείται ένα ερώτημα SPARQL στη συμπληρωμένη οντολογία. Το αποτέλεσμα του ερωτήματος μετατρέπεται σε απάντηση, η οποία αποστέλλεται πίσω στον χρήστη. Προκειμένου να μετατρέψουμε το σύστημα σε φωνητικό βοηθό, χρησιμοποιούμε ένα λογισμικό που το συνδέει με τα API της Google για αναγνώριση και σύνθεση φωνής. Ο φωνητικός βοηθός μπορεί να χρησιμοποιηθεί μέσω μιας διαδικτυακής εφαρμογής που καταγράφει την ομιλία και την αποστέλλει στην προγραμματιστική διεπαφή μετατροπής φωνής σε κειμένο. Στη συνέχεια, το παραγώμενο κείμενο αποστέλλεται στο Rasa και επιστρέφεται μια απάντηση. Μέσω της προγραμματιστικής διεπαφής σύνθεσης ομιλίας, αυτή μετατρέπεται σε ομιλία και μεταδίδεται πίσω στον χρήστη. Τέλος, πραγματοποιήσαμε μια αναλυτική αξιολόγηση του βοηθού, χρησιμοποιώντας τόσο αυτόματες μεθόδους όσο και αξιολογήσεις από χρήστες. Τα συνολικά αποτελέσματα δείχνουν ότι το σύστημά μας είναι ικανό να διεξάγει έναν αποτελεσματικό διάλογο που ως επι το πλείστον επιστρέφει τις κατάλληλες απαντήσεις στον χρήστη.Voice assistants are systems that can interact with humans based on spoken natural language and they are an exciting and fast developing field of Artificial Intelligence and Natural Language Processing. They mainly fall under two categories based on their function,namely chat-oriented systems and task-based agents. In the current thesis we present the design and development of SousChef, an end-to-end, task-based voice assistant for cooking. The goal of the system is to assist a user during the execution of a recipe, by answering recipe-related questions. At the basis of the system lies a pipeline that converts natural language questions to SPARQL queries using Rasa. To this end, a recipe ontology has been created and an NER model has been trained on a set of Greek recipes annotated with recipe-related entities. Rasa NLU pipeline with DIET classifier is utilized for training the classifier. Later on, Rasa Stack is used to train the entire dialogue system on questions related to recipe preparation, by fine-tuning the already trained model. When the assistant receives a URL from the user, it extracts the recipe text from the HTML code and feeds it to the NER model. The extracted entities dynamically fill the ontology which is then ready to be queried. Each time a user asks a question, depending on the intent and the entities found, an action is triggered that executes a SPARQL query on the filled ontology. The query result is converted to an answer which is sent back to the user. In order to convert the system into a voice assistant, we use a pipeline of microservices that connect to Google’s APIs for Speech-to-Text and Text-to-Speech services. The system can be used through a web UI that records speech, sends it to the Speech-to-Text API which converts it to string. The text is then sent to Rasa and an answer is returned. This is then transformed to speech through the Text-to-Speech API and is transmitted back to the user. Finally, we have conducted a thorough evaluation of the assistant, using both an automatic and human-based method. The overall results show that our system is capable of conducting an effective and efficient dialogue

    Similar works