background image

ηχογράφηση. Ακολούθως γίνεται η ηχογράφηση του μηνύματος με χρήση της με-

θόδου listen() και η κλήση του google ΑPI μέσω της μεθόδου .recognize_google()

δηλώνοντας της γλώσσα που θα εντοπιστεί. Η απάντηση θα έρθει σε μορφή text για

περαιτέρω επεξεργασία. Στην περίπτωση που υπάρχει καθυστέρηση απάντησης ή η

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

μήνυμα. Η διαδικασία που αναλύθηκε ακολουθείται κάθε φορά που ο χρήστης δίνει

μια φωνητική εντολή.

Όπως έχει αναφερθεί για να θεωρηθεί μια φωνητική εντολή έγκυρη θα πρέπει

να ικανοποιεί κάποιες συμβάσεις που έχουν τεθεί. Αυτές οι συμβάσεις έχουν να

κάνουν τόσο με την πληρότητα των στοιχείων σε μια εντολή παράδοσης όσο και τη

χρήση συγκεκριμένων λέξεων για την λειτουργία αναζήτησης και τερματισμού. Για

παράδειγμα όταν ο χρήστης ζητάει ένα αντικείμενο θα πρέπει η εντολή να περιέχει

τη λέξη «φέρε» ή «πιάσε» ακολουθούμενη με το χρώμα και το σχήμα αν ζητάει

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

αντικειμένου για τις περιπτώσεις αναγνώρισης με Yolo και QR code. Αντίστοιχα για

τη λειτουργία αναζήτησης θα πρέπει να χρησιμοποιεί τη λέξη «ψάξε» και για τη

λειτουργία τερματισμού τη λέξη «σταμάτησε». Με τον ίδιο τρόπο ισχύει και για

την αγγλική γλώσσα.

Προκειμένου να υλοποίθει αυτός ο έλεγχος εγκυρότητας έχουν αναπτυχθεί συ-

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

επεξεργάζεται ώστε να εξαχθούν μόνο οι λέξεις που ικανοποιούν αυτούς τους κα-

νόνες. Όλες οι αποδέκτες λέξεις του συστήματος έχουν εισαχθεί σε λίστες ανά κατη-

γορία. Πιο συγκριμένα η συνάρτηση close_matches() δέχεται ως είσοδο το κείμενο

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

αποδεκτές λέξεις. Η συνάρτηση ελέγχει κάθε λέξη από το επιστρεφόμενο κείμενο

με κάθε λέξη από τη λίστα. Η λέξη με την οποία μοιάζει περισσότερο επιστρέφεται

ως την αναγνωριζόμενη λέξη. Κατ’ αυτόν τρόπο δίνοντας ως όρισμα διαφορετικές

λίστες με αποδεκτές λέξεις ελέγχεται μέσω της βασικής ρουτίνας ελέγχου που υλο-

ποιείται από τη συνάρτηση run() αν η φωνητική εντολή εκπληρεί ή όχι τις συμβάσεις

πληρότητας ώστε στο τέλος να εξαχθεί η τελική εντολή.

124