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

Ε εντάξει και λίγο ξεκουρδιστοι να είναι, θα έχεις θόρυβο 5% στις συχνότητες ? Πόσο να το πάνε πχ το A από 430- 450 ? Πιστεύω πως αν η ανίχνευση κορυφαίων συχνοτήτων αντέχει θόρυβο, θα δουλέψει αρκετά καλά. Θα είναι ενδιαφέρον να το δούμε και αυτό, πόσο φεύγουν οι παλιές ηχογραφήσεις

Νομίζω οσοδήποτε. Δε σκέφτονταν ανέκαθεν όλοι οι μουσικοί με γνώμονα κάποιο εξωτερικό σημείο αναφοράς στο κούρδισμα (440 ή άλλο). Οι Σμυρνιοί με την πιο ορχηστρική και γενικά πιο συστηματοποιημένη παράδοση, μπορεί (ιδίως αν συμμετέχουν πνευστά, σαντούρια ή κανονάκια, ή βέβαια πιάνα). Ένας Καραπιπέρης ή ένας Μπάτης, από πού κι ως πού να πρέπει να πάρει τόνο από κάπου για να κουρδίσει; Κουρδίζει τις χορδές μεταξύ τους και τέλος.

Δεν έχω κάνει συστηματικές παρατηρήσεις του τύπου «εδώ ακούω Ντο# αλλά μάλλον πρέπει να είναι Ρε μισό τόνο ξεκούρδιστο», αλλά μου έχει συμβεί πάρα πολλές φορές να κουρδίζω το όργανο πάνω σε μια ηχογράφηση για να τη βγάλω, και ο τόνος της επόμενης ηχογράφησης να μην είναι πουθενά! Και θυμάμαι και μια παρατήρηση του Σταύρου Κ. σε κάποιο κείμενο για ντουζένια, όπου είχε βρει έναν μπουζουξή (Μάρκο;) κουρδισμένο ενάμιση τόνο πάνω, δηλ. να παίζει Φα με πάτημα Ρε.


[Μάλιστα παλιά, προ ΥΤ, τον καιρό εκείνο που για ν’ ακούσουμε ένα κομμάτι έπρεπε να κάνουμε ορισμένες κινήσεις όχι μόνο με τα δάχτυλα (μερικά κλικ) αλλά να σηκωθούμε, να βρούμε τον δίσκο, να τον βγάλουμε από τη θήκη κλπ., για κάποια κομμάτια που τα είχα σε βινύλιο αξιοποιούσα τη σπάνια δυνατότητα του πικάπ μου να πιάνει όχι μόνο 45 και 33 στροφές και άλλες δύο πιο σπάνιες, αλλά και όλες τις ενδιάμεσες. Έτσι, αντί να κουρδίζω το όργανο πάνω στην ηχογράφηση, κούρδιζα το πικάπ στον τόνο του οργάνου!]

1 Like

Με τον αλγόριθμο που ανέφερα ξεπερνιέται το πρόβλημα της ταχύτητας εκτέλεσης ενός κομματιού, ενώ δεν είναι ανάγκη να χρησιμοποιούνται οι απόλυτες τιμές των συχνοτήτων, αλλά κάποιος άλλος τύπος. Φαντάζομαι πως μπορεί να βγει ένας τύπος που από το ΛΑ σε ελεύθερη τη μεσαία χορδή (220HZ) και ΛΑ στο 12ο τάστο (440 ΗΖ) θα προκύπτει σωστά το επόμενο ημιτόνιο κ.ο.κ. και στις δυο περιπτώσεις. Επίσης αυτός ο τύπος ακόμα και αν το όργανο έχει κουρδιστεί λανθασμένα πχ ΛΑ με ελεύθερη χορδή (225 ΗΖ) θα δίνει τη συχνότητα που θα έχει για το συγκεκριμένο κούρδισμα το επόμενο ημιτόνιο. Επίσης ακόμα και αν ένα τραγούδι που είναι γραμμένο πχ σε ΡΕ χιτζάζ σε κάποια εκτέλεση είναι σε ΝΤΟ Χιτζάζ μπορεί να ληφθεί μέριμνα στον αλγόριθμο ώστε να το αναγνωρίζει ως Χιτζάζ.

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

1 Like

δεν υπάρχει “λάθος” λα, παλιά ήταν 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