{
  "aboutHtml": "<p>Το S2 Pro είναι το μοντέλο μετατροπής κειμένου σε ομιλία δεύτερης γενιάς της Fish Audio για εκφραστική αφήγηση, διαλόγους χαρακτήρων και συνομιλιακή φωνητική έξοδο. Μετατρέπει ένα γραπτό κείμενο σε ήχο και υποστηρίζει καθοδήγηση σε φυσική γλώσσα σε επίπεδο λέξης ή φράσης. Η προηγούμενη γενιά S1 χρησιμοποιεί υποδείξεις σε παρενθέσεις, ενώ το S2 Pro χρησιμοποιεί εγγενώς αγκύλες και υποστηρίζει πολλούς ομιλητές σε ένα αίτημα σύνθεσης. Ο κατασκευαστής διαθέτει τα βάρη του S2 Pro και κώδικα λεπτομερούς προσαρμογής για ξεχωριστές εργασίες εξατομίκευσης· ένα συνηθισμένο αίτημα ομιλίας χρησιμοποιεί το επιλεγμένο μοντέλο και δεν εκπαιδεύει νέο.</p><p>Γράψτε πρώτα το προφορικό περιεχόμενο και, στη συνέχεια, τοποθετήστε μια οδηγία ερμηνείας ακριβώς πριν από τη λέξη ή τη φράση που πρέπει να επηρεάσει. Οι οδηγίες μπορούν να περιγράφουν ψίθυρο, αντίδραση, παύση, συναισθηματική μεταβολή ή ένα ελεύθερα διατυπωμένο ύφος ομιλίας. Για μια σύντομη εξήγηση προϊόντος, διατηρήστε σαφή την πραγματολογική πρόταση και δώστε έμφαση μόνο στα σημεία όπου ο ακροατής πρέπει να αντιληφθεί μια διάκριση. Για μια ατάκα χαρακτήρα, περιγράψτε τη συναισθηματική αλλαγή τη στιγμή που συμβαίνει, αντί να δίνετε σε ολόκληρο το απόσπασμα μία σταθερή διάθεση.</p><p>Οι ετικέτες σε αγκύλες είναι ελεύθερες περιγραφές και όχι κλειστό μενού. Παραδείγματα είναι τα [whispering], [sigh], [long pause] και μια φράση όπως [speaking slowly, almost hesitant]. Οι ετικέτες μπορούν να εμφανίζονται στη μέση μιας πρότασης και να επηρεάζουν την ομιλία που ακολουθεί. Μια περιγραφική ετικέτα χρειάζεται πραγματικό κείμενο μετά από αυτή· μια μεμονωμένη οδηγία μπορεί να δώσει απρόβλεπτη έξοδο. Ξεκινήστε με μία ή δύο χρήσιμες οδηγίες πριν προσθέσετε επιπλέον επίπεδα, καθώς οι ανταγωνιστικές ετικέτες μπορούν να θολώσουν την επιδιωκόμενη ερμηνεία. Διαφορετικές φωνητικές αναφορές μπορούν να ανταποκριθούν στην ίδια οδηγία με διαφορετική ένταση.</p><p>Η έκδοση S2 περιγράφει περίπου 80 γλώσσες και δίνει παραδείγματα οδηγιών ερμηνείας γραμμένων στην ίδια γλώσσα με το κείμενο. Προετοιμάστε τη διατύπωση στη γλώσσα που πρέπει να ακουστεί και διατηρήστε ονόματα, μονάδες και συντομογραφίες που χρειάζονται συγκεκριμένη ανάγνωση. Μια πολυγλωσσική αφήγηση μπορεί να διατηρεί την επιθυμητή φωνή ενώ αλλάζει η γλώσσα του κειμένου, αλλά το τελικό παραδοτέο χρειάζεται και πάλι ακρόαση για έλεγχο προφοράς και συνέχειας. Η σύνθεση παράγει το παρεχόμενο περιεχόμενο ως ομιλία, αντί να αποφασίζει ποιες πληροφορίες πρέπει να εκφωνήσει η εφαρμογή.</p><p>Για έναν ομιλητή, επιλέξτε αποθηκευμένο αναγνωριστικό φωνής ή παρέχετε ήχο αναφοράς και την αντίστοιχη απομαγνητοφώνησή του. Ο παραγωγός συνιστά καθαρό δείγμα 10–30 δευτερολέπτων για άμεση προσαρμογή της φωνής. Για διάλογο, χρησιμοποιήστε δείκτες ομιλητών όπως &lt;|speaker:0|&gt; και &lt;|speaker:1|&gt;, με λίστα αναγνωριστικών φωνής σε καθορισμένη σειρά ή χωριστές ομάδες αναφορών για τους ομιλητές. Ο αριθμητικός δείκτης επιλέγει την αντίστοιχη καταχώριση φωνής· διατηρήστε σταθερή τη σειρά καθώς εξελίσσεται η συνομιλία. Οι οδηγίες ερμηνείας σε φυσική γλώσσα και η επιλογή ομιλητή έχουν διαφορετικούς ρόλους στο κείμενο.</p><p>Η έξοδος ήχου μπορεί να είναι MP3, WAV, ακατέργαστο PCM ή Opus. Το MP3 έχει προεπιλογή 128 kbps και προσφέρει 64 ή 192 kbps· η έξοδος Opus χρησιμοποιεί 48 kHz, ενώ τα WAV και PCM υποστηρίζουν τις τεκμηριωμένες επιλογές ρυθμού δειγματοληψίας ως μονοφωνικό ήχο 16 bit. Επιλέξτε τη μορφή με βάση τον πραγματικό προορισμό της: αποθηκευμένο αρχείο για αφήγηση ή κατάλληλα τμήματα ήχου για αναπαραγωγή. Η ροή εργασίας ομιλίας του παραγωγού περιγράφει επίσης ζωντανή ροή κειμένου όταν το κείμενο φτάνει σταδιακά. Το παραγόμενο αποτέλεσμα πρέπει να παραμένει συσχετισμένο με το πλήρες κείμενο και τις επιλεγμένες φωνές.</p><p>Η ταχύτητα μπορεί να ρυθμιστεί μεταξύ 0,5 και 2,0, με ρυθμίσεις έντασης και κανονικοποίησης ηχητικής στάθμης εξόδου. Η κανονικοποίηση κειμένου βελτιώνει την ανάγνωση αγγλικών και κινεζικών αριθμών. Η επεξεργασία χρησιμοποιεί τμήματα σε εύρος 100–300 και όριο ηχητικών token ανά τμήμα, επομένως αυτές οι ρυθμίσεις δεν πρέπει να ερμηνεύονται ως σταθερό μέγιστο μήκος ολόκληρης της αφήγησης. Η προσαρμογή βάσει προηγούμενου τμήματος μπορεί να μεταφέρει το φωνητικό πλαίσιο στο επόμενο τμήμα. Ρυθμίσεις δειγματοληψίας όπως temperature και top-p επηρεάζουν την ποικιλία· ακόμη και μια προσεκτικά καθοδηγούμενη ατάκα χρειάζεται αρκετό κείμενο και πλαίσιο για να αποδώσει τον επιδιωκόμενο ήχο.</p><p>Μια χρήσιμη ανάθεση παραγωγής διαχωρίζει την αφήγηση, τον διάλογο και τις οδηγίες ερμηνείας και, στη συνέχεια, δηλώνει τη φωνή και τη μορφή του τελικού παραδοτέου. Ακούστε για λέξεις που λείπουν, επαναλαμβανόμενο ήχο, προφορά αριθμών, αλλαγές ομιλητών και χρονισμό αντιδράσεων. Αναθεωρήστε την ατάκα ή τη φωνητική αναφορά που ευθύνεται για την απόκλιση, αντί να θεωρείτε ότι περισσότερες ετικέτες θα βελτιώσουν κάθε απόσπασμα. Το S2 Pro παραμένει διακριτό μοντέλο της προηγούμενης γενιάς S2· το S2.1 Pro είναι η μεταγενέστερη έκδοση με δικές της βελτιώσεις και συμπεριφορά ρυθμίσεων ειδική για το μοντέλο.</p>",
  "aboutText": "Το S2 Pro είναι το μοντέλο μετατροπής κειμένου σε ομιλία δεύτερης γενιάς της Fish Audio για εκφραστική αφήγηση, διαλόγους χαρακτήρων και συνομιλιακή φωνητική έξοδο. Μετατρέπει ένα γραπτό κείμενο σε ήχο και υποστηρίζει καθοδήγηση σε φυσική γλώσσα σε επίπεδο λέξης ή φράσης. Η προηγούμενη γενιά S1 χρησιμοποιεί υποδείξεις σε παρενθέσεις, ενώ το S2 Pro χρησιμοποιεί εγγενώς αγκύλες και υποστηρίζει πολλούς ομιλητές σε ένα αίτημα σύνθεσης. Ο κατασκευαστής διαθέτει τα βάρη του S2 Pro και κώδικα λεπτομερούς προσαρμογής για ξεχωριστές εργασίες εξατομίκευσης· ένα συνηθισμένο αίτημα ομιλίας χρησιμοποιεί το επιλεγμένο μοντέλο και δεν εκπαιδεύει νέο.\n\nΓράψτε πρώτα το προφορικό περιεχόμενο και, στη συνέχεια, τοποθετήστε μια οδηγία ερμηνείας ακριβώς πριν από τη λέξη ή τη φράση που πρέπει να επηρεάσει. Οι οδηγίες μπορούν να περιγράφουν ψίθυρο, αντίδραση, παύση, συναισθηματική μεταβολή ή ένα ελεύθερα διατυπωμένο ύφος ομιλίας. Για μια σύντομη εξήγηση προϊόντος, διατηρήστε σαφή την πραγματολογική πρόταση και δώστε έμφαση μόνο στα σημεία όπου ο ακροατής πρέπει να αντιληφθεί μια διάκριση. Για μια ατάκα χαρακτήρα, περιγράψτε τη συναισθηματική αλλαγή τη στιγμή που συμβαίνει, αντί να δίνετε σε ολόκληρο το απόσπασμα μία σταθερή διάθεση.\n\nΟι ετικέτες σε αγκύλες είναι ελεύθερες περιγραφές και όχι κλειστό μενού. Παραδείγματα είναι τα [whispering], [sigh], [long pause] και μια φράση όπως [speaking slowly, almost hesitant]. Οι ετικέτες μπορούν να εμφανίζονται στη μέση μιας πρότασης και να επηρεάζουν την ομιλία που ακολουθεί. Μια περιγραφική ετικέτα χρειάζεται πραγματικό κείμενο μετά από αυτή· μια μεμονωμένη οδηγία μπορεί να δώσει απρόβλεπτη έξοδο. Ξεκινήστε με μία ή δύο χρήσιμες οδηγίες πριν προσθέσετε επιπλέον επίπεδα, καθώς οι ανταγωνιστικές ετικέτες μπορούν να θολώσουν την επιδιωκόμενη ερμηνεία. Διαφορετικές φωνητικές αναφορές μπορούν να ανταποκριθούν στην ίδια οδηγία με διαφορετική ένταση.\n\nΗ έκδοση S2 περιγράφει περίπου 80 γλώσσες και δίνει παραδείγματα οδηγιών ερμηνείας γραμμένων στην ίδια γλώσσα με το κείμενο. Προετοιμάστε τη διατύπωση στη γλώσσα που πρέπει να ακουστεί και διατηρήστε ονόματα, μονάδες και συντομογραφίες που χρειάζονται συγκεκριμένη ανάγνωση. Μια πολυγλωσσική αφήγηση μπορεί να διατηρεί την επιθυμητή φωνή ενώ αλλάζει η γλώσσα του κειμένου, αλλά το τελικό παραδοτέο χρειάζεται και πάλι ακρόαση για έλεγχο προφοράς και συνέχειας. Η σύνθεση παράγει το παρεχόμενο περιεχόμενο ως ομιλία, αντί να αποφασίζει ποιες πληροφορίες πρέπει να εκφωνήσει η εφαρμογή.\n\nΓια έναν ομιλητή, επιλέξτε αποθηκευμένο αναγνωριστικό φωνής ή παρέχετε ήχο αναφοράς και την αντίστοιχη απομαγνητοφώνησή του. Ο παραγωγός συνιστά καθαρό δείγμα 10–30 δευτερολέπτων για άμεση προσαρμογή της φωνής. Για διάλογο, χρησιμοποιήστε δείκτες ομιλητών όπως <|speaker:0|> και <|speaker:1|>, με λίστα αναγνωριστικών φωνής σε καθορισμένη σειρά ή χωριστές ομάδες αναφορών για τους ομιλητές. Ο αριθμητικός δείκτης επιλέγει την αντίστοιχη καταχώριση φωνής· διατηρήστε σταθερή τη σειρά καθώς εξελίσσεται η συνομιλία. Οι οδηγίες ερμηνείας σε φυσική γλώσσα και η επιλογή ομιλητή έχουν διαφορετικούς ρόλους στο κείμενο.\n\nΗ έξοδος ήχου μπορεί να είναι MP3, WAV, ακατέργαστο PCM ή Opus. Το MP3 έχει προεπιλογή 128 kbps και προσφέρει 64 ή 192 kbps· η έξοδος Opus χρησιμοποιεί 48 kHz, ενώ τα WAV και PCM υποστηρίζουν τις τεκμηριωμένες επιλογές ρυθμού δειγματοληψίας ως μονοφωνικό ήχο 16 bit. Επιλέξτε τη μορφή με βάση τον πραγματικό προορισμό της: αποθηκευμένο αρχείο για αφήγηση ή κατάλληλα τμήματα ήχου για αναπαραγωγή. Η ροή εργασίας ομιλίας του παραγωγού περιγράφει επίσης ζωντανή ροή κειμένου όταν το κείμενο φτάνει σταδιακά. Το παραγόμενο αποτέλεσμα πρέπει να παραμένει συσχετισμένο με το πλήρες κείμενο και τις επιλεγμένες φωνές.\n\nΗ ταχύτητα μπορεί να ρυθμιστεί μεταξύ 0,5 και 2,0, με ρυθμίσεις έντασης και κανονικοποίησης ηχητικής στάθμης εξόδου. Η κανονικοποίηση κειμένου βελτιώνει την ανάγνωση αγγλικών και κινεζικών αριθμών. Η επεξεργασία χρησιμοποιεί τμήματα σε εύρος 100–300 και όριο ηχητικών token ανά τμήμα, επομένως αυτές οι ρυθμίσεις δεν πρέπει να ερμηνεύονται ως σταθερό μέγιστο μήκος ολόκληρης της αφήγησης. Η προσαρμογή βάσει προηγούμενου τμήματος μπορεί να μεταφέρει το φωνητικό πλαίσιο στο επόμενο τμήμα. Ρυθμίσεις δειγματοληψίας όπως temperature και top-p επηρεάζουν την ποικιλία· ακόμη και μια προσεκτικά καθοδηγούμενη ατάκα χρειάζεται αρκετό κείμενο και πλαίσιο για να αποδώσει τον επιδιωκόμενο ήχο.\n\nΜια χρήσιμη ανάθεση παραγωγής διαχωρίζει την αφήγηση, τον διάλογο και τις οδηγίες ερμηνείας και, στη συνέχεια, δηλώνει τη φωνή και τη μορφή του τελικού παραδοτέου. Ακούστε για λέξεις που λείπουν, επαναλαμβανόμενο ήχο, προφορά αριθμών, αλλαγές ομιλητών και χρονισμό αντιδράσεων. Αναθεωρήστε την ατάκα ή τη φωνητική αναφορά που ευθύνεται για την απόκλιση, αντί να θεωρείτε ότι περισσότερες ετικέτες θα βελτιώσουν κάθε απόσπασμα. Το S2 Pro παραμένει διακριτό μοντέλο της προηγούμενης γενιάς S2· το S2.1 Pro είναι η μεταγενέστερη έκδοση με δικές της βελτιώσεις και συμπεριφορά ρυθμίσεων ειδική για το μοντέλο.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "f8b9962fd495773c5b4e3d1d9ff2f29a6da355dcec94e69d6a1daa484e85e917",
    "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\">Fish Audio: S2 Pro</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Κλείσιμο\">×</button></div><div class=\"idline\"><span>Fish Audio /</span><code>fish-audio/s2-pro</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|fish-audio%2Fs2-pro\">Σύνθεση ομιλίας</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\">Το Fish Audio S2 Pro δημιουργεί εκφραστική πολυγλωσσική ομιλία με οδηγίες ανά λέξη και εγγενή διάλογο πολλών ομιλητών. Οι οδηγίες σε αγκύλες ελέγχουν την ερμηνεία μέσα στο κείμενο, ενώ οι φωνητικές αναφορές προσδιορίζουν τους ομιλητές και οι ρυθμίσεις εξόδου διαμορφώνουν το ηχητικό παραδοτέο.</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>Το S2 Pro είναι το μοντέλο μετατροπής κειμένου σε ομιλία δεύτερης γενιάς της Fish Audio για εκφραστική αφήγηση, διαλόγους χαρακτήρων και συνομιλιακή φωνητική έξοδο. Μετατρέπει ένα γραπτό κείμενο σε ήχο και υποστηρίζει καθοδήγηση σε φυσική γλώσσα σε επίπεδο λέξης ή φράσης. Η προηγούμενη γενιά S1 χρησιμοποιεί υποδείξεις σε παρενθέσεις, ενώ το S2 Pro χρησιμοποιεί εγγενώς αγκύλες και υποστηρίζει πολλούς ομιλητές σε ένα αίτημα σύνθεσης. Ο κατασκευαστής διαθέτει τα βάρη του S2 Pro και κώδικα λεπτομερούς προσαρμογής για ξεχωριστές εργασίες εξατομίκευσης· ένα συνηθισμένο αίτημα ομιλίας χρησιμοποιεί το επιλεγμένο μοντέλο και δεν εκπαιδεύει νέο.</p><p>Γράψτε πρώτα το προφορικό περιεχόμενο και, στη συνέχεια, τοποθετήστε μια οδηγία ερμηνείας ακριβώς πριν από τη λέξη ή τη φράση που πρέπει να επηρεάσει. Οι οδηγίες μπορούν να περιγράφουν ψίθυρο, αντίδραση, παύση, συναισθηματική μεταβολή ή ένα ελεύθερα διατυπωμένο ύφος ομιλίας. Για μια σύντομη εξήγηση προϊόντος, διατηρήστε σαφή την πραγματολογική πρόταση και δώστε έμφαση μόνο στα σημεία όπου ο ακροατής πρέπει να αντιληφθεί μια διάκριση. Για μια ατάκα χαρακτήρα, περιγράψτε τη συναισθηματική αλλαγή τη στιγμή που συμβαίνει, αντί να δίνετε σε ολόκληρο το απόσπασμα μία σταθερή διάθεση.</p><p>Οι ετικέτες σε αγκύλες είναι ελεύθερες περιγραφές και όχι κλειστό μενού. Παραδείγματα είναι τα [whispering], [sigh], [long pause] και μια φράση όπως [speaking slowly, almost hesitant]. Οι ετικέτες μπορούν να εμφανίζονται στη μέση μιας πρότασης και να επηρεάζουν την ομιλία που ακολουθεί. Μια περιγραφική ετικέτα χρειάζεται πραγματικό κείμενο μετά από αυτή· μια μεμονωμένη οδηγία μπορεί να δώσει απρόβλεπτη έξοδο. Ξεκινήστε με μία ή δύο χρήσιμες οδηγίες πριν προσθέσετε επιπλέον επίπεδα, καθώς οι ανταγωνιστικές ετικέτες μπορούν να θολώσουν την επιδιωκόμενη ερμηνεία. Διαφορετικές φωνητικές αναφορές μπορούν να ανταποκριθούν στην ίδια οδηγία με διαφορετική ένταση.</p><p>Η έκδοση S2 περιγράφει περίπου 80 γλώσσες και δίνει παραδείγματα οδηγιών ερμηνείας γραμμένων στην ίδια γλώσσα με το κείμενο. Προετοιμάστε τη διατύπωση στη γλώσσα που πρέπει να ακουστεί και διατηρήστε ονόματα, μονάδες και συντομογραφίες που χρειάζονται συγκεκριμένη ανάγνωση. Μια πολυγλωσσική αφήγηση μπορεί να διατηρεί την επιθυμητή φωνή ενώ αλλάζει η γλώσσα του κειμένου, αλλά το τελικό παραδοτέο χρειάζεται και πάλι ακρόαση για έλεγχο προφοράς και συνέχειας. Η σύνθεση παράγει το παρεχόμενο περιεχόμενο ως ομιλία, αντί να αποφασίζει ποιες πληροφορίες πρέπει να εκφωνήσει η εφαρμογή.</p><p>Για έναν ομιλητή, επιλέξτε αποθηκευμένο αναγνωριστικό φωνής ή παρέχετε ήχο αναφοράς και την αντίστοιχη απομαγνητοφώνησή του. Ο παραγωγός συνιστά καθαρό δείγμα 10–30 δευτερολέπτων για άμεση προσαρμογή της φωνής. Για διάλογο, χρησιμοποιήστε δείκτες ομιλητών όπως &lt;|speaker:0|&gt; και &lt;|speaker:1|&gt;, με λίστα αναγνωριστικών φωνής σε καθορισμένη σειρά ή χωριστές ομάδες αναφορών για τους ομιλητές. Ο αριθμητικός δείκτης επιλέγει την αντίστοιχη καταχώριση φωνής· διατηρήστε σταθερή τη σειρά καθώς εξελίσσεται η συνομιλία. Οι οδηγίες ερμηνείας σε φυσική γλώσσα και η επιλογή ομιλητή έχουν διαφορετικούς ρόλους στο κείμενο.</p><p>Η έξοδος ήχου μπορεί να είναι MP3, WAV, ακατέργαστο PCM ή Opus. Το MP3 έχει προεπιλογή 128 kbps και προσφέρει 64 ή 192 kbps· η έξοδος Opus χρησιμοποιεί 48 kHz, ενώ τα WAV και PCM υποστηρίζουν τις τεκμηριωμένες επιλογές ρυθμού δειγματοληψίας ως μονοφωνικό ήχο 16 bit. Επιλέξτε τη μορφή με βάση τον πραγματικό προορισμό της: αποθηκευμένο αρχείο για αφήγηση ή κατάλληλα τμήματα ήχου για αναπαραγωγή. Η ροή εργασίας ομιλίας του παραγωγού περιγράφει επίσης ζωντανή ροή κειμένου όταν το κείμενο φτάνει σταδιακά. Το παραγόμενο αποτέλεσμα πρέπει να παραμένει συσχετισμένο με το πλήρες κείμενο και τις επιλεγμένες φωνές.</p><p>Η ταχύτητα μπορεί να ρυθμιστεί μεταξύ 0,5 και 2,0, με ρυθμίσεις έντασης και κανονικοποίησης ηχητικής στάθμης εξόδου. Η κανονικοποίηση κειμένου βελτιώνει την ανάγνωση αγγλικών και κινεζικών αριθμών. Η επεξεργασία χρησιμοποιεί τμήματα σε εύρος 100–300 και όριο ηχητικών token ανά τμήμα, επομένως αυτές οι ρυθμίσεις δεν πρέπει να ερμηνεύονται ως σταθερό μέγιστο μήκος ολόκληρης της αφήγησης. Η προσαρμογή βάσει προηγούμενου τμήματος μπορεί να μεταφέρει το φωνητικό πλαίσιο στο επόμενο τμήμα. Ρυθμίσεις δειγματοληψίας όπως temperature και top-p επηρεάζουν την ποικιλία· ακόμη και μια προσεκτικά καθοδηγούμενη ατάκα χρειάζεται αρκετό κείμενο και πλαίσιο για να αποδώσει τον επιδιωκόμενο ήχο.</p><p>Μια χρήσιμη ανάθεση παραγωγής διαχωρίζει την αφήγηση, τον διάλογο και τις οδηγίες ερμηνείας και, στη συνέχεια, δηλώνει τη φωνή και τη μορφή του τελικού παραδοτέου. Ακούστε για λέξεις που λείπουν, επαναλαμβανόμενο ήχο, προφορά αριθμών, αλλαγές ομιλητών και χρονισμό αντιδράσεων. Αναθεωρήστε την ατάκα ή τη φωνητική αναφορά που ευθύνεται για την απόκλιση, αντί να θεωρείτε ότι περισσότερες ετικέτες θα βελτιώσουν κάθε απόσπασμα. Το S2 Pro παραμένει διακριτό μοντέλο της προηγούμενης γενιάς S2· το S2.1 Pro είναι η μεταγενέστερη έκδοση με δικές της βελτιώσεις και συμπεριφορά ρυθμίσεων ειδική για το μοντέλο.</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></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><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>fish-audio/s2-pro</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr><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></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr><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>b347db033a6549378b48d00acb0d06cd</div><div>Ελάχιστο μήκος: 1</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr><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, pcm</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"known\"><span class=\"card-cell-label\">Προεπιλογή</span>pcm</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>object</code></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=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr></tbody></table></div><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</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></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></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><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>byte εισόδου UTF-8</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>ανά byte UTF-8 εισόδου</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Είσοδος · byte εισόδου UTF-8</span> <b>$0.00003</b> <span class=\"price-unit\">ανά byte UTF-8 εισόδου</span></div></td></tr></tbody></table></div></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-1355-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1355-panel-0\" aria-selected=\"true\" tabindex=\"0\">Χρησιμοποιήστε την πραγματική είσοδο και διατηρήστε το πλήρες αποτέλεσμα</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-1355-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1355-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_INPUT_TEXT:?Set the actual documented input value}&quot;\nexport AILOOT_INPUT_TEXT\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nrequest={&#39;model&#39;: &#39;fish-audio/s2-pro&#39;, &#39;input&#39;: &#39;${ACTUAL_INPUT_TEXT}&#39;, &#39;voice&#39;: &#39;b347db033a6549378b48d00acb0d06cd&#39;, &#39;response_format&#39;: &#39;mp3&#39;}\nrequest[&#39;input&#39;]=os.environ[&#39;AILOOT_INPUT_TEXT&#39;]\nPath(&#39;request.json&#39;).write_text(json.dumps(request,ensure_ascii=False),encoding=&#39;utf-8&#39;)\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 response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\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\">Πλήρης δυαδικός ήχος ή αρχική απόκριση audio_url, κεφαλίδες και κάθε αρχείο πολυμέσων που σας ανήκει.</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-1356-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1356-panel-0\" aria-selected=\"true\" tabindex=\"0\">Ανάκτηση υπαρχόντων αρχείων που σας ανήκουν</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-1356-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1356-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 owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\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\">Διατηρήστε ολόκληρη την απόκριση και τις κεφαλίδες, κάθε πραγματικό αποτέλεσμα εξόδου, τα αρχικά αναγνωριστικά που επιστράφηκαν και όλα τα πεδία χρήσης. Ανακτήστε την αρχική λειτουργία χωρίς να υποβάλετε ξανά αίτημα δημιουργίας.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Αν χρειάζεται έλεγχος της αρχικής απάντησης</h5><p class=\"note-s\">Διατηρήστε το X-Client-Request-ID που επιστράφηκε για τη συμφωνία των εγγραφών. Διαβάστε μόνο πραγματικές τιμές task_id/asset_id που επιστράφηκαν ή τη βιβλιοθήκη πολυμέσων που σας ανήκει· μην κατασκευάσετε ποτέ URL εργασίας από το ID της λειτουργίας και μην υποβάλετε ποτέ ξανά αίτημα δημιουργίας.</p></div></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=fish-audio%2Fs2-pro&amp;route=Ultra&amp;caller=fish-audio%2Fs2-pro&amp;fmt=speech\"><code>fish-audio/s2-pro</code></a></span></p><h4>Εναλλακτικές διαδρομές μεθόδων</h4><p class=\"note-s\">Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.</p><h4>Σχετικά ID μοντέλων</h4><p class=\"note-s\"><a href=\"#m=fish-audio%2Fs2-pro&amp;route=Ultra&amp;caller=fish-audio%2Fs2-pro&amp;fmt=speech\"><code>fish-audio/s2-pro</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "fish-audio/s2-pro",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "fish-audio/s2-pro",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|fish-audio%2Fs2-pro",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "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": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Διατηρήστε το X-Client-Request-ID που επιστράφηκε για τη συμφωνία των εγγραφών. Διαβάστε μόνο πραγματικές τιμές task_id/asset_id που επιστράφηκαν ή τη βιβλιοθήκη πολυμέσων που σας ανήκει· μην κατασκευάσετε ποτέ URL εργασίας από το ID της λειτουργίας και μην υποβάλετε ποτέ ξανά αίτημα δημιουργίας."
            },
            "outputs": {
              "all_results": "Διατηρήστε ολόκληρη την απόκριση και τις κεφαλίδες, κάθε πραγματικό αποτέλεσμα εξόδου, τα αρχικά αναγνωριστικά που επιστράφηκαν και όλα τα πεδία χρήσης. Ανακτήστε την αρχική λειτουργία χωρίς να υποβάλετε ξανά αίτημα δημιουργίας.",
              "family": "audio",
              "formats": [
                "mp3",
                "pcm"
              ],
              "result": "Πλήρης δυαδικός ήχος ή αρχική απόκριση audio_url, κεφαλίδες και κάθε αρχείο πολυμέσων που σας ανήκει."
            },
            "parameters": [
              {
                "enum": [
                  "fish-audio/s2-pro"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "b347db033a6549378b48d00acb0d06cd"
                ],
                "enum_known": true,
                "min_length": 1,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "default": "pcm",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input": {
                  "minLength": 1,
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "fish-audio/s2-pro"
                  ],
                  "type": "string"
                },
                "provider": {
                  "description": "Documented speech data policy and provider-specific options.",
                  "properties": {
                    "data_collection": {
                      "enum": [
                        "allow",
                        "deny",
                        null
                      ],
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "options": {
                      "type": "object"
                    },
                    "zdr": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "response_format": {
                  "default": "pcm",
                  "enum": [
                    "mp3",
                    "pcm"
                  ],
                  "type": "string"
                },
                "voice": {
                  "enum": [
                    "b347db033a6549378b48d00acb0d06cd"
                  ],
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input",
                "voice"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "${ACTUAL_INPUT_TEXT}",
                "model": "fish-audio/s2-pro",
                "response_format": "mp3",
                "voice": "b347db033a6549378b48d00acb0d06cd"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "required": [
              "model",
              "input",
              "voice"
            ]
          },
          "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": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "audio",
            "formats": [
              "mp3",
              "pcm"
            ],
            "result": "Complete binary audio or original audio_url response, headers and every owned asset."
          }
        },
        "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": {
              "quoted_unit": "per input UTF-8 byte"
            },
            "label": "input UTF-8 byte",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "input UTF-8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per input UTF-8 byte",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_utf8_byte"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_INPUT_TEXT:?Set the actual documented input value}\"\nexport AILOOT_INPUT_TEXT\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'fish-audio/s2-pro', 'input': '${ACTUAL_INPUT_TEXT}', 'voice': 'b347db033a6549378b48d00acb0d06cd', 'response_format': 'mp3'}\nrequest['input']=os.environ['AILOOT_INPUT_TEXT']\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\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 response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n",
            "label": "Use actual input and retain the complete result",
            "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 owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Ομιλία",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_speech",
        "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_utf8_byte": 3e-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": {
              "quoted_unit": "per input UTF-8 byte"
            },
            "label": "input UTF-8 byte",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "input UTF-8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per input UTF-8 byte",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_utf8_byte"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/s2-pro",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "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.00003",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "input UTF-8 byte",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per input UTF-8 byte",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_utf8_byte"
          }
        ]
      }
    }
  ],
  "model_id": "fish-audio/s2-pro",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "d0feb6cabca676aa88e4c685a2106fe81970bf04dcde13b2700ea46d9d8b7b01",
    "input_html_sha256": "4654f96025bfe7b7dfd2358a7d63d6edbb0774a9d6d320baf92336107de2918b",
    "private_audit_sha256": "6ac901c468348fe6f49abbd22cb43c5579d90fc3a9fdc10a3f2f68ec1e0c45af",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/el/fish-audio-s2-pro/",
    "description": "Το Fish Audio S2 Pro δημιουργεί εκφραστική πολυγλωσσική ομιλία με οδηγίες ανά λέξη και εγγενή διάλογο πολλών ομιλητών. Οι οδηγίες σε αγκύλες ελέγχουν την ερμηνεία μέσα στο κείμενο, ενώ οι φωνητικές αναφορές προσδιορίζουν τους ομιλητές και οι ρυθμίσεις εξόδου διαμορφώνουν το ηχητικό παραδοτέο.",
    "locale": "el",
    "md_url": "https://ailoot.ai/models/el/fish-audio-s2-pro/index.md",
    "title": "Fish Audio: S2 Pro — Ailoot",
    "url": "https://ailoot.ai/models/el/fish-audio-s2-pro/"
  },
  "rawModel": {
    "about": "Το S2 Pro είναι το μοντέλο μετατροπής κειμένου σε ομιλία δεύτερης γενιάς της Fish Audio για εκφραστική αφήγηση, διαλόγους χαρακτήρων και συνομιλιακή φωνητική έξοδο. Μετατρέπει ένα γραπτό κείμενο σε ήχο και υποστηρίζει καθοδήγηση σε φυσική γλώσσα σε επίπεδο λέξης ή φράσης. Η προηγούμενη γενιά S1 χρησιμοποιεί υποδείξεις σε παρενθέσεις, ενώ το S2 Pro χρησιμοποιεί εγγενώς αγκύλες και υποστηρίζει πολλούς ομιλητές σε ένα αίτημα σύνθεσης. Ο κατασκευαστής διαθέτει τα βάρη του S2 Pro και κώδικα λεπτομερούς προσαρμογής για ξεχωριστές εργασίες εξατομίκευσης· ένα συνηθισμένο αίτημα ομιλίας χρησιμοποιεί το επιλεγμένο μοντέλο και δεν εκπαιδεύει νέο.\n\nΓράψτε πρώτα το προφορικό περιεχόμενο και, στη συνέχεια, τοποθετήστε μια οδηγία ερμηνείας ακριβώς πριν από τη λέξη ή τη φράση που πρέπει να επηρεάσει. Οι οδηγίες μπορούν να περιγράφουν ψίθυρο, αντίδραση, παύση, συναισθηματική μεταβολή ή ένα ελεύθερα διατυπωμένο ύφος ομιλίας. Για μια σύντομη εξήγηση προϊόντος, διατηρήστε σαφή την πραγματολογική πρόταση και δώστε έμφαση μόνο στα σημεία όπου ο ακροατής πρέπει να αντιληφθεί μια διάκριση. Για μια ατάκα χαρακτήρα, περιγράψτε τη συναισθηματική αλλαγή τη στιγμή που συμβαίνει, αντί να δίνετε σε ολόκληρο το απόσπασμα μία σταθερή διάθεση.\n\nΟι ετικέτες σε αγκύλες είναι ελεύθερες περιγραφές και όχι κλειστό μενού. Παραδείγματα είναι τα [whispering], [sigh], [long pause] και μια φράση όπως [speaking slowly, almost hesitant]. Οι ετικέτες μπορούν να εμφανίζονται στη μέση μιας πρότασης και να επηρεάζουν την ομιλία που ακολουθεί. Μια περιγραφική ετικέτα χρειάζεται πραγματικό κείμενο μετά από αυτή· μια μεμονωμένη οδηγία μπορεί να δώσει απρόβλεπτη έξοδο. Ξεκινήστε με μία ή δύο χρήσιμες οδηγίες πριν προσθέσετε επιπλέον επίπεδα, καθώς οι ανταγωνιστικές ετικέτες μπορούν να θολώσουν την επιδιωκόμενη ερμηνεία. Διαφορετικές φωνητικές αναφορές μπορούν να ανταποκριθούν στην ίδια οδηγία με διαφορετική ένταση.\n\nΗ έκδοση S2 περιγράφει περίπου 80 γλώσσες και δίνει παραδείγματα οδηγιών ερμηνείας γραμμένων στην ίδια γλώσσα με το κείμενο. Προετοιμάστε τη διατύπωση στη γλώσσα που πρέπει να ακουστεί και διατηρήστε ονόματα, μονάδες και συντομογραφίες που χρειάζονται συγκεκριμένη ανάγνωση. Μια πολυγλωσσική αφήγηση μπορεί να διατηρεί την επιθυμητή φωνή ενώ αλλάζει η γλώσσα του κειμένου, αλλά το τελικό παραδοτέο χρειάζεται και πάλι ακρόαση για έλεγχο προφοράς και συνέχειας. Η σύνθεση παράγει το παρεχόμενο περιεχόμενο ως ομιλία, αντί να αποφασίζει ποιες πληροφορίες πρέπει να εκφωνήσει η εφαρμογή.\n\nΓια έναν ομιλητή, επιλέξτε αποθηκευμένο αναγνωριστικό φωνής ή παρέχετε ήχο αναφοράς και την αντίστοιχη απομαγνητοφώνησή του. Ο παραγωγός συνιστά καθαρό δείγμα 10–30 δευτερολέπτων για άμεση προσαρμογή της φωνής. Για διάλογο, χρησιμοποιήστε δείκτες ομιλητών όπως <|speaker:0|> και <|speaker:1|>, με λίστα αναγνωριστικών φωνής σε καθορισμένη σειρά ή χωριστές ομάδες αναφορών για τους ομιλητές. Ο αριθμητικός δείκτης επιλέγει την αντίστοιχη καταχώριση φωνής· διατηρήστε σταθερή τη σειρά καθώς εξελίσσεται η συνομιλία. Οι οδηγίες ερμηνείας σε φυσική γλώσσα και η επιλογή ομιλητή έχουν διαφορετικούς ρόλους στο κείμενο.\n\nΗ έξοδος ήχου μπορεί να είναι MP3, WAV, ακατέργαστο PCM ή Opus. Το MP3 έχει προεπιλογή 128 kbps και προσφέρει 64 ή 192 kbps· η έξοδος Opus χρησιμοποιεί 48 kHz, ενώ τα WAV και PCM υποστηρίζουν τις τεκμηριωμένες επιλογές ρυθμού δειγματοληψίας ως μονοφωνικό ήχο 16 bit. Επιλέξτε τη μορφή με βάση τον πραγματικό προορισμό της: αποθηκευμένο αρχείο για αφήγηση ή κατάλληλα τμήματα ήχου για αναπαραγωγή. Η ροή εργασίας ομιλίας του παραγωγού περιγράφει επίσης ζωντανή ροή κειμένου όταν το κείμενο φτάνει σταδιακά. Το παραγόμενο αποτέλεσμα πρέπει να παραμένει συσχετισμένο με το πλήρες κείμενο και τις επιλεγμένες φωνές.\n\nΗ ταχύτητα μπορεί να ρυθμιστεί μεταξύ 0,5 και 2,0, με ρυθμίσεις έντασης και κανονικοποίησης ηχητικής στάθμης εξόδου. Η κανονικοποίηση κειμένου βελτιώνει την ανάγνωση αγγλικών και κινεζικών αριθμών. Η επεξεργασία χρησιμοποιεί τμήματα σε εύρος 100–300 και όριο ηχητικών token ανά τμήμα, επομένως αυτές οι ρυθμίσεις δεν πρέπει να ερμηνεύονται ως σταθερό μέγιστο μήκος ολόκληρης της αφήγησης. Η προσαρμογή βάσει προηγούμενου τμήματος μπορεί να μεταφέρει το φωνητικό πλαίσιο στο επόμενο τμήμα. Ρυθμίσεις δειγματοληψίας όπως temperature και top-p επηρεάζουν την ποικιλία· ακόμη και μια προσεκτικά καθοδηγούμενη ατάκα χρειάζεται αρκετό κείμενο και πλαίσιο για να αποδώσει τον επιδιωκόμενο ήχο.\n\nΜια χρήσιμη ανάθεση παραγωγής διαχωρίζει την αφήγηση, τον διάλογο και τις οδηγίες ερμηνείας και, στη συνέχεια, δηλώνει τη φωνή και τη μορφή του τελικού παραδοτέου. Ακούστε για λέξεις που λείπουν, επαναλαμβανόμενο ήχο, προφορά αριθμών, αλλαγές ομιλητών και χρονισμό αντιδράσεων. Αναθεωρήστε την ατάκα ή τη φωνητική αναφορά που ευθύνεται για την απόκλιση, αντί να θεωρείτε ότι περισσότερες ετικέτες θα βελτιώσουν κάθε απόσπασμα. Το S2 Pro παραμένει διακριτό μοντέλο της προηγούμενης γενιάς S2· το S2.1 Pro είναι η μεταγενέστερη έκδοση με δικές της βελτιώσεις και συμπεριφορά ρυθμίσεων ειδική για το μοντέλο.",
    "alias_of": null,
    "aliases": [],
    "author": "Fish Audio",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "speech"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00003",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "input UTF-8 byte",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per input UTF-8 byte",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_utf8_byte"
          }
        ],
        "summary": "Πλήρης τιμολόγηση της διαμόρφωσης στις λεπτομέρειες."
      }
    ],
    "ctx": null,
    "formats": [
      "speech"
    ],
    "id": "fish-audio/s2-pro",
    "input": [
      "text"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "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": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Διατηρήστε το X-Client-Request-ID που επιστράφηκε για τη συμφωνία των εγγραφών. Διαβάστε μόνο πραγματικές τιμές task_id/asset_id που επιστράφηκαν ή τη βιβλιοθήκη πολυμέσων που σας ανήκει· μην κατασκευάσετε ποτέ URL εργασίας από το ID της λειτουργίας και μην υποβάλετε ποτέ ξανά αίτημα δημιουργίας."
            },
            "outputs": {
              "all_results": "Διατηρήστε ολόκληρη την απόκριση και τις κεφαλίδες, κάθε πραγματικό αποτέλεσμα εξόδου, τα αρχικά αναγνωριστικά που επιστράφηκαν και όλα τα πεδία χρήσης. Ανακτήστε την αρχική λειτουργία χωρίς να υποβάλετε ξανά αίτημα δημιουργίας.",
              "family": "audio",
              "formats": [
                "mp3",
                "pcm"
              ],
              "result": "Πλήρης δυαδικός ήχος ή αρχική απόκριση audio_url, κεφαλίδες και κάθε αρχείο πολυμέσων που σας ανήκει."
            },
            "parameters": [
              {
                "enum": [
                  "fish-audio/s2-pro"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "b347db033a6549378b48d00acb0d06cd"
                ],
                "enum_known": true,
                "min_length": 1,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "default": "pcm",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input": {
                  "minLength": 1,
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "fish-audio/s2-pro"
                  ],
                  "type": "string"
                },
                "provider": {
                  "description": "Documented speech data policy and provider-specific options.",
                  "properties": {
                    "data_collection": {
                      "enum": [
                        "allow",
                        "deny",
                        null
                      ],
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "options": {
                      "type": "object"
                    },
                    "zdr": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "response_format": {
                  "default": "pcm",
                  "enum": [
                    "mp3",
                    "pcm"
                  ],
                  "type": "string"
                },
                "voice": {
                  "enum": [
                    "b347db033a6549378b48d00acb0d06cd"
                  ],
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input",
                "voice"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "${ACTUAL_INPUT_TEXT}",
                "model": "fish-audio/s2-pro",
                "response_format": "mp3",
                "voice": "b347db033a6549378b48d00acb0d06cd"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "required": [
              "model",
              "input",
              "voice"
            ]
          },
          "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": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "audio",
            "formats": [
              "mp3",
              "pcm"
            ],
            "result": "Complete binary audio or original audio_url response, headers and every owned asset."
          }
        },
        "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": {
              "quoted_unit": "per input UTF-8 byte"
            },
            "label": "input UTF-8 byte",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "input UTF-8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per input UTF-8 byte",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_utf8_byte"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_INPUT_TEXT:?Set the actual documented input value}\"\nexport AILOOT_INPUT_TEXT\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'fish-audio/s2-pro', 'input': '${ACTUAL_INPUT_TEXT}', 'voice': 'b347db033a6549378b48d00acb0d06cd', 'response_format': 'mp3'}\nrequest['input']=os.environ['AILOOT_INPUT_TEXT']\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\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 response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n",
            "label": "Use actual input and retain the complete result",
            "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 owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Ομιλία",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_speech",
        "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_utf8_byte": 3e-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": {
              "quoted_unit": "per input UTF-8 byte"
            },
            "label": "input UTF-8 byte",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "input UTF-8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per input UTF-8 byte",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_utf8_byte"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/s2-pro",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "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.00003",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "input UTF-8 byte",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per input UTF-8 byte",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_utf8_byte"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "fish-audio/s2-pro",
        "request_model_id": "fish-audio/s2-pro",
        "route_label": "Ultra"
      }
    ],
    "name": "Fish Audio: S2 Pro",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Το Fish Audio S2 Pro δημιουργεί εκφραστική πολυγλωσσική ομιλία με οδηγίες ανά λέξη και εγγενή διάλογο πολλών ομιλητών. Οι οδηγίες σε αγκύλες ελέγχουν την ερμηνεία μέσα στο κείμενο, ενώ οι φωνητικές αναφορές προσδιορίζουν τους ομιλητές και οι ρυθμίσεις εξόδου διαμορφώνουν το ηχητικό παραδοτέο."
  },
  "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": "Το Fish Audio S2 Pro δημιουργεί εκφραστική πολυγλωσσική ομιλία με οδηγίες ανά λέξη και εγγενή διάλογο πολλών ομιλητών. Οι οδηγίες σε αγκύλες ελέγχουν την ερμηνεία μέσα στο κείμενο, ενώ οι φωνητικές αναφορές προσδιορίζουν τους ομιλητές και οι ρυθμίσεις εξόδου διαμορφώνουν το ηχητικό παραδοτέο.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "3f0886edc4acf150a2d4f804b9f4e37cdb5ad7ebcd393d4836982f593d6792c0",
    "renderer_sha256": "3ed36f7af4f78822bafbd174fdcaed7b698a18a86efe254253d37f1b098a7566"
  },
  "sourceRevision": "5774db3ae8c98e0a273e24321d43c556cc4839e8d7335e2af10ae17758392d44"
}
