{
  "aboutHtml": "<p>Το Voxtral TTS είναι το μοντέλο μετατροπής κειμένου σε ομιλία 4B της Mistral AI για παραγωγή ομιλίας σε μορφή ήχου από κείμενο και αναφορά φωνής. Η σελίδα μοντέλου του κατασκευαστή προσδιορίζει την έκδοση 2603 ως voxtral-mini-tts-2603, ενώ η δημοσιευμένη κάρτα βαρών ονομάζεται Voxtral 4B TTS 2603. Αυτή η καταχώριση αφορά τη συγκεκριμένη έκδοση παραγωγής ομιλίας, η οποία διαφέρει από το Voxtral Small για κατανόηση ήχου, την απομαγνητοφώνηση και τα μεταγενέστερα μοντέλα εισόδου σε πραγματικό χρόνο.</p><p>Εκφραστική ομιλία και προσαρμογή φωνής</p><p>Το μοντέλο έχει σχεδιαστεί ώστε να αποτυπώνει τις παύσεις, τον ρυθμό, τον επιτονισμό, την προφορά και τη συναισθηματική απόδοση μιας φωνής αναφοράς. Η φωνή λειτουργεί ως οδηγία για το πώς πρέπει να ακούγεται το κείμενο· η επισκόπηση του κατασκευαστή δεν απαιτεί ξεχωριστές ετικέτες προσωδίας ή συναισθήματος ούτε απομαγνητοφώνηση της ηχογράφησης αναφοράς. Το αρχικό κείμενο καθορίζει τι λέγεται, ενώ η ηχητική αναφορά καθοδηγεί την εκφορά του.</p><p>Η επισκόπηση περιγράφει προσαρμογή φωνής από μόλις δύο έως τρία δευτερόλεπτα ήχου. Η περιγραφή της αρχιτεκτονικής αναφέρεται σε δείγματα καθοδήγησης φωνής διάρκειας πέντε έως είκοσι πέντε δευτερολέπτων. Αυτές οι δηλώσεις έχουν διαφορετικό πεδίο εφαρμογής: ένα παράδειγμα σύντομης προσαρμογής δεν αποτελεί απαίτηση χρήσης της συντομότερης δυνατής αναφοράς. Επιλέξτε καθαρή ομιλία που αντιπροσωπεύει το ύφος και την προφορά που θέλετε για το τελικό αποτέλεσμα.</p><p>Η δημοσιευμένη κάρτα περιλαμβάνει είκοσι προκαθορισμένες φωνές και προσαρμογή σε νέες φωνές. Η ροή ομιλίας του κατασκευαστή μπορεί να χρησιμοποιήσει αποθηκευμένο προφίλ φωνής ή εφάπαξ απόσπασμα αναφοράς. Η αποθήκευση προφίλ επιτρέπει επαναχρησιμοποίηση της ίδιας αναφοράς φωνής σε ξεχωριστά αιτήματα ομιλίας, ενώ ένα εφάπαξ απόσπασμα την παρέχει για την τρέχουσα εργασία. Ένα προφίλ και μια παραγόμενη ηχογράφηση είναι διαφορετικά τεχνουργήματα.</p><p>Γλώσσες και εκφορά μεταξύ γλωσσών</p><p>Η έκδοση υποστηρίζει αγγλικά, γαλλικά, ισπανικά, γερμανικά, ιταλικά, πορτογαλικά, ολλανδικά, αραβικά και χίντι, με διαλεκτικές παραλλαγές, μεταφορά φωνής μεταξύ γλωσσών και ανάμειξη γλωσσών, όπως περιγράφει ο κατασκευαστής. Για το καλύτερο αποτέλεσμα, ο οδηγός ομιλίας συνιστά η γλώσσα αναφοράς να ταιριάζει με τη γλώσσα του κειμένου. Η μεταφορά μεταξύ γλωσσών μπορεί να διατηρήσει την προφορά της αναφοράς ενώ εκφωνεί το έτοιμο κείμενο σε άλλη υποστηριζόμενη γλώσσα.</p><p>Μια πρακτική εργασία αφήγησης μπορεί να χρησιμοποιεί το ίδιο φωνητικό ύφος για μια εξήγηση σε διαφορετικές υποστηριζόμενες γλώσσες, με κάθε κείμενο προετοιμασμένο για τον προβλεπόμενο ακροατή. Μια απάντηση φωνητικού βοηθού μπορεί να χρησιμοποιεί σύντομο, συνομιλιακό κείμενο αντί να διαβάζει δυνατά ένα ανεπεξέργαστο έγγραφο. Το μοντέλο μετατροπής κειμένου σε ομιλία αποδίδει τις έτοιμες λέξεις· κάθε στάδιο μετάφρασης ή σύνταξης απάντησης που παράγει αυτές τις λέξεις αποτελεί ξεχωριστό βήμα.</p><p>Προετοιμασία του κειμένου</p><p>Ο οδηγός ομιλίας του κατασκευαστή συνιστά κείμενο που μπορεί να αποδοθεί προφορικά. Γράψτε αριθμούς και σύμβολα στη μορφή με την οποία πρέπει να εκφωνηθούν, ώστε το μοντέλο να μη χρειάζεται να επιλέξει μεταξύ πιθανών αναγνώσεων. Ένας αριθμός μπορεί να είναι ποσότητα, ώρα ή αναγνωριστικό· ορίστε την επιδιωκόμενη προφορική διατύπωση πριν από τη σύνθεση. Αναπτύξτε τις συντομογραφίες όταν η προφορά έχει σημασία, χρησιμοποιώντας χωριστά γράμματα όταν αυτή είναι η προβλεπόμενη ανάγνωση.</p><p>Αποφύγετε την πλούσια μορφοποίηση, τα emoji και τους ειδικούς χαρακτήρες που δεν θα αποδοθούν ως προφορικό περιεχόμενο. Προετοιμάστε ολοκληρωμένες προτάσεις με τη στίξη και τη διατύπωση που χρειάζεται η εκφορά. Ο οδηγός συνιστά προτροπές κάτω από 300 λέξεις για τα καλύτερα αποτελέσματα. Πρόκειται για σύσταση ποιότητας και όχι για δηλωμένο απόλυτο μέγιστο μήκος εισόδου.</p><p>Για μια διαδικαστική εξήγηση, γράψτε την ενέργεια και την προϋπόθεση σε μια πρόταση που μπορεί να παρακολουθήσει ο ακροατής. Για μια ανακοίνωση, τοποθετήστε τις σημαντικές πληροφορίες πριν από τις προαιρετικές λεπτομέρειες. Για μια φωνητική απάντηση, διατηρήστε την πραγματολογική απάντηση και αφαιρέστε μορφοποίηση μόνο για εμφάνιση ή σημάνσεις πηγών που δεν πρέπει να εκφωνηθούν. Αυτές οι προετοιμασίες κάνουν το ίδιο το κείμενο κατάλληλο για ήχο, πριν η αναφορά καθορίσει το ύφος του.</p><p>Συνεχής μετάδοση, έξοδος και διάρκεια</p><p>Ο κατασκευαστής τεκμηριώνει βασική παράδοση και συνεχή μετάδοση και περιγράφει εγγενή παραγωγή ήχου έως δύο λεπτών. Η δημοσιευμένη κάρτα βαρών παραθέτει επίσης μαζική εκτέλεση για την προετοιμασία πολλών εργασιών ομιλίας. Οι μεγαλύτερες παραγωγές της υπηρεσίας χρησιμοποιούν εναλλασσόμενη επεξεργασία αντί να αντιμετωπίζουν ένα εγγενές τμήμα ως απεριόριστο. Για μεγαλύτερη αφήγηση, προετοιμάστε συνεκτικές ενότητες και διατηρήστε συνεπή την προετοιμασία φωνής και κειμένου με τη ροή παράδοσης που χειρίζεται τη συνέχεια.</p><p>Η δημοσιευμένη κάρτα προσδιορίζει ήχο 24 kHz και κατονομάζει τις μορφές εξόδου WAV, PCM, FLAC, MP3, AAC και Opus. Ο οδηγός υπηρεσίας ομιλίας αναφέρεται σε MP3 για συμπιεσμένη παράδοση, WAV για ασυμπίεστο PCM, FLAC για συμπίεση χωρίς απώλειες και PCM ή Opus για συνεχή μετάδοση. Επιλέξτε μορφή που υποστηρίζεται από τη συνδεδεμένη ροή και είναι κατάλληλη για τη συσκευή αναπαραγωγής ή το στάδιο επεξεργασίας της. Η επιλογή μορφής και η συμπεριφορά της συνεχούς μετάδοσης είναι διακριτές από την ίδια την προσαρμογή φωνής.</p><p>Αρχιτεκτονική μοντέλου και πρακτικά όρια</p><p>Η ανακοίνωση περιγράφει αυτοπαλινδρομική αρχιτεκτονική αντιστοίχισης ροής, με κορμό αποκωδικοποιητή Transformer 3.4B, ακουστικό Transformer 390 εκατομμυρίων παραμέτρων και νευρωνικό κωδικοποιητή ήχου 300 εκατομμυρίων παραμέτρων. Ο αποκωδικοποιητής προβλέπει το σημασιολογικό περιεχόμενο και το ακουστικό στοιχείο παράγει την αναπαράσταση της ομιλίας, ενώ ο κωδικοποιητής χειρίζεται τον ήχο. Αυτά τα στοιχεία εξηγούν την κατά προσέγγιση ετικέτα μοντέλου 4B· δεν αποτελούν πρόσθετες γλώσσες εισόδου ή διαφορετικό μοντέλο παραγωγής απαντήσεων.</p><p>Μια πρακτική έξοδος είναι η συντεθειμένη ηχογράφηση ή η ροή ήχου που συνδέεται με το προετοιμασμένο κείμενο και την επιλεγμένη φωνή της. Διατηρήστε αυτές τις αντιστοιχίσεις όταν παράγετε πολλές ενότητες, ώστε η εφαρμογή να μπορεί να αποθηκεύσει, να αναπαραγάγει ή να συναρμολογήσει το σωστό υλικό. Το μοντέλο παράγει ήχο αντί για απομαγνητοφώνηση, διάνυσμα σημασιολογικής αναζήτησης ή νέα πραγματολογική απάντηση.</p><p>Διατηρήστε την έκδοση ομιλίας 2603, την υποστηριζόμενη γλώσσα και το ύφος αναφοράς. Οι πηγές που διαβάστηκαν παρέχουν τη δήλωση για εγγενή παραγωγή δύο λεπτών και τη σύσταση προετοιμασίας κάτω από 300 λέξεις, αλλά δεν τεκμηριώνουν ξεχωριστό απόλυτο μέγιστο όριο χαρακτήρων κειμένου ή συνολικής διάρκειας συνενωμένης ηχογράφησης. Χρησιμοποιήστε τις πραγματικές απαιτήσεις κειμένου, φωνής και παράδοσης για να ορίσετε το ολοκληρωμένο ηχητικό τεχνούργημα.</p>",
  "aboutText": "Το Voxtral TTS είναι το μοντέλο μετατροπής κειμένου σε ομιλία 4B της Mistral AI για παραγωγή ομιλίας σε μορφή ήχου από κείμενο και αναφορά φωνής. Η σελίδα μοντέλου του κατασκευαστή προσδιορίζει την έκδοση 2603 ως voxtral-mini-tts-2603, ενώ η δημοσιευμένη κάρτα βαρών ονομάζεται Voxtral 4B TTS 2603. Αυτή η καταχώριση αφορά τη συγκεκριμένη έκδοση παραγωγής ομιλίας, η οποία διαφέρει από το Voxtral Small για κατανόηση ήχου, την απομαγνητοφώνηση και τα μεταγενέστερα μοντέλα εισόδου σε πραγματικό χρόνο.\n\nΕκφραστική ομιλία και προσαρμογή φωνής\n\nΤο μοντέλο έχει σχεδιαστεί ώστε να αποτυπώνει τις παύσεις, τον ρυθμό, τον επιτονισμό, την προφορά και τη συναισθηματική απόδοση μιας φωνής αναφοράς. Η φωνή λειτουργεί ως οδηγία για το πώς πρέπει να ακούγεται το κείμενο· η επισκόπηση του κατασκευαστή δεν απαιτεί ξεχωριστές ετικέτες προσωδίας ή συναισθήματος ούτε απομαγνητοφώνηση της ηχογράφησης αναφοράς. Το αρχικό κείμενο καθορίζει τι λέγεται, ενώ η ηχητική αναφορά καθοδηγεί την εκφορά του.\n\nΗ επισκόπηση περιγράφει προσαρμογή φωνής από μόλις δύο έως τρία δευτερόλεπτα ήχου. Η περιγραφή της αρχιτεκτονικής αναφέρεται σε δείγματα καθοδήγησης φωνής διάρκειας πέντε έως είκοσι πέντε δευτερολέπτων. Αυτές οι δηλώσεις έχουν διαφορετικό πεδίο εφαρμογής: ένα παράδειγμα σύντομης προσαρμογής δεν αποτελεί απαίτηση χρήσης της συντομότερης δυνατής αναφοράς. Επιλέξτε καθαρή ομιλία που αντιπροσωπεύει το ύφος και την προφορά που θέλετε για το τελικό αποτέλεσμα.\n\nΗ δημοσιευμένη κάρτα περιλαμβάνει είκοσι προκαθορισμένες φωνές και προσαρμογή σε νέες φωνές. Η ροή ομιλίας του κατασκευαστή μπορεί να χρησιμοποιήσει αποθηκευμένο προφίλ φωνής ή εφάπαξ απόσπασμα αναφοράς. Η αποθήκευση προφίλ επιτρέπει επαναχρησιμοποίηση της ίδιας αναφοράς φωνής σε ξεχωριστά αιτήματα ομιλίας, ενώ ένα εφάπαξ απόσπασμα την παρέχει για την τρέχουσα εργασία. Ένα προφίλ και μια παραγόμενη ηχογράφηση είναι διαφορετικά τεχνουργήματα.\n\nΓλώσσες και εκφορά μεταξύ γλωσσών\n\nΗ έκδοση υποστηρίζει αγγλικά, γαλλικά, ισπανικά, γερμανικά, ιταλικά, πορτογαλικά, ολλανδικά, αραβικά και χίντι, με διαλεκτικές παραλλαγές, μεταφορά φωνής μεταξύ γλωσσών και ανάμειξη γλωσσών, όπως περιγράφει ο κατασκευαστής. Για το καλύτερο αποτέλεσμα, ο οδηγός ομιλίας συνιστά η γλώσσα αναφοράς να ταιριάζει με τη γλώσσα του κειμένου. Η μεταφορά μεταξύ γλωσσών μπορεί να διατηρήσει την προφορά της αναφοράς ενώ εκφωνεί το έτοιμο κείμενο σε άλλη υποστηριζόμενη γλώσσα.\n\nΜια πρακτική εργασία αφήγησης μπορεί να χρησιμοποιεί το ίδιο φωνητικό ύφος για μια εξήγηση σε διαφορετικές υποστηριζόμενες γλώσσες, με κάθε κείμενο προετοιμασμένο για τον προβλεπόμενο ακροατή. Μια απάντηση φωνητικού βοηθού μπορεί να χρησιμοποιεί σύντομο, συνομιλιακό κείμενο αντί να διαβάζει δυνατά ένα ανεπεξέργαστο έγγραφο. Το μοντέλο μετατροπής κειμένου σε ομιλία αποδίδει τις έτοιμες λέξεις· κάθε στάδιο μετάφρασης ή σύνταξης απάντησης που παράγει αυτές τις λέξεις αποτελεί ξεχωριστό βήμα.\n\nΠροετοιμασία του κειμένου\n\nΟ οδηγός ομιλίας του κατασκευαστή συνιστά κείμενο που μπορεί να αποδοθεί προφορικά. Γράψτε αριθμούς και σύμβολα στη μορφή με την οποία πρέπει να εκφωνηθούν, ώστε το μοντέλο να μη χρειάζεται να επιλέξει μεταξύ πιθανών αναγνώσεων. Ένας αριθμός μπορεί να είναι ποσότητα, ώρα ή αναγνωριστικό· ορίστε την επιδιωκόμενη προφορική διατύπωση πριν από τη σύνθεση. Αναπτύξτε τις συντομογραφίες όταν η προφορά έχει σημασία, χρησιμοποιώντας χωριστά γράμματα όταν αυτή είναι η προβλεπόμενη ανάγνωση.\n\nΑποφύγετε την πλούσια μορφοποίηση, τα emoji και τους ειδικούς χαρακτήρες που δεν θα αποδοθούν ως προφορικό περιεχόμενο. Προετοιμάστε ολοκληρωμένες προτάσεις με τη στίξη και τη διατύπωση που χρειάζεται η εκφορά. Ο οδηγός συνιστά προτροπές κάτω από 300 λέξεις για τα καλύτερα αποτελέσματα. Πρόκειται για σύσταση ποιότητας και όχι για δηλωμένο απόλυτο μέγιστο μήκος εισόδου.\n\nΓια μια διαδικαστική εξήγηση, γράψτε την ενέργεια και την προϋπόθεση σε μια πρόταση που μπορεί να παρακολουθήσει ο ακροατής. Για μια ανακοίνωση, τοποθετήστε τις σημαντικές πληροφορίες πριν από τις προαιρετικές λεπτομέρειες. Για μια φωνητική απάντηση, διατηρήστε την πραγματολογική απάντηση και αφαιρέστε μορφοποίηση μόνο για εμφάνιση ή σημάνσεις πηγών που δεν πρέπει να εκφωνηθούν. Αυτές οι προετοιμασίες κάνουν το ίδιο το κείμενο κατάλληλο για ήχο, πριν η αναφορά καθορίσει το ύφος του.\n\nΣυνεχής μετάδοση, έξοδος και διάρκεια\n\nΟ κατασκευαστής τεκμηριώνει βασική παράδοση και συνεχή μετάδοση και περιγράφει εγγενή παραγωγή ήχου έως δύο λεπτών. Η δημοσιευμένη κάρτα βαρών παραθέτει επίσης μαζική εκτέλεση για την προετοιμασία πολλών εργασιών ομιλίας. Οι μεγαλύτερες παραγωγές της υπηρεσίας χρησιμοποιούν εναλλασσόμενη επεξεργασία αντί να αντιμετωπίζουν ένα εγγενές τμήμα ως απεριόριστο. Για μεγαλύτερη αφήγηση, προετοιμάστε συνεκτικές ενότητες και διατηρήστε συνεπή την προετοιμασία φωνής και κειμένου με τη ροή παράδοσης που χειρίζεται τη συνέχεια.\n\nΗ δημοσιευμένη κάρτα προσδιορίζει ήχο 24 kHz και κατονομάζει τις μορφές εξόδου WAV, PCM, FLAC, MP3, AAC και Opus. Ο οδηγός υπηρεσίας ομιλίας αναφέρεται σε MP3 για συμπιεσμένη παράδοση, WAV για ασυμπίεστο PCM, FLAC για συμπίεση χωρίς απώλειες και PCM ή Opus για συνεχή μετάδοση. Επιλέξτε μορφή που υποστηρίζεται από τη συνδεδεμένη ροή και είναι κατάλληλη για τη συσκευή αναπαραγωγής ή το στάδιο επεξεργασίας της. Η επιλογή μορφής και η συμπεριφορά της συνεχούς μετάδοσης είναι διακριτές από την ίδια την προσαρμογή φωνής.\n\nΑρχιτεκτονική μοντέλου και πρακτικά όρια\n\nΗ ανακοίνωση περιγράφει αυτοπαλινδρομική αρχιτεκτονική αντιστοίχισης ροής, με κορμό αποκωδικοποιητή Transformer 3.4B, ακουστικό Transformer 390 εκατομμυρίων παραμέτρων και νευρωνικό κωδικοποιητή ήχου 300 εκατομμυρίων παραμέτρων. Ο αποκωδικοποιητής προβλέπει το σημασιολογικό περιεχόμενο και το ακουστικό στοιχείο παράγει την αναπαράσταση της ομιλίας, ενώ ο κωδικοποιητής χειρίζεται τον ήχο. Αυτά τα στοιχεία εξηγούν την κατά προσέγγιση ετικέτα μοντέλου 4B· δεν αποτελούν πρόσθετες γλώσσες εισόδου ή διαφορετικό μοντέλο παραγωγής απαντήσεων.\n\nΜια πρακτική έξοδος είναι η συντεθειμένη ηχογράφηση ή η ροή ήχου που συνδέεται με το προετοιμασμένο κείμενο και την επιλεγμένη φωνή της. Διατηρήστε αυτές τις αντιστοιχίσεις όταν παράγετε πολλές ενότητες, ώστε η εφαρμογή να μπορεί να αποθηκεύσει, να αναπαραγάγει ή να συναρμολογήσει το σωστό υλικό. Το μοντέλο παράγει ήχο αντί για απομαγνητοφώνηση, διάνυσμα σημασιολογικής αναζήτησης ή νέα πραγματολογική απάντηση.\n\nΔιατηρήστε την έκδοση ομιλίας 2603, την υποστηριζόμενη γλώσσα και το ύφος αναφοράς. Οι πηγές που διαβάστηκαν παρέχουν τη δήλωση για εγγενή παραγωγή δύο λεπτών και τη σύσταση προετοιμασίας κάτω από 300 λέξεις, αλλά δεν τεκμηριώνουν ξεχωριστό απόλυτο μέγιστο όριο χαρακτήρων κειμένου ή συνολικής διάρκειας συνενωμένης ηχογράφησης. Χρησιμοποιήστε τις πραγματικές απαιτήσεις κειμένου, φωνής και παράδοσης για να ορίσετε το ολοκληρωμένο ηχητικό τεχνούργημα.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "85a9944385d0d4be44061c4fc509d1edd1ef24fec7a70fc96f66c456d01e58cb",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "el",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Mistral: Voxtral Mini TTS</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Κλείσιμο\">×</button></div><div class=\"idline\"><span>Mistral /</span><code>mistralai/voxtral-mini-tts-2603</code><button type=\"button\" id=\"copy-id\">Αντιγραφή ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Ενότητες κάρτας μοντέλου\"><button type=\"button\" data-card-jump=\"overview\">Εισαγωγή</button><button type=\"button\" data-card-jump=\"methods\">Είσοδοι και μέθοδοι</button><button type=\"button\" data-card-jump=\"pricing\">Τιμολόγηση</button><button type=\"button\" data-card-jump=\"examples\">Παραδείγματα</button><button type=\"button\" data-card-jump=\"results\">Αποτελέσματα</button><button type=\"button\" data-card-jump=\"aliases\">Εναλλακτικά ονόματα</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Μέθοδοι API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|speech|/v1/audio/speech|mistralai%2Fvoxtral-mini-tts-2603\">Σύνθεση ομιλίας</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Εισαγωγή</h3><p class=\"mdesc-full\">Το Voxtral TTS είναι το μοντέλο παραγωγής ομιλίας 4B της Mistral AI, με προσαρμογή φωνής βάσει αναφοράς σε εννέα γλώσσες. Μετατρέπει έτοιμο κείμενο σε εκφραστικό ήχο, υποστηρίζει επαναχρησιμοποιήσιμα ή εφάπαξ δείγματα καθοδήγησης φωνής και συνεχή μετάδοση και παράγει έξοδο 24 kHz σε τεκμηριωμένες μορφές ήχου.</p><dl class=\"card-io\" data-card-io><div><dt>Αποδεκτές είσοδοι</dt><dd>Κείμενο</dd></div><div><dt>Αποτελέσματα</dt><dd>Ήχος</dd></div></dl><details class=\"card-about\"><summary>Σχετικά με το μοντέλο</summary><p class=\"note-s\" data-model-method-boundary>Αυτή η περιγραφή καλύπτει τις δυνατότητες του μοντέλου. Οι είσοδοι, έξοδοι και επιλογές που διατίθενται στο Ailoot παρατίθενται παρακάτω για την επιλεγμένη μέθοδο.</p><div class=\"mabout\" id=\"m-about\"><p>Το Voxtral TTS είναι το μοντέλο μετατροπής κειμένου σε ομιλία 4B της Mistral AI για παραγωγή ομιλίας σε μορφή ήχου από κείμενο και αναφορά φωνής. Η σελίδα μοντέλου του κατασκευαστή προσδιορίζει την έκδοση 2603 ως voxtral-mini-tts-2603, ενώ η δημοσιευμένη κάρτα βαρών ονομάζεται Voxtral 4B TTS 2603. Αυτή η καταχώριση αφορά τη συγκεκριμένη έκδοση παραγωγής ομιλίας, η οποία διαφέρει από το Voxtral Small για κατανόηση ήχου, την απομαγνητοφώνηση και τα μεταγενέστερα μοντέλα εισόδου σε πραγματικό χρόνο.</p><p>Εκφραστική ομιλία και προσαρμογή φωνής</p><p>Το μοντέλο έχει σχεδιαστεί ώστε να αποτυπώνει τις παύσεις, τον ρυθμό, τον επιτονισμό, την προφορά και τη συναισθηματική απόδοση μιας φωνής αναφοράς. Η φωνή λειτουργεί ως οδηγία για το πώς πρέπει να ακούγεται το κείμενο· η επισκόπηση του κατασκευαστή δεν απαιτεί ξεχωριστές ετικέτες προσωδίας ή συναισθήματος ούτε απομαγνητοφώνηση της ηχογράφησης αναφοράς. Το αρχικό κείμενο καθορίζει τι λέγεται, ενώ η ηχητική αναφορά καθοδηγεί την εκφορά του.</p><p>Η επισκόπηση περιγράφει προσαρμογή φωνής από μόλις δύο έως τρία δευτερόλεπτα ήχου. Η περιγραφή της αρχιτεκτονικής αναφέρεται σε δείγματα καθοδήγησης φωνής διάρκειας πέντε έως είκοσι πέντε δευτερολέπτων. Αυτές οι δηλώσεις έχουν διαφορετικό πεδίο εφαρμογής: ένα παράδειγμα σύντομης προσαρμογής δεν αποτελεί απαίτηση χρήσης της συντομότερης δυνατής αναφοράς. Επιλέξτε καθαρή ομιλία που αντιπροσωπεύει το ύφος και την προφορά που θέλετε για το τελικό αποτέλεσμα.</p><p>Η δημοσιευμένη κάρτα περιλαμβάνει είκοσι προκαθορισμένες φωνές και προσαρμογή σε νέες φωνές. Η ροή ομιλίας του κατασκευαστή μπορεί να χρησιμοποιήσει αποθηκευμένο προφίλ φωνής ή εφάπαξ απόσπασμα αναφοράς. Η αποθήκευση προφίλ επιτρέπει επαναχρησιμοποίηση της ίδιας αναφοράς φωνής σε ξεχωριστά αιτήματα ομιλίας, ενώ ένα εφάπαξ απόσπασμα την παρέχει για την τρέχουσα εργασία. Ένα προφίλ και μια παραγόμενη ηχογράφηση είναι διαφορετικά τεχνουργήματα.</p><p>Γλώσσες και εκφορά μεταξύ γλωσσών</p><p>Η έκδοση υποστηρίζει αγγλικά, γαλλικά, ισπανικά, γερμανικά, ιταλικά, πορτογαλικά, ολλανδικά, αραβικά και χίντι, με διαλεκτικές παραλλαγές, μεταφορά φωνής μεταξύ γλωσσών και ανάμειξη γλωσσών, όπως περιγράφει ο κατασκευαστής. Για το καλύτερο αποτέλεσμα, ο οδηγός ομιλίας συνιστά η γλώσσα αναφοράς να ταιριάζει με τη γλώσσα του κειμένου. Η μεταφορά μεταξύ γλωσσών μπορεί να διατηρήσει την προφορά της αναφοράς ενώ εκφωνεί το έτοιμο κείμενο σε άλλη υποστηριζόμενη γλώσσα.</p><p>Μια πρακτική εργασία αφήγησης μπορεί να χρησιμοποιεί το ίδιο φωνητικό ύφος για μια εξήγηση σε διαφορετικές υποστηριζόμενες γλώσσες, με κάθε κείμενο προετοιμασμένο για τον προβλεπόμενο ακροατή. Μια απάντηση φωνητικού βοηθού μπορεί να χρησιμοποιεί σύντομο, συνομιλιακό κείμενο αντί να διαβάζει δυνατά ένα ανεπεξέργαστο έγγραφο. Το μοντέλο μετατροπής κειμένου σε ομιλία αποδίδει τις έτοιμες λέξεις· κάθε στάδιο μετάφρασης ή σύνταξης απάντησης που παράγει αυτές τις λέξεις αποτελεί ξεχωριστό βήμα.</p><p>Προετοιμασία του κειμένου</p><p>Ο οδηγός ομιλίας του κατασκευαστή συνιστά κείμενο που μπορεί να αποδοθεί προφορικά. Γράψτε αριθμούς και σύμβολα στη μορφή με την οποία πρέπει να εκφωνηθούν, ώστε το μοντέλο να μη χρειάζεται να επιλέξει μεταξύ πιθανών αναγνώσεων. Ένας αριθμός μπορεί να είναι ποσότητα, ώρα ή αναγνωριστικό· ορίστε την επιδιωκόμενη προφορική διατύπωση πριν από τη σύνθεση. Αναπτύξτε τις συντομογραφίες όταν η προφορά έχει σημασία, χρησιμοποιώντας χωριστά γράμματα όταν αυτή είναι η προβλεπόμενη ανάγνωση.</p><p>Αποφύγετε την πλούσια μορφοποίηση, τα emoji και τους ειδικούς χαρακτήρες που δεν θα αποδοθούν ως προφορικό περιεχόμενο. Προετοιμάστε ολοκληρωμένες προτάσεις με τη στίξη και τη διατύπωση που χρειάζεται η εκφορά. Ο οδηγός συνιστά προτροπές κάτω από 300 λέξεις για τα καλύτερα αποτελέσματα. Πρόκειται για σύσταση ποιότητας και όχι για δηλωμένο απόλυτο μέγιστο μήκος εισόδου.</p><p>Για μια διαδικαστική εξήγηση, γράψτε την ενέργεια και την προϋπόθεση σε μια πρόταση που μπορεί να παρακολουθήσει ο ακροατής. Για μια ανακοίνωση, τοποθετήστε τις σημαντικές πληροφορίες πριν από τις προαιρετικές λεπτομέρειες. Για μια φωνητική απάντηση, διατηρήστε την πραγματολογική απάντηση και αφαιρέστε μορφοποίηση μόνο για εμφάνιση ή σημάνσεις πηγών που δεν πρέπει να εκφωνηθούν. Αυτές οι προετοιμασίες κάνουν το ίδιο το κείμενο κατάλληλο για ήχο, πριν η αναφορά καθορίσει το ύφος του.</p><p>Συνεχής μετάδοση, έξοδος και διάρκεια</p><p>Ο κατασκευαστής τεκμηριώνει βασική παράδοση και συνεχή μετάδοση και περιγράφει εγγενή παραγωγή ήχου έως δύο λεπτών. Η δημοσιευμένη κάρτα βαρών παραθέτει επίσης μαζική εκτέλεση για την προετοιμασία πολλών εργασιών ομιλίας. Οι μεγαλύτερες παραγωγές της υπηρεσίας χρησιμοποιούν εναλλασσόμενη επεξεργασία αντί να αντιμετωπίζουν ένα εγγενές τμήμα ως απεριόριστο. Για μεγαλύτερη αφήγηση, προετοιμάστε συνεκτικές ενότητες και διατηρήστε συνεπή την προετοιμασία φωνής και κειμένου με τη ροή παράδοσης που χειρίζεται τη συνέχεια.</p><p>Η δημοσιευμένη κάρτα προσδιορίζει ήχο 24 kHz και κατονομάζει τις μορφές εξόδου WAV, PCM, FLAC, MP3, AAC και Opus. Ο οδηγός υπηρεσίας ομιλίας αναφέρεται σε MP3 για συμπιεσμένη παράδοση, WAV για ασυμπίεστο PCM, FLAC για συμπίεση χωρίς απώλειες και PCM ή Opus για συνεχή μετάδοση. Επιλέξτε μορφή που υποστηρίζεται από τη συνδεδεμένη ροή και είναι κατάλληλη για τη συσκευή αναπαραγωγής ή το στάδιο επεξεργασίας της. Η επιλογή μορφής και η συμπεριφορά της συνεχούς μετάδοσης είναι διακριτές από την ίδια την προσαρμογή φωνής.</p><p>Αρχιτεκτονική μοντέλου και πρακτικά όρια</p><p>Η ανακοίνωση περιγράφει αυτοπαλινδρομική αρχιτεκτονική αντιστοίχισης ροής, με κορμό αποκωδικοποιητή Transformer 3.4B, ακουστικό Transformer 390 εκατομμυρίων παραμέτρων και νευρωνικό κωδικοποιητή ήχου 300 εκατομμυρίων παραμέτρων. Ο αποκωδικοποιητής προβλέπει το σημασιολογικό περιεχόμενο και το ακουστικό στοιχείο παράγει την αναπαράσταση της ομιλίας, ενώ ο κωδικοποιητής χειρίζεται τον ήχο. Αυτά τα στοιχεία εξηγούν την κατά προσέγγιση ετικέτα μοντέλου 4B· δεν αποτελούν πρόσθετες γλώσσες εισόδου ή διαφορετικό μοντέλο παραγωγής απαντήσεων.</p><p>Μια πρακτική έξοδος είναι η συντεθειμένη ηχογράφηση ή η ροή ήχου που συνδέεται με το προετοιμασμένο κείμενο και την επιλεγμένη φωνή της. Διατηρήστε αυτές τις αντιστοιχίσεις όταν παράγετε πολλές ενότητες, ώστε η εφαρμογή να μπορεί να αποθηκεύσει, να αναπαραγάγει ή να συναρμολογήσει το σωστό υλικό. Το μοντέλο παράγει ήχο αντί για απομαγνητοφώνηση, διάνυσμα σημασιολογικής αναζήτησης ή νέα πραγματολογική απάντηση.</p><p>Διατηρήστε την έκδοση ομιλίας 2603, την υποστηριζόμενη γλώσσα και το ύφος αναφοράς. Οι πηγές που διαβάστηκαν παρέχουν τη δήλωση για εγγενή παραγωγή δύο λεπτών και τη σύσταση προετοιμασίας κάτω από 300 λέξεις, αλλά δεν τεκμηριώνουν ξεχωριστό απόλυτο μέγιστο όριο χαρακτήρων κειμένου ή συνολικής διάρκειας συνενωμένης ηχογράφησης. Χρησιμοποιήστε τις πραγματικές απαιτήσεις κειμένου, φωνής και παράδοσης για να ορίσετε το ολοκληρωμένο ηχητικό τεχνούργημα.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Σύνθεση ομιλίας</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>Είσοδος</dt><dd><code>text</code></dd></div><div><dt>Έξοδος</dt><dd><code>audio</code></dd></div><div><dt>Μορφή εξόδου</dt><dd>mp3</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Πεδίο</th><th>Τύπος</th><th>Απαίτηση</th><th>Τιμές και όρια</th><th>Προεπιλογή</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>mistralai/voxtral-mini-tts-2603</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Ελάχιστο μήκος: 1</div><div>Μονάδα: χαρακτήρες Unicode</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">voice</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>en_paul_sad, en_paul_neutral, en_paul_happy, en_paul_frustrated, en_paul_excited, en_paul_confident, en_paul_cheerful, en_paul_angry, gb_oliver_neutral, gb_oliver_sad, gb_oliver_excited, gb_oliver_curious, gb_oliver_confident, gb_oliver_cheerful, gb_oliver_angry, gb_jane_sarcasm, gb_jane_confused, gb_jane_shameful, gb_jane_sad, gb_jane_neutral, gb_jane_jealousy, gb_jane_frustrated, gb_jane_curious, gb_jane_confident, fr_marie_sad, fr_marie_neutral, fr_marie_happy, fr_marie_excited, fr_marie_curious, fr_marie_angry</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>mp3</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Συνδυασμοί υλικών εισόδου</summary><p class=\"note-s\"><b>text_to_speech</b> · Υποχρεωτικό: input</p></details><details class=\"note-s\" data-method-contract><summary>Παράμετροι και κύκλος ζωής μεθόδου</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Παράμετρος</th><th>Σύμβαση</th></tr></thead><tbody><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>content_type</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>application/json</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>required</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>model, input, voice, response_format</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>voice_ids</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>en_paul_sad, en_paul_neutral, en_paul_happy, en_paul_frustrated, en_paul_excited, en_paul_confident, en_paul_cheerful, en_paul_angry, gb_oliver_neutral, gb_oliver_sad, gb_oliver_excited, gb_oliver_curious, gb_oliver_confident, gb_oliver_cheerful, gb_oliver_angry, gb_jane_sarcasm, gb_jane_confused, gb_jane_shameful, gb_jane_sad, gb_jane_neutral, gb_jane_jealousy, gb_jane_frustrated, gb_jane_curious, gb_jane_confident, fr_marie_sad, fr_marie_neutral, fr_marie_happy, fr_marie_excited, fr_marie_curious, fr_marie_angry</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>response_format</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>mp3</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>max_input_characters</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>null</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>other_options</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>false</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>input</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>ακριβές κείμενο UTF-8· πλήθος χαρακτήρων Unicode χωρίς κανονικοποίηση</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>material_types</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>text</td></tr></tbody></table></div><p>Κύκλος ζωής: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · Το πραγματικό task_id που επιστράφηκε ή μια εγγραφή στη βιβλιοθήκη πολυμέσων</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p><p class=\"note-s\">Επιλέξτε την ακριβή φωνή από αυτό το προφίλ μοντέλου.</p><p class=\"note-s\">Οι χαρακτήρες εισόδου και τα δευτερόλεπτα ήχου αποτελούν διαφορετικές μονάδες μέτρησης.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Τιμολόγηση</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Οι τιμολογιακές αναφορές δεν προσθέτουν επιλογές αιτήματος. Οι υποστηριζόμενες παράμετροι αναφέρονται στην επιλεγμένη μέθοδο.</p><dl data-price-conditions><dt>Γρήγορη λειτουργία</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν επιλέγεται η γρήγορη λειτουργία</span></dd><dt>Λειτουργία flex</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν επιλέγεται η λειτουργία flex</span></dd><dt>Μέγιστη προσπάθεια συλλογισμού</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν η μέγιστη προσπάθεια συλλογισμού χρησιμοποιεί την προσαρμογή default</span></dd></dl></div><div data-declared-tariff-pricing><h4>Χρεώσεις Ailoot</h4><h4>Τιμές ανά διαμόρφωση</h4><p class=\"note-s\">Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Διαμόρφωση</th><th>Πίνακας χρεώσεων</th><th>Χρεώσιμη ποσότητα</th><th>Μονάδα τιμολόγησης</th><th>Χρέωση</th></tr></thead><tbody><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Βασικές χρεώσεις token</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>Βασική χρέωση</td><td data-cell-label=\"Χρεώσιμη ποσότητα\"><span class=\"card-cell-label\">Χρεώσιμη ποσότητα</span>—</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>—</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Είσοδος · Token εισόδου</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Έξοδος · Token εξόδου</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Ανάγνωση από την κρυφή μνήμη</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Εγγραφή στην κρυφή μνήμη</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Ultra</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Χρεώσιμη ποσότητα\"><span class=\"card-cell-label\">Χρεώσιμη ποσότητα</span>Κάθε σημείο κώδικα Unicode μετρά ως ένας χαρακτήρας, συμπεριλαμβανομένων των χαρακτήρων Han.</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>ανά 1K χαρακτήρες εισόδου</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Είσοδος · χαρακτήρας εισόδου</span> <b>$0.032</b> <span class=\"price-unit\">ανά 1K χαρακτήρες εισόδου</span></div></td></tr></tbody></table></div></div><div data-declared-reference-pricing><h4>Στοιχεία τιμοκαταλόγου αναφοράς</h4><p class=\"note-s\">Οι πίνακες αναφοράς του μοντέλου δεν αλλάζουν την επιλογή μεθόδου, τις εκτιμήσεις τιμής ή τις χρεώσεις. Οι εφαρμοζόμενες χρεώσεις χρησιμοποιούν τις τιμές της επιλεγμένης μεθόδου Ailoot.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Mistral: Voxtral Mini TTS</summary><h4>Τιμές ανά διαμόρφωση</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Διαμόρφωση</th><th>Συνθήκες χρέωσης</th><th>Χρέωση</th></tr></thead><tbody><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Mistral: Voxtral Mini TTS · Προεπιλεγμένη διαμόρφωση</th><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>Προεπιλεγμένη διαμόρφωση</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Είσοδος · Χαρακτήρες εισόδου</span> <b>0,000032 $</b> <span class=\"price-unit\">ανά χαρακτήρα εισόδου</span></div></td></tr></tbody></table></div></details></div><p class=\"note-s\">Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. <a href=\"/docs/el/billing/reserve/\">Πώς λειτουργούν η δέσμευση και η εκκαθάριση →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Παραδείγματα αιτημάτων</h3><h4>Ailoot Ultra · Σύνθεση ομιλίας</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-1943-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1943-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Αντιγραφή κώδικα\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1943-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1943-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}&quot;\nexport AILOOT_VOICE_ID\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;mistralai/voxtral-mini-tts-2603&quot;, &quot;input&quot;: &quot;Good afternoon! This is a short voice take.&quot;}&#39;)\nvoice=os.environ[&quot;AILOOT_VOICE_ID&quot;]\nallowed=json.loads(&#39;[&quot;en_paul_sad&quot;, &quot;en_paul_neutral&quot;, &quot;en_paul_happy&quot;, &quot;en_paul_frustrated&quot;, &quot;en_paul_excited&quot;, &quot;en_paul_confident&quot;, &quot;en_paul_cheerful&quot;, &quot;en_paul_angry&quot;, &quot;gb_oliver_neutral&quot;, &quot;gb_oliver_sad&quot;, &quot;gb_oliver_excited&quot;, &quot;gb_oliver_curious&quot;, &quot;gb_oliver_confident&quot;, &quot;gb_oliver_cheerful&quot;, &quot;gb_oliver_angry&quot;, &quot;gb_jane_sarcasm&quot;, &quot;gb_jane_confused&quot;, &quot;gb_jane_shameful&quot;, &quot;gb_jane_sad&quot;, &quot;gb_jane_neutral&quot;, &quot;gb_jane_jealousy&quot;, &quot;gb_jane_frustrated&quot;, &quot;gb_jane_curious&quot;, &quot;gb_jane_confident&quot;, &quot;fr_marie_sad&quot;, &quot;fr_marie_neutral&quot;, &quot;fr_marie_happy&quot;, &quot;fr_marie_excited&quot;, &quot;fr_marie_curious&quot;, &quot;fr_marie_angry&quot;]&#39;)\nif voice not in allowed: raise SystemExit(&quot;Choose an accepted voice ID from this exact model profile&quot;)\np[&quot;voice&quot;]=voice\np[&quot;response_format&quot;]=&quot;mp3&quot;\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o speech.mp3\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Λήψη και αποθήκευση αποτελεσμάτων</h3><h4>Ailoot Ultra · Σύνθεση ομιλίας</h4><p class=\"note-s\">mp3</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><details class=\"card-about\"><summary>Άλλες ανακτήσεις περιεχομένου</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-1944-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1944-panel-0\" aria-selected=\"true\" tabindex=\"0\">Βιβλιοθήκη πολυμέσων</button><button class=\"cg-tab\" id=\"model-code-1944-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1944-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Κατάσταση εργασίας</button><button class=\"cg-tab\" id=\"model-code-1944-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1944-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Στοιχεία αρχείου</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Αντιγραφή κώδικα\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1944-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1944-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-assets.json\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1944-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1944-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}&quot;\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c &#39;import os,urllib.parse;print(urllib.parse.quote(os.environ[&quot;AILOOT_MEDIA_TASK_ID&quot;],safe=&quot;&quot;))&#39;)\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/media/tasks/$resource_id&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-task.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(&quot;media-task.json&quot;).read_text())))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1944-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-1944-tab-2\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}&quot;\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c &#39;import os,urllib.parse;print(urllib.parse.quote(os.environ[&quot;AILOOT_ASSET_ID&quot;],safe=&quot;&quot;))&#39;)\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/media/assets/$resource_id&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-asset.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(&quot;media-asset.json&quot;).read_text())))\nPY_RESULT\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα</h5><p class=\"note-s\">Διατηρήστε κάθε πλήρη απάντηση, αρχείο και τμήμα περιεχομένου που επιστρέφεται.</p><p class=\"note-s\">Διατηρήστε ολόκληρο το δυαδικό αποτέλεσμα και τις κεφαλίδες. Αν επιστραφεί JSON ή επιστραφούν πολλαπλές έξοδοι, διατηρήστε κάθε στοιχείο δεδομένων και ανακτήστε κάθε πραγματικό υπογεγραμμένο URL πόρου.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Αν χρειάζεται έλεγχος της αρχικής απάντησης</h5><p class=\"note-s\">Διατηρήστε το αρχικό operation_id/X-Client-Request-ID για τη συμφωνία των εγγραφών χωρίς νέα υποβολή· δεν υπάρχει ειδική διαδρομή περιοδικού ελέγχου για τον ήχο.</p></div><details class=\"card-about\" data-output-fields><summary>Πεδία απάντησης</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Πεδίο</th><th>Τύπος</th></tr></thead><tbody><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">binary audio</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>bytes</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">response headers</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>headers</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Σφάλματα και επόμενα βήματα</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Απάντηση</th><th>Συνθήκη</th><th>Επόμενο βήμα</th></tr></thead><tbody><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Μη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span><code>server_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Η απόκριση που επιστράφηκε αναφέρει ότι η λειτουργία ή το αποτέλεσμα χρειάζεται έλεγχο</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διατηρήστε το αρχικό ID της λειτουργίας/εργασίας που επιστράφηκε, τις κεφαλίδες του αιτήματος και την απόκριση· συνεχίστε με τις υποστηριζόμενες αναγνώσεις αυτής της αρχικής λειτουργίας. Μην υποβάλετε ξανά το αίτημα δημιουργίας.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Εναλλακτικά ονόματα</h3><h4>Εναλλακτικά ονόματα μοντέλου</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=mistralai%2Fvoxtral-mini-tts-2603&amp;route=Ultra&amp;caller=mistralai%2Fvoxtral-mini-tts-2603&amp;fmt=speech\"><code>mistralai/voxtral-mini-tts-2603</code></a></span></p><h4>Εναλλακτικές διαδρομές μεθόδων</h4><p class=\"note-s\">Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.</p><h4>Σχετικά ID μοντέλων</h4><p class=\"note-s\"><a href=\"#m=mistralai%2Fvoxtral-mini-tts-2603&amp;route=Ultra&amp;caller=mistralai%2Fvoxtral-mini-tts-2603&amp;fmt=speech\"><code>mistralai/voxtral-mini-tts-2603</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "mistralai/voxtral-mini-tts-2603",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "mistralai/voxtral-mini-tts-2603",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|mistralai%2Fvoxtral-mini-tts-2603",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.",
            "errors": [
              {
                "code": null,
                "condition": "Μη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου",
                "http_status": 400,
                "recovery": "Διορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Η απόκριση που επιστράφηκε αναφέρει ότι η λειτουργία ή το αποτέλεσμα χρειάζεται έλεγχο",
                "http_status": null,
                "recovery": "Διατηρήστε το αρχικό ID της λειτουργίας/εργασίας που επιστράφηκε, τις κεφαλίδες του αιτήματος και την απόκριση· συνεχίστε με τις υποστηριζόμενες αναγνώσεις αυτής της αρχικής λειτουργίας. Μην υποβάλετε ξανά το αίτημα δημιουργίας.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Διατηρήστε το αρχικό operation_id/X-Client-Request-ID για τη συμφωνία των εγγραφών χωρίς νέα υποβολή· δεν υπάρχει ειδική διαδρομή περιοδικού ελέγχου για τον ήχο."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "input"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_speech"
            ],
            "outputs": {
              "all_results": "Διατηρήστε ολόκληρο το δυαδικό αποτέλεσμα και τις κεφαλίδες. Αν επιστραφεί JSON ή επιστραφούν πολλαπλές έξοδοι, διατηρήστε κάθε στοιχείο δεδομένων και ανακτήστε κάθε πραγματικό υπογεγραμμένο URL πόρου.",
              "family": "audio",
              "fields": [
                {
                  "description": null,
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "description": null,
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "mp3",
              "http_success": 200
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mistralai/voxtral-mini-tts-2603"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "limit_known": false,
                "maximum_length": null,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string",
                "unit": "χαρακτήρες Unicode"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "en_paul_sad",
                  "en_paul_neutral",
                  "en_paul_happy",
                  "en_paul_frustrated",
                  "en_paul_excited",
                  "en_paul_confident",
                  "en_paul_cheerful",
                  "en_paul_angry",
                  "gb_oliver_neutral",
                  "gb_oliver_sad",
                  "gb_oliver_excited",
                  "gb_oliver_curious",
                  "gb_oliver_confident",
                  "gb_oliver_cheerful",
                  "gb_oliver_angry",
                  "gb_jane_sarcasm",
                  "gb_jane_confused",
                  "gb_jane_shameful",
                  "gb_jane_sad",
                  "gb_jane_neutral",
                  "gb_jane_jealousy",
                  "gb_jane_frustrated",
                  "gb_jane_curious",
                  "gb_jane_confident",
                  "fr_marie_sad",
                  "fr_marie_neutral",
                  "fr_marie_happy",
                  "fr_marie_excited",
                  "fr_marie_curious",
                  "fr_marie_angry"
                ],
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mp3"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": true,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "every field outside exactmodel,input,voice,response_format",
              "stream/speed/reference speech options"
            ]
          },
          "hints": [
            "Επιλέξτε την ακριβή φωνή από αυτό το προφίλ μοντέλου.",
            "Οι χαρακτήρες εισόδου και τα δευτερόλεπτα ήχου αποτελούν διαφορετικές μονάδες μέτρησης."
          ],
          "input": {
            "content_type": "application/json",
            "input": "ακριβές κείμενο UTF-8· πλήθος χαρακτήρων Unicode χωρίς κανονικοποίηση",
            "material_types": [
              "text"
            ],
            "max_input_characters": null,
            "other_options": false,
            "required": [
              "model",
              "input",
              "voice",
              "response_format"
            ],
            "response_format": [
              "mp3"
            ],
            "voice_ids": [
              "en_paul_sad",
              "en_paul_neutral",
              "en_paul_happy",
              "en_paul_frustrated",
              "en_paul_excited",
              "en_paul_confident",
              "en_paul_cheerful",
              "en_paul_angry",
              "gb_oliver_neutral",
              "gb_oliver_sad",
              "gb_oliver_excited",
              "gb_oliver_curious",
              "gb_oliver_confident",
              "gb_oliver_cheerful",
              "gb_oliver_angry",
              "gb_jane_sarcasm",
              "gb_jane_confused",
              "gb_jane_shameful",
              "gb_jane_sad",
              "gb_jane_neutral",
              "gb_jane_jealousy",
              "gb_jane_frustrated",
              "gb_jane_curious",
              "gb_jane_confident",
              "fr_marie_sad",
              "fr_marie_neutral",
              "fr_marie_happy",
              "fr_marie_excited",
              "fr_marie_curious",
              "fr_marie_angry"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "Το πραγματικό task_id που επιστράφηκε ή μια εγγραφή στη βιβλιοθήκη πολυμέσων",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "family": "audio",
            "format": "mp3",
            "http_success": 200,
            "response": "full binary MP3 plus response headers",
            "result": "complete playable owned MP3"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quantity_meter": "utf8.RuneCountInString(validUTF8): one Han codepoint=1; no Han weighting",
              "quoted_unit": "per 1000 input character"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.032000",
                "amount_unit": "usd_per_1000_characters",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.000032",
                "native_quantity": 1,
                "public_unit_label": "per 1000 input character",
                "quantity": "1000",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_character"
              }
            ]
          }
        ],
        "declared_tariff_references": [
          {
            "client_selectable": false,
            "key": "20ebfeb88167b8c33fea",
            "label": "Mistral: Voxtral Mini TTS",
            "profiles": [
              {
                "basis": "",
                "dimensions": {
                  "conditions": "Προεπιλεγμένη διαμόρφωση"
                },
                "label": "Mistral: Voxtral Mini TTS · Προεπιλεγμένη διαμόρφωση",
                "units": [
                  {
                    "amount": "0.000032",
                    "amount_unit": "usd_per_exact_physical_unit",
                    "billing_input": false,
                    "key": "3ceae9e888e4cc9cd6e6009e",
                    "label": "Input characters",
                    "public_unit_label": "per input character",
                    "quantity": "1",
                    "rate_role": "declared_tariff_rate",
                    "side": "in",
                    "unit": "input_character"
                  }
                ]
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}\"\nexport AILOOT_VOICE_ID\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"mistralai/voxtral-mini-tts-2603\", \"input\": \"Good afternoon! This is a short voice take.\"}')\nvoice=os.environ[\"AILOOT_VOICE_ID\"]\nallowed=json.loads('[\"en_paul_sad\", \"en_paul_neutral\", \"en_paul_happy\", \"en_paul_frustrated\", \"en_paul_excited\", \"en_paul_confident\", \"en_paul_cheerful\", \"en_paul_angry\", \"gb_oliver_neutral\", \"gb_oliver_sad\", \"gb_oliver_excited\", \"gb_oliver_curious\", \"gb_oliver_confident\", \"gb_oliver_cheerful\", \"gb_oliver_angry\", \"gb_jane_sarcasm\", \"gb_jane_confused\", \"gb_jane_shameful\", \"gb_jane_sad\", \"gb_jane_neutral\", \"gb_jane_jealousy\", \"gb_jane_frustrated\", \"gb_jane_curious\", \"gb_jane_confident\", \"fr_marie_sad\", \"fr_marie_neutral\", \"fr_marie_happy\", \"fr_marie_excited\", \"fr_marie_curious\", \"fr_marie_angry\"]')\nif voice not in allowed: raise SystemExit(\"Choose an accepted voice ID from this exact model profile\")\np[\"voice\"]=voice\np[\"response_format\"]=\"mp3\"\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o speech.mp3\n",
            "label": "curl",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-assets.json\n",
            "label": "List actual media assets",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_MEDIA_TASK_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/tasks/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-task.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-task.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual media task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_ASSET_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/assets/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-asset.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-asset.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual asset metadata",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Select exact voice from this model profile.",
          "Input characters and audio seconds are different meters."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Озвучка текста",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_character": 3.2e-05
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quantity_meter": "utf8.RuneCountInString(validUTF8): one Han codepoint=1; no Han weighting",
              "quoted_unit": "per 1000 input character"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.032000",
                "amount_unit": "usd_per_1000_characters",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.000032",
                "native_quantity": 1,
                "public_unit_label": "per 1000 input character",
                "quantity": "1000",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_character"
              }
            ]
          }
        ],
        "request_model_id": "mistralai/voxtral-mini-tts-2603",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.032000",
            "amount_unit": "usd_per_1000_characters",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.000032",
            "native_quantity": 1,
            "public_unit_label": "per 1000 input character",
            "quantity": "1000",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_character"
          }
        ]
      }
    }
  ],
  "model_id": "mistralai/voxtral-mini-tts-2603",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "484003915adc17fb1c2b93c04206368a1429f87a55bad730aeb6201702531a3f",
    "input_html_sha256": "2c7e096ee822514a707d24198eaa5efd0aa73baa10e94d12de9eea9d151d90bc",
    "private_audit_sha256": "16667526c553a6503376da08c0acf556444623bcf6c302523fc601d6561b902c",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/el/mistralai-voxtral-mini-tts-2603/",
    "description": "Το Voxtral TTS είναι το μοντέλο παραγωγής ομιλίας 4B της Mistral AI, με προσαρμογή φωνής βάσει αναφοράς σε εννέα γλώσσες. Μετατρέπει έτοιμο κείμενο σε εκφραστικό ήχο, υποστηρίζει επαναχρησιμοποιήσιμα ή εφάπαξ δείγματα καθοδήγησης φωνής και συνεχή μετάδοση και παράγει έξοδο 24 kHz σε τεκμηριωμένες μορφές ήχου.",
    "locale": "el",
    "md_url": "https://ailoot.ai/models/el/mistralai-voxtral-mini-tts-2603/index.md",
    "title": "Mistral: Voxtral Mini TTS — Ailoot",
    "url": "https://ailoot.ai/models/el/mistralai-voxtral-mini-tts-2603/"
  },
  "rawModel": {
    "about": "Το Voxtral TTS είναι το μοντέλο μετατροπής κειμένου σε ομιλία 4B της Mistral AI για παραγωγή ομιλίας σε μορφή ήχου από κείμενο και αναφορά φωνής. Η σελίδα μοντέλου του κατασκευαστή προσδιορίζει την έκδοση 2603 ως voxtral-mini-tts-2603, ενώ η δημοσιευμένη κάρτα βαρών ονομάζεται Voxtral 4B TTS 2603. Αυτή η καταχώριση αφορά τη συγκεκριμένη έκδοση παραγωγής ομιλίας, η οποία διαφέρει από το Voxtral Small για κατανόηση ήχου, την απομαγνητοφώνηση και τα μεταγενέστερα μοντέλα εισόδου σε πραγματικό χρόνο.\n\nΕκφραστική ομιλία και προσαρμογή φωνής\n\nΤο μοντέλο έχει σχεδιαστεί ώστε να αποτυπώνει τις παύσεις, τον ρυθμό, τον επιτονισμό, την προφορά και τη συναισθηματική απόδοση μιας φωνής αναφοράς. Η φωνή λειτουργεί ως οδηγία για το πώς πρέπει να ακούγεται το κείμενο· η επισκόπηση του κατασκευαστή δεν απαιτεί ξεχωριστές ετικέτες προσωδίας ή συναισθήματος ούτε απομαγνητοφώνηση της ηχογράφησης αναφοράς. Το αρχικό κείμενο καθορίζει τι λέγεται, ενώ η ηχητική αναφορά καθοδηγεί την εκφορά του.\n\nΗ επισκόπηση περιγράφει προσαρμογή φωνής από μόλις δύο έως τρία δευτερόλεπτα ήχου. Η περιγραφή της αρχιτεκτονικής αναφέρεται σε δείγματα καθοδήγησης φωνής διάρκειας πέντε έως είκοσι πέντε δευτερολέπτων. Αυτές οι δηλώσεις έχουν διαφορετικό πεδίο εφαρμογής: ένα παράδειγμα σύντομης προσαρμογής δεν αποτελεί απαίτηση χρήσης της συντομότερης δυνατής αναφοράς. Επιλέξτε καθαρή ομιλία που αντιπροσωπεύει το ύφος και την προφορά που θέλετε για το τελικό αποτέλεσμα.\n\nΗ δημοσιευμένη κάρτα περιλαμβάνει είκοσι προκαθορισμένες φωνές και προσαρμογή σε νέες φωνές. Η ροή ομιλίας του κατασκευαστή μπορεί να χρησιμοποιήσει αποθηκευμένο προφίλ φωνής ή εφάπαξ απόσπασμα αναφοράς. Η αποθήκευση προφίλ επιτρέπει επαναχρησιμοποίηση της ίδιας αναφοράς φωνής σε ξεχωριστά αιτήματα ομιλίας, ενώ ένα εφάπαξ απόσπασμα την παρέχει για την τρέχουσα εργασία. Ένα προφίλ και μια παραγόμενη ηχογράφηση είναι διαφορετικά τεχνουργήματα.\n\nΓλώσσες και εκφορά μεταξύ γλωσσών\n\nΗ έκδοση υποστηρίζει αγγλικά, γαλλικά, ισπανικά, γερμανικά, ιταλικά, πορτογαλικά, ολλανδικά, αραβικά και χίντι, με διαλεκτικές παραλλαγές, μεταφορά φωνής μεταξύ γλωσσών και ανάμειξη γλωσσών, όπως περιγράφει ο κατασκευαστής. Για το καλύτερο αποτέλεσμα, ο οδηγός ομιλίας συνιστά η γλώσσα αναφοράς να ταιριάζει με τη γλώσσα του κειμένου. Η μεταφορά μεταξύ γλωσσών μπορεί να διατηρήσει την προφορά της αναφοράς ενώ εκφωνεί το έτοιμο κείμενο σε άλλη υποστηριζόμενη γλώσσα.\n\nΜια πρακτική εργασία αφήγησης μπορεί να χρησιμοποιεί το ίδιο φωνητικό ύφος για μια εξήγηση σε διαφορετικές υποστηριζόμενες γλώσσες, με κάθε κείμενο προετοιμασμένο για τον προβλεπόμενο ακροατή. Μια απάντηση φωνητικού βοηθού μπορεί να χρησιμοποιεί σύντομο, συνομιλιακό κείμενο αντί να διαβάζει δυνατά ένα ανεπεξέργαστο έγγραφο. Το μοντέλο μετατροπής κειμένου σε ομιλία αποδίδει τις έτοιμες λέξεις· κάθε στάδιο μετάφρασης ή σύνταξης απάντησης που παράγει αυτές τις λέξεις αποτελεί ξεχωριστό βήμα.\n\nΠροετοιμασία του κειμένου\n\nΟ οδηγός ομιλίας του κατασκευαστή συνιστά κείμενο που μπορεί να αποδοθεί προφορικά. Γράψτε αριθμούς και σύμβολα στη μορφή με την οποία πρέπει να εκφωνηθούν, ώστε το μοντέλο να μη χρειάζεται να επιλέξει μεταξύ πιθανών αναγνώσεων. Ένας αριθμός μπορεί να είναι ποσότητα, ώρα ή αναγνωριστικό· ορίστε την επιδιωκόμενη προφορική διατύπωση πριν από τη σύνθεση. Αναπτύξτε τις συντομογραφίες όταν η προφορά έχει σημασία, χρησιμοποιώντας χωριστά γράμματα όταν αυτή είναι η προβλεπόμενη ανάγνωση.\n\nΑποφύγετε την πλούσια μορφοποίηση, τα emoji και τους ειδικούς χαρακτήρες που δεν θα αποδοθούν ως προφορικό περιεχόμενο. Προετοιμάστε ολοκληρωμένες προτάσεις με τη στίξη και τη διατύπωση που χρειάζεται η εκφορά. Ο οδηγός συνιστά προτροπές κάτω από 300 λέξεις για τα καλύτερα αποτελέσματα. Πρόκειται για σύσταση ποιότητας και όχι για δηλωμένο απόλυτο μέγιστο μήκος εισόδου.\n\nΓια μια διαδικαστική εξήγηση, γράψτε την ενέργεια και την προϋπόθεση σε μια πρόταση που μπορεί να παρακολουθήσει ο ακροατής. Για μια ανακοίνωση, τοποθετήστε τις σημαντικές πληροφορίες πριν από τις προαιρετικές λεπτομέρειες. Για μια φωνητική απάντηση, διατηρήστε την πραγματολογική απάντηση και αφαιρέστε μορφοποίηση μόνο για εμφάνιση ή σημάνσεις πηγών που δεν πρέπει να εκφωνηθούν. Αυτές οι προετοιμασίες κάνουν το ίδιο το κείμενο κατάλληλο για ήχο, πριν η αναφορά καθορίσει το ύφος του.\n\nΣυνεχής μετάδοση, έξοδος και διάρκεια\n\nΟ κατασκευαστής τεκμηριώνει βασική παράδοση και συνεχή μετάδοση και περιγράφει εγγενή παραγωγή ήχου έως δύο λεπτών. Η δημοσιευμένη κάρτα βαρών παραθέτει επίσης μαζική εκτέλεση για την προετοιμασία πολλών εργασιών ομιλίας. Οι μεγαλύτερες παραγωγές της υπηρεσίας χρησιμοποιούν εναλλασσόμενη επεξεργασία αντί να αντιμετωπίζουν ένα εγγενές τμήμα ως απεριόριστο. Για μεγαλύτερη αφήγηση, προετοιμάστε συνεκτικές ενότητες και διατηρήστε συνεπή την προετοιμασία φωνής και κειμένου με τη ροή παράδοσης που χειρίζεται τη συνέχεια.\n\nΗ δημοσιευμένη κάρτα προσδιορίζει ήχο 24 kHz και κατονομάζει τις μορφές εξόδου WAV, PCM, FLAC, MP3, AAC και Opus. Ο οδηγός υπηρεσίας ομιλίας αναφέρεται σε MP3 για συμπιεσμένη παράδοση, WAV για ασυμπίεστο PCM, FLAC για συμπίεση χωρίς απώλειες και PCM ή Opus για συνεχή μετάδοση. Επιλέξτε μορφή που υποστηρίζεται από τη συνδεδεμένη ροή και είναι κατάλληλη για τη συσκευή αναπαραγωγής ή το στάδιο επεξεργασίας της. Η επιλογή μορφής και η συμπεριφορά της συνεχούς μετάδοσης είναι διακριτές από την ίδια την προσαρμογή φωνής.\n\nΑρχιτεκτονική μοντέλου και πρακτικά όρια\n\nΗ ανακοίνωση περιγράφει αυτοπαλινδρομική αρχιτεκτονική αντιστοίχισης ροής, με κορμό αποκωδικοποιητή Transformer 3.4B, ακουστικό Transformer 390 εκατομμυρίων παραμέτρων και νευρωνικό κωδικοποιητή ήχου 300 εκατομμυρίων παραμέτρων. Ο αποκωδικοποιητής προβλέπει το σημασιολογικό περιεχόμενο και το ακουστικό στοιχείο παράγει την αναπαράσταση της ομιλίας, ενώ ο κωδικοποιητής χειρίζεται τον ήχο. Αυτά τα στοιχεία εξηγούν την κατά προσέγγιση ετικέτα μοντέλου 4B· δεν αποτελούν πρόσθετες γλώσσες εισόδου ή διαφορετικό μοντέλο παραγωγής απαντήσεων.\n\nΜια πρακτική έξοδος είναι η συντεθειμένη ηχογράφηση ή η ροή ήχου που συνδέεται με το προετοιμασμένο κείμενο και την επιλεγμένη φωνή της. Διατηρήστε αυτές τις αντιστοιχίσεις όταν παράγετε πολλές ενότητες, ώστε η εφαρμογή να μπορεί να αποθηκεύσει, να αναπαραγάγει ή να συναρμολογήσει το σωστό υλικό. Το μοντέλο παράγει ήχο αντί για απομαγνητοφώνηση, διάνυσμα σημασιολογικής αναζήτησης ή νέα πραγματολογική απάντηση.\n\nΔιατηρήστε την έκδοση ομιλίας 2603, την υποστηριζόμενη γλώσσα και το ύφος αναφοράς. Οι πηγές που διαβάστηκαν παρέχουν τη δήλωση για εγγενή παραγωγή δύο λεπτών και τη σύσταση προετοιμασίας κάτω από 300 λέξεις, αλλά δεν τεκμηριώνουν ξεχωριστό απόλυτο μέγιστο όριο χαρακτήρων κειμένου ή συνολικής διάρκειας συνενωμένης ηχογράφησης. Χρησιμοποιήστε τις πραγματικές απαιτήσεις κειμένου, φωνής και παράδοσης για να ορίσετε το ολοκληρωμένο ηχητικό τεχνούργημα.",
    "alias_of": null,
    "aliases": [],
    "author": "Mistral",
    "available": null,
    "canonical_model": "mistralai/voxtral-mini-tts-2603",
    "capabilities": {
      "context_length": 4096,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "speech"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.032000",
            "amount_unit": "usd_per_1000_characters",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.000032",
            "native_quantity": 1,
            "public_unit_label": "per 1000 input character",
            "quantity": "1000",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_character"
          }
        ],
        "summary": "Πλήρης τιμολόγηση της διαμόρφωσης στις λεπτομέρειες."
      }
    ],
    "ctx": null,
    "entity_type": "model",
    "formats": [
      "speech"
    ],
    "id": "mistralai/voxtral-mini-tts-2603",
    "input": [
      "text"
    ],
    "kind": "speech",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.",
            "errors": [
              {
                "code": null,
                "condition": "Μη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου",
                "http_status": 400,
                "recovery": "Διορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Η απόκριση που επιστράφηκε αναφέρει ότι η λειτουργία ή το αποτέλεσμα χρειάζεται έλεγχο",
                "http_status": null,
                "recovery": "Διατηρήστε το αρχικό ID της λειτουργίας/εργασίας που επιστράφηκε, τις κεφαλίδες του αιτήματος και την απόκριση· συνεχίστε με τις υποστηριζόμενες αναγνώσεις αυτής της αρχικής λειτουργίας. Μην υποβάλετε ξανά το αίτημα δημιουργίας.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Διατηρήστε το αρχικό operation_id/X-Client-Request-ID για τη συμφωνία των εγγραφών χωρίς νέα υποβολή· δεν υπάρχει ειδική διαδρομή περιοδικού ελέγχου για τον ήχο."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "input"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_speech"
            ],
            "outputs": {
              "all_results": "Διατηρήστε ολόκληρο το δυαδικό αποτέλεσμα και τις κεφαλίδες. Αν επιστραφεί JSON ή επιστραφούν πολλαπλές έξοδοι, διατηρήστε κάθε στοιχείο δεδομένων και ανακτήστε κάθε πραγματικό υπογεγραμμένο URL πόρου.",
              "family": "audio",
              "fields": [
                {
                  "description": null,
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "description": null,
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "mp3",
              "http_success": 200
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mistralai/voxtral-mini-tts-2603"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "limit_known": false,
                "maximum_length": null,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string",
                "unit": "χαρακτήρες Unicode"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "en_paul_sad",
                  "en_paul_neutral",
                  "en_paul_happy",
                  "en_paul_frustrated",
                  "en_paul_excited",
                  "en_paul_confident",
                  "en_paul_cheerful",
                  "en_paul_angry",
                  "gb_oliver_neutral",
                  "gb_oliver_sad",
                  "gb_oliver_excited",
                  "gb_oliver_curious",
                  "gb_oliver_confident",
                  "gb_oliver_cheerful",
                  "gb_oliver_angry",
                  "gb_jane_sarcasm",
                  "gb_jane_confused",
                  "gb_jane_shameful",
                  "gb_jane_sad",
                  "gb_jane_neutral",
                  "gb_jane_jealousy",
                  "gb_jane_frustrated",
                  "gb_jane_curious",
                  "gb_jane_confident",
                  "fr_marie_sad",
                  "fr_marie_neutral",
                  "fr_marie_happy",
                  "fr_marie_excited",
                  "fr_marie_curious",
                  "fr_marie_angry"
                ],
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mp3"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": true,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "every field outside exactmodel,input,voice,response_format",
              "stream/speed/reference speech options"
            ]
          },
          "hints": [
            "Επιλέξτε την ακριβή φωνή από αυτό το προφίλ μοντέλου.",
            "Οι χαρακτήρες εισόδου και τα δευτερόλεπτα ήχου αποτελούν διαφορετικές μονάδες μέτρησης."
          ],
          "input": {
            "content_type": "application/json",
            "input": "ακριβές κείμενο UTF-8· πλήθος χαρακτήρων Unicode χωρίς κανονικοποίηση",
            "material_types": [
              "text"
            ],
            "max_input_characters": null,
            "other_options": false,
            "required": [
              "model",
              "input",
              "voice",
              "response_format"
            ],
            "response_format": [
              "mp3"
            ],
            "voice_ids": [
              "en_paul_sad",
              "en_paul_neutral",
              "en_paul_happy",
              "en_paul_frustrated",
              "en_paul_excited",
              "en_paul_confident",
              "en_paul_cheerful",
              "en_paul_angry",
              "gb_oliver_neutral",
              "gb_oliver_sad",
              "gb_oliver_excited",
              "gb_oliver_curious",
              "gb_oliver_confident",
              "gb_oliver_cheerful",
              "gb_oliver_angry",
              "gb_jane_sarcasm",
              "gb_jane_confused",
              "gb_jane_shameful",
              "gb_jane_sad",
              "gb_jane_neutral",
              "gb_jane_jealousy",
              "gb_jane_frustrated",
              "gb_jane_curious",
              "gb_jane_confident",
              "fr_marie_sad",
              "fr_marie_neutral",
              "fr_marie_happy",
              "fr_marie_excited",
              "fr_marie_curious",
              "fr_marie_angry"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "Το πραγματικό task_id που επιστράφηκε ή μια εγγραφή στη βιβλιοθήκη πολυμέσων",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "family": "audio",
            "format": "mp3",
            "http_success": 200,
            "response": "full binary MP3 plus response headers",
            "result": "complete playable owned MP3"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quantity_meter": "utf8.RuneCountInString(validUTF8): one Han codepoint=1; no Han weighting",
              "quoted_unit": "per 1000 input character"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.032000",
                "amount_unit": "usd_per_1000_characters",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.000032",
                "native_quantity": 1,
                "public_unit_label": "per 1000 input character",
                "quantity": "1000",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_character"
              }
            ]
          }
        ],
        "declared_tariff_references": [
          {
            "client_selectable": false,
            "key": "20ebfeb88167b8c33fea",
            "label": "Mistral: Voxtral Mini TTS",
            "profiles": [
              {
                "basis": "",
                "dimensions": {
                  "conditions": "Προεπιλεγμένη διαμόρφωση"
                },
                "label": "Mistral: Voxtral Mini TTS · Προεπιλεγμένη διαμόρφωση",
                "units": [
                  {
                    "amount": "0.000032",
                    "amount_unit": "usd_per_exact_physical_unit",
                    "billing_input": false,
                    "key": "3ceae9e888e4cc9cd6e6009e",
                    "label": "Input characters",
                    "public_unit_label": "per input character",
                    "quantity": "1",
                    "rate_role": "declared_tariff_rate",
                    "side": "in",
                    "unit": "input_character"
                  }
                ]
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}\"\nexport AILOOT_VOICE_ID\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"mistralai/voxtral-mini-tts-2603\", \"input\": \"Good afternoon! This is a short voice take.\"}')\nvoice=os.environ[\"AILOOT_VOICE_ID\"]\nallowed=json.loads('[\"en_paul_sad\", \"en_paul_neutral\", \"en_paul_happy\", \"en_paul_frustrated\", \"en_paul_excited\", \"en_paul_confident\", \"en_paul_cheerful\", \"en_paul_angry\", \"gb_oliver_neutral\", \"gb_oliver_sad\", \"gb_oliver_excited\", \"gb_oliver_curious\", \"gb_oliver_confident\", \"gb_oliver_cheerful\", \"gb_oliver_angry\", \"gb_jane_sarcasm\", \"gb_jane_confused\", \"gb_jane_shameful\", \"gb_jane_sad\", \"gb_jane_neutral\", \"gb_jane_jealousy\", \"gb_jane_frustrated\", \"gb_jane_curious\", \"gb_jane_confident\", \"fr_marie_sad\", \"fr_marie_neutral\", \"fr_marie_happy\", \"fr_marie_excited\", \"fr_marie_curious\", \"fr_marie_angry\"]')\nif voice not in allowed: raise SystemExit(\"Choose an accepted voice ID from this exact model profile\")\np[\"voice\"]=voice\np[\"response_format\"]=\"mp3\"\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o speech.mp3\n",
            "label": "curl",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-assets.json\n",
            "label": "List actual media assets",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_MEDIA_TASK_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/tasks/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-task.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-task.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual media task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_ASSET_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/assets/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-asset.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-asset.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual asset metadata",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Select exact voice from this model profile.",
          "Input characters and audio seconds are different meters."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Озвучка текста",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_character": 3.2e-05
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quantity_meter": "utf8.RuneCountInString(validUTF8): one Han codepoint=1; no Han weighting",
              "quoted_unit": "per 1000 input character"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.032000",
                "amount_unit": "usd_per_1000_characters",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.000032",
                "native_quantity": 1,
                "public_unit_label": "per 1000 input character",
                "quantity": "1000",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_character"
              }
            ]
          }
        ],
        "request_model_id": "mistralai/voxtral-mini-tts-2603",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.032000",
            "amount_unit": "usd_per_1000_characters",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.000032",
            "native_quantity": 1,
            "public_unit_label": "per 1000 input character",
            "quantity": "1000",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_character"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "mistralai/voxtral-mini-tts-2603",
        "request_model_id": "mistralai/voxtral-mini-tts-2603",
        "route_label": "Ultra"
      }
    ],
    "name": "Mistral: Voxtral Mini TTS",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "variant": null
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.000032",
            "amount_unit": "usd_per_input_character",
            "conditions": {
              "variant": null
            },
            "key": "pricing.prompt",
            "label": "prompt",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_character"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_not_separately_charged_output",
            "conditions": {
              "variant": null
            },
            "key": "pricing.completion",
            "label": "completion",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "not_separately_charged_output"
          }
        ]
      }
    ],
    "public_id": "mistralai/voxtral-mini-tts-2603",
    "short": "Το Voxtral TTS είναι το μοντέλο παραγωγής ομιλίας 4B της Mistral AI, με προσαρμογή φωνής βάσει αναφοράς σε εννέα γλώσσες. Μετατρέπει έτοιμο κείμενο σε εκφραστικό ήχο, υποστηρίζει επαναχρησιμοποιήσιμα ή εφάπαξ δείγματα καθοδήγησης φωνής και συνεχή μετάδοση και παράγει έξοδο 24 kHz σε τεκμηριωμένες μορφές ήχου."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Το Voxtral TTS είναι το μοντέλο παραγωγής ομιλίας 4B της Mistral AI, με προσαρμογή φωνής βάσει αναφοράς σε εννέα γλώσσες. Μετατρέπει έτοιμο κείμενο σε εκφραστικό ήχο, υποστηρίζει επαναχρησιμοποιήσιμα ή εφάπαξ δείγματα καθοδήγησης φωνής και συνεχή μετάδοση και παράγει έξοδο 24 kHz σε τεκμηριωμένες μορφές ήχου.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "60a272e997eb87d553ddd6a1f9db255ed7c000ddc6bba0b7229d2ec045850335",
    "renderer_sha256": "3ed36f7af4f78822bafbd174fdcaed7b698a18a86efe254253d37f1b098a7566"
  },
  "sourceRevision": "d1460fafdf48723d35bb643a1972b196d40d30c8637e69fd253d147caba7eef0"
}
