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

δεν υπάρχει “λάθος” λα, παλιά ήταν 432Hz ή και αλλού. εξάλλου ακόμα και τώρα στις παρέες μεταξύ τους κουρδίζουνε. τουλάχιστον πριν έρθουν τα ψηφιακά κουρδιστήρια, μετά κουφαθήκαμε όλοι…
περικλή, πρέπει να ήσουν από τους πολύ τυχερούς που είχες πικάπ με pitch! τώρα βέβαια το κάνουν αυτό ειδικά προγραμματάκια όπως το amazing slow downer και άλλα. θυμάμαι πριν είκοσι χρόνια που είχα χρυσοπληρώσει ένα κασσετόφωνο της ibanez, κατέβαζε στο μισό την ταχύτητα της κασσέτας και επίσης έβαζες την ηλεκτρική και είχε κάτι άθλια εφέ (fuzz και chorus). το χειρότερο όμως ήταν ότι η ταχύτητα κατέβαινε σχεδόν στο μισό οπότε πέρα από το ότι ήταν μια οκτάβα κάτω φάλτσαρε κιόλας… μετά βγήκαν τα πρώτα ψηφιακά, κάνανε καλή δουλειά αν και με χαμηλή δειγματοληψία.
όλα αυτά μπορεί να φαίνονται εκτός θέματος, όμως νομίζω τονίζουν αυτό που είπα και στην αρχή. θέλουμε τεχνολογικά βοηθήματα, αλλά να υποστηρίζουν και όχι να υποκαθιστούν εμάς τους ανθρώπους.

Σαφώς, συμφωνώ, τεχνολογικά βοηθήματα θέλουμε.

1 Like

Φίλε νομίζω η προσέγγιση σου με μετασχηματισμό φουριέ ολόκληρης της ηχογράφησης είναι λίγο περίεργη και, αν μου επιτρέπετε την αγγλικούρα, brute force. Θα ήταν πιο λογικό να ξεκινήσεις με μετατροπή audio σε midi, και μετά να τρέξεις κάποια αναγνώριση δρόμων (σχετική έρευνα νομίζω γίνεται στο γαλλικό ircam για τους τρόπους του γρηγοριανού μέλους, της τζαζ κλπ). Αλλιώς η αναγνώριση κοιτάζει ένα σωρό άσχετα πράγματα όπως ρυθμό, ηχοχρώματα, ποιότητα ηχογράφησης, θόρυβο κλπ που θα επηρεάσουν το αποτέλεσμα του φουριέ.

1 Like

Καλησπέρα σε όλους! Κατ’ αρχάς, ευχαριστώ για όλο το feedback σας, τις ιδέες σας και το ενδιαφέρον σας.

Όταν πολλοί άνθρωποι καταθέτουν ιδέες και προτάσεις, είναι πολύ πιθανό κάτι να πετύχει.

Θα προσπαθήσω να απαντήσω στα κυριότερα σημεία σε κάθε έναν σας ξεχωριστά…

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

Ναι, είναι γεγονός, αυτό είναι δύσκολο. Τις τελευταίες ημέρες έψαξα λίγο παραπάνω το θέμα και είδα ότι με την τεχνική του deep learning (τεχνητή νοημοσύνη), μπορείς με κατάλληλες προσαρμογές να αναλύσεις και κομμάτια που έχουν πολλαπλούς δρόμους. Δηλαδή, να δώσεις ΄πολλαπλές ετικέτες σε κάθε κομμάτι στο αρχικό σύνολο δεδομένων. Δηλαδή πχ: το “είμαι απόψε στα μεράκια”, στην βάση μας θα μπορούσε να κατηγοριοποιηθεί ως χουζάμ και χιτζασκιάρ. Οπότε η προϋπόθεση το να μην έχουν τα κομμάτια μίξη δρόμων, δεν είναι τόσο σημαντική τελικά. Επιπλέον, όπως είπα και στην αρχική μου ανάρτηση, δεν είναι απαραίτητο να μην υπάγονται σε πνευματικά δικαιώματα τα κομμάτια… Είναι απλά το ιδανικό.

Είναι γεγονός, ότι οι δρόμοι - μακάμ, είναι πολύ πιο περίπλοκοι από τις κλίμακες της δυτικής μουσικής. Θα μπορούσε λοιπόν, να εκπαιδεύσουμε το σύστημα να αναγνωρίζει πεντάχορδα - τετράχορδα αντί για ολόκληρους δρόμους, όπως πολύ ωραία προτείνει ο @perastikos. Βέβαια, θα πρέπει να προσαρμόσουμε έτσι και το αρχικό σύνολο δεδομένων.

Γι’ αυτό θέλω να χρησιμοποιήσω την τεχνική του deep learning. Ουσιαστικά με την τεχνική αυτή, μπορούμε να γενικεύσουμε την αναγνώριση σε όλες τις τονικότητες, γιατί στην πραγματικότητα, κοιτάει το “σχήμα” - “μορφή” του μετασχηματισμού Fourier και όχι τις απόλυτες συχνότητες. Δηλαδή, δεν το νοιάζουν τόσο τα absolute values, αλλά τα διαστήματα, αλλά και οι έλξεις (καθώς οι συχνότητες που στέκεται η μελωδία πιο πολύ, έχουν μεγαλύτερη τιμή, αν δεν κάνω λάθος).

Γι’ αυτό που εξηγώ παραπάνω, προτιμώ το deep learning από το απλό peak detection.

Το πρόβλημα της ταχύτητας εκτέλεσης στο deep learning, επιλύεται με τεχνικές data augmentation (ουσιαστικά, στο training set, προσθέτεις διαφορετικές εκδοχές του ίδιου κομματιού σε διαφορετικές ταχύτητες αλλά και διαφορετικές τονικότητες - μετά από δική σου προεπεξεργασία). Αλλά προφανώς είμαι ανοικτός να δοκιμάσουμε και άλλες τεχνικές :slight_smile:

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

Αν έχεις κάποια πηγή για την έρευνα αυτή θα ήταν αρκετά ενδιαφέρον! Όμως φαντάζομαι ότι θα είναι πιο δύσκολο μετά να αναλύσεις τα εξαγώμενα midi, γιατί παρ’ ότι θα έχεις πιο καθαρή είσοδο, τελικά θα πρέπει να μπλέξεις με άλλου τύπου τεχνικές όπως Recursive Neural Networks ώστε να αναγνωρίσεις τις δομές που υπάρχουν σε αυτά. Αλλά προφανώς είμαι ανοικτός και σε αυτό αν και δεν ξέρω πόσο αξιόπιστα θα μπορούσε να γίνει η μετατροπή σε midi.

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

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

Γενικά…

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

1 Like

βάλε το μπροστά χρήστο κι εδώ είμαστε εμείς.
(άσε με μένα τον γερο-γκρινιάρη)

1 Like

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

2 Likes

Χρήστο κάποια στιγμή είχα σκεφτεί να κάνω κάτι αντίστοιχο, αλλά λόγω χρόνου το παράτησα εν τη γενέσει…
Δες τα link παρακάτω, θα σου δώσουν έναν μπούσουλα πως να προσεγγίσεις το όλο project:
http://coding-geek.com/how-shazam-works/
https://www.lunaverus.com/cnn
Νομίζω ότι η καλύτερη προσέγγιση είναι αυτή.

1 Like

Υπάρχει κάτι νεότερο?
Πολύ φοβάμαι ότι ακόμη και εάν είχες 100% όλων των ελληνικών τραγουδιών σωστά ταξινομημένα δεν θα αρκούσαν.

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

Είναι γεγονός ότι τα δεδομένα που υπάρχουν είναι λίγα. Το θέμα είναι ότι δεν θα γίνει το training πάνω σε ολόκληρα κομμάτια, αλλά σε σύντομες φράσεις αυτών (οπότε αν σπάσεις ένα κομμάτι σε πολλά αποσπάσματα, τότε έχεις μεγαλύτερη ποσότητα δεδομένων. Επίσης, με κάποιες τεχνικές (data augmentation), όπως επιβράδυνση, αλλαγή pitch κτλ μπορείς να βάλεις το ίδιο κομμάτι πολλές φορές στο σύνολο δεδομένων σου.

Με αυτά ίσως βγάλουμε μιαν άκρη :slight_smile:

http://repository.londonmet.ac.uk/1190/

δες και εδώ

1 Like

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

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

2 Likes

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

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

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

1 Like

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

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

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

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

Από την Wikipedia:

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

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

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

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

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

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

1 Like

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2 Likes

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

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

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

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

1 Like

καθαρίζοντας το μυαλό από την χτεσινή μάζωξη, και προσπαθώντας να μην επαναλάβω το μήνυμα #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 Like

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