{
  "aboutHtml": "<p>Το S1 είναι το μοντέλο μετατροπής κειμένου σε ομιλία προηγούμενης γενιάς της Fish Audio για εκφραστική αφήγηση και έξοδο φωνής ενός ομιλητή. Διαβάζει ένα παρεχόμενο κείμενο εκφώνησης και επιστρέφει ήχο, χρησιμοποιώντας μια επιλεγμένη φωνή ή φωνή καθοδηγούμενη από αναφορά. Το πλήρες μοντέλο S1 διαφέρει από το S1-mini, το μικρότερο μοντέλο απόσταξης· ο παραγωγός τα παρουσιάζει ως παραλλαγές 4 δισεκατομμυρίων και 500 εκατομμυρίων παραμέτρων αντίστοιχα. Αυτό το προφίλ καλύπτει το μοντέλο με την ονομασία S1.</p><p>Για αφήγηση, προετοιμάστε τις λέξεις που πρέπει πραγματικά να εκφωνηθούν και σημειώστε τα σημεία όπου πρέπει να αλλάξει η εκφορά. Ένα χρήσιμο επεξηγηματικό κείμενο δηλώνει πρώτα το κύριο σημείο του, αναπτύσσει μία ιδέα κάθε φορά και χρησιμοποιεί στίξη για να χωρίζει φράσεις που χρειάζονται φυσική παύση. Για μια σύντομη οδηγία, κρατήστε τη διατύπωση σαφή όταν ακούγεται χωρίς οθόνη. Διατηρήστε την επιθυμητή ανάγνωση ονομάτων, συντομογραφιών και μονάδων και ελέγξτε τους αριθμούς στην προφορική έξοδο, αντί να υποθέτετε ότι μια οπτικά ευανάγνωστη συμβολοσειρά έχει μόνο μία προφορά.</p><p>Το S1 χρησιμοποιεί συναισθηματικές ενδείξεις και οδηγίες εκφοράς σε παρενθέσεις, όπως (angry), (sad), (in a hurry) ή (chuckling). Τοποθετήστε μια ένδειξη πριν από την πρόταση ή φράση που πρέπει να επηρεάσει, με την πραγματική ομιλία μετά. Η εκφορά αφορά το κείμενο που ακολουθεί, επομένως μια αλλαγή διάθεσης πρέπει να εμφανίζεται εκεί όπου χρειάζεται να αλλάξει η εκτέλεση. Αυτή είναι διαφορετική σύνταξη από τις οδηγίες του S2 σε αγκύλες· διατηρήστε το κείμενο γραμμένο για την επιλεγμένη γενιά αντί να υποθέτετε ότι οι δύο μορφές σήμανσης είναι εναλλάξιμες.</p><p>Μια φωνή μπορεί να επιλεγεί μέσω αποθηκευμένου αναγνωριστικού φωνής ή να καθοδηγηθεί από ηχογράφηση αναφοράς μαζί με την απομαγνητοφώνησή της. Για μια άμεση ροή αναφοράς, ο γενικός οδηγός ομιλίας συνιστά καθαρό δείγμα 10–30 δευτερολέπτων. Επιλέξτε δείγμα του οποίου το ύφος ομιλίας και η ποιότητα ηχογράφησης ταιριάζουν στο επιθυμητό αποτέλεσμα και φροντίστε η απομαγνητοφώνηση να αντιστοιχεί στις λέξεις αυτού του δείγματος. Για έναν επαναλαμβανόμενο αφηγητή, επαναχρησιμοποιήστε την ίδια αναφορά φωνής μεταξύ αποσπασμάτων, ώστε μια αλλαγή θέματος να μην γίνεται ακούσια αλλαγή χαρακτήρα.</p><p>Η δημοσίευση του S1 κατονομάζει αγγλικά, κινεζικά, ιαπωνικά, γερμανικά, γαλλικά, ισπανικά, κορεατικά, αραβικά, ρωσικά, ολλανδικά, ιταλικά, πολωνικά και πορτογαλικά μεταξύ των υποστηριζόμενων γλωσσών και περιγράφει ανάμειξη γλωσσών μέσα σε ένα κείμενο εκφώνησης. Παρέχετε τη διατύπωση στη γλώσσα προορισμού αντί να αντιμετωπίζετε τη σύνθεση ομιλίας ως βήμα μετάφρασης. Για ένα απόσπασμα με δανεισμένο όνομα ή αλλαγή γλώσσας, κρατήστε σαφή τη γραφή και το συμφραζόμενο της γύρω πρότασης και ελέγξτε πώς χειρίζεται αυτή τη μετάβαση η επιλεγμένη φωνή.</p><p>Η διεπαφή S1 του παραγωγού υποστηρίζει έναν ομιλητή ανά αίτημα σύνθεσης. Ένας διάλογος μπορεί να προετοιμαστεί ως ξεχωριστά τμήματα με τις δικές τους αναφορές φωνής και έπειτα να συναρμολογηθεί από την εφαρμογή· η εγγενής σύνθεση πολλών ομιλητών της οικογένειας S2 είναι ξεχωριστή δυνατότητα. Κρατήστε τον ρόλο, τη φωνή και το κείμενο συνδεδεμένα με κάθε τμήμα όταν προετοιμάζετε φράσεις χαρακτήρων. Το αποτέλεσμα σύνθεσης είναι ηχητική εκτέλεση του κειμένου, ενώ ο χρονισμός μιας ανταλλαγής ή ο συνδυασμός της με μουσική και βίντεο είναι μεταγενέστερο βήμα επεξεργασίας.</p><p>Οι επιλογές εξόδου περιλαμβάνουν MP3, WAV, ακατέργαστο PCM και Opus, με προεπιλογή το MP3. Η τεκμηριωμένη έξοδος είναι μονοφωνική· τα WAV και PCM χρησιμοποιούν δείγματα 16 bit και οι επιλογές συχνότητας δειγματοληψίας διαφέρουν ανά μορφή. Το MP3 υποστηρίζει 64, 128 και 192 kbps, ενώ το Opus χρησιμοποιεί 48 kHz. Η ταχύτητα μπορεί να ρυθμιστεί από 0.5 έως 2.0, με ελέγχους έντασης. Επιλέξτε ένα κωδικοποιημένο αρχείο για παραδοτέο voice-over ή μια κατάλληλη ροή για αναπαραγωγή και διατηρήστε την επιλεγμένη φωνή και το κείμενο μαζί με το αποτέλεσμα.</p><p>Ο παραγωγός επεξεργάζεται το μεγάλο κείμενο σε τμήματα, με τεκμηριωμένο εύρος μήκους τμήματος 100–300 και προϋπολογισμό token ήχου ανά τμήμα αντί για εγγυημένη συνολική διάρκεια ηχογράφησης. Η κανονικοποίηση κειμένου μπορεί να αναπτύσσει αγγλικούς και κινεζικούς αριθμούς σε φυσική ανάγνωση και η ποινή επανάληψης του S1 μπορεί να μειώνει επαναλαμβανόμενα ηχητικά μοτίβα. Η κανονικοποίηση της αντιληπτής έντασης εξόδου είναι διαφορετική ρύθμιση και δεν έχει επίδραση στο S1. Εξετάστε την προφορά, τα όρια των φράσεων, τους επαναλαμβανόμενους ήχους και την επιθυμητή συναισθηματική μεταβολή πριν συναρμολογήσετε το τελικό απόσπασμα και έπειτα αναθεωρήστε τη συγκεκριμένη φράση ή αναφορά που χρειάζεται προσοχή.</p>",
  "aboutText": "Το S1 είναι το μοντέλο μετατροπής κειμένου σε ομιλία προηγούμενης γενιάς της Fish Audio για εκφραστική αφήγηση και έξοδο φωνής ενός ομιλητή. Διαβάζει ένα παρεχόμενο κείμενο εκφώνησης και επιστρέφει ήχο, χρησιμοποιώντας μια επιλεγμένη φωνή ή φωνή καθοδηγούμενη από αναφορά. Το πλήρες μοντέλο S1 διαφέρει από το S1-mini, το μικρότερο μοντέλο απόσταξης· ο παραγωγός τα παρουσιάζει ως παραλλαγές 4 δισεκατομμυρίων και 500 εκατομμυρίων παραμέτρων αντίστοιχα. Αυτό το προφίλ καλύπτει το μοντέλο με την ονομασία S1.\n\nΓια αφήγηση, προετοιμάστε τις λέξεις που πρέπει πραγματικά να εκφωνηθούν και σημειώστε τα σημεία όπου πρέπει να αλλάξει η εκφορά. Ένα χρήσιμο επεξηγηματικό κείμενο δηλώνει πρώτα το κύριο σημείο του, αναπτύσσει μία ιδέα κάθε φορά και χρησιμοποιεί στίξη για να χωρίζει φράσεις που χρειάζονται φυσική παύση. Για μια σύντομη οδηγία, κρατήστε τη διατύπωση σαφή όταν ακούγεται χωρίς οθόνη. Διατηρήστε την επιθυμητή ανάγνωση ονομάτων, συντομογραφιών και μονάδων και ελέγξτε τους αριθμούς στην προφορική έξοδο, αντί να υποθέτετε ότι μια οπτικά ευανάγνωστη συμβολοσειρά έχει μόνο μία προφορά.\n\nΤο S1 χρησιμοποιεί συναισθηματικές ενδείξεις και οδηγίες εκφοράς σε παρενθέσεις, όπως (angry), (sad), (in a hurry) ή (chuckling). Τοποθετήστε μια ένδειξη πριν από την πρόταση ή φράση που πρέπει να επηρεάσει, με την πραγματική ομιλία μετά. Η εκφορά αφορά το κείμενο που ακολουθεί, επομένως μια αλλαγή διάθεσης πρέπει να εμφανίζεται εκεί όπου χρειάζεται να αλλάξει η εκτέλεση. Αυτή είναι διαφορετική σύνταξη από τις οδηγίες του S2 σε αγκύλες· διατηρήστε το κείμενο γραμμένο για την επιλεγμένη γενιά αντί να υποθέτετε ότι οι δύο μορφές σήμανσης είναι εναλλάξιμες.\n\nΜια φωνή μπορεί να επιλεγεί μέσω αποθηκευμένου αναγνωριστικού φωνής ή να καθοδηγηθεί από ηχογράφηση αναφοράς μαζί με την απομαγνητοφώνησή της. Για μια άμεση ροή αναφοράς, ο γενικός οδηγός ομιλίας συνιστά καθαρό δείγμα 10–30 δευτερολέπτων. Επιλέξτε δείγμα του οποίου το ύφος ομιλίας και η ποιότητα ηχογράφησης ταιριάζουν στο επιθυμητό αποτέλεσμα και φροντίστε η απομαγνητοφώνηση να αντιστοιχεί στις λέξεις αυτού του δείγματος. Για έναν επαναλαμβανόμενο αφηγητή, επαναχρησιμοποιήστε την ίδια αναφορά φωνής μεταξύ αποσπασμάτων, ώστε μια αλλαγή θέματος να μην γίνεται ακούσια αλλαγή χαρακτήρα.\n\nΗ δημοσίευση του S1 κατονομάζει αγγλικά, κινεζικά, ιαπωνικά, γερμανικά, γαλλικά, ισπανικά, κορεατικά, αραβικά, ρωσικά, ολλανδικά, ιταλικά, πολωνικά και πορτογαλικά μεταξύ των υποστηριζόμενων γλωσσών και περιγράφει ανάμειξη γλωσσών μέσα σε ένα κείμενο εκφώνησης. Παρέχετε τη διατύπωση στη γλώσσα προορισμού αντί να αντιμετωπίζετε τη σύνθεση ομιλίας ως βήμα μετάφρασης. Για ένα απόσπασμα με δανεισμένο όνομα ή αλλαγή γλώσσας, κρατήστε σαφή τη γραφή και το συμφραζόμενο της γύρω πρότασης και ελέγξτε πώς χειρίζεται αυτή τη μετάβαση η επιλεγμένη φωνή.\n\nΗ διεπαφή S1 του παραγωγού υποστηρίζει έναν ομιλητή ανά αίτημα σύνθεσης. Ένας διάλογος μπορεί να προετοιμαστεί ως ξεχωριστά τμήματα με τις δικές τους αναφορές φωνής και έπειτα να συναρμολογηθεί από την εφαρμογή· η εγγενής σύνθεση πολλών ομιλητών της οικογένειας S2 είναι ξεχωριστή δυνατότητα. Κρατήστε τον ρόλο, τη φωνή και το κείμενο συνδεδεμένα με κάθε τμήμα όταν προετοιμάζετε φράσεις χαρακτήρων. Το αποτέλεσμα σύνθεσης είναι ηχητική εκτέλεση του κειμένου, ενώ ο χρονισμός μιας ανταλλαγής ή ο συνδυασμός της με μουσική και βίντεο είναι μεταγενέστερο βήμα επεξεργασίας.\n\nΟι επιλογές εξόδου περιλαμβάνουν MP3, WAV, ακατέργαστο PCM και Opus, με προεπιλογή το MP3. Η τεκμηριωμένη έξοδος είναι μονοφωνική· τα WAV και PCM χρησιμοποιούν δείγματα 16 bit και οι επιλογές συχνότητας δειγματοληψίας διαφέρουν ανά μορφή. Το MP3 υποστηρίζει 64, 128 και 192 kbps, ενώ το Opus χρησιμοποιεί 48 kHz. Η ταχύτητα μπορεί να ρυθμιστεί από 0.5 έως 2.0, με ελέγχους έντασης. Επιλέξτε ένα κωδικοποιημένο αρχείο για παραδοτέο voice-over ή μια κατάλληλη ροή για αναπαραγωγή και διατηρήστε την επιλεγμένη φωνή και το κείμενο μαζί με το αποτέλεσμα.\n\nΟ παραγωγός επεξεργάζεται το μεγάλο κείμενο σε τμήματα, με τεκμηριωμένο εύρος μήκους τμήματος 100–300 και προϋπολογισμό token ήχου ανά τμήμα αντί για εγγυημένη συνολική διάρκεια ηχογράφησης. Η κανονικοποίηση κειμένου μπορεί να αναπτύσσει αγγλικούς και κινεζικούς αριθμούς σε φυσική ανάγνωση και η ποινή επανάληψης του S1 μπορεί να μειώνει επαναλαμβανόμενα ηχητικά μοτίβα. Η κανονικοποίηση της αντιληπτής έντασης εξόδου είναι διαφορετική ρύθμιση και δεν έχει επίδραση στο S1. Εξετάστε την προφορά, τα όρια των φράσεων, τους επαναλαμβανόμενους ήχους και την επιθυμητή συναισθηματική μεταβολή πριν συναρμολογήσετε το τελικό απόσπασμα και έπειτα αναθεωρήστε τη συγκεκριμένη φράση ή αναφορά που χρειάζεται προσοχή.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "48218a0934bc96c2e2d72e72f917341cae980cf7d948967c5e310b6289d79f29",
    "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: S1</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Κλείσιμο\">×</button></div><div class=\"idline\"><span>Fish Audio /</span><code>fish-audio/s1</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%2Fs1\">Σύνθεση ομιλίας</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 S1 μετατρέπει πολύγλωσσα κείμενα εκφώνησης σε εκφραστικό ήχο ενός ομιλητή, χρησιμοποιώντας αναφορές φωνής και συναισθηματικές ενδείξεις σε παρενθέσεις. Χρησιμοποιήστε το για αφήγηση, σύντομες προφορικές οδηγίες ή φράσεις χαρακτήρων, με ελέγχους μορφής και προσωδίας για τον τελικό ήχο.</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>Το S1 είναι το μοντέλο μετατροπής κειμένου σε ομιλία προηγούμενης γενιάς της Fish Audio για εκφραστική αφήγηση και έξοδο φωνής ενός ομιλητή. Διαβάζει ένα παρεχόμενο κείμενο εκφώνησης και επιστρέφει ήχο, χρησιμοποιώντας μια επιλεγμένη φωνή ή φωνή καθοδηγούμενη από αναφορά. Το πλήρες μοντέλο S1 διαφέρει από το S1-mini, το μικρότερο μοντέλο απόσταξης· ο παραγωγός τα παρουσιάζει ως παραλλαγές 4 δισεκατομμυρίων και 500 εκατομμυρίων παραμέτρων αντίστοιχα. Αυτό το προφίλ καλύπτει το μοντέλο με την ονομασία S1.</p><p>Για αφήγηση, προετοιμάστε τις λέξεις που πρέπει πραγματικά να εκφωνηθούν και σημειώστε τα σημεία όπου πρέπει να αλλάξει η εκφορά. Ένα χρήσιμο επεξηγηματικό κείμενο δηλώνει πρώτα το κύριο σημείο του, αναπτύσσει μία ιδέα κάθε φορά και χρησιμοποιεί στίξη για να χωρίζει φράσεις που χρειάζονται φυσική παύση. Για μια σύντομη οδηγία, κρατήστε τη διατύπωση σαφή όταν ακούγεται χωρίς οθόνη. Διατηρήστε την επιθυμητή ανάγνωση ονομάτων, συντομογραφιών και μονάδων και ελέγξτε τους αριθμούς στην προφορική έξοδο, αντί να υποθέτετε ότι μια οπτικά ευανάγνωστη συμβολοσειρά έχει μόνο μία προφορά.</p><p>Το S1 χρησιμοποιεί συναισθηματικές ενδείξεις και οδηγίες εκφοράς σε παρενθέσεις, όπως (angry), (sad), (in a hurry) ή (chuckling). Τοποθετήστε μια ένδειξη πριν από την πρόταση ή φράση που πρέπει να επηρεάσει, με την πραγματική ομιλία μετά. Η εκφορά αφορά το κείμενο που ακολουθεί, επομένως μια αλλαγή διάθεσης πρέπει να εμφανίζεται εκεί όπου χρειάζεται να αλλάξει η εκτέλεση. Αυτή είναι διαφορετική σύνταξη από τις οδηγίες του S2 σε αγκύλες· διατηρήστε το κείμενο γραμμένο για την επιλεγμένη γενιά αντί να υποθέτετε ότι οι δύο μορφές σήμανσης είναι εναλλάξιμες.</p><p>Μια φωνή μπορεί να επιλεγεί μέσω αποθηκευμένου αναγνωριστικού φωνής ή να καθοδηγηθεί από ηχογράφηση αναφοράς μαζί με την απομαγνητοφώνησή της. Για μια άμεση ροή αναφοράς, ο γενικός οδηγός ομιλίας συνιστά καθαρό δείγμα 10–30 δευτερολέπτων. Επιλέξτε δείγμα του οποίου το ύφος ομιλίας και η ποιότητα ηχογράφησης ταιριάζουν στο επιθυμητό αποτέλεσμα και φροντίστε η απομαγνητοφώνηση να αντιστοιχεί στις λέξεις αυτού του δείγματος. Για έναν επαναλαμβανόμενο αφηγητή, επαναχρησιμοποιήστε την ίδια αναφορά φωνής μεταξύ αποσπασμάτων, ώστε μια αλλαγή θέματος να μην γίνεται ακούσια αλλαγή χαρακτήρα.</p><p>Η δημοσίευση του S1 κατονομάζει αγγλικά, κινεζικά, ιαπωνικά, γερμανικά, γαλλικά, ισπανικά, κορεατικά, αραβικά, ρωσικά, ολλανδικά, ιταλικά, πολωνικά και πορτογαλικά μεταξύ των υποστηριζόμενων γλωσσών και περιγράφει ανάμειξη γλωσσών μέσα σε ένα κείμενο εκφώνησης. Παρέχετε τη διατύπωση στη γλώσσα προορισμού αντί να αντιμετωπίζετε τη σύνθεση ομιλίας ως βήμα μετάφρασης. Για ένα απόσπασμα με δανεισμένο όνομα ή αλλαγή γλώσσας, κρατήστε σαφή τη γραφή και το συμφραζόμενο της γύρω πρότασης και ελέγξτε πώς χειρίζεται αυτή τη μετάβαση η επιλεγμένη φωνή.</p><p>Η διεπαφή S1 του παραγωγού υποστηρίζει έναν ομιλητή ανά αίτημα σύνθεσης. Ένας διάλογος μπορεί να προετοιμαστεί ως ξεχωριστά τμήματα με τις δικές τους αναφορές φωνής και έπειτα να συναρμολογηθεί από την εφαρμογή· η εγγενής σύνθεση πολλών ομιλητών της οικογένειας S2 είναι ξεχωριστή δυνατότητα. Κρατήστε τον ρόλο, τη φωνή και το κείμενο συνδεδεμένα με κάθε τμήμα όταν προετοιμάζετε φράσεις χαρακτήρων. Το αποτέλεσμα σύνθεσης είναι ηχητική εκτέλεση του κειμένου, ενώ ο χρονισμός μιας ανταλλαγής ή ο συνδυασμός της με μουσική και βίντεο είναι μεταγενέστερο βήμα επεξεργασίας.</p><p>Οι επιλογές εξόδου περιλαμβάνουν MP3, WAV, ακατέργαστο PCM και Opus, με προεπιλογή το MP3. Η τεκμηριωμένη έξοδος είναι μονοφωνική· τα WAV και PCM χρησιμοποιούν δείγματα 16 bit και οι επιλογές συχνότητας δειγματοληψίας διαφέρουν ανά μορφή. Το MP3 υποστηρίζει 64, 128 και 192 kbps, ενώ το Opus χρησιμοποιεί 48 kHz. Η ταχύτητα μπορεί να ρυθμιστεί από 0.5 έως 2.0, με ελέγχους έντασης. Επιλέξτε ένα κωδικοποιημένο αρχείο για παραδοτέο voice-over ή μια κατάλληλη ροή για αναπαραγωγή και διατηρήστε την επιλεγμένη φωνή και το κείμενο μαζί με το αποτέλεσμα.</p><p>Ο παραγωγός επεξεργάζεται το μεγάλο κείμενο σε τμήματα, με τεκμηριωμένο εύρος μήκους τμήματος 100–300 και προϋπολογισμό token ήχου ανά τμήμα αντί για εγγυημένη συνολική διάρκεια ηχογράφησης. Η κανονικοποίηση κειμένου μπορεί να αναπτύσσει αγγλικούς και κινεζικούς αριθμούς σε φυσική ανάγνωση και η ποινή επανάληψης του S1 μπορεί να μειώνει επαναλαμβανόμενα ηχητικά μοτίβα. Η κανονικοποίηση της αντιληπτής έντασης εξόδου είναι διαφορετική ρύθμιση και δεν έχει επίδραση στο S1. Εξετάστε την προφορά, τα όρια των φράσεων, τους επαναλαμβανόμενους ήχους και την επιθυμητή συναισθηματική μεταβολή πριν συναρμολογήσετε το τελικό απόσπασμα και έπειτα αναθεωρήστε τη συγκεκριμένη φράση ή αναφορά που χρειάζεται προσοχή.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Σύνθεση ομιλίας</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>Είσοδος</dt><dd><code>text</code></dd></div><div><dt>Έξοδος</dt><dd><code>audio</code></dd></div><div><dt>Μορφή εξόδου</dt><dd>πραγματικός δηλωμένος δυαδικός ήχος</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Πεδίο</th><th>Τύπος</th><th>Απαίτηση</th><th>Τιμές και όρια</th><th>Προεπιλογή</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>fish-audio/s1</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Ελάχιστο μήκος: 1</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"saved_exact_supplier_example\"><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></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>mp3, pcm</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"known\"><span class=\"card-cell-label\">Προεπιλογή</span>pcm</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Συνδυασμοί υλικών εισόδου</summary><p class=\"note-s\"><b>text_to_speech</b> · Υποχρεωτικό: actual UTF-8 script, exact supported voice</p></details><details class=\"note-s\" data-method-contract><summary>Παράμετροι και κύκλος ζωής μεθόδου</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Παράμετρος</th><th>Σύμβαση</th></tr></thead><tbody><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>content_type</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>application/json</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>required</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>model, input, voice</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><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>voice_ids</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>b347db033a6549378b48d00acb0d06cd</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>voice_list_exhaustive</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>false</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>response_format</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>mp3, pcm</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>default_response_format</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>pcm</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>quantity</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>Τα byte UTF-8 της μοναδικής αποκωδικοποιημένης συμβολοσειράς εισόδου· χωρίς αφαίρεση κενών από τα άκρα ή κανονικοποίηση</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>native_byte_quote_controls</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>Οι μη κενές οδηγίες και η είσοδος εναλλαγών πολλών ομιλητών απορρίπτονται από αυτή την ακριβή διαδρομή προσφοράς βάσει byte, μέχρι να δηλωθεί το πρόσθετο χρεώσιμο κείμενο.</td></tr></tbody></table></div><p>Κύκλος ζωής: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · Το πραγματικό task_id που επιστράφηκε ή μια εγγραφή στη βιβλιοθήκη πολυμέσων</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p><p class=\"note-s\">Χρησιμοποιήστε το ακριβές μοντέλο και τα τεκμηριωμένα πεδία εισόδου.</p><p class=\"note-s\">Διατηρήστε ολόκληρη την απόκριση, κάθε πραγματική έξοδο και τα αρχικά ID που επιστρέφονται.</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>Ultra</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>ανά byte utf8 ήχου εισόδου</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Είσοδος · byte utf8 εισόδου ήχου</span> <b>$0.00003</b> <span class=\"price-unit\">ανά byte utf8 ήχου εισόδου</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. <a href=\"/docs/el/billing/reserve/\">Πώς λειτουργούν η δέσμευση και η εκκαθάριση →</a></p><div data-declared-reference-pricing><h4>Στοιχεία τιμοκαταλόγου αναφοράς</h4><p class=\"note-s\">Οι πίνακες αναφοράς του μοντέλου δεν αλλάζουν την επιλογή μεθόδου, τις εκτιμήσεις τιμής ή τις χρεώσεις. Οι εφαρμοζόμενες χρεώσεις χρησιμοποιούν τις τιμές της επιλεγμένης μεθόδου Ailoot.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Fish Audio: S1</summary><h4>Τιμές ανά διαμόρφωση</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Διαμόρφωση</th><th>Συνθήκες χρέωσης</th><th>Χρέωση</th></tr></thead><tbody><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Fish Audio: S1 · Προεπιλεγμένη διαμόρφωση</th><td data-cell-label=\"Συνθήκες χρέωσης\"><span class=\"card-cell-label\">Συνθήκες χρέωσης</span>Προεπιλεγμένη διαμόρφωση</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Είσοδος · Bytes εισόδου UTF-8</span> <b>0,00003 $</b> <span class=\"price-unit\">ανά byte UTF-8 εισόδου</span></div></td></tr></tbody></table></div></details></div></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-1354-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1354-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · ακριβές εγγενές σώμα και πλήρες αποτέλεσμα</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Αντιγραφή κώδικα\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1354-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1354-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nrequest={&#39;model&#39;: &#39;fish-audio/s1&#39;, &#39;input&#39;: &#39;Hello world&#39;, &#39;voice&#39;: &#39;b347db033a6549378b48d00acb0d06cd&#39;, &#39;response_format&#39;: &#39;mp3&#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# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\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\">πραγματικός δηλωμένος δυαδικός ήχος</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><div class=\"card-result-process\" data-all-results><h5>Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα</h5><p class=\"note-s\">Διατηρήστε κάθε πλήρη απάντηση, αρχείο και τμήμα περιεχομένου που επιστρέφεται.</p><p class=\"note-s\">Αποθηκεύστε όλα τα byte των πλήρων δυαδικών δεδομένων και όλες τις αρχικές κεφαλίδες· διατηρήστε ολόκληρο το JSON, αν επιστραφεί. Διατηρούνται τα πραγματικά ID λειτουργιών και αρχείων πολυμέσων.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Αν χρειάζεται έλεγχος της αρχικής απάντησης</h5><p class=\"note-s\">Διατηρήστε το αρχικό operation_id/X-Client-Request-ID και την αρχική απόκριση. Διαβάστε πραγματικές εγγραφές εργασιών και αρχείων πολυμέσων που σας ανήκουν, χωρίς επανυποβολή· δεν κατασκευάζεται ειδικό URL περιοδικού ελέγχου ήχου.</p></div><details class=\"card-about\" data-output-fields><summary>Πεδία απάντησης</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Πεδίο</th><th>Τύπος</th></tr></thead><tbody><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">binary audio</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>bytes</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">response headers</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>headers</td></tr></tbody></table></div></details></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%2Fs1&amp;route=Ultra&amp;caller=fish-audio%2Fs1&amp;fmt=speech\"><code>fish-audio/s1</code></a></span></p><h4>Εναλλακτικές διαδρομές μεθόδων</h4><p class=\"note-s\">Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.</p><h4>Σχετικά ID μοντέλων</h4><p class=\"note-s\"><a href=\"#m=fish-audio%2Fs1&amp;route=Ultra&amp;caller=fish-audio%2Fs1&amp;fmt=speech\"><code>fish-audio/s1</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "fish-audio/s1",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "fish-audio/s1",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|fish-audio%2Fs1",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Save all complete binary bytes and all original headers; keep full JSON if returned. Actual operation/asset IDs are preserved.",
            "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": "Διατηρήστε το αρχικό operation_id/X-Client-Request-ID και την αρχική απόκριση. Διαβάστε πραγματικές εγγραφές εργασιών και αρχείων πολυμέσων που σας ανήκουν, χωρίς επανυποβολή· δεν κατασκευάζεται ειδικό URL περιοδικού ελέγχου ήχου."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "actual UTF-8 script",
                  "exact supported voice"
                ]
              }
            ],
            "outputs": {
              "all_results": "Αποθηκεύστε όλα τα byte των πλήρων δυαδικών δεδομένων και όλες τις αρχικές κεφαλίδες· διατηρήστε ολόκληρο το JSON, αν επιστραφεί. Διατηρούνται τα πραγματικά ID λειτουργιών και αρχείων πολυμέσων.",
              "family": "audio",
              "fields": [
                {
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "πραγματικός δηλωμένος δυαδικός ήχος"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "enum": [
                  "fish-audio/s1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "min_length": 1,
                "name": "input",
                "quantity_unit": "decoded input UTF-8 bytes",
                "required": true,
                "type": "string"
              },
              {
                "availability": "saved_exact_supplier_example",
                "enum": [
                  "b347db033a6549378b48d00acb0d06cd"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "pcm",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "properties": {
                "input": {
                  "minLength": 1,
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "fish-audio/s1"
                  ],
                  "type": "string"
                },
                "response_format": {
                  "default": "pcm",
                  "enum": [
                    "mp3",
                    "pcm"
                  ],
                  "type": "string"
                },
                "voice": {
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input",
                "voice"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "Hello world",
                "model": "fish-audio/s1",
                "response_format": "mp3",
                "voice": "b347db033a6549378b48d00acb0d06cd"
              },
              "content_type": "application/json"
            }
          },
          "hints": [
            "Χρησιμοποιήστε το ακριβές μοντέλο και τα τεκμηριωμένα πεδία εισόδου.",
            "Διατηρήστε ολόκληρη την απόκριση, κάθε πραγματική έξοδο και τα αρχικά ID που επιστρέφονται."
          ],
          "input": {
            "content_type": "application/json",
            "default_response_format": "pcm",
            "material_types": [
              "text"
            ],
            "native_byte_quote_controls": "Οι μη κενές οδηγίες και η είσοδος εναλλαγών πολλών ομιλητών απορρίπτονται από αυτή την ακριβή διαδρομή προσφοράς βάσει byte, μέχρι να δηλωθεί το πρόσθετο χρεώσιμο κείμενο.",
            "quantity": "Τα byte UTF-8 της μοναδικής αποκωδικοποιημένης συμβολοσειράς εισόδου· χωρίς αφαίρεση κενών από τα άκρα ή κανονικοποίηση",
            "required": [
              "model",
              "input",
              "voice"
            ],
            "response_format": [
              "mp3",
              "pcm"
            ],
            "voice_ids": [
              "b347db033a6549378b48d00acb0d06cd"
            ],
            "voice_list_exhaustive": false
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "Το πραγματικό task_id που επιστράφηκε ή μια εγγραφή στη βιβλιοθήκη πολυμέσων",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID and original response. Read actual owned task/asset records without resubmitting; no dedicated audio poll URL is constructed."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "all_results": true,
            "family": "audio",
            "format": "actual MP3 or PCM bytes and MIME",
            "response": "complete raw audio bytes plus response headers"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quantity_basis": "actual physical units",
              "quoted_unit": "per audio input utf8 byte"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_audio_input_utf8_byte",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "audio input utf8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per audio input utf8 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}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'fish-audio/s1', 'input': 'Hello world', 'voice': 'b347db033a6549378b48d00acb0d06cd', 'response_format': 'mp3'}\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# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\n",
            "label": "curl · exact native body and complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Use the exact model and documented input fields.",
          "Keep the complete response, every actual output and original returned IDs."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Озвучка текста",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_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": {
              "quantity_basis": "actual physical units",
              "quoted_unit": "per audio input utf8 byte"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_audio_input_utf8_byte",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "audio input utf8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per audio input utf8 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/s1",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.00003",
            "amount_unit": "usd_per_audio_input_utf8_byte",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "audio input utf8 byte",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per audio input utf8 byte",
            "quantity": "1",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_utf8_byte"
          }
        ]
      }
    }
  ],
  "model_id": "fish-audio/s1",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "3bdd5f844a52668973bd6ac64c635f88e50041e787d2a26801186519ec2d2dd3",
    "input_html_sha256": "891d4d4e2608419834788afeda5ec7420e649a9d74160ddf725d98575ec90aa3",
    "private_audit_sha256": "29421f95e9c39f3102c3569e0b6a7acc8300895b9267dfdc6d81c0f3eb07909e",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/el/fish-audio-s1/",
    "description": "Το Fish Audio S1 μετατρέπει πολύγλωσσα κείμενα εκφώνησης σε εκφραστικό ήχο ενός ομιλητή, χρησιμοποιώντας αναφορές φωνής και συναισθηματικές ενδείξεις σε παρενθέσεις. Χρησιμοποιήστε το για αφήγηση, σύντομες προφορικές οδηγίες ή φράσεις χαρακτήρων, με ελέγχους μορφής και προσωδίας για τον τελικό ήχο.",
    "locale": "el",
    "md_url": "https://ailoot.ai/models/el/fish-audio-s1/index.md",
    "title": "Fish Audio: S1 — Ailoot",
    "url": "https://ailoot.ai/models/el/fish-audio-s1/"
  },
  "rawModel": {
    "about": "Το S1 είναι το μοντέλο μετατροπής κειμένου σε ομιλία προηγούμενης γενιάς της Fish Audio για εκφραστική αφήγηση και έξοδο φωνής ενός ομιλητή. Διαβάζει ένα παρεχόμενο κείμενο εκφώνησης και επιστρέφει ήχο, χρησιμοποιώντας μια επιλεγμένη φωνή ή φωνή καθοδηγούμενη από αναφορά. Το πλήρες μοντέλο S1 διαφέρει από το S1-mini, το μικρότερο μοντέλο απόσταξης· ο παραγωγός τα παρουσιάζει ως παραλλαγές 4 δισεκατομμυρίων και 500 εκατομμυρίων παραμέτρων αντίστοιχα. Αυτό το προφίλ καλύπτει το μοντέλο με την ονομασία S1.\n\nΓια αφήγηση, προετοιμάστε τις λέξεις που πρέπει πραγματικά να εκφωνηθούν και σημειώστε τα σημεία όπου πρέπει να αλλάξει η εκφορά. Ένα χρήσιμο επεξηγηματικό κείμενο δηλώνει πρώτα το κύριο σημείο του, αναπτύσσει μία ιδέα κάθε φορά και χρησιμοποιεί στίξη για να χωρίζει φράσεις που χρειάζονται φυσική παύση. Για μια σύντομη οδηγία, κρατήστε τη διατύπωση σαφή όταν ακούγεται χωρίς οθόνη. Διατηρήστε την επιθυμητή ανάγνωση ονομάτων, συντομογραφιών και μονάδων και ελέγξτε τους αριθμούς στην προφορική έξοδο, αντί να υποθέτετε ότι μια οπτικά ευανάγνωστη συμβολοσειρά έχει μόνο μία προφορά.\n\nΤο S1 χρησιμοποιεί συναισθηματικές ενδείξεις και οδηγίες εκφοράς σε παρενθέσεις, όπως (angry), (sad), (in a hurry) ή (chuckling). Τοποθετήστε μια ένδειξη πριν από την πρόταση ή φράση που πρέπει να επηρεάσει, με την πραγματική ομιλία μετά. Η εκφορά αφορά το κείμενο που ακολουθεί, επομένως μια αλλαγή διάθεσης πρέπει να εμφανίζεται εκεί όπου χρειάζεται να αλλάξει η εκτέλεση. Αυτή είναι διαφορετική σύνταξη από τις οδηγίες του S2 σε αγκύλες· διατηρήστε το κείμενο γραμμένο για την επιλεγμένη γενιά αντί να υποθέτετε ότι οι δύο μορφές σήμανσης είναι εναλλάξιμες.\n\nΜια φωνή μπορεί να επιλεγεί μέσω αποθηκευμένου αναγνωριστικού φωνής ή να καθοδηγηθεί από ηχογράφηση αναφοράς μαζί με την απομαγνητοφώνησή της. Για μια άμεση ροή αναφοράς, ο γενικός οδηγός ομιλίας συνιστά καθαρό δείγμα 10–30 δευτερολέπτων. Επιλέξτε δείγμα του οποίου το ύφος ομιλίας και η ποιότητα ηχογράφησης ταιριάζουν στο επιθυμητό αποτέλεσμα και φροντίστε η απομαγνητοφώνηση να αντιστοιχεί στις λέξεις αυτού του δείγματος. Για έναν επαναλαμβανόμενο αφηγητή, επαναχρησιμοποιήστε την ίδια αναφορά φωνής μεταξύ αποσπασμάτων, ώστε μια αλλαγή θέματος να μην γίνεται ακούσια αλλαγή χαρακτήρα.\n\nΗ δημοσίευση του S1 κατονομάζει αγγλικά, κινεζικά, ιαπωνικά, γερμανικά, γαλλικά, ισπανικά, κορεατικά, αραβικά, ρωσικά, ολλανδικά, ιταλικά, πολωνικά και πορτογαλικά μεταξύ των υποστηριζόμενων γλωσσών και περιγράφει ανάμειξη γλωσσών μέσα σε ένα κείμενο εκφώνησης. Παρέχετε τη διατύπωση στη γλώσσα προορισμού αντί να αντιμετωπίζετε τη σύνθεση ομιλίας ως βήμα μετάφρασης. Για ένα απόσπασμα με δανεισμένο όνομα ή αλλαγή γλώσσας, κρατήστε σαφή τη γραφή και το συμφραζόμενο της γύρω πρότασης και ελέγξτε πώς χειρίζεται αυτή τη μετάβαση η επιλεγμένη φωνή.\n\nΗ διεπαφή S1 του παραγωγού υποστηρίζει έναν ομιλητή ανά αίτημα σύνθεσης. Ένας διάλογος μπορεί να προετοιμαστεί ως ξεχωριστά τμήματα με τις δικές τους αναφορές φωνής και έπειτα να συναρμολογηθεί από την εφαρμογή· η εγγενής σύνθεση πολλών ομιλητών της οικογένειας S2 είναι ξεχωριστή δυνατότητα. Κρατήστε τον ρόλο, τη φωνή και το κείμενο συνδεδεμένα με κάθε τμήμα όταν προετοιμάζετε φράσεις χαρακτήρων. Το αποτέλεσμα σύνθεσης είναι ηχητική εκτέλεση του κειμένου, ενώ ο χρονισμός μιας ανταλλαγής ή ο συνδυασμός της με μουσική και βίντεο είναι μεταγενέστερο βήμα επεξεργασίας.\n\nΟι επιλογές εξόδου περιλαμβάνουν MP3, WAV, ακατέργαστο PCM και Opus, με προεπιλογή το MP3. Η τεκμηριωμένη έξοδος είναι μονοφωνική· τα WAV και PCM χρησιμοποιούν δείγματα 16 bit και οι επιλογές συχνότητας δειγματοληψίας διαφέρουν ανά μορφή. Το MP3 υποστηρίζει 64, 128 και 192 kbps, ενώ το Opus χρησιμοποιεί 48 kHz. Η ταχύτητα μπορεί να ρυθμιστεί από 0.5 έως 2.0, με ελέγχους έντασης. Επιλέξτε ένα κωδικοποιημένο αρχείο για παραδοτέο voice-over ή μια κατάλληλη ροή για αναπαραγωγή και διατηρήστε την επιλεγμένη φωνή και το κείμενο μαζί με το αποτέλεσμα.\n\nΟ παραγωγός επεξεργάζεται το μεγάλο κείμενο σε τμήματα, με τεκμηριωμένο εύρος μήκους τμήματος 100–300 και προϋπολογισμό token ήχου ανά τμήμα αντί για εγγυημένη συνολική διάρκεια ηχογράφησης. Η κανονικοποίηση κειμένου μπορεί να αναπτύσσει αγγλικούς και κινεζικούς αριθμούς σε φυσική ανάγνωση και η ποινή επανάληψης του S1 μπορεί να μειώνει επαναλαμβανόμενα ηχητικά μοτίβα. Η κανονικοποίηση της αντιληπτής έντασης εξόδου είναι διαφορετική ρύθμιση και δεν έχει επίδραση στο S1. Εξετάστε την προφορά, τα όρια των φράσεων, τους επαναλαμβανόμενους ήχους και την επιθυμητή συναισθηματική μεταβολή πριν συναρμολογήσετε το τελικό απόσπασμα και έπειτα αναθεωρήστε τη συγκεκριμένη φράση ή αναφορά που χρειάζεται προσοχή.",
    "alias_of": null,
    "aliases": [],
    "author": "Fish Audio",
    "available": null,
    "canonical_model": "fish-audio/s1",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "speech"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00003",
            "amount_unit": "usd_per_audio_input_utf8_byte",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "audio input utf8 byte",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per audio input utf8 byte",
            "quantity": "1",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_utf8_byte"
          }
        ],
        "summary": "Πλήρης τιμολόγηση της διαμόρφωσης στις λεπτομέρειες."
      }
    ],
    "ctx": null,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "ca1892881aa6bc927745",
        "label": "Fish Audio: S1",
        "profiles": [
          {
            "basis": "",
            "dimensions": {
              "conditions": "Προεπιλεγμένη διαμόρφωση"
            },
            "label": "Fish Audio: S1 · Προεπιλεγμένη διαμόρφωση",
            "units": [
              {
                "amount": "0.000030",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "key": "e7b3eb5a7636763feb8a9472",
                "label": "Input UTF-8 bytes",
                "public_unit_label": "per input UTF-8 byte",
                "quantity": "1",
                "rate_role": "declared_tariff_rate",
                "side": "in",
                "unit": "input_utf8_byte"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "speech"
    ],
    "id": "fish-audio/s1",
    "input": [
      "text"
    ],
    "kind": "speech",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Save all complete binary bytes and all original headers; keep full JSON if returned. Actual operation/asset IDs are preserved.",
            "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": "Διατηρήστε το αρχικό operation_id/X-Client-Request-ID και την αρχική απόκριση. Διαβάστε πραγματικές εγγραφές εργασιών και αρχείων πολυμέσων που σας ανήκουν, χωρίς επανυποβολή· δεν κατασκευάζεται ειδικό URL περιοδικού ελέγχου ήχου."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "actual UTF-8 script",
                  "exact supported voice"
                ]
              }
            ],
            "outputs": {
              "all_results": "Αποθηκεύστε όλα τα byte των πλήρων δυαδικών δεδομένων και όλες τις αρχικές κεφαλίδες· διατηρήστε ολόκληρο το JSON, αν επιστραφεί. Διατηρούνται τα πραγματικά ID λειτουργιών και αρχείων πολυμέσων.",
              "family": "audio",
              "fields": [
                {
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "πραγματικός δηλωμένος δυαδικός ήχος"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "enum": [
                  "fish-audio/s1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "min_length": 1,
                "name": "input",
                "quantity_unit": "decoded input UTF-8 bytes",
                "required": true,
                "type": "string"
              },
              {
                "availability": "saved_exact_supplier_example",
                "enum": [
                  "b347db033a6549378b48d00acb0d06cd"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "pcm",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "properties": {
                "input": {
                  "minLength": 1,
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "fish-audio/s1"
                  ],
                  "type": "string"
                },
                "response_format": {
                  "default": "pcm",
                  "enum": [
                    "mp3",
                    "pcm"
                  ],
                  "type": "string"
                },
                "voice": {
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input",
                "voice"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "Hello world",
                "model": "fish-audio/s1",
                "response_format": "mp3",
                "voice": "b347db033a6549378b48d00acb0d06cd"
              },
              "content_type": "application/json"
            }
          },
          "hints": [
            "Χρησιμοποιήστε το ακριβές μοντέλο και τα τεκμηριωμένα πεδία εισόδου.",
            "Διατηρήστε ολόκληρη την απόκριση, κάθε πραγματική έξοδο και τα αρχικά ID που επιστρέφονται."
          ],
          "input": {
            "content_type": "application/json",
            "default_response_format": "pcm",
            "material_types": [
              "text"
            ],
            "native_byte_quote_controls": "Οι μη κενές οδηγίες και η είσοδος εναλλαγών πολλών ομιλητών απορρίπτονται από αυτή την ακριβή διαδρομή προσφοράς βάσει byte, μέχρι να δηλωθεί το πρόσθετο χρεώσιμο κείμενο.",
            "quantity": "Τα byte UTF-8 της μοναδικής αποκωδικοποιημένης συμβολοσειράς εισόδου· χωρίς αφαίρεση κενών από τα άκρα ή κανονικοποίηση",
            "required": [
              "model",
              "input",
              "voice"
            ],
            "response_format": [
              "mp3",
              "pcm"
            ],
            "voice_ids": [
              "b347db033a6549378b48d00acb0d06cd"
            ],
            "voice_list_exhaustive": false
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "Το πραγματικό task_id που επιστράφηκε ή μια εγγραφή στη βιβλιοθήκη πολυμέσων",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID and original response. Read actual owned task/asset records without resubmitting; no dedicated audio poll URL is constructed."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "all_results": true,
            "family": "audio",
            "format": "actual MP3 or PCM bytes and MIME",
            "response": "complete raw audio bytes plus response headers"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quantity_basis": "actual physical units",
              "quoted_unit": "per audio input utf8 byte"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_audio_input_utf8_byte",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "audio input utf8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per audio input utf8 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}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'fish-audio/s1', 'input': 'Hello world', 'voice': 'b347db033a6549378b48d00acb0d06cd', 'response_format': 'mp3'}\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# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\n",
            "label": "curl · exact native body and complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Use the exact model and documented input fields.",
          "Keep the complete response, every actual output and original returned IDs."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Озвучка текста",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_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": {
              "quantity_basis": "actual physical units",
              "quoted_unit": "per audio input utf8 byte"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_audio_input_utf8_byte",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "audio input utf8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per audio input utf8 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/s1",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.00003",
            "amount_unit": "usd_per_audio_input_utf8_byte",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "audio input utf8 byte",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per audio input utf8 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/s1",
        "request_model_id": "fish-audio/s1",
        "route_label": "Ultra"
      }
    ],
    "name": "Fish Audio: S1",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "not_character_or_token_count": true,
          "quoted_unit": "1000000_UTF8_bytes",
          "retirement_date": "2026-12-31"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.000030",
            "amount_unit": "usd_per_input_utf8_byte",
            "conditions": {
              "not_character_or_token_count": true,
              "quoted_unit": "1000000_UTF8_bytes",
              "retirement_date": "2026-12-31"
            },
            "key": "base",
            "label": "base",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_utf8_byte"
          }
        ]
      }
    ],
    "public_id": "fish-audio/s1",
    "short": "Το Fish Audio S1 μετατρέπει πολύγλωσσα κείμενα εκφώνησης σε εκφραστικό ήχο ενός ομιλητή, χρησιμοποιώντας αναφορές φωνής και συναισθηματικές ενδείξεις σε παρενθέσεις. Χρησιμοποιήστε το για αφήγηση, σύντομες προφορικές οδηγίες ή φράσεις χαρακτήρων, με ελέγχους μορφής και προσωδίας για τον τελικό ήχο."
  },
  "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 S1 μετατρέπει πολύγλωσσα κείμενα εκφώνησης σε εκφραστικό ήχο ενός ομιλητή, χρησιμοποιώντας αναφορές φωνής και συναισθηματικές ενδείξεις σε παρενθέσεις. Χρησιμοποιήστε το για αφήγηση, σύντομες προφορικές οδηγίες ή φράσεις χαρακτήρων, με ελέγχους μορφής και προσωδίας για τον τελικό ήχο.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "445147f2b8f9def316a0ddca9b2328e880ed4ae9cb7e9729f551c7f48f67921f",
    "renderer_sha256": "3ed36f7af4f78822bafbd174fdcaed7b698a18a86efe254253d37f1b098a7566"
  },
  "sourceRevision": "43b34b1a21abd5f15c4fa0755912d277d894a94626015d7ee48e95f05fb600fb"
}
