Μετάφραση .srt eng σε gr

καληαπερα σας και χρονια πολλα σε ολους σας. θα ηθελα την βοηθεια σας για μια σκεψη που εχω κανει.

  1. αν μπορει να γινει
  2. αν μπορει καποιος να με βοηθησει να το φτιαξουμε η να το κανει μονος και να το δωσει στην κοινοτητα

ας υποθεσουμε πως εχουμε ενα .txt (Α) αρχειο το οποιο μεσα εχει προτασεις γραμμενες στα αγγλικα και απο κατω ειναι η μεταφραση (προταση - μεταφραση καπως ετσι το εχω σκεφτει)
ας υποθεσουμε πως εχουμε κατεβασει ενα αρχειο .srt (Β) απο το νετ και οι υποτιτλοι ειναι στα αγγλικα γιατι δεν βρισκουμε στην γλωσσα μας.
αν ειχαμε ενα script το οποιο θα διαβαζε τα αγγλικα απο το αρχειο Β και θα ανετρεχε για καθε προταση στο αρχειο Α και θα την αντεγραφε μεταφρασμενο

δεν ξερω αν μπορει να γινει απλα σκεφτομαι οτι εκει εξω υπαρχουν χιλιαδες μεταφρασεις εργων στα ελληνικα οποτε αν αυτο ηταν εφυκτο ισως ειχαμε μια λυση για τα εργα που δεν βρισκουμε υποτιτλους.

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

Αν δώσεις παράδειγμα αρχείων .txt και .srt θα βρεθούν κάμποσοι να φτιάξουν σκριπτάκι.

Τα .srt είναι .txt αρχεία με timestamps ανά σειρά.
Ένα απλό copy/paste στο google translate κάνει τη δουλειά.
Φυσικά μπορεί να γίνει και με ένα script που θα καλέσει το API και θα πάρει τη μετάφραση.

Όμως…

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

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

Φυσικά και μπορεί να γίνει, σχετικά εύκολα, αλλά δεν αξίζει τον κόπο για εμένα.

Όλη μου η σκέψη είναι ως εξής. Να πάρω τους αγγλικούς και τους ελληνικούς υπότιτλους από μία ή παραπάνω ταινίες που έχει γίνει και μετάφραση στα Ελληνικά. Πχ Harry Potter
Ας πούμε τώρα ότι έχουμε μια ταινία του 20 που δεν έχει υπότιτλους στα Ελληνικά όμως έχει στα αγγλικά.
Το script θα διαβάζει τις τις προτάσεις από το αρχείο που δεν έχει ελληνικούς υπότιτλους και θα ανατρέχει στο αρχείο μας με της μεταφράσεις. Σκοπός είναι να βρίσκει ίδιες προτάσεις και μόνο προτάσεις και να αντιγράφει την ελληνική μετάφραση.
Ελπίζω να καταλάβατε την σκέψη μου…

Κοίτα να δεις. Αν καταλαβαίνω καλά θες κάτι που θα του δίνεις το SRΤ αρχείο με τα Αγγλικά, θα τα βάζει σε ένα txt ανά πρόταση π.χ.:

Αγγλικά: Sentence to translate
Ελληνικά:

Θα πηγαίνεις εσύ στο txt θα βάζεις την Ελληνική μετάφραση π.χ.:

Αγγλικά: Sentence to translate
Ελληνικά: Πρόταση προς μετάφραση

και μετά το πρόγραμμα θα παίρνει την Μετάφραση και θα παράγει ένα srt με τα ελληνικά?

1 Like

Θα σου πω την σκέψη μου όσο πιο αναλυτικά μπορώ. Ο σκοπός όλου αυτού που συζητάμε είναι η δική μας ευκολία.

  1. Σκεφτόμουν πως στο opensubtitles υπάρχουν περίπου 16.000 αρχεία από σειρές και έργα στα Ελληνικά.
  2. Κάθε μεταφραστική εφαρμογή που υπάρχει κάνει μεταφράσει στα Ελληνικά ανά λέξη με αποτέλεσμα να χάνετε το νόημα.
  3. αν φτιάχναμε ένα αρχείο Χ το οποίο θα είχε μέσα τους αγγλικούς υπότιτλους από μια ταινία π.χ. Harry Potter. Στο ίδιο αρχείο ή σε άλλο θα υπηρχαν οι υπότιτλοι από το ίδιο έργο ( Harry Potter ) στα Ελληνικά.
  4. έχουμε ένα αρχείο με υπότιτλους π.χ. iron Man το οποίο δεν βρίσκουμε υπότιτλους.
  5. script διαβάζει το αρχείο iron Man ψάχνει κοινές προτάσεις στο αρχείο Harry Potter eng.
  6. Για κάθε κοινή πρόταση θα αλλάζει στο αρχείο iron Man τα αγγλικά με την μετάφραση που βρήκε.
  7. Ο σκοπός είναι να βρίσκει κοινές προτάσεις ώστε να υπάρχει και σωστή κατά 90% μετάφραση οπότε και νόημα…
  8. όλα αυτά είναι σκέψεις δεν ξέρω κατά πόσο είναι εύκολο ή δύσκολο ή αδύνατο. Αν έχετε την περιέργεια να δοκιμάσουμε εγώ μπορώ να βοηθήσω αρκεί να μου πείτε τι να κάνω λόγο που όπως σας είπα δεν έχω τις γνώσεις.

Φυσικα μιλαμε για αρχη τεχνιτης νοημοσυνης. Δεν ειναι απιθανο αλλα δεν ειναι και κατι που το κανεις με ενα script και ξεμπερδευεις. Παρομοια μεθοδο εχει ολοκληρο youtube οταν κανει μεταφραση των κειμενων, και παλι λαθος κανει. Ακομη και η google διαθετει απειρες εργατοωρες για να βελτιωνει τα εργαλεια μεταφρασης που και παλι δεν τα λες και πολυ καλα

1 Like

Δεν υπάρχει αυτή την στιγμή κάποιος νόμιμος και δωρεάν τρόπος για να γίνει μετάφραση μέσω script. Παλιά υπήρχε διαθέσιμο το google translate API, αλλά όχι πια. Υπάρχουν κάποια script που κάνουν μετάφραση, θα βρεις και στα αποθετήρια αλλά είναι εύθραυστα.

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

Το μπρίκι είναι μέσα στο ντουλάπι

Τι είναι το μπρίκι; Το καράβι ή το σκεύος του καφέ; Μια λύση που δοκιμάστηκε ήταν οι στατιστικές συσχετίσεις λέξεων. Αν παρακάτω βρεις την λέξη ζάχαρη μπορείς να επιλέξεις. Δεν δούλεψε. Μια άλλη μέθοδος είναι η σημασιολογική γνώση. Το μπρίκι έχει κάποιες συγκεκριμένες διαστάσεις, το ντουλάπι κάποιες άλλες, και η έννοια του μέσα προϋποθέτει μια σχέση αυτών. Δεν δούλεψε αν και προσπάθησε να κάνει ένα comeback με τις τεχνολογίες XML.

Η λύση που δούλεψε είναι αυτή της Google. Παίρνω ένα κείμενο και βρίσκω το ίδιο μεταφρασμένο σε άλλη γλώσσα και εκπαιδεύω ένα τεράστιο νευρωνικό. Οι λεπτομέρειες είναι ένα εμπορικό μυστικό, αλλά για να το κάνεις θέλεις τεράστια υπολογιστική ισχύ και το κυριότερο τεράστια corpus που μόνο η google διαθέτει. Και παρεμπιπτόντως με την διαίσθηση σου πλησίασες την σωστή απάντηση. Οι μεταφράσεις των υπότιτλων είναι ένα καλό, αν και μικρό corpus κειμένων. Αλλά θέλει πολλά περισσότερα από αυτό.

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

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

2 Likes

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

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

Το να μεταφράζει το κείμενο σε προτάσεις είναι το ίδιο με το να μεταφράζεις λέξεις, απλά το κάνεις με μεγαλύτερα τμήματα κειμένου.
Για παράδειγμα το να μεταφράσεις το γνωστό “raining cat and dogs” σε “βρέχει γάτες και σκύλους” είναι κάτι που μπορείς να κάνεις πολύ εύκολα ακόμα και αυτόματα, μεταφράζοντας σωστά λέξεις, αλλά είναι λάθος γιατί η σωστή απόδοση είναι “Θα βρέξει πολύ” ή “Θα βρέξει καρεκλοπόδαρα” αν θες να κρατήσεις τον ιδιωματικό χαρακτήρα. Το ίδιο συμβαίνει και με τις προτάσεις, ωστόσο εδώ έχεις και άλλα προβλήματα. Είναι πολύ απίθανο να βρεις κοινές προτάσεις Πως χωρίζεις το κείμενο σε προτάσεις και πως διαχειρίζεσαι προτάσεις με ονόματα, πως διαχειρίζεσαι συνδέσμους?

Παράδειγμα
"You had Ashby poisoned from inside prison, 
you exposed the Janus List, 
and then you let all hell break loose, 
and now you're gonna make yourself useful."

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

Πιθανή μετάφραση
"Έβαλες κάποιους να δηλητηριάσουν τον Άσμπι μέσα από την φυλακή 
εξέθεσες την ' Λίστα του Ιανού ' 
και επέτρεψες να γίνει χαμός
και τώρα θα γίνεις χρήσιμος."

Ωστόσο και αυτή η μετάφραση έχει πρόβλημα. Ο ποιητής εδώ χρησιμοποιεί το “and now you’re gonna make yourself useful.” με έναν ερωτηματικό και ειρωνικό χαρακτήρα, γιατί ο χαρακτήρας που μιλά είναι εξοργισμένος με αυτόν που κατηγορεί για την δολοφονία του Ashby. Υπάρχει μία σχέση δηλαδή του “Άσε μας κουκλίτσα μου που μας έχει κάνει την ζωή κόλαση και θες να μας το παίξεις και χρήσιμο” Αυτή η σχέση αποτυπώνεται στην ταινία από τον ηθοποιό με βάση τις συμβουλές του σκηνοθέτη και του σεναριογράφου. Σε αυτή τη σχέση επίσης βοηθούν η μουσική, το σκηνικό και άλλα στοιχεία.
Ο άνθρωπος μεταφραστής θα κατέληγε σε ένα συμπέρασμα ότι η καλύτερη μετάφραση είναι:

"Έβαλες κάποιους να δηλητηριάσουν τον Άσμπι μέσα από την φυλακή 
εξέθεσες την ' Λίστα του Ιανού ' 
και επέτρεψες να γίνει χαμός
...και τώρα θα γίνεις χρήσιμος;"

Με πρόλαβε και ο @Talos. Στην τελική καταλήγουμε στο ερώτημα. Πως μεταφράζεις ένα αγγλικό λογοπαίγνιο ή το κλάμα του ανθρώπου?

2 Likes

Καταλαβα…σας ευχαριστώ πολύ για τις απαντήσεις και για της χρήσιμες πληροφορίες που παραθεσατε.

Παντός μπορώ να πω σε σιγουριά πως το φόρουμ και οι άνθρωποι που το απαρτίζουν είναι πολύ καλό.
Από εκεί και πέρα έχω μια ένσταση
Αν υπάρχει η αγγλική εκδοχή του raining cat and dogs σίγουρα κάποιος που έχει κάνει μετάφραση στα Ελληνικά μια ταινία θα έχει βάλει το καρεκλοποδαρα
Ο διαχωρισμός τον προτάσεων μπορεί να είναι σε γραμμές.
Δεν ξέρω απλά σκέφτομαι ότι η αγγλική γλώσσα και όσο αφορά τις ταινίες σε ένα μεγάλο μέρος έχει κοινές προτάσεις
Με αυτή την λογική σκέφτηκα όλο αυτό αλλά προφανώς μιλάμε για κάτι το οποίο αν το κάνουμε θα είναι τσάμπα χρόνος και κόπος

1 Like

Θα μπορουσες να δοκιμασεις web scraping απο Google Translate ή κατι αλλο αλλα στην ουσια αυτο που λεμε ολοι ειναι οτι και να υπαρχει κατι καπου που να εχει μεταφρασει το “raining cats and dogs” το “βρεχει καρεκλοποδαρα” ειναι λιγακι δυσκολο αν οπως προειπε ο @Talos δεν υπαρχει ενα εκπαιδευμενο νευρονικο δικτυο για να μπορεσει αυτοματα να κανει τον συσχετισμο μεταξυ του “raining cats and dogs” και του “βρεχει καρεκλοποδαρα”, που στην ουσια ειναι η δουλεια που κανει ενας μεταφραστης.

Επισεις δεν υπαρχει 100% σωστη μεταφραση μιας και τα Αγγλικα πολλες φορες δεν μεταφραζονται ακριβως στα Ελληνικα λεξη προς λεξη (και το αντιθετο).

Το να βρεις μια γραμμη σε ενα αρχειο κειμενου για ενα σκριπτακι δεν ειναι και πολυ δυσκολη δουλεια… αλλα το να μεταφρασεις απο Αγγλικα σε Ελληνικα και το αντιθετο… αν δεν θες να ξοδεψεις διπλασιο χρονο για να σιγουρευτεις οτι η μεταφραση βγαζει νοημα… για την ωρα… (μεχρι να βγουν quantum computers για το σπιτι) ειναι υποθεση ανθρωπινη.

Τεχνικά μιλώντας, το να στέλνεις αγγλικό κείμενο στο google translate api (https://cloud.google.com/translate) και να παίρνεις πίσω το μεταφρασμένο κείμενο είναι … 5 λεπτά υπόθεση.

Πρακτικά μιλώντας όμως, η μετάφραση υπότιτλων με google translate δεν νομίζω ότι μπορεί να σταθεί μπροστά σε μία κανονική μετάφραση, εκτός κι αν θέλετε να γελάσετε με τους φίλους σου με τις ασυναρτήσεις που θα βγάζει το google :stuck_out_tongue:

1 Like

Θα ήταν πάντως ένα καλό θέμα Διπλωματικής…

1 Like

To API της Google δεν είναι δωρεάν εδώ και κάτι χρόνια. Είδα πως μπορείς τώρα να κάνεις και εκπαίδευση στα κείμενα σου. Να ένα κόλπο να φτιάξεις corpus :slight_smile:

Υπαρχει και το ‘’ Crow Translate’’, μπορει να βοηθαει για .srt: https://github.com/crow-translate/crow-translate

1 Like

παντος αν θελεις εγω ειμαι μεσα να σπαταλησουμε λιγο η πολυ χρονο για να δουμε τι μπορουμε να φτιαξουμε…

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

EDIT
Λέτε εκεί στο Αθηνά να μας παρακολουθουν;

https://www.athenarc.gr/el/prosklisi-ekdilosis-endiaferontos-gia-synergates-ston-tomea-tis-pliroforikis-elrc31?fbclid=IwAR3x3-rQ1DLpKbxfAqzPQuLYnkQr1qDpGJ1G9qNXuw8MvDFr7WjbixDckCk

Αυτό που περιγράφεις kouskous ουσιαστικά λέγεται Translation memory και χρησιμοποιείται εδώ και δεκαετίες σε μεταφραστικά προγράμματα.

1 Like