Η δημιουργία μιας εφαρμογής μεταγραφής με τρία κλικ για χρήση αλλά εξαιρετικά ακριβής ακούγεται δύσκολο, αλλά δεν είναι. Ας εισάγουμε το Whisper στο AutoHotkey.

Το Whisper του OpenAI είναι μια από τις πιο ισχυρές λύσεις για να μετατρέψετε τη φωνή σας σε κείμενο. Ωστόσο, το Whisper μπορεί επίσης να είναι ενοχλητικό στη χρήση, καθώς πρέπει να πληκτρολογήσετε εντολές για να μεταγράψετε ένα αρχείο ήχου σε κείμενο. Αλλά γιατί να το κάνουμε αυτό όταν έχουμε AutoHotkey;

Με το AutoHotkey, μπορούμε αβίαστα να δημιουργήσουμε ένα βασικό GUI για εφαρμογές γραμμής εντολών όπως το Whisper. Λοιπόν, ας το κάνουμε αυτό και ας δούμε πώς μπορείτε να δημιουργήσετε τη δική σας εφαρμογή μεταγραφής συνδυάζοντας τις υπερδυνάμεις του AutoHotkey που δημιουργεί GUI με το Whisper του OpenAI ως τον «εγκέφαλο» πίσω από τα κουμπιά.

Θέτοντας τα θεμέλια για το Whisper και το AutoHotkey

Μπορείτε να δημιουργήσετε όμορφα σενάρια με το AutoHotkey, αλλά δεν είναι μόνο αυτό που μπορεί να κάνει. Για αυτό το έργο, θα χρησιμοποιήσουμε το AutoHotkey για να δημιουργήσουμε ένα GUI για το Whisper. Αυτό θα μας επιτρέψει να χρησιμοποιήσουμε το εργαλείο AI αναγνώρισης φωνής του OpenAI κάνοντας κλικ σε κουμπιά και προσαρμόζοντας τη λειτουργικότητά του χρησιμοποιώντας μενού αντί να πληκτρολογούμε εντολές.

instagram viewer

Ωστόσο, αυτό σημαίνει ότι θα πρέπει να έχετε εγκατεστημένο το AutoHotkey και το Whisper για να το ακολουθήσετε.

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

Σημειώστε ότι θα χρησιμοποιήσουμε την παλαιότερη έκδοση "v1" της γλώσσας δέσμης ενεργειών και όχι τη νέα έκδοση v2. Αυτό είναι σημαντικό επειδή οι δύο εκδόσεις χρησιμοποιούν μια κάπως διαφορετική σύνταξη. Αυτό που θα δούμε εδώ μπορεί να μην λειτουργεί εάν χρησιμοποιείτε το νέο v2.

Το δεύτερο μέρος είναι πιο περίπλοκο, αλλά μπορείτε να μάθετε πώς να το κάνετε ελέγχοντας το άρθρο μας πώς να μετατρέψετε τη φωνή σας σε κείμενο με το Whisper του OpenAI για Windows.

Με τα δύο εγκατεστημένα, το σχέδιο δράσης μας έχει ως εξής:

  1. Δημιουργήστε ένα GUI με στοιχεία για τις μεταβλητές και τις τιμές του Whisper.
  2. Δημιουργήστε λειτουργίες για να συλλάβετε τιμές από τη διεπαφή, να επιλέξετε αρχεία και φακέλους και να συγκεντρώσετε τα πάντα σε μια χρησιμοποιήσιμη εντολή Whisper.
  3. Εκτελέστε την εντολή Whisper για να δημιουργήσετε αποτελέσματα.

Φυσικά, θα μπορούσατε πάντα να χρησιμοποιείτε την ενσωματωμένη υποστήριξη των Windows για φωνητική πληκτρολόγηση, όπως είδαμε στο άρθρο μας σχετικά πώς να ξεκινήσετε τη φωνητική πληκτρολόγηση στα Windows 11. Ωστόσο, όπως θα δείτε κατά τη χρήση του, το Whisper είναι πολύ πιο ακριβές (αλλά και πιο αργό).

Σε μια πιο προσωπική σημείωση, θα πρέπει να εξηγήσω ότι δεν είμαι προγραμματιστής, και αυτό το έργο είναι ένα "remix" μιας λύσης που έγινε για προσωπική χρήση.

Πώς να δημιουργήσετε ένα νέο σενάριο AutoHotkey

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

  1. Εκτελέστε τον αγαπημένο σας διαχειριστή αρχείων (ή πατήστε Κλειδί των Windows + μι για να εκκινήσετε την Εξερεύνηση των Windows) και δημιουργήστε έναν φάκελο για την εφαρμογή μεταγραφής όπου θέλετε.
  2. Κάντε δεξί κλικ σε ένα κενό σημείο του παραθύρου και επιλέξτε Νέος > Σενάριο AutoHotkey για να δημιουργήσετε ένα κενό αρχείο σεναρίου.
  3. Shift + Δεξί Κάντε κλικ στο αρχείο για πρόσβαση στο πλήρες μενού περιβάλλοντος και επιλέξτε να το ανοίξετε με τον αγαπημένο σας κώδικα ή πρόγραμμα επεξεργασίας κειμένου. Τα δικά των Windows Μπλοκ ΣΗΜΕΙΩΣΕΩΝ θα κάνω.
  4. Παρά το γεγονός ότι είναι "ένα κενό σενάριο", το αρχείο σας AHK θα είναι ήδη προσυμπληρωμένο με κάποια "πράγματα". Αυτές είναι χρήσιμες μεταβλητές AutoHotkey και σημαίες που καθορίζουν τον τρόπο λειτουργίας του στην επιφάνεια εργασίας σας. Αγνοήστε τα, αφήστε τα ως έχουν και κάντε όλη τη μελλοντική σας πληκτρολόγηση κάτω από αυτά.

Γνωριμία με τις σημαίες του Whisper

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

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

; Whisper Flags:; --initial_prompt PROMPT_TEXT; --output_format txt; -o OUTPUT_FOLDER; --μοντέλο MODEL_TO_USE; --εργασία ΜΕΤΑΓΡΑΦΗ/ΜΕΤΑΦΡΑΣΗ. --γλώσσα ΕΝ/ΕΛ

Δημιουργία του GUI με το AutoHotkey

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

Ξεκινάμε με μια ενότητα όπου θα ορίσουμε μεταβλητές που μπορεί να θέλουμε να αλλάξουμε στο μέλλον, αλλά όχι τόσο συχνά που θα θέλαμε να τις εκθέσουμε μέσω του GUI, περιπλέκοντάς το υπερβολικά. Μπορείτε να πληκτρολογήσετε "Variable_Name = Περιεχόμενο ή τιμή της μεταβλητής" με μία μεταβλητή και ζεύγος τιμών ανά γραμμή.

Για αυτό το έργο, ορίσαμε ένα Μορφή εξόδου μεταβλητή που ορίσαμε στο "κείμενο«αξία και α WhisperExecutable μεταβλητή δήλωση Το όνομα του εκτελέσιμου αρχείου του Whisper. Με αυτόν τον τρόπο, εάν θέλουμε να χρησιμοποιήσουμε την ίδια λύση στο μέλλον για να δημιουργήσουμε αρχεία υποτίτλων SRT αντί για έγγραφα TXT ή να κάνουμε αναβάθμιση Whisper/swisper σε μια εναλλακτική εφαρμογή, μπορούμε να προσαρμόσουμε τις τιμές αυτών των μεταβλητών σε αυτό το μεμονωμένο σημείο αντί για όλη την γραφή.

OutputFormat = txtWhisperExecutable = ψίθυρος

Ρύθμιση των επιλογών χρήστη

Όταν χρησιμοποιείτε το Whisper στη γραμμή εντολών, τρεις από τις σημαίες του σας επιτρέπουν να ορίσετε:

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

Ο ευκολότερος τρόπος για να προσφέρετε την ίδια λειτουργικότητα μέσω ενός GUI είναι μέσω δοκιμασμένων αναπτυσσόμενων λιστών. Η σύνταξη για την προσθήκη μιας αναπτυσσόμενης λίστας σε ένα GUI AutoHotkey είναι η εξής:

Gui, Add, DropDownList, xPosition yPosition wWidth hHight vVariable_that_will_hold_selected_value, optionA|optionB|default_optionC||optionD|

Με βάση αυτό, ας προσθέσουμε τρεις αναπτυσσόμενες λίστες στο σενάριό μας για την επιλογή της γλώσσας του Whisper (μεταξύ Αγγλικά/en και Ελληνικά/el), μοντέλο (μικροσκοπικό, βασικό, μικρό, μεσαίο, μεγάλο) και τύπος εργασίας (μεταγραφή ή μεταφράζω).

Gui, Add, DropDownList, x5 y5 w165 h50 vSelectedLanguage, en||el
Gui, Προσθήκη, DropDownList, x175 y5 w165 h100 vSelectedModel, μικροσκοπικό|βάση|μικρό||μεσαίο|μεγάλο|
Gui, Προσθήκη, DropDownList, x345 y5 w165 h100 vTaskType, μεταγραφή||μετάφραση|

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

Πώς να καθοδηγήσετε το Whisper

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

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

Η λύση που φτιάχνουμε απέτυχε να μεταγράψει κάτι σωστά; Μπορείτε να δοκιμάσετε να "εξηγήσετε" στο Whisper "τι είναι το αρχείο φωνής", συμπεριλαμβανομένης της σύνταξης των λέξεων, των ακρωνύμιων και των φράσεων στην προτροπή σας όπως θέλετε να εμφανίζονται στη μεταγραφή. Για αυτό, θα προσθέσουμε ένα πεδίο επεξεργασίας κειμένου AutoHotkey.

Η σύνταξη δεν είναι πολύ διαφορετική από αυτήν που χρησιμοποιήσαμε για την προσθήκη αναπτυσσόμενων λιστών παραπάνω:

Gui, Προσθήκη, Επεξεργασία, x5 w505 h400 vPromptText, %PromptText%

Το "%PromptText%" στο τέλος "λέει" στο AHK να εμφανίσει το περιεχόμενο της μεταβλητής PromptText (αν έχει ήδη εκχωρηθεί μια τιμή) μέσα στο πεδίο κειμένου. Δεν θα εμφανίζει τίποτα στο σενάριο που φτιάχνουμε, αλλά θεωρήστε το ένα σύμβολο κράτησης θέσης για όταν τελικά τροποποιήσετε το σενάριο στο μέλλον, επίσης για αποθήκευση και φόρτωση μηνυμάτων!

Θα προτιμούσατε να εκχωρήσετε μια προκαθορισμένη τιμή στο PromptText μεταβλητός? Προσθέστε κάτι σαν το παρακάτω στο Μεταβλητές τμήμα του σεναρίου. Θυμηθείτε να αντικαταστήσετε το "Your Name's" με το πραγματικό σας όνομα.

PromptText = Μεταγραφή των σημειώσεων του Ονόματός σας

Ρύθμιση των κουμπιών δράσης

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

Gui, Add, Button, xPosition yPosition wWidth hHeight gFunction_To_Perform, Button Text

Παρατηρήστε ότι σε αντίθεση με τις μεταβλητές στα στοιχεία GUI, που ξεκινούν με το γράμμα "v", τα ονόματα συναρτήσεων ξεκινούν με "g", για "Μετάβαση (σε αυτό το σημείο του σεναρίου)".

Ένα μόνο κουμπί μιας διεπαφής AHK μπορεί επίσης να θεωρηθεί "το προεπιλεγμένο", το οποίο θα ενεργοποιηθεί εάν δεν κάνετε κλικ πουθενά στο GUI και πατήσετε Εισαγω. Αυτό ορίζεται προσθέτοντας "Προκαθορισμένο" στην ενότητα συντεταγμένες και συνάρτηση, όπως θα παρατηρήσετε στο κουμπί "ΟΚ" μας:

Gui, Add, Button, x5 w505 h50 gSelectFile, Φορτώνω FileGui, Προσθήκη, Κουμπί, x5 w505 h50 gSelectFolder, ΕπιλέγωΠαραγωγή Ντοσιέ
Gui, Προσθήκη, Κουμπί, Προκαθορισμένο x5 w505 h50 gButtonΥποβολή, ΟΚ

Με τα παραπάνω, ορίζουμε τρία κουμπιά:

  • Ένα με την ετικέτα "Φόρτωση αρχείου" που, όταν κάνετε κλικ, θα εκτελέσει το Επιλέξτε Αρχείο λειτουργία.
  • Ένα με την ετικέτα "Επιλέξτε Φάκελος εξόδου», το οποίο θα τρέξει το Επιλέξτε φάκελο λειτουργία.
  • Ένα με την ετικέτα "Εντάξει", επιλεγμένο από προεπιλογή, "καλώντας" το Κουμπί Υποβολή λειτουργία.

Πώς να εμφανίσετε το GUI σας

Το GUI μας είναι έτοιμο, αλλά δεν θα εμφανιστεί στην οθόνη μας γιατί δεν έχουμε "πεί" στο AutoHotkey να το δείξει ή τι πρέπει να κάνει κάθε κουμπί.

Για αυτό, προσθέστε τις ακόλουθες δύο γραμμές κάτω από αυτές που ορίζουν το GUI σας:

Gui, ShowReturn

Η πρώτη γραμμή "λέει" στο AHK να εμφανίσει το παράθυρο του GUI, ενώ η δεύτερη σηματοδοτεί το τέλος της ενότητας.

Οι λειτουργίες και η λειτουργικότητα της εφαρμογής μας

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

Οι τρεις λειτουργίες που θέλουμε είναι:

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

Επιλογή αρχείου εισόδου

Η πρώτη συνάρτηση, την οποία έχουμε ήδη ονομάσει "Επιλέξτε ΑρχείοΌταν προσθέσαμε το κουμπί του στο GUI, είναι:

Επιλέξτε Αρχείο:FileSelectFile, SelectedFileReturn

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

Ωστόσο, όπως θα δείτε στα στιγμιότυπα οθόνης μας, προσθέσαμε επίσης την ακόλουθη γραμμή ακριβώς πάνω από το τέλος της συνάρτησης "return":

MsgBox, %SelectedFile%

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

Επιλογή φακέλου εξόδου

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

SelectFolder: FileSelectFolder, SelectedFolderMsgBox, %SelectedFolder%ΕΠΙΣΤΡΟΦΗ

Η Τελική Λειτουργία

Η τελική λειτουργία θα είναι η πιο περίπλοκη. Αντιστοιχισμένο στο κουμπί OK, αυτό θα "συλλέξει" όλες τις τιμές μεταβλητών από το GUI, θα τις μεταμορφώσει σε μια χρησιμοποιήσιμη εντολή και στη συνέχεια θα την εκτελέσει.

Ξεκινάμε δηλώνοντας την αρχή και το τέλος της συνάρτησης:

Κουμπί Υποβολή:ΕΠΙΣΤΡΟΦΗ

Για να "αρπάξετε" όλες τις τιμές του GUI, προσθέστε τα ακόλουθα κάτω από το Κουμπί Υποβολή γραμμή:

Gui Submit, nohide

Η ακόλουθη γραμμή δημιουργεί μια νέα μεταβλητή που ονομάζεται "WhisperFlags". Στη συνέχεια, προσθέτει σε αυτό όλες τις μεταβλητές του GUI ως σημαίες για την εντολή Whisper.

WhisperFlags = --initial_prompt "%PromptText%" --εργασία %TaskType% --μοντέλο %SelectedModel% --language %SelectedLanguage% --output_format %OutputFormat% -o "%SelectedFolder%""%SelectedFile%"

Στη συνέχεια, θα "λέμε" στην AHK να χρησιμοποιήσει το προεπιλεγμένο τερματικό (CMD.exe) για να εκτελέσει το εκτελέσιμο αρχείο του Whisper (που ορίσαμε με το WhisperExecutable μεταβλητή) με τις μεταβλητές του GUI (που τώρα «συναρμολογούνται» στο single WhisperFlags μεταβλητός).

RunWait, cmd.exe /c %WhisperExecutable% %WhisperFlags%

Για ακόμα πιο εύκολη αντιμετώπιση προβλημάτων, προσθέσαμε επίσης ένα msgbox, όπως πριν, αλλά και την ακόλουθη γραμμή:

Πρόχειρο = %WhisperExecutable% %WhisperFlags%

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

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

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

Δοκιμές και τελικές τροποποιήσεις

Αυτό ήταν - μόλις δημιουργήσαμε μια εφαρμογή μεταγραφής χρησιμοποιώντας τις δυνατότητες δημιουργίας GUI του AutoHotkey και μια έτοιμη προς χρήση λύση μεταγραφής AI.

Δοκιμάστε να εκτελέσετε το σενάριό σας (κάντε διπλό κλικ στο αρχείο του) και θα δείτε το GUI σας στην οθόνη σας.

  • Αλλάξτε τις ρυθμίσεις του Whisper χρησιμοποιώντας τις αναπτυσσόμενες λίστες στην κορυφή.
  • Πληκτρολογήστε μια σύντομη περιγραφή της μεταγραφής σας (και ορισμένους όρους) στο Προτροπή πεδίο.
  • Κάντε κλικ στο Φόρτωση αρχείου και επιλέξτε το αρχείο ήχου που θέλετε να μεταγράψετε.
  • Κάντε κλικ στο Επιλέξτε Φάκελος εξόδου και επιλέξτε πού θα αποθηκευτεί το παραγόμενο αρχείο κειμένου.
  • Κάντε κλικ στο Εντάξει για να απελευθερώσετε το Whisper, όπως έχει διαμορφωθεί από το GUI σας, στο επιλεγμένο αρχείο ήχου και να αποθηκεύσετε τη μεταγραφή του ως αρχείο κειμένου στον φάκελο που επιλέξατε.

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

Προχωρώντας το Whisper περαιτέρω με το AutoHotkey

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