background image

Η συνάρτηση check_object() εκτελείται κάθε φορά που ο χρήστης κατονομάζει

ένα αντικείμενο για παράδοση. Η συνάρτηση δέχεται ως είσοδο το όνομα του αντι-

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

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

αντικείμενα που έχουν εντοπιστεί από το Vision. Σε περίπτωση που το αντικείμενο

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

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

μηνύματος για την αποτυχία εύρεσης του αντικειμένου.

3.3.1

Αναγνώριση φωνητικών εντολών

Για την υλοποίηση της φωνητικής αναγνώρισης έγινε χρήση της βιβλιοθήκης

SpeechRecognition η οποία υποστηρίζει διάφορες online και offline μηχανές ανα-

γνώρισης φωνής και API. Για τις ανάγκες της υπάρχουσας υλοποίησης επιλέχθηκε

η χρήση του Google Voice Recognition API. Η επιλογή αυτή προέκυψε ύστερα από

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

CMU Sphinx τόσο στη Αγγλική όσο και στην Ελληνική γλώσσα. Το API της Google

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

χρόνο όταν ο έλεγχος έγινε για την ελληνική γλώσσα.

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

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

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

μπότ. Η επίτευξη αναγνώρισης ομιλίας αποτελείται από τρία επιμέρους βήματα,

την αρχικοποίηση μεταβλητών, την ηχογράφηση και αποστολή του ηχητικού και

τέλος τη λήψη του κειμένου. Για την αρχικοποίηση, ορίζονται αντικείμενα των κλά-

σεων Recognizer() και Microphone() καθώς και οι μεταβλητές sample_rate και το

chunk_size. Μέσω της μεταβλητής sample_rate καθορίζεται πόσο συχνά ηχογρα-

φούνται οι τιμές για επεξεργασία και μέσω της chunk_size καθορίζεται ο αριθμός

των bytes δεδομένων που θέλουμε να διαβάσουμε ταυτόχρονα. Προκειμένου να

γίνει η ηχογράφηση ορίζεται αντικείμενο της κλάσης Microphone() ως πηγή και

ρυθμίζεται δυναμικά το επίπεδο θορύβου περιβάλλοντος ώστε να αγνοηθεί από την

123