{
  "aboutHtml": "<p>Το S2.1 Pro Free είναι η έκδοση του μοντέλου μετατροπής κειμένου σε ομιλία S2.1 της Fish Audio που απευθύνεται σε προγραμματιστές. Μοιράζεται το υποκείμενο μοντέλο και τις βασικές δυνατότητες σύνθεσης με το S2.1 Pro: εκφραστική πολυγλωσσική ομιλία, οδηγίες ερμηνείας σε φυσική γλώσσα και εγγενή διάλογο πολλών ομιλητών. Ο ρόλος του είναι οι δοκιμές, η κατασκευή πρωτοτύπων, η ανάπτυξη και μικρότερες ροές εφαρμογών.</p><p>Για έναν πρωτότυπο φωνητικό βοηθό, ξεκινήστε με μια πλήρη ενδεικτική απάντηση και αξιολογήστε πώς ακούγεται πριν δοκιμάσετε κείμενο που φτάνει σταδιακά. Για ένα εκπαιδευτικό προϊόν, προετοιμάστε μια σύντομη εξήγηση με τους ακριβείς όρους και τις αναγνώσεις αριθμών που χρειάζεται ο ακροατής. Για ένα πρωτότυπο διαλόγου, ορίστε τους ομιλητές και τις φωνητικές αναφορές τους πριν προσθέσετε οδηγίες ερμηνείας. Αυτά τα βήματα αναπτύσσουν ένα ηχητικό παραδοτέο και τη σχετική ροή εφαρμογής, αντί να καθιστούν ένα αίτημα σύνθεσης υπεύθυνο για ολόκληρη τη συνομιλία.</p><p>Γράψτε τις λέξεις που πρέπει πράγματι να ακουστούν και, στη συνέχεια, τοποθετήστε μια οδηγία ακριβώς πριν από το απόσπασμα του οποίου η ερμηνεία πρέπει να αλλάξει. Οι οδηγίες σε αγκύλες μπορούν να εκφράζουν ψίθυρο, παύση, αντίδραση, έμφαση ή ένα ελεύθερα διατυπωμένο ύφος ομιλίας. Τοποθετήστε μια αλλαγή στη μέση της πρότασης στο σημείο όπου τη χρειάζεται η ερμηνεία και ακολουθήστε τις περιγραφικές οδηγίες με πραγματική ομιλία. Μια χρήσιμη ανάθεση επεξηγηματικής αφήγησης διαχωρίζει την πραγματολογική διατύπωση από τη ζεστασιά, τον ρυθμό ή την έμφαση που επιθυμείτε για τον ακροατή.</p><p>Για έναν ομιλητή, επιλέξτε αποθηκευμένο αναγνωριστικό φωνής ή παρέχετε ηχογράφηση αναφοράς με την απομαγνητοφώνησή της. Ο οδηγός ομιλίας του παραγωγού συνιστά καθαρό δείγμα 10–30 δευτερολέπτων για άμεση προσαρμογή της φωνής. Επιλέξτε αναφορά με τον τόνο και την ποιότητα εγγραφής που ταιριάζουν στο κείμενο και διατηρήστε την ίδια αναφορά σε συναφή αποσπάσματα. Η φωνητική αναφορά παρέχει τον ήχο του ομιλητή· το κείμενο και οι ενσωματωμένες οδηγίες παρέχουν το περιεχόμενο και την ερμηνεία του.</p><p>Η εγγενής σύνθεση πολλών ομιλητών χρησιμοποιεί δείκτες όπως &lt;|speaker:0|&gt; και &lt;|speaker:1|&gt; με πίνακα αναγνωριστικών φωνής σε καθορισμένη σειρά ή χωριστές ομάδες αναφορών. Διατηρήστε τις αριθμητικές ετικέτες ομιλητών ευθυγραμμισμένες με αυτή τη σειρά. Για μια διδακτική συνομιλία, γράψτε την ατάκα κάθε ομιλητή και τοποθετήστε την οδηγία ερμηνείας μετά τον δείκτη ομιλητή στο κατάλληλο σημείο. Έτσι δημιουργείται διάλογος σε ένα αίτημα· πρόκειται για διαφορετική ροή από τα χωριστά τμήματα ενός ομιλητή του S1 και τη μεταγενέστερη συναρμολόγησή τους.</p><p>Η ροή του παραγωγού προσφέρει έξοδο MP3, WAV, ακατέργαστο PCM και Opus, με προεπιλογή MP3. Το MP3 υποστηρίζει 64, 128 και 192 kbps· τα WAV και PCM χρησιμοποιούν τεκμηριωμένες μονοφωνικές μορφές δειγματοληψίας 16 bit, ενώ το Opus χρησιμοποιεί 48 kHz. Επιλέξτε τη μορφή για ένα αποθηκευμένο αρχείο αφήγησης, αναπαραγωγή ροής ή μια επόμενη ροή επεξεργασίας ήχου. Διατηρήστε το πλήρες κείμενο και την επιλογή φωνής μαζί με τον ήχο ώστε μια μεταγενέστερη επεξεργασία να μπορεί να διορθώσει μία ατάκα χωρίς να χαθεί η επιθυμητή ερμηνεία.</p><p>Η ταχύτητα μπορεί να ρυθμιστεί από 0,5 έως 2,0, με ρυθμίσεις έντασης. Η κανονικοποίηση κειμένου αναπτύσσει αγγλικούς και κινεζικούς αριθμούς για φυσική ανάγνωση. Η κανονικοποίηση ηχητικής στάθμης εξόδου έχει προεπιλογή true και εφαρμόζεται στην οικογένεια S2· το ίδιο πεδίο δεν είχε επίδραση στο S1. Το repetition_penalty του S1 δεν αλλάζει τον ήχο του S2.1 Pro, επομένως μια παλιά ρύθμιση δεν πρέπει να θεωρείται αποτελεσματικό μέσο ελέγχου αυτού του μοντέλου. Ελέγξτε απευθείας επαναλαμβανόμενους ήχους και λέξεις αντί να βασίζεστε σε μεταφερόμενη παράμετρο για να διαπιστώσετε το αποτέλεσμα.</p><p>Τα μεγαλύτερα κείμενα υποβάλλονται σε επεξεργασία σε τμήματα. Το τεκμηριωμένο εύρος μήκους τμήματος είναι 100–300 και το max_new_tokens είναι όριο ηχητικών token ανά τμήμα, όχι εγγύηση συνολικής διάρκειας. Η προσαρμογή βάσει προηγούμενου τμήματος μπορεί να μεταφέρει το φωνητικό πλαίσιο στη συνέχεια. Η ροή παράδοσης του παραγωγού περιγράφει πλήρη ήχο, σταδιακά τμήματα ήχου και ζωντανή ροή κειμένου όταν το κείμενο φτάνει προοδευτικά. Επιλέξτε τον τρόπο κατανάλωσης για την εφαρμογή και διατηρήστε αρκετό πλαίσιο κειμένου για την προφορά και τον τόνο του επόμενου αποσπάσματος.</p><p>Για ένα χρήσιμο τελικό παραδοτέο, ακούστε για παραλειπόμενες ή επαναλαμβανόμενες λέξεις, προφορά αριθμών, αλλαγές ομιλητών, παύσεις και ένταση των οδηγιών. Διαφορετικές φωνητικές αναφορές μπορούν να ερμηνεύσουν μια υπόδειξη με διαφορετική ένταση, επομένως ξεκινήστε με μια απλή καθοδηγούμενη ατάκα πριν προσθέσετε ανταγωνιστικές ετικέτες. Σε πολυγλωσσική εργασία, παρέχετε το κείμενο στη γλώσσα-στόχο αντί να ζητάτε από το μοντέλο ομιλίας να επινοήσει ή να μεταφράσει το περιεχόμενό του. Μια εστιασμένη αναθεώρηση αλλάζει την ατάκα, την υπόδειξη ή την αναφορά που ευθύνεται για την απόκλιση, διατηρώντας τα τμήματα της ερμηνείας που ήδη ανταποκρίνονται στην ανάθεση.</p>",
  "aboutText": "Το S2.1 Pro Free είναι η έκδοση του μοντέλου μετατροπής κειμένου σε ομιλία S2.1 της Fish Audio που απευθύνεται σε προγραμματιστές. Μοιράζεται το υποκείμενο μοντέλο και τις βασικές δυνατότητες σύνθεσης με το S2.1 Pro: εκφραστική πολυγλωσσική ομιλία, οδηγίες ερμηνείας σε φυσική γλώσσα και εγγενή διάλογο πολλών ομιλητών. Ο ρόλος του είναι οι δοκιμές, η κατασκευή πρωτοτύπων, η ανάπτυξη και μικρότερες ροές εφαρμογών.\n\nΓια έναν πρωτότυπο φωνητικό βοηθό, ξεκινήστε με μια πλήρη ενδεικτική απάντηση και αξιολογήστε πώς ακούγεται πριν δοκιμάσετε κείμενο που φτάνει σταδιακά. Για ένα εκπαιδευτικό προϊόν, προετοιμάστε μια σύντομη εξήγηση με τους ακριβείς όρους και τις αναγνώσεις αριθμών που χρειάζεται ο ακροατής. Για ένα πρωτότυπο διαλόγου, ορίστε τους ομιλητές και τις φωνητικές αναφορές τους πριν προσθέσετε οδηγίες ερμηνείας. Αυτά τα βήματα αναπτύσσουν ένα ηχητικό παραδοτέο και τη σχετική ροή εφαρμογής, αντί να καθιστούν ένα αίτημα σύνθεσης υπεύθυνο για ολόκληρη τη συνομιλία.\n\nΓράψτε τις λέξεις που πρέπει πράγματι να ακουστούν και, στη συνέχεια, τοποθετήστε μια οδηγία ακριβώς πριν από το απόσπασμα του οποίου η ερμηνεία πρέπει να αλλάξει. Οι οδηγίες σε αγκύλες μπορούν να εκφράζουν ψίθυρο, παύση, αντίδραση, έμφαση ή ένα ελεύθερα διατυπωμένο ύφος ομιλίας. Τοποθετήστε μια αλλαγή στη μέση της πρότασης στο σημείο όπου τη χρειάζεται η ερμηνεία και ακολουθήστε τις περιγραφικές οδηγίες με πραγματική ομιλία. Μια χρήσιμη ανάθεση επεξηγηματικής αφήγησης διαχωρίζει την πραγματολογική διατύπωση από τη ζεστασιά, τον ρυθμό ή την έμφαση που επιθυμείτε για τον ακροατή.\n\nΓια έναν ομιλητή, επιλέξτε αποθηκευμένο αναγνωριστικό φωνής ή παρέχετε ηχογράφηση αναφοράς με την απομαγνητοφώνησή της. Ο οδηγός ομιλίας του παραγωγού συνιστά καθαρό δείγμα 10–30 δευτερολέπτων για άμεση προσαρμογή της φωνής. Επιλέξτε αναφορά με τον τόνο και την ποιότητα εγγραφής που ταιριάζουν στο κείμενο και διατηρήστε την ίδια αναφορά σε συναφή αποσπάσματα. Η φωνητική αναφορά παρέχει τον ήχο του ομιλητή· το κείμενο και οι ενσωματωμένες οδηγίες παρέχουν το περιεχόμενο και την ερμηνεία του.\n\nΗ εγγενής σύνθεση πολλών ομιλητών χρησιμοποιεί δείκτες όπως <|speaker:0|> και <|speaker:1|> με πίνακα αναγνωριστικών φωνής σε καθορισμένη σειρά ή χωριστές ομάδες αναφορών. Διατηρήστε τις αριθμητικές ετικέτες ομιλητών ευθυγραμμισμένες με αυτή τη σειρά. Για μια διδακτική συνομιλία, γράψτε την ατάκα κάθε ομιλητή και τοποθετήστε την οδηγία ερμηνείας μετά τον δείκτη ομιλητή στο κατάλληλο σημείο. Έτσι δημιουργείται διάλογος σε ένα αίτημα· πρόκειται για διαφορετική ροή από τα χωριστά τμήματα ενός ομιλητή του S1 και τη μεταγενέστερη συναρμολόγησή τους.\n\nΗ ροή του παραγωγού προσφέρει έξοδο MP3, WAV, ακατέργαστο PCM και Opus, με προεπιλογή MP3. Το MP3 υποστηρίζει 64, 128 και 192 kbps· τα WAV και PCM χρησιμοποιούν τεκμηριωμένες μονοφωνικές μορφές δειγματοληψίας 16 bit, ενώ το Opus χρησιμοποιεί 48 kHz. Επιλέξτε τη μορφή για ένα αποθηκευμένο αρχείο αφήγησης, αναπαραγωγή ροής ή μια επόμενη ροή επεξεργασίας ήχου. Διατηρήστε το πλήρες κείμενο και την επιλογή φωνής μαζί με τον ήχο ώστε μια μεταγενέστερη επεξεργασία να μπορεί να διορθώσει μία ατάκα χωρίς να χαθεί η επιθυμητή ερμηνεία.\n\nΗ ταχύτητα μπορεί να ρυθμιστεί από 0,5 έως 2,0, με ρυθμίσεις έντασης. Η κανονικοποίηση κειμένου αναπτύσσει αγγλικούς και κινεζικούς αριθμούς για φυσική ανάγνωση. Η κανονικοποίηση ηχητικής στάθμης εξόδου έχει προεπιλογή true και εφαρμόζεται στην οικογένεια S2· το ίδιο πεδίο δεν είχε επίδραση στο S1. Το repetition_penalty του S1 δεν αλλάζει τον ήχο του S2.1 Pro, επομένως μια παλιά ρύθμιση δεν πρέπει να θεωρείται αποτελεσματικό μέσο ελέγχου αυτού του μοντέλου. Ελέγξτε απευθείας επαναλαμβανόμενους ήχους και λέξεις αντί να βασίζεστε σε μεταφερόμενη παράμετρο για να διαπιστώσετε το αποτέλεσμα.\n\nΤα μεγαλύτερα κείμενα υποβάλλονται σε επεξεργασία σε τμήματα. Το τεκμηριωμένο εύρος μήκους τμήματος είναι 100–300 και το max_new_tokens είναι όριο ηχητικών token ανά τμήμα, όχι εγγύηση συνολικής διάρκειας. Η προσαρμογή βάσει προηγούμενου τμήματος μπορεί να μεταφέρει το φωνητικό πλαίσιο στη συνέχεια. Η ροή παράδοσης του παραγωγού περιγράφει πλήρη ήχο, σταδιακά τμήματα ήχου και ζωντανή ροή κειμένου όταν το κείμενο φτάνει προοδευτικά. Επιλέξτε τον τρόπο κατανάλωσης για την εφαρμογή και διατηρήστε αρκετό πλαίσιο κειμένου για την προφορά και τον τόνο του επόμενου αποσπάσματος.\n\nΓια ένα χρήσιμο τελικό παραδοτέο, ακούστε για παραλειπόμενες ή επαναλαμβανόμενες λέξεις, προφορά αριθμών, αλλαγές ομιλητών, παύσεις και ένταση των οδηγιών. Διαφορετικές φωνητικές αναφορές μπορούν να ερμηνεύσουν μια υπόδειξη με διαφορετική ένταση, επομένως ξεκινήστε με μια απλή καθοδηγούμενη ατάκα πριν προσθέσετε ανταγωνιστικές ετικέτες. Σε πολυγλωσσική εργασία, παρέχετε το κείμενο στη γλώσσα-στόχο αντί να ζητάτε από το μοντέλο ομιλίας να επινοήσει ή να μεταφράσει το περιεχόμενό του. Μια εστιασμένη αναθεώρηση αλλάζει την ατάκα, την υπόδειξη ή την αναφορά που ευθύνεται για την απόκλιση, διατηρώντας τα τμήματα της ερμηνείας που ήδη ανταποκρίνονται στην ανάθεση.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "c6bff86d4dde082c0b188f230b8c7ed92e25e763344cf4bd548347ff90657ac4",
    "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.1 Pro Free (free)</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.1-pro-free:free</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.1-pro-free%3Afree\">Σύνθεση ομιλίας</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\">Το S2.1 Pro Free είναι η έκδοση ανάπτυξης της Fish Audio για το μοντέλο ομιλίας S2.1, για αφήγηση, καθοδηγούμενη φωνητική έξοδο και διάλογο πολλών ομιλητών. Μοιράζεται τις δυνατότητες σύνθεσης του μοντέλου για δοκιμές και κατασκευή πρωτοτύπων.</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.1 Pro Free είναι η έκδοση του μοντέλου μετατροπής κειμένου σε ομιλία S2.1 της Fish Audio που απευθύνεται σε προγραμματιστές. Μοιράζεται το υποκείμενο μοντέλο και τις βασικές δυνατότητες σύνθεσης με το S2.1 Pro: εκφραστική πολυγλωσσική ομιλία, οδηγίες ερμηνείας σε φυσική γλώσσα και εγγενή διάλογο πολλών ομιλητών. Ο ρόλος του είναι οι δοκιμές, η κατασκευή πρωτοτύπων, η ανάπτυξη και μικρότερες ροές εφαρμογών.</p><p>Για έναν πρωτότυπο φωνητικό βοηθό, ξεκινήστε με μια πλήρη ενδεικτική απάντηση και αξιολογήστε πώς ακούγεται πριν δοκιμάσετε κείμενο που φτάνει σταδιακά. Για ένα εκπαιδευτικό προϊόν, προετοιμάστε μια σύντομη εξήγηση με τους ακριβείς όρους και τις αναγνώσεις αριθμών που χρειάζεται ο ακροατής. Για ένα πρωτότυπο διαλόγου, ορίστε τους ομιλητές και τις φωνητικές αναφορές τους πριν προσθέσετε οδηγίες ερμηνείας. Αυτά τα βήματα αναπτύσσουν ένα ηχητικό παραδοτέο και τη σχετική ροή εφαρμογής, αντί να καθιστούν ένα αίτημα σύνθεσης υπεύθυνο για ολόκληρη τη συνομιλία.</p><p>Γράψτε τις λέξεις που πρέπει πράγματι να ακουστούν και, στη συνέχεια, τοποθετήστε μια οδηγία ακριβώς πριν από το απόσπασμα του οποίου η ερμηνεία πρέπει να αλλάξει. Οι οδηγίες σε αγκύλες μπορούν να εκφράζουν ψίθυρο, παύση, αντίδραση, έμφαση ή ένα ελεύθερα διατυπωμένο ύφος ομιλίας. Τοποθετήστε μια αλλαγή στη μέση της πρότασης στο σημείο όπου τη χρειάζεται η ερμηνεία και ακολουθήστε τις περιγραφικές οδηγίες με πραγματική ομιλία. Μια χρήσιμη ανάθεση επεξηγηματικής αφήγησης διαχωρίζει την πραγματολογική διατύπωση από τη ζεστασιά, τον ρυθμό ή την έμφαση που επιθυμείτε για τον ακροατή.</p><p>Για έναν ομιλητή, επιλέξτε αποθηκευμένο αναγνωριστικό φωνής ή παρέχετε ηχογράφηση αναφοράς με την απομαγνητοφώνησή της. Ο οδηγός ομιλίας του παραγωγού συνιστά καθαρό δείγμα 10–30 δευτερολέπτων για άμεση προσαρμογή της φωνής. Επιλέξτε αναφορά με τον τόνο και την ποιότητα εγγραφής που ταιριάζουν στο κείμενο και διατηρήστε την ίδια αναφορά σε συναφή αποσπάσματα. Η φωνητική αναφορά παρέχει τον ήχο του ομιλητή· το κείμενο και οι ενσωματωμένες οδηγίες παρέχουν το περιεχόμενο και την ερμηνεία του.</p><p>Η εγγενής σύνθεση πολλών ομιλητών χρησιμοποιεί δείκτες όπως &lt;|speaker:0|&gt; και &lt;|speaker:1|&gt; με πίνακα αναγνωριστικών φωνής σε καθορισμένη σειρά ή χωριστές ομάδες αναφορών. Διατηρήστε τις αριθμητικές ετικέτες ομιλητών ευθυγραμμισμένες με αυτή τη σειρά. Για μια διδακτική συνομιλία, γράψτε την ατάκα κάθε ομιλητή και τοποθετήστε την οδηγία ερμηνείας μετά τον δείκτη ομιλητή στο κατάλληλο σημείο. Έτσι δημιουργείται διάλογος σε ένα αίτημα· πρόκειται για διαφορετική ροή από τα χωριστά τμήματα ενός ομιλητή του S1 και τη μεταγενέστερη συναρμολόγησή τους.</p><p>Η ροή του παραγωγού προσφέρει έξοδο MP3, WAV, ακατέργαστο PCM και Opus, με προεπιλογή MP3. Το MP3 υποστηρίζει 64, 128 και 192 kbps· τα WAV και PCM χρησιμοποιούν τεκμηριωμένες μονοφωνικές μορφές δειγματοληψίας 16 bit, ενώ το Opus χρησιμοποιεί 48 kHz. Επιλέξτε τη μορφή για ένα αποθηκευμένο αρχείο αφήγησης, αναπαραγωγή ροής ή μια επόμενη ροή επεξεργασίας ήχου. Διατηρήστε το πλήρες κείμενο και την επιλογή φωνής μαζί με τον ήχο ώστε μια μεταγενέστερη επεξεργασία να μπορεί να διορθώσει μία ατάκα χωρίς να χαθεί η επιθυμητή ερμηνεία.</p><p>Η ταχύτητα μπορεί να ρυθμιστεί από 0,5 έως 2,0, με ρυθμίσεις έντασης. Η κανονικοποίηση κειμένου αναπτύσσει αγγλικούς και κινεζικούς αριθμούς για φυσική ανάγνωση. Η κανονικοποίηση ηχητικής στάθμης εξόδου έχει προεπιλογή true και εφαρμόζεται στην οικογένεια S2· το ίδιο πεδίο δεν είχε επίδραση στο S1. Το repetition_penalty του S1 δεν αλλάζει τον ήχο του S2.1 Pro, επομένως μια παλιά ρύθμιση δεν πρέπει να θεωρείται αποτελεσματικό μέσο ελέγχου αυτού του μοντέλου. Ελέγξτε απευθείας επαναλαμβανόμενους ήχους και λέξεις αντί να βασίζεστε σε μεταφερόμενη παράμετρο για να διαπιστώσετε το αποτέλεσμα.</p><p>Τα μεγαλύτερα κείμενα υποβάλλονται σε επεξεργασία σε τμήματα. Το τεκμηριωμένο εύρος μήκους τμήματος είναι 100–300 και το max_new_tokens είναι όριο ηχητικών token ανά τμήμα, όχι εγγύηση συνολικής διάρκειας. Η προσαρμογή βάσει προηγούμενου τμήματος μπορεί να μεταφέρει το φωνητικό πλαίσιο στη συνέχεια. Η ροή παράδοσης του παραγωγού περιγράφει πλήρη ήχο, σταδιακά τμήματα ήχου και ζωντανή ροή κειμένου όταν το κείμενο φτάνει προοδευτικά. Επιλέξτε τον τρόπο κατανάλωσης για την εφαρμογή και διατηρήστε αρκετό πλαίσιο κειμένου για την προφορά και τον τόνο του επόμενου αποσπάσματος.</p><p>Για ένα χρήσιμο τελικό παραδοτέο, ακούστε για παραλειπόμενες ή επαναλαμβανόμενες λέξεις, προφορά αριθμών, αλλαγές ομιλητών, παύσεις και ένταση των οδηγιών. Διαφορετικές φωνητικές αναφορές μπορούν να ερμηνεύσουν μια υπόδειξη με διαφορετική ένταση, επομένως ξεκινήστε με μια απλή καθοδηγούμενη ατάκα πριν προσθέσετε ανταγωνιστικές ετικέτες. Σε πολυγλωσσική εργασία, παρέχετε το κείμενο στη γλώσσα-στόχο αντί να ζητάτε από το μοντέλο ομιλίας να επινοήσει ή να μεταφράσει το περιεχόμενό του. Μια εστιασμένη αναθεώρηση αλλάζει την ατάκα, την υπόδειξη ή την αναφορά που ευθύνεται για την απόκλιση, διατηρώντας τα τμήματα της ερμηνείας που ήδη ανταποκρίνονται στην ανάθεση.</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.1-pro-free:free</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>Ανά αίτημα</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>Είσοδος</span> <b>$0</b> <span class=\"price-unit\">ανά αίτημα</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-1359-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1359-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-1359-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1359-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.1-pro-free:free&#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-1360-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1360-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-1360-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1360-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.1-pro-free%3Afree&amp;route=Ultra&amp;caller=fish-audio%2Fs2.1-pro-free%3Afree&amp;fmt=speech\"><code>fish-audio/s2.1-pro-free:free</code></a></span></p><h4>Εναλλακτικές διαδρομές μεθόδων</h4><p class=\"note-s\">Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.</p><h4>Σχετικά ID μοντέλων</h4><p class=\"note-s\"><a href=\"#m=fish-audio%2Fs2.1-pro-free%3Afree&amp;route=Ultra&amp;caller=fish-audio%2Fs2.1-pro-free%3Afree&amp;fmt=speech\"><code>fish-audio/s2.1-pro-free:free</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "fish-audio/s2.1-pro-free:free",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "fish-audio/s2.1-pro-free:free",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|fish-audio%2Fs2.1-pro-free%3Afree",
      "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.1-pro-free:free"
                ],
                "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.1-pro-free:free"
                  ],
                  "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.1-pro-free:free",
                "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": {
              "billing_quantity": "one request"
            },
            "label": "Per request",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "per_request",
                "label": "per request",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "public_unit_label": "per request",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "per_request"
              }
            ]
          }
        ],
        "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.1-pro-free:free', '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": 0
        },
        "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": {
              "billing_quantity": "one request"
            },
            "label": "Per request",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "per_request",
                "label": "per request",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "public_unit_label": "per request",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "per_request"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/s2.1-pro-free:free",
        "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",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "per_request",
            "label": "per request",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "public_unit_label": "per request",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "per_request"
          }
        ]
      }
    }
  ],
  "model_id": "fish-audio/s2.1-pro-free:free",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "d778c4b28a333b073214a95b45850350b455d4b7eb0f505a8dedb303050443f4",
    "input_html_sha256": "d1a336080e07e48d5a0071cc3672aadf9366c63ad6280582cdb0845ddc518950",
    "private_audit_sha256": "7677914b32f88dd5f75558b8a737a88688f81f12ad6ea8a6ce438e3eb138bb5c",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/el/fish-audio-s2-1-pro-free-u003a-free/",
    "description": "Το S2.1 Pro Free είναι η έκδοση ανάπτυξης της Fish Audio για το μοντέλο ομιλίας S2.1, για αφήγηση, καθοδηγούμενη φωνητική έξοδο και διάλογο πολλών ομιλητών. Μοιράζεται τις δυνατότητες σύνθεσης του μοντέλου για δοκιμές και κατασκευή πρωτοτύπων.",
    "locale": "el",
    "md_url": "https://ailoot.ai/models/el/fish-audio-s2-1-pro-free-u003a-free/index.md",
    "title": "Fish Audio: S2.1 Pro Free (free) — Ailoot",
    "url": "https://ailoot.ai/models/el/fish-audio-s2-1-pro-free-u003a-free/"
  },
  "rawModel": {
    "about": "Το S2.1 Pro Free είναι η έκδοση του μοντέλου μετατροπής κειμένου σε ομιλία S2.1 της Fish Audio που απευθύνεται σε προγραμματιστές. Μοιράζεται το υποκείμενο μοντέλο και τις βασικές δυνατότητες σύνθεσης με το S2.1 Pro: εκφραστική πολυγλωσσική ομιλία, οδηγίες ερμηνείας σε φυσική γλώσσα και εγγενή διάλογο πολλών ομιλητών. Ο ρόλος του είναι οι δοκιμές, η κατασκευή πρωτοτύπων, η ανάπτυξη και μικρότερες ροές εφαρμογών.\n\nΓια έναν πρωτότυπο φωνητικό βοηθό, ξεκινήστε με μια πλήρη ενδεικτική απάντηση και αξιολογήστε πώς ακούγεται πριν δοκιμάσετε κείμενο που φτάνει σταδιακά. Για ένα εκπαιδευτικό προϊόν, προετοιμάστε μια σύντομη εξήγηση με τους ακριβείς όρους και τις αναγνώσεις αριθμών που χρειάζεται ο ακροατής. Για ένα πρωτότυπο διαλόγου, ορίστε τους ομιλητές και τις φωνητικές αναφορές τους πριν προσθέσετε οδηγίες ερμηνείας. Αυτά τα βήματα αναπτύσσουν ένα ηχητικό παραδοτέο και τη σχετική ροή εφαρμογής, αντί να καθιστούν ένα αίτημα σύνθεσης υπεύθυνο για ολόκληρη τη συνομιλία.\n\nΓράψτε τις λέξεις που πρέπει πράγματι να ακουστούν και, στη συνέχεια, τοποθετήστε μια οδηγία ακριβώς πριν από το απόσπασμα του οποίου η ερμηνεία πρέπει να αλλάξει. Οι οδηγίες σε αγκύλες μπορούν να εκφράζουν ψίθυρο, παύση, αντίδραση, έμφαση ή ένα ελεύθερα διατυπωμένο ύφος ομιλίας. Τοποθετήστε μια αλλαγή στη μέση της πρότασης στο σημείο όπου τη χρειάζεται η ερμηνεία και ακολουθήστε τις περιγραφικές οδηγίες με πραγματική ομιλία. Μια χρήσιμη ανάθεση επεξηγηματικής αφήγησης διαχωρίζει την πραγματολογική διατύπωση από τη ζεστασιά, τον ρυθμό ή την έμφαση που επιθυμείτε για τον ακροατή.\n\nΓια έναν ομιλητή, επιλέξτε αποθηκευμένο αναγνωριστικό φωνής ή παρέχετε ηχογράφηση αναφοράς με την απομαγνητοφώνησή της. Ο οδηγός ομιλίας του παραγωγού συνιστά καθαρό δείγμα 10–30 δευτερολέπτων για άμεση προσαρμογή της φωνής. Επιλέξτε αναφορά με τον τόνο και την ποιότητα εγγραφής που ταιριάζουν στο κείμενο και διατηρήστε την ίδια αναφορά σε συναφή αποσπάσματα. Η φωνητική αναφορά παρέχει τον ήχο του ομιλητή· το κείμενο και οι ενσωματωμένες οδηγίες παρέχουν το περιεχόμενο και την ερμηνεία του.\n\nΗ εγγενής σύνθεση πολλών ομιλητών χρησιμοποιεί δείκτες όπως <|speaker:0|> και <|speaker:1|> με πίνακα αναγνωριστικών φωνής σε καθορισμένη σειρά ή χωριστές ομάδες αναφορών. Διατηρήστε τις αριθμητικές ετικέτες ομιλητών ευθυγραμμισμένες με αυτή τη σειρά. Για μια διδακτική συνομιλία, γράψτε την ατάκα κάθε ομιλητή και τοποθετήστε την οδηγία ερμηνείας μετά τον δείκτη ομιλητή στο κατάλληλο σημείο. Έτσι δημιουργείται διάλογος σε ένα αίτημα· πρόκειται για διαφορετική ροή από τα χωριστά τμήματα ενός ομιλητή του S1 και τη μεταγενέστερη συναρμολόγησή τους.\n\nΗ ροή του παραγωγού προσφέρει έξοδο MP3, WAV, ακατέργαστο PCM και Opus, με προεπιλογή MP3. Το MP3 υποστηρίζει 64, 128 και 192 kbps· τα WAV και PCM χρησιμοποιούν τεκμηριωμένες μονοφωνικές μορφές δειγματοληψίας 16 bit, ενώ το Opus χρησιμοποιεί 48 kHz. Επιλέξτε τη μορφή για ένα αποθηκευμένο αρχείο αφήγησης, αναπαραγωγή ροής ή μια επόμενη ροή επεξεργασίας ήχου. Διατηρήστε το πλήρες κείμενο και την επιλογή φωνής μαζί με τον ήχο ώστε μια μεταγενέστερη επεξεργασία να μπορεί να διορθώσει μία ατάκα χωρίς να χαθεί η επιθυμητή ερμηνεία.\n\nΗ ταχύτητα μπορεί να ρυθμιστεί από 0,5 έως 2,0, με ρυθμίσεις έντασης. Η κανονικοποίηση κειμένου αναπτύσσει αγγλικούς και κινεζικούς αριθμούς για φυσική ανάγνωση. Η κανονικοποίηση ηχητικής στάθμης εξόδου έχει προεπιλογή true και εφαρμόζεται στην οικογένεια S2· το ίδιο πεδίο δεν είχε επίδραση στο S1. Το repetition_penalty του S1 δεν αλλάζει τον ήχο του S2.1 Pro, επομένως μια παλιά ρύθμιση δεν πρέπει να θεωρείται αποτελεσματικό μέσο ελέγχου αυτού του μοντέλου. Ελέγξτε απευθείας επαναλαμβανόμενους ήχους και λέξεις αντί να βασίζεστε σε μεταφερόμενη παράμετρο για να διαπιστώσετε το αποτέλεσμα.\n\nΤα μεγαλύτερα κείμενα υποβάλλονται σε επεξεργασία σε τμήματα. Το τεκμηριωμένο εύρος μήκους τμήματος είναι 100–300 και το max_new_tokens είναι όριο ηχητικών token ανά τμήμα, όχι εγγύηση συνολικής διάρκειας. Η προσαρμογή βάσει προηγούμενου τμήματος μπορεί να μεταφέρει το φωνητικό πλαίσιο στη συνέχεια. Η ροή παράδοσης του παραγωγού περιγράφει πλήρη ήχο, σταδιακά τμήματα ήχου και ζωντανή ροή κειμένου όταν το κείμενο φτάνει προοδευτικά. Επιλέξτε τον τρόπο κατανάλωσης για την εφαρμογή και διατηρήστε αρκετό πλαίσιο κειμένου για την προφορά και τον τόνο του επόμενου αποσπάσματος.\n\nΓια ένα χρήσιμο τελικό παραδοτέο, ακούστε για παραλειπόμενες ή επαναλαμβανόμενες λέξεις, προφορά αριθμών, αλλαγές ομιλητών, παύσεις και ένταση των οδηγιών. Διαφορετικές φωνητικές αναφορές μπορούν να ερμηνεύσουν μια υπόδειξη με διαφορετική ένταση, επομένως ξεκινήστε με μια απλή καθοδηγούμενη ατάκα πριν προσθέσετε ανταγωνιστικές ετικέτες. Σε πολυγλωσσική εργασία, παρέχετε το κείμενο στη γλώσσα-στόχο αντί να ζητάτε από το μοντέλο ομιλίας να επινοήσει ή να μεταφράσει το περιεχόμενό του. Μια εστιασμένη αναθεώρηση αλλάζει την ατάκα, την υπόδειξη ή την αναφορά που ευθύνεται για την απόκλιση, διατηρώντας τα τμήματα της ερμηνείας που ήδη ανταποκρίνονται στην ανάθεση.",
    "alias_of": null,
    "aliases": [],
    "author": "Fish Audio",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "speech"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "per_request",
            "label": "per request",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "public_unit_label": "per request",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "per_request"
          }
        ],
        "summary": "Πλήρης τιμολόγηση της διαμόρφωσης στις λεπτομέρειες."
      }
    ],
    "ctx": null,
    "formats": [
      "speech"
    ],
    "id": "fish-audio/s2.1-pro-free:free",
    "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.1-pro-free:free"
                ],
                "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.1-pro-free:free"
                  ],
                  "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.1-pro-free:free",
                "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": {
              "billing_quantity": "one request"
            },
            "label": "Per request",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "per_request",
                "label": "per request",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "public_unit_label": "per request",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "per_request"
              }
            ]
          }
        ],
        "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.1-pro-free:free', '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": 0
        },
        "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": {
              "billing_quantity": "one request"
            },
            "label": "Per request",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "per_request",
                "label": "per request",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "public_unit_label": "per request",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "per_request"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/s2.1-pro-free:free",
        "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",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "per_request",
            "label": "per request",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "public_unit_label": "per request",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "per_request"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "fish-audio/s2.1-pro-free:free",
        "request_model_id": "fish-audio/s2.1-pro-free:free",
        "route_label": "Ultra"
      }
    ],
    "name": "Fish Audio: S2.1 Pro Free (free)",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Το S2.1 Pro Free είναι η έκδοση ανάπτυξης της Fish Audio για το μοντέλο ομιλίας S2.1, για αφήγηση, καθοδηγούμενη φωνητική έξοδο και διάλογο πολλών ομιλητών. Μοιράζεται τις δυνατότητες σύνθεσης του μοντέλου για δοκιμές και κατασκευή πρωτοτύπων."
  },
  "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": "Το S2.1 Pro Free είναι η έκδοση ανάπτυξης της Fish Audio για το μοντέλο ομιλίας S2.1, για αφήγηση, καθοδηγούμενη φωνητική έξοδο και διάλογο πολλών ομιλητών. Μοιράζεται τις δυνατότητες σύνθεσης του μοντέλου για δοκιμές και κατασκευή πρωτοτύπων.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "12f5f0d4dda7fa87863ffbd7ce71965e31926f4a1cf023ec33993bfc74ef2e14",
    "renderer_sha256": "3ed36f7af4f78822bafbd174fdcaed7b698a18a86efe254253d37f1b098a7566"
  },
  "sourceRevision": "c785e778d9f4e5dd8bdcba742708e306d2661f170bb97a4bd417e8ad77e5d54d"
}
