{
  "aboutHtml": "<p>Το Gemini 3.1 Flash TTS Preview μετατρέπει κείμενο σε ομιλία. Προορίζεται για φυσική φωνητική απόδοση με έλεγχο της αφήγησης μέσω οδηγιών κειμένου. Ο τρόπος εκφώνησης μπορεί να καθορίζεται μαζί με τις οδηγίες ομιλίας, ενώ οι εκφραστικές ετικέτες ήχου βοηθούν στην απόδοση της επιθυμητής εκφοράς.</p><h4>Το κείμενο γίνεται ήχος</h4><p>Η είσοδος αυτού του μοντέλου είναι <strong>κείμενο</strong> και η έξοδος <strong>ηχογράφηση</strong>. Ο μέγιστος όγκος εισόδου είναι <strong>8 192 token</strong> και εξόδου <strong>16 384 token</strong>. Προορίζεται για σύνθεση ομιλίας από προετοιμασμένο κείμενο· δεν είναι κανονικό μοντέλο απαντήσεων κειμένου ή απομαγνητοφώνησης παρεχόμενης ηχογράφησης.</p><p>Προβλέπονται εκφώνηση με μία φωνή και διάλογοι με πολλούς ομιλητές. Ο έλεγχος εκφώνησης βασίζεται σε οδηγίες: μπορεί να περιγραφεί ο χαρακτήρας ανάγνωσης και η εκφραστικότητα των ατάκων. Για επαναλαμβανόμενες εργασίες ομιλίας, ο κατασκευαστής αναφέρει μαζική δημιουργία.</p><h4>Μορφή αποτελέσματος και ειδίκευση</h4><p>Η αρχική μορφή μιας κανονικής απάντησης είναι <strong>PCM χωρίς κεφαλίδα WAV</strong>. Αυτό αποτελεί σημαντικό χαρακτηριστικό της συγκεκριμένης προκαταρκτικής έκδοσης: τα επιστρεφόμενα bytes δεν μπορούν να θεωρούνται αυτόματα ολοκληρωμένο αρχείο WAV.</p><p>Η κάρτα του μοντέλου δεν δηλώνει προσωρινή αποθήκευση συμφραζομένων, εκτέλεση κώδικα, αναζήτηση σε αρχεία, κλήσεις συναρτήσεων, τεκμηρίωση μέσω αναζήτησης, Google Maps, δημιουργία εικόνων, δομημένες απαντήσεις κειμένου, Thinking ή ανάγνωση περιεχομένου διευθύνσεων ιστού. Η σύνθεση ομιλίας είναι η εξειδικευμένη εργασία εξόδου του· οι δυνατότητες των μοντέλων κειμένου δεν μεταφέρονται σε αυτό.</p><h4>Προκαταρκτική έκδοση</h4><p>Το <code>gemini-3.1-flash-tts-preview</code> ανήκει στις παλαιότερες προκαταρκτικές εκδόσεις ομιλίας. Οι τρόποι ελέγχου φωνής και η μορφή ήχου του πρέπει να εξετάζονται χωριστά από μεταγενέστερα μοντέλα TTS. Για αυτή την έκδοση δεν δηλώνονται δημιουργία νέας φωνητικής ταυτότητας και αναπαραγωγή φωνής από δείγμα· ο ακριβής αριθμός υποστηριζόμενων γλωσσών δεν αναφέρεται στην κάρτα της.</p><p>Οι περιγραφόμενες δυνατότητες αφορούν το ίδιο το μοντέλο. Ο συγκεκριμένος τρόπος παροχής κειμένου και ρυθμίσεων ομιλητών και λήψης αρχείου ήχου καθορίζεται από την υποστηριζόμενη μέθοδο ομιλίας.</p>",
  "aboutText": "Το Gemini 3.1 Flash TTS Preview μετατρέπει κείμενο σε ομιλία. Προορίζεται για φυσική φωνητική απόδοση με έλεγχο της αφήγησης μέσω οδηγιών κειμένου. Ο τρόπος εκφώνησης μπορεί να καθορίζεται μαζί με τις οδηγίες ομιλίας, ενώ οι εκφραστικές ετικέτες ήχου βοηθούν στην απόδοση της επιθυμητής εκφοράς.\n\n### Το κείμενο γίνεται ήχος\n\nΗ είσοδος αυτού του μοντέλου είναι **κείμενο** και η έξοδος **ηχογράφηση**. Ο μέγιστος όγκος εισόδου είναι **8 192 token** και εξόδου **16 384 token**. Προορίζεται για σύνθεση ομιλίας από προετοιμασμένο κείμενο· δεν είναι κανονικό μοντέλο απαντήσεων κειμένου ή απομαγνητοφώνησης παρεχόμενης ηχογράφησης.\n\nΠροβλέπονται εκφώνηση με μία φωνή και διάλογοι με πολλούς ομιλητές. Ο έλεγχος εκφώνησης βασίζεται σε οδηγίες: μπορεί να περιγραφεί ο χαρακτήρας ανάγνωσης και η εκφραστικότητα των ατάκων. Για επαναλαμβανόμενες εργασίες ομιλίας, ο κατασκευαστής αναφέρει μαζική δημιουργία.\n\n### Μορφή αποτελέσματος και ειδίκευση\n\nΗ αρχική μορφή μιας κανονικής απάντησης είναι **PCM χωρίς κεφαλίδα WAV**. Αυτό αποτελεί σημαντικό χαρακτηριστικό της συγκεκριμένης προκαταρκτικής έκδοσης: τα επιστρεφόμενα bytes δεν μπορούν να θεωρούνται αυτόματα ολοκληρωμένο αρχείο WAV.\n\nΗ κάρτα του μοντέλου δεν δηλώνει προσωρινή αποθήκευση συμφραζομένων, εκτέλεση κώδικα, αναζήτηση σε αρχεία, κλήσεις συναρτήσεων, τεκμηρίωση μέσω αναζήτησης, Google Maps, δημιουργία εικόνων, δομημένες απαντήσεις κειμένου, Thinking ή ανάγνωση περιεχομένου διευθύνσεων ιστού. Η σύνθεση ομιλίας είναι η εξειδικευμένη εργασία εξόδου του· οι δυνατότητες των μοντέλων κειμένου δεν μεταφέρονται σε αυτό.\n\n### Προκαταρκτική έκδοση\n\nΤο `gemini-3.1-flash-tts-preview` ανήκει στις παλαιότερες προκαταρκτικές εκδόσεις ομιλίας. Οι τρόποι ελέγχου φωνής και η μορφή ήχου του πρέπει να εξετάζονται χωριστά από μεταγενέστερα μοντέλα TTS. Για αυτή την έκδοση δεν δηλώνονται δημιουργία νέας φωνητικής ταυτότητας και αναπαραγωγή φωνής από δείγμα· ο ακριβής αριθμός υποστηριζόμενων γλωσσών δεν αναφέρεται στην κάρτα της.\n\nΟι περιγραφόμενες δυνατότητες αφορούν το ίδιο το μοντέλο. Ο συγκεκριμένος τρόπος παροχής κειμένου και ρυθμίσεων ομιλητών και λήψης αρχείου ήχου καθορίζεται από την υποστηριζόμενη μέθοδο ομιλίας.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "57506f1a45157c39efa8dda5acb6c239829ca19fa188b34be731177e69bb486f",
    "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\">G</span><h2 id=\"sheet-title\">Gemini 3.1 Flash Tts Preview</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Κλείσιμο\">×</button></div><div class=\"idline\"><span>Google /</span><code>gemini-3.1-flash-tts-preview</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=\"Core|speech|/v1/audio/speech|gemini-3.1-flash-tts-preview\">Σύνθεση ομιλίας</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\">Μοντέλο ομιλίας της Google για φωνητική απόδοση κειμένου με έλεγχο του τρόπου αφήγησης και εκφραστικές ετικέτες ήχου.</p><dl class=\"card-io\" data-card-io><div><dt>Αποδεκτές είσοδοι</dt><dd>Κείμενο</dd></div><div><dt>Αποτελέσματα</dt><dd>speech</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>Το Gemini 3.1 Flash TTS Preview μετατρέπει κείμενο σε ομιλία. Προορίζεται για φυσική φωνητική απόδοση με έλεγχο της αφήγησης μέσω οδηγιών κειμένου. Ο τρόπος εκφώνησης μπορεί να καθορίζεται μαζί με τις οδηγίες ομιλίας, ενώ οι εκφραστικές ετικέτες ήχου βοηθούν στην απόδοση της επιθυμητής εκφοράς.</p><h4>Το κείμενο γίνεται ήχος</h4><p>Η είσοδος αυτού του μοντέλου είναι <strong>κείμενο</strong> και η έξοδος <strong>ηχογράφηση</strong>. Ο μέγιστος όγκος εισόδου είναι <strong>8 192 token</strong> και εξόδου <strong>16 384 token</strong>. Προορίζεται για σύνθεση ομιλίας από προετοιμασμένο κείμενο· δεν είναι κανονικό μοντέλο απαντήσεων κειμένου ή απομαγνητοφώνησης παρεχόμενης ηχογράφησης.</p><p>Προβλέπονται εκφώνηση με μία φωνή και διάλογοι με πολλούς ομιλητές. Ο έλεγχος εκφώνησης βασίζεται σε οδηγίες: μπορεί να περιγραφεί ο χαρακτήρας ανάγνωσης και η εκφραστικότητα των ατάκων. Για επαναλαμβανόμενες εργασίες ομιλίας, ο κατασκευαστής αναφέρει μαζική δημιουργία.</p><h4>Μορφή αποτελέσματος και ειδίκευση</h4><p>Η αρχική μορφή μιας κανονικής απάντησης είναι <strong>PCM χωρίς κεφαλίδα WAV</strong>. Αυτό αποτελεί σημαντικό χαρακτηριστικό της συγκεκριμένης προκαταρκτικής έκδοσης: τα επιστρεφόμενα bytes δεν μπορούν να θεωρούνται αυτόματα ολοκληρωμένο αρχείο WAV.</p><p>Η κάρτα του μοντέλου δεν δηλώνει προσωρινή αποθήκευση συμφραζομένων, εκτέλεση κώδικα, αναζήτηση σε αρχεία, κλήσεις συναρτήσεων, τεκμηρίωση μέσω αναζήτησης, Google Maps, δημιουργία εικόνων, δομημένες απαντήσεις κειμένου, Thinking ή ανάγνωση περιεχομένου διευθύνσεων ιστού. Η σύνθεση ομιλίας είναι η εξειδικευμένη εργασία εξόδου του· οι δυνατότητες των μοντέλων κειμένου δεν μεταφέρονται σε αυτό.</p><h4>Προκαταρκτική έκδοση</h4><p>Το <code>gemini-3.1-flash-tts-preview</code> ανήκει στις παλαιότερες προκαταρκτικές εκδόσεις ομιλίας. Οι τρόποι ελέγχου φωνής και η μορφή ήχου του πρέπει να εξετάζονται χωριστά από μεταγενέστερα μοντέλα TTS. Για αυτή την έκδοση δεν δηλώνονται δημιουργία νέας φωνητικής ταυτότητας και αναπαραγωγή φωνής από δείγμα· ο ακριβής αριθμός υποστηριζόμενων γλωσσών δεν αναφέρεται στην κάρτα της.</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 · Σύνθεση ομιλίας</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>speech</code></dd></div><div><dt>Μορφή εξόδου</dt><dd>εγγενή byte ήχου ή σύνδεσμοι αρχείων πολυμέσων σε JSON</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>gemini-3.1-flash-tts-preview</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=\"source_interface\"><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">voice</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Προαιρετικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>Kore</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"known\"><span class=\"card-cell-label\">Προεπιλογή</span>Kore</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>, wav, json</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"known\"><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\">stream_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>audio</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Συνδυασμοί υλικών εισόδου</summary><p class=\"note-s\"><b>text_to_speech</b> · Υποχρεωτικό: input</p></details><details class=\"note-s\" data-method-contract><summary>Παράμετροι και κύκλος ζωής μεθόδου</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Παράμετρος</th><th>Σύμβαση</th></tr></thead><tbody><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>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>required</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>null</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>optional_controls</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>null</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\">Οι δομές και τα ID των μεθόδων είναι ακριβή· η δυνατότητα του προμηθευτή είναι ξεχωριστή από την αποδοχή αιτημάτων.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Τιμολόγηση</h3><h4>Χρεώσεις μεθόδων Ailoot</h4><section class=\"meth\" data-route=\"Core\"><header><b><span class=\"alias\">Ailoot</span> Σύνθεση ομιλίας</b><code>POST /v1/audio/speech</code></header><dl><div><dt>Είσοδος</dt><dd>0,001 $ <em>/ 1K</em></dd></div><div><dt>Έξοδος</dt><dd>0,02 $ <em>/ 1K</em></dd></div></dl></section><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 · Σύνθεση ομιλίας</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-283-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-283-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-283-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-283-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_TEXT_FILE:?Set your actual UTF-8 narration script}&quot;\nexport AILOOT_TEXT_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;gemini-3.1-flash-tts-preview&quot;, &quot;input&quot;: &quot;&quot;}&#39;)\nf=Path(os.environ[&quot;AILOOT_TEXT_FILE&quot;])\nif not f.is_file():raise SystemExit(&quot;Choose your actual UTF-8 source material&quot;)\ntext=f.read_text(encoding=&quot;utf-8&quot;)\nif not text.strip():raise SystemExit(&quot;Source material must contain text&quot;)\np[&quot;input&quot;]=text\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o speech.wav\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Λήψη και αποθήκευση αποτελεσμάτων</h3><h4>Ailoot · Σύνθεση ομιλίας</h4><p class=\"note-s\">εγγενή byte ήχου ή σύνδεσμοι αρχείων πολυμέσων σε JSON</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 ήχου με τον πραγματικό Content-Type· το response_format=json ή οι πολλαπλές έξοδοι επιστρέφουν όλους τους συνδέσμους που σας ανήκουν. Δεν εκτελείται ζητούμενη μετατροπή σε MP3/Opus/AAC/FLAC/PCM ή SSE.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Αν χρειάζεται έλεγχος της αρχικής απάντησης</h5><p class=\"note-s\">Διατηρήστε το αρχικό operation_id/X-Client-Request-ID για τη συμφωνία των εγγραφών χωρίς νέα υποβολή· δεν υπάρχει ειδική διαδρομή περιοδικού ελέγχου για τον ήχο.</p></div><details class=\"card-about\" data-output-fields><summary>Πεδία απάντησης</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Πεδίο</th><th>Τύπος</th></tr></thead><tbody><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">binary native 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\">model</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">response_id</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>string</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">actual_count</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>integer</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">data[]</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span>owned audio asset link</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Σφάλματα και επόμενα βήματα</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Απάντηση</th><th>Συνθήκη</th><th>Επόμενο βήμα</th></tr></thead><tbody><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Μη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span><code>server_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Η απόκριση που επιστράφηκε αναφέρει ότι η λειτουργία ή το αποτέλεσμα χρειάζεται έλεγχο</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διατηρήστε το αρχικό ID της λειτουργίας/εργασίας που επιστράφηκε, τις κεφαλίδες του αιτήματος και την απόκριση· συνεχίστε με τις υποστηριζόμενες αναγνώσεις αυτής της αρχικής λειτουργίας. Μην υποβάλετε ξανά το αίτημα δημιουργίας.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Εναλλακτικά ονόματα</h3><h4>Εναλλακτικά ονόματα μοντέλου</h4><p class=\"note-s\"><span data-model-alias-route=\"Core\"><b>Ailoot</b> <a href=\"#m=gemini-3.1-flash-tts-preview&amp;route=Core&amp;caller=gemini-3.1-flash-tts-preview&amp;fmt=speech\"><code>gemini-3.1-flash-tts-preview</code></a></span></p><h4>Εναλλακτικές διαδρομές μεθόδων</h4><p class=\"note-s\">Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.</p><h4>Σχετικά ID μοντέλων</h4><p class=\"note-s\"><a href=\"#m=gemini-3.1-flash-tts-preview&amp;route=Core&amp;caller=gemini-3.1-flash-tts-preview&amp;fmt=speech\"><code>gemini-3.1-flash-tts-preview</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "gemini-3.1-flash-tts-preview",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "gemini-3.1-flash-tts-preview",
        "route_label": "Core"
      },
      "method_key": "Core|speech|/v1/audio/speech|gemini-3.1-flash-tts-preview",
      "ordinal": 0,
      "rawMethod": {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "A single output defaults to native audio bytes with actualContent-Type; response_format=json or multiple outputs returns all owned links. No requested MP3/Opus/AAC/FLAC/PCM conversion or SSE.",
            "errors": [
              {
                "code": null,
                "condition": "Μη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου",
                "http_status": 400,
                "recovery": "Διορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Η απόκριση που επιστράφηκε αναφέρει ότι η λειτουργία ή το αποτέλεσμα χρειάζεται έλεγχο",
                "http_status": null,
                "recovery": "Διατηρήστε το αρχικό ID της λειτουργίας/εργασίας που επιστράφηκε, τις κεφαλίδες του αιτήματος και την απόκριση· συνεχίστε με τις υποστηριζόμενες αναγνώσεις αυτής της αρχικής λειτουργίας. Μην υποβάλετε ξανά το αίτημα δημιουργίας.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Διατηρήστε το αρχικό operation_id/X-Client-Request-ID για τη συμφωνία των εγγραφών χωρίς νέα υποβολή· δεν υπάρχει ειδική διαδρομή περιοδικού ελέγχου για τον ήχο."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "input"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_speech"
            ],
            "outputs": {
              "all_results": "Η μία έξοδος επιστρέφει από προεπιλογή εγγενή byte ήχου με τον πραγματικό Content-Type· το response_format=json ή οι πολλαπλές έξοδοι επιστρέφουν όλους τους συνδέσμους που σας ανήκουν. Δεν εκτελείται ζητούμενη μετατροπή σε MP3/Opus/AAC/FLAC/PCM ή SSE.",
              "family": "audio",
              "fields": [
                {
                  "description": null,
                  "name": "binary native audio",
                  "type": "bytes"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "response_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "actual_count",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": "owned audio asset link"
                }
              ],
              "format": "εγγενή byte ήχου ή σύνδεσμοι αρχείων πολυμέσων σε JSON"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "gemini-3.1-flash-tts-preview"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "Kore",
                "default_known": true,
                "enum": [
                  "Kore"
                ],
                "enum_known": true,
                "name": "voice",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "",
                "default_known": true,
                "enum": [
                  "",
                  "wav",
                  "json"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "audio"
                ],
                "enum_known": true,
                "name": "stream_format",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "SSE",
              "mp3/opus/aac/flac/pcm requestedtranscoding"
            ]
          },
          "hints": [
            "Οι δομές και τα ID των μεθόδων είναι ακριβή· η δυνατότητα του προμηθευτή είναι ξεχωριστή από την αποδοχή αιτημάτων."
          ],
          "input": {
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": null
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "Το πραγματικό task_id που επιστράφηκε ή μια εγγραφή στη βιβλιοθήκη πολυμέσων",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "operation_modes": [
            "audio_speech"
          ],
          "output": {
            "family": [
              "speech"
            ],
            "format": null,
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": null,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 narration script}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"gemini-3.1-flash-tts-preview\", \"input\": \"\"}')\nf=Path(os.environ[\"AILOOT_TEXT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 source material\")\ntext=f.read_text(encoding=\"utf-8\")\nif not text.strip():raise SystemExit(\"Source material must contain text\")\np[\"input\"]=text\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o speech.wav\n",
            "label": "Synthesize your actual script",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": 1,
        "input": [
          "text"
        ],
        "label": "Σύνθεση ομιλίας",
        "max_out": null,
        "max_tool_calls": null,
        "out": 20,
        "output": [
          "speech"
        ],
        "path": "/v1/audio/speech",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 1,
                "amount_unit": "usd_per_million_tokens",
                "key": "in",
                "label": "Input",
                "side": "in"
              },
              {
                "amount": 20,
                "amount_unit": "usd_per_million_tokens",
                "key": "out",
                "label": "Output",
                "side": "out"
              }
            ]
          }
        ],
        "request_model_id": "gemini-3.1-flash-tts-preview",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "token",
        "units": []
      }
    }
  ],
  "model_id": "gemini-3.1-flash-tts-preview",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "24f7b17e0551827c942762981528cff772a4d3ebcc1c00f06b3ee4db0d6ba90e",
    "input_html_sha256": "99f5fcaea66447f3eb58870e4d04537d87f3d78b65ca5f264aba9863e7bf9f94",
    "private_audit_sha256": "6751b647e5bb2bfab58eff0ae0aa46f6bd99cbb36c67611aef3867d41d0588b9",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/el/gemini-3-1-flash-tts-preview/",
    "description": "Μοντέλο ομιλίας της Google για φωνητική απόδοση κειμένου με έλεγχο του τρόπου αφήγησης και εκφραστικές ετικέτες ήχου.",
    "locale": "el",
    "md_url": "https://ailoot.ai/models/el/gemini-3-1-flash-tts-preview/index.md",
    "title": "Gemini 3.1 Flash Tts Preview — Ailoot",
    "url": "https://ailoot.ai/models/el/gemini-3-1-flash-tts-preview/"
  },
  "rawModel": {
    "about": "Το Gemini 3.1 Flash TTS Preview μετατρέπει κείμενο σε ομιλία. Προορίζεται για φυσική φωνητική απόδοση με έλεγχο της αφήγησης μέσω οδηγιών κειμένου. Ο τρόπος εκφώνησης μπορεί να καθορίζεται μαζί με τις οδηγίες ομιλίας, ενώ οι εκφραστικές ετικέτες ήχου βοηθούν στην απόδοση της επιθυμητής εκφοράς.\n\n### Το κείμενο γίνεται ήχος\n\nΗ είσοδος αυτού του μοντέλου είναι **κείμενο** και η έξοδος **ηχογράφηση**. Ο μέγιστος όγκος εισόδου είναι **8 192 token** και εξόδου **16 384 token**. Προορίζεται για σύνθεση ομιλίας από προετοιμασμένο κείμενο· δεν είναι κανονικό μοντέλο απαντήσεων κειμένου ή απομαγνητοφώνησης παρεχόμενης ηχογράφησης.\n\nΠροβλέπονται εκφώνηση με μία φωνή και διάλογοι με πολλούς ομιλητές. Ο έλεγχος εκφώνησης βασίζεται σε οδηγίες: μπορεί να περιγραφεί ο χαρακτήρας ανάγνωσης και η εκφραστικότητα των ατάκων. Για επαναλαμβανόμενες εργασίες ομιλίας, ο κατασκευαστής αναφέρει μαζική δημιουργία.\n\n### Μορφή αποτελέσματος και ειδίκευση\n\nΗ αρχική μορφή μιας κανονικής απάντησης είναι **PCM χωρίς κεφαλίδα WAV**. Αυτό αποτελεί σημαντικό χαρακτηριστικό της συγκεκριμένης προκαταρκτικής έκδοσης: τα επιστρεφόμενα bytes δεν μπορούν να θεωρούνται αυτόματα ολοκληρωμένο αρχείο WAV.\n\nΗ κάρτα του μοντέλου δεν δηλώνει προσωρινή αποθήκευση συμφραζομένων, εκτέλεση κώδικα, αναζήτηση σε αρχεία, κλήσεις συναρτήσεων, τεκμηρίωση μέσω αναζήτησης, Google Maps, δημιουργία εικόνων, δομημένες απαντήσεις κειμένου, Thinking ή ανάγνωση περιεχομένου διευθύνσεων ιστού. Η σύνθεση ομιλίας είναι η εξειδικευμένη εργασία εξόδου του· οι δυνατότητες των μοντέλων κειμένου δεν μεταφέρονται σε αυτό.\n\n### Προκαταρκτική έκδοση\n\nΤο `gemini-3.1-flash-tts-preview` ανήκει στις παλαιότερες προκαταρκτικές εκδόσεις ομιλίας. Οι τρόποι ελέγχου φωνής και η μορφή ήχου του πρέπει να εξετάζονται χωριστά από μεταγενέστερα μοντέλα TTS. Για αυτή την έκδοση δεν δηλώνονται δημιουργία νέας φωνητικής ταυτότητας και αναπαραγωγή φωνής από δείγμα· ο ακριβής αριθμός υποστηριζόμενων γλωσσών δεν αναφέρεται στην κάρτα της.\n\nΟι περιγραφόμενες δυνατότητες αφορούν το ίδιο το μοντέλο. Ο συγκεκριμένος τρόπος παροχής κειμένου και ρυθμίσεων ομιλητών και λήψης αρχείου ήχου καθορίζεται από την υποστηριζόμενη μέθοδο ομιλίας.",
    "alias_of": null,
    "aliases": [],
    "author": "Google",
    "ctx": null,
    "formats": [
      "speech"
    ],
    "id": "gemini-3.1-flash-tts-preview",
    "input": [
      "text"
    ],
    "kind": "speech",
    "max_out": null,
    "methods": [
      {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "A single output defaults to native audio bytes with actualContent-Type; response_format=json or multiple outputs returns all owned links. No requested MP3/Opus/AAC/FLAC/PCM conversion or SSE.",
            "errors": [
              {
                "code": null,
                "condition": "Μη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου",
                "http_status": 400,
                "recovery": "Διορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Η απόκριση που επιστράφηκε αναφέρει ότι η λειτουργία ή το αποτέλεσμα χρειάζεται έλεγχο",
                "http_status": null,
                "recovery": "Διατηρήστε το αρχικό ID της λειτουργίας/εργασίας που επιστράφηκε, τις κεφαλίδες του αιτήματος και την απόκριση· συνεχίστε με τις υποστηριζόμενες αναγνώσεις αυτής της αρχικής λειτουργίας. Μην υποβάλετε ξανά το αίτημα δημιουργίας.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Διατηρήστε το αρχικό operation_id/X-Client-Request-ID για τη συμφωνία των εγγραφών χωρίς νέα υποβολή· δεν υπάρχει ειδική διαδρομή περιοδικού ελέγχου για τον ήχο."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "input"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_speech"
            ],
            "outputs": {
              "all_results": "Η μία έξοδος επιστρέφει από προεπιλογή εγγενή byte ήχου με τον πραγματικό Content-Type· το response_format=json ή οι πολλαπλές έξοδοι επιστρέφουν όλους τους συνδέσμους που σας ανήκουν. Δεν εκτελείται ζητούμενη μετατροπή σε MP3/Opus/AAC/FLAC/PCM ή SSE.",
              "family": "audio",
              "fields": [
                {
                  "description": null,
                  "name": "binary native audio",
                  "type": "bytes"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "response_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "actual_count",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": "owned audio asset link"
                }
              ],
              "format": "εγγενή byte ήχου ή σύνδεσμοι αρχείων πολυμέσων σε JSON"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "gemini-3.1-flash-tts-preview"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "Kore",
                "default_known": true,
                "enum": [
                  "Kore"
                ],
                "enum_known": true,
                "name": "voice",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "",
                "default_known": true,
                "enum": [
                  "",
                  "wav",
                  "json"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "audio"
                ],
                "enum_known": true,
                "name": "stream_format",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "SSE",
              "mp3/opus/aac/flac/pcm requestedtranscoding"
            ]
          },
          "hints": [
            "Οι δομές και τα ID των μεθόδων είναι ακριβή· η δυνατότητα του προμηθευτή είναι ξεχωριστή από την αποδοχή αιτημάτων."
          ],
          "input": {
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": null
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "Το πραγματικό task_id που επιστράφηκε ή μια εγγραφή στη βιβλιοθήκη πολυμέσων",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "operation_modes": [
            "audio_speech"
          ],
          "output": {
            "family": [
              "speech"
            ],
            "format": null,
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": null,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 narration script}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"gemini-3.1-flash-tts-preview\", \"input\": \"\"}')\nf=Path(os.environ[\"AILOOT_TEXT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 source material\")\ntext=f.read_text(encoding=\"utf-8\")\nif not text.strip():raise SystemExit(\"Source material must contain text\")\np[\"input\"]=text\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o speech.wav\n",
            "label": "Synthesize your actual script",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": 1,
        "input": [
          "text"
        ],
        "label": "Σύνθεση ομιλίας",
        "max_out": null,
        "max_tool_calls": null,
        "out": 20,
        "output": [
          "speech"
        ],
        "path": "/v1/audio/speech",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 1,
                "amount_unit": "usd_per_million_tokens",
                "key": "in",
                "label": "Input",
                "side": "in"
              },
              {
                "amount": 20,
                "amount_unit": "usd_per_million_tokens",
                "key": "out",
                "label": "Output",
                "side": "out"
              }
            ]
          }
        ],
        "request_model_id": "gemini-3.1-flash-tts-preview",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "token",
        "units": []
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "gemini-3.1-flash-tts-preview",
        "request_model_id": "gemini-3.1-flash-tts-preview",
        "route_label": "Core"
      }
    ],
    "name": "Gemini 3.1 Flash Tts Preview",
    "price": {
      "in": 1,
      "in_label": null,
      "out": 20,
      "out_label": null,
      "sort_in": 1,
      "sort_out": 20,
      "varies": false
    },
    "short": "Μοντέλο ομιλίας της Google για φωνητική απόδοση κειμένου με έλεγχο του τρόπου αφήγησης και εκφραστικές ετικέτες ήχου."
  },
  "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": "Μοντέλο ομιλίας της Google για φωνητική απόδοση κειμένου με έλεγχο του τρόπου αφήγησης και εκφραστικές ετικέτες ήχου.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "663471878ac6eae24ebbe67ef62d73975be3af2916e0f40fa5a0bf3846a14d2f",
    "renderer_sha256": "3ed36f7af4f78822bafbd174fdcaed7b698a18a86efe254253d37f1b098a7566"
  },
  "sourceRevision": "a0ae2b15a94884f04e12838d3aca2532213e18486e2b5a972d3b78c975da1c2d"
}
