Αυτόματη αναγνώριση δρόμου σε ρεμπέτικα κομμάτια

Φαίνεται πολύ κοντά σε αυτό που θέλουμε να κάνουμε!
Θα διαβάσω το paper και πιο αναλυτικά αργότερα.

για να κάνω τον συνήγορο του διαβόλου, παρότι το βρίσκω ενδιαφέρον ως τεχνολογία,ο προβληματισμός μου είναι ο εξής:
Κάθε σύνθεση περιέχει το κάθε μακάμι όσο περιέχει και τη φαντασία του δημιουργου.Το κάθε μακάμι λοιπον αποτελείται απο το άθροισμα του ρεπερτορίου που το αφορά αλλά το κάθε μέρος του αθροίσματος δεν περιέχει απαραίτητα τα ίδια συστατικά. Για παράδειγμα, υπάρχει μεγάλο μέρος ρεπερτορίου που χρησιμοποιεί όχι μια κύρια δομή αλλα δύο ή και παραπάνω. Κλασσικό παράδειγμα ο Τούντας που βάζει ενα μακαμ στην εισαγωγή και κάτι άλλο στο φωνητικό μέρος και μετά αρχίζει και μετατροπεί απο πάνω με τρόπο που δεν δείχνει ξεκάθαρα ένα συγκεκριμένο μακάμι αλλά ένα συνδιασμό .( Το χιτζάζ+σαμπάχ πχ το χει ψωμί-τυρί). Και εκεί λοιπόν σταματάει η κάθε θεωρία και βάζουμε μπροστά την κρίση μας και αποφασίζουμε τι χρώμα βγαζει για εμάς το κομμάτι. Αυτή η διαδικασία θα ήταν δύσκολο να γίνει απο λογισμικό αλλά και να γίνει, θα ήταν δύσκολο να μας διδάξει κάτι.
Τέλος, υπάρχουν πολλά σημεία ειδικά στον “συγκερασμένο” Τούντα που δεν ορίζει ξεκάθαρα μια δομή αλλά την αναφέρει ελλειπώς και συχνά είναι στην κρίση του ακροατή-ερμηνευτή να αποφασίσει τι υπονοεί ο συνθέτης. Δεν λέω πως η μουσική είναι προβληματική, απλά αναφέρω τις εξαιρέσεις οι οποίες είναι πολλές και τελικά είναι ο λογος που η θεωρία παραμένει επιγραμματική και σύντομη.

2 «Μου αρέσει»

Έχεις δίκιο σε αυτό που λες…

σε αντίστοιχα προβλήματα που υπάρχει διττή ερμηνεία ή το αποτέλεσμα της ταξινόμησης μπορεί να περιέχει μία η περισσότερες κλάσεις, χρησιμοποιούν ποσοστό “σιγουριάς”. Οπότε πχ: ένα κομμάτι μπορεί να είναι 60% χιτζάζ και 40% σαμπάχ.

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

1 «Μου αρέσει»

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

επειδή μου φαίνομαι πολύ δύσπιστος, θέλω κάποιες πληροφορίες από τους πιο σχετικούς. απ’ ό,τι κατάλαβα τέτοιου είδους προγράμματα χρησιμοποιούνται γενικότερα, και ο χρήστος θέλει να τα προσαρμόσει στην συγκεκριμένη εργασία. σε ποιές άλλες εφαρμογές χρησιμοποιείται ήδη με ικανοποιητική επιτυχία παρόμοιο λογισμικό;

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

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

Από την Wikipedia:

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

  • Ιατρική διάγνωση: Ένα ευρύ φάσμα ιατρικά συσχετιζόμενων ενδείξεων, όπως ο συνδυασμός της καρδιακής συχνότητας, τα επίπεδα των διαφόρων ουσιών στο αίμα, ο ρυθμός της αναπνοής μπορούν να παρακολουθηθούν. Η εκδήλωση μιας συγκεκριμένης ιατρικής κατάστασης, γίνεται να συσχετιστεί με ένα πολύπλοκο συνδυασμό μεταβολών σε ένα υποσύνολο μεταβλητών που παρακολουθούνται. Τα νευρωνικά δίκτυα έχουν χρησιμοποιηθεί για την αναγνώριση αυτού του προτύπου πρόβλεψης, ώστε να χορηγηθεί η κατάλληλη θεραπεία.

  • Χρηματιστηριακές προβλέψεις: Οι διακυμάνσεις των τιμών των μετοχών και των χρηματιστηριακών δεικτών είναι ακόμα ένα παράδειγμα ενός πολύπλοκου, πολυδιάστατου, αλλά και σε ορισμένες περιπτώσεις εν μέρει ντετερμινιστικού φαινομένου. Τα νευρωνικά δίκτυα χρησιμοποιούνται από πολλούς τεχνικούς αναλυτές, ώστε να κάνουν προβλέψεις σχετικά με τις τιμές των μετοχών, βασιζόμενοι σε ένα μεγάλο αριθμό παραγόντων, όπως δηλαδή, τις προηγούμενες επιδόσεις άλλων αποθεμάτων και διαφόρων οικονομικών δεικτών.

  • Πιστωτική ανάθεση: Μια ποικιλία από κομμάτια πληροφοριών, τα οποία είναι συνήθως γνωστά για ένα απαιτούμενο δάνειο. Για παράδειγμα, η ηλικία του αιτούντος, η εκπαίδευση, το επάγγελμα και πολλά άλλα στοιχεία που μπορεί να είναι διαθέσιμα. Μετά την εκπαίδευση ενός νευρωνικού δικτύου σε ιστορικά δεδομένα η ανάλυση μπορεί να εκτοπίσει τα πιο κατάλληλα και σχετικά χαρακτηριστικά και να τα χρησιμοποιήσει για την ταξινόμηση των αιτούντων ως χαμηλού ή υψηλού κινδύνου.

  • Παρακολούθηση της κατάστασης των μηχανημάτων: Τα νευρωνικά δίκτυα μπορούν να συμβάλλουν στη μείωση του κόστους με την εξασφάλιση της πρόσθετης εμπειρογνωμοσύνης για τον προγραμματισμό προληπτικής συντήρησης των μηχανημάτων. Ένα νευρωνικό δίκτυο, λοιπόν, μπορεί να εκπαιδευτεί με τέτοιο τρόπο, ώστε να διακρίνει από τους ήχους τους οποίους παράγει μια μηχανή είτε αν εκτελεί κανονικά τις λειτουργίες της, είτε βρίσκεται στα πρόθυρα εμφάνισης οποιασδήποτε δυσλειτουργίας. Μετά από αυτήν την περίοδο εκπαιδευτικής κατάρτισης, η εμπειρία του ίδιου δικτύου είναι δυνατό να χρησιμοποιηθεί με σκοπό την προειδοποίηση ενός τεχνικού για κάποια επικείμενη βλάβη προτού συμβεί και ενδεχομένως προκαλέσει πολυδάπανες και απρόβλεπτες χρονικές καθυστερήσεις.

  • Συστήματα διαχείρισης κινητήρα: Τα νευρωνικά δίκτυα έχουν χρησιμοποιηθεί για την ανάλυση των εισροών που δέχονται οι αισθητήρες ενός κινητήρα. Το νευρωνικό δίκτυο ελέγχει μια ποικιλία παραμέτρων με τις οποίες λειτουργεί ο κινητήρας, προκειμένου να επιτευχθεί ένας συγκεκριμένος στόχος. Για παράδειγμα, το δίκτυο αυτό επιχειρεί την ελαχιστοποίηση της κατανάλωσης των καυσίμων.

1 «Μου αρέσει»

Το θέμα είναι για μένα πολύ ενδιαφέρον, μια και ασχολούμαι, για πάνω από 20 χρόνια με νευρωνικά δίκτυα και ιδιαίτερα με αυτοδιδασκόμενα.

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

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

Έχουμε λοιπόν το εξής πρόβλημα:
Έχω ένα κομμάτι μουσικής και θέλω αυτόματα ένας υπολογιστής να το ταξινομεί στον ή στους αντίστοιχους δρόμους που αποτελείται. Δεν σημαίνει ότι ο δρόμος είναι ένας, μπορεί κάλλιστα να είναι 2 και περισσότεροι. Θα μπορούσε δηλαδή να μου απαντήσει 60% Χιτζάζ 40% Πειραιώτικος ή ακόμη καλύτερα από το 1 έως το 2 λεπτό Χιτζάζ και από το 2ο μέχρι το 3ο Πειραιώτικος.
Ή όπως στη δικιά μου περίπτωση που όπως είπα νομίζω ότι είναι πιο απλή, να δημιουγήσει αυτόματα ο υπολογιστής μελωδίες και ταξίμια πάνω σε συγκεκριμένους δρόμους.

Για να γράψω ένα τέτοιο πρόγραμμα στον υπολογιστή θα μπορούσα να καλέσω κάποιον τέλεια γνώστη του θέματος και να μου εξηγήσει όλο το σύστημα κανόνων που μπορούν να χρησιμοποιηθούν για την κατασκευή μιας μελωδίας.
Θα μου έλεγε λοιπόν όλες τις νότες (και γιατί όχι και μόρια) από τις οποίες αποτελείται ένας δρόμος, με ποιόν τρόπο κινούμαστε πάνω στον δρόμο, πότε μπορούμε να αλλάξουμε δρόμο κτλ κτλ.
Νομίζω ότι εάν η θεωρητική προσέγγιση γίνει με το σύστημα των μακαμιών και τον τρόπο που τα μακάμια συνεργάζονται μαζί τους το αποτέλεσμα να ήταν ακόμη καλύτερο.

Η απλή ιδέα θα ήταν λοιπόν, μέσα από όλο αυτό το σύστημα κανόνων, που ένας τέλεια θεωρητικά καταρτισμένος μουσικός μου έχει δείξει, να δημιουγήσω μικρά κομμάτια αποτελούμενα πχ από 3 ή 4 ή 5 νότες (ας τα πούμε blocks) και συνεχίχοντας με το σύστημα κανόνων που έχω, να προσθέτω τέτοια blocks ένα μετά το άλλο ελπίζοντας να καταλήξω σε κάποιο καλό μουσικό αποτέλεσμα. Κάτι σαν τα μακάμια δηλαδη.

Στην πραγματικότητα βέβαια τα πράγματα είναι πολύ πιο δύσκολα, άσε που ακόμη και με τις προυποθέσεις που ανέφερα φαντάζομαι ότι το αποτέλεσμα δεν θα ήταν ιδιαίτερα καλό.

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

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

Για ευκολία θα μείνω στην περίπτωση που τα παραδείγματα τα έχουμε σε μορφή midi αρχείου, δηλαδή νότες, και όχι σε μορφή wav όπως αρχικά προτάθηκε.

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

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

Η μεγάλη επιτυχία των νευρωνικών δικτύων τα τελευταία χρόνια, οφείλεται κυρίως στο γεγονός ότι τα δίκτυα αυτά δεν χρειάζονται καν παραδείγματα προ-ταξινομιμένα!!

Στο σκάκι πχ ένα νευρωνικό δίκτυο μπορεί να παίζει εναντίον του εαυτού του αρχικά τυχαίες ή χαζές κινήσεις κάποια στιγμή όμως θα φτάσει στο τέλος της παρτίδας και εκεί θα πάρει ένα 100% σωστό αποτέλεσμα (νίκησε πχ ο άσπρος). Το αποτέλεσμα δεν χρειάζεται να του το πει κάποιος δάσκαλος αλλά προκύπτει από τους ίδιους τους κανόνες του σκακιού. Το σωστό τελικό αποτέλεσμα το χρησιμοποιεί το νευρωνικό δίκτυο για να αυτοπροσαρμοστεί και να διορθωθεί. Παίζοντας λοιπόν εκατομμύρια παρτίδες εναντίων του ευατού του, μπορεί θεωρητικά να φτάσει σε ένα πολύ καλό αποτέλεσμα.
Αυτό έκανε και η Google με το Alpha Zero και κατάφερε να φτιάξει με διαφορά το πιο δυνατό σκάκι αυτή τη στιγμή στον κόσμο.

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

Αυτά για την θεωρία.
Θα ήθελα όμως να πω και κάτι για την πράξη:

Η μουσική για τον μουσικό είναι ένας τρόπος έκφρασης.
Έχει να κάνει με συναισθήματα, εμπειρίες κτλ.
Θέλει δηλαδή ψυχή!!!
Ψυχή ο υπολογιστής δεν έχει!
Τα τελευταία χρόνια, με την χρήση των υπολογιστών, έχουμε φτάσει σε ένα σημείο, όπου γράφονται εκατομμύρια τραγούδια, λίγο πολύ τα ίδια χωρίς ψυχή, τα οποία τα περισσότερα ούτε να τα ακούσουμε δεν προλαβαίνουμε, όχι να δημιουγήσουμε δε και εμπειρίες με αυτά ή να μας κινήσουν το ενδιαφέρον…
Λυπάμαι πραγματικά την νέα γενιά που δυστυχώς με τα κινητά και τα κομπιούτερ μέσω αυτής της πληθώρας νέων τραγουδιών, τα οποία έρχονται και φεύγουν στη στιγμή, κάτι σαν junk food, χάνει το ενδιαφέρον γενικότερα για τη μουσική.

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

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

3 «Μου αρέσει»

Παιδιά, να ρωτήσω κάτι:

Όταν γράφετε «αναγνώριση δρόμου», και περιλαμβάνετε μέσα στις πιθανές απαντήσεις και τις μικτές, δηλαδή π.χ. Χιτζάζ μαζί με Πειραιώτικο, είναι βέβαιο ότι εννοείτε όντως δρόμο και όχι κλίμακα;

Δηλαδή: μπορεί ένα τέτοιο πρόγραμμα να αναγνωρίσει την πιθανότητα να εμφανιστεί, μέσα στη μελωδία, μια νότα εκτός από τις 7 βασικές του δρόμου (π.χ. μια έλξη), και όμως να μην έχουμε αλλάξει δρόμο;

Στο Ραστ, η βασική κλίμακα είναι Ρε - Μι - Φα# - Σολ - Λα - Σι - Ντο/Ντο# - Ρε. Αλλά ως παροδικές έλξεις είναι δυνατόν κατά περίπτωση να εμφανιστούν και οι νότες Μι# και Σολ# (για να μην πω και το Φα φυσικό και το Σι#, που είναι εναρμόνιες άλλων), δηλαδή 10 από τα 12 τάστα της πρώτης οκτάβας ενός συγκερασμένου οργάνου, με άλλα λόγια σχεδόν κάθε νότα. Αλλά φυσικά, η εμφάνιση οποιασδήποτε από αυτές τις 10 νότες, επ’ ουδενί δεν επαρκεί για να πούμε ότι έχουμε Ραστ. Αναλόγως της κίνησης, ορισμένες νότες εμφανίζονται ως εναλλακτικές άλλων νοτών, ενώ υπάρχουν και νότες αυθύπαρκτες (που δεν αντικαθιστούν άλλη). Μπορεί το πρόγραμμα να εκπαιδευτεί να τα αναγνωρίζει όλα αυτά, ή μένει μόνο σε απόλυτα τονικά ύψη;

1 «Μου αρέσει»

καθαρίζοντας το μυαλό από την χτεσινή μάζωξη, και προσπαθώντας να μην επαναλάβω το μήνυμα #2 (ας διαβαστεί για να μην καταντάω βαρετός γράφοντας τα ίδια, και τα ίδια με τον @pepe):
@KostasBerlin συμφωνώ μαζί σου για την λειτουργία και το νόημα της μουσικής, και μάλιστα για τον φυσικό ήχο. επιπλέον, η παρατήρησή σου σε σχέση με τον δάσκαλο του νευρωνικού συστήματος με οδηγεί στη σκέψη πως οι προγραμματιστές που θα φτιάξουν κάτι τέτοιο πρέπει να έχουν άριστη γνώση των δρόμων. μόνο έτσι θα καταλάβουν πού θέλουν να φτάσουν και πώς μπορεί να γίνει αυτό.
αυτό που λες για παραγωγή μουσικών φράσεων από υπολογιστή, θα ήταν ενδιαφέρον για έναν προγραμματιστή, δεν ξέρω για έναν ακροατή ή για έναν μουσικό. θα μπορούσε όμως ενδεχομένως να φτάσει σε ένα σημείο ενδιαφέρον. σίγουρα θα είχε νόημα, σε αντίθεση με ένα πρόγραμμα που απλά υποκαθιστά βασικές ικανότητες ενός μουσικού (κούρδισμα, θεωρία, κλπ).

και κάτι άσχετο/σχετικό, μια που αναφέρθηκε η παραγωγή μουσικής, το τραγούδι “baba o’riley” των “who”:
“Baba O’Riley”'s backing track was derived from the “Lifehouse” concept, where Townshend wanted to input the vital signs and personality of Meher Baba into a synthesiser, which would then generate music based on that data. When this idea fell through, Townshend instead recorded a Lowrey Berkshire Deluxe TBO-1 organ using its marimba repeat feature as the backing track. This modal approach was inspired by the work of minimalist composer Terry Riley.
πηγή: https://en.wikipedia.org/wiki/Baba_O’Riley

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

Δηλαδή, θέλω να πω, ας μη λέμε «να μην το κάνει γιατί δε θα είναι μουσική». Δε θα είναι μουσική, αλλά μπορεί να υπάρχουν άλλοι λόγοι να το κάνει!

1 «Μου αρέσει»

ναι, γι’αυτό άφησα ένα παραθυράκι στο τέλος! θα μπορούσε να βγει και μουσική, δεν το αποκλείω.
καμιά φορά και τα ταξίμια που κάνουμε (και αρκετά παραδοσιακά/αδέσποτα) είναι απλά στάνταρ φράσεις πάνω στον δρόμο.

Εξαιρετικες απαντησεις. Πολυ ενδιαφερον. Ελπιζω να δω αποτελεσματα!