{
  "aboutHtml": "<p>Το Transcribe 1 είναι το γενικό μοντέλο μετατροπής ομιλίας σε κείμενο της Fish Audio για σύντομες ηχογραφήσεις. Δέχεται ένα αρχείο ήχου και επιστρέφει τις αναγνωρισμένες λέξεις ως κείμενο, μαζί με τη διάρκεια της ηχογράφησης, προαιρετικά χρονισμένα τμήματα και πληροφορίες γλώσσας όταν είναι γνωστές. Είναι χρήσιμο για μια σύντομη φωνητική σημείωση, μια προφορική οδηγία, ένα απόσπασμα ηχογράφησης ή ένα ηχητικό κλιπ που χρειάζεται ευανάγνωστη αναπαράσταση κειμένου.</p><p>Μια ενδεικτική ροή φωνητικών σημειώσεων διατηρεί την ηχογράφηση μαζί με την πλήρη απομαγνητοφώνηση και ένα αναγνωριστικό για το αρχικό κλιπ. Ένα μεταγενέστερο βήμα της εφαρμογής μπορεί να αναζητήσει μέσα σε αυτό το κείμενο, να οργανώσει τη σημείωση ή να δημιουργήσει περίληψη διατηρώντας την προφορική πηγή. Για μια εντολή, η απομαγνητοφώνηση παρέχει τις αναγνωρισμένες λέξεις στην εφαρμογή· κάθε ενέργεια αποτελεί ξεχωριστό βήμα ερμηνείας και εκτέλεσης. Για απόσπασμα συνέντευξης, καταγράψτε τη θέση του κλιπ στο πλήρες ηχητικό αρχείο ώστε ένα παράθεμα να μπορεί να ελεγχθεί στο σωστό σημείο.</p><p>Ο παραγωγός δέχεται WAV, MP3, AAC, συμπεριλαμβανομένων των M4A/MP4, FLAC και Ogg που περιέχει Opus ή Vorbis. Οι εγγραφές προγράμματος περιήγησης σε WebM πρέπει να μετατρέπονται σε Ogg/Opus, MP3 ή WAV για αυτό το μοντέλο· το Pro τεκμηριώνει εγγενή υποστήριξη πρόσθετων μορφών περιέκτη. Παρέχετε ένα αρχείο ήχου ανά αίτημα. Το τεκμηριωμένο όριο αιτήματος του βασικού μοντέλου είναι έως 50 MiB, με τα αρχεία MP3 και Opus κάτω από 25 MiB. Το μέγεθος αρχείου και η διάρκεια ηχογράφησης είναι διαφορετικά ζητήματα: ένα συμπιεσμένο αρχείο μπορεί να χωρά στο όριο μεταφόρτωσης αλλά να χρειάζεται υπερβολικά μεγάλο χρόνο επεξεργασίας.</p><p>Το Transcribe 1 σχεδιάστηκε για σύντομες ηχογραφήσεις. Ο παραγωγός συνιστά το Pro για ήχο μεγαλύτερης διάρκειας από λίγα λεπτά· ένα μεγάλο αίτημα στο βασικό μοντέλο μπορεί να αποτύχει αν υπερβεί το χρονικό όριο επεξεργασίας. Όταν προετοιμάζετε μια μεγαλύτερη πηγή για απομαγνητοφώνηση σύντομων κλιπ, διατηρήστε τη χρονική μετατόπιση έναρξης κάθε κλιπ και επιβεβαιώστε ότι η επιστρεφόμενη απομαγνητοφώνηση καλύπτει ολόκληρο το κλιπ πριν συνδυάσετε τα αποτελέσματα. Προσθέστε την αρχική μετατόπιση στους τοπικούς χρόνους των τμημάτων ώστε η πλοήγηση να παραμένει συνδεδεμένη με την πλήρη ηχογράφηση. Οι οδηγίες για το βασικό μοντέλο δεν πρέπει να ερμηνεύονται ως το ξεχωριστό όριο των 60 λεπτών του Pro.</p><p>Η απόκριση του παραγωγού περιλαμβάνει κείμενο, διάρκεια και τμήματα. Η διάρκεια εκφράζεται σε δευτερόλεπτα και η ευανάγνωστη πλήρης απομαγνητοφώνηση πρέπει να διατηρείται ως η κύρια διατύπωση του κλιπ. Οι χρονικές σημάνσεις είναι προαιρετικές: το ignore_timestamps έχει προεπιλογή true στο API του παραγωγού, ενώ το false ζητά τμήματα ανά λέξη με κείμενο και χρόνους έναρξης και λήξης σε δευτερόλεπτα. Το αίτημα χρονικής ευθυγράμμισης προσθέτει χρόνο επεξεργασίας. Ένας κενός πίνακας segments μπορεί να σημαίνει παράλειψη χρονισμού, απουσία ομιλίας ή προσωρινά μη διαθέσιμη ευθυγράμμιση, επομένως δεν πρέπει να ερμηνεύεται αυτόματα ως κενή πλήρης απομαγνητοφώνηση.</p><p>Τα τμήματα είναι συνήθως λέξεις ή ένας χαρακτήρας ή λίγοι χαρακτήρες στα κινεζικά και τα ιαπωνικά. Το κείμενό τους παραλείπει τη στίξη και μπορεί να κανονικοποιεί μια τιμή διαφορετικά από την πλήρη απομαγνητοφώνηση· δεν είναι αντίγραφο χαρακτήρα προς χαρακτήρα της ευανάγνωστης απόκρισης. Ένα τμήμα μπορεί να έχει τον ίδιο χρόνο έναρξης και λήξης. Χρησιμοποιήστε τα τμήματα για εντοπισμό θέσης στην ηχογράφηση ή προετοιμασία χρονισμένης προβολής και το πλήρες κείμενο όταν έχουν σημασία η διατύπωση και η στίξη. Διατηρήστε διακριτές τις δύο αναπαραστάσεις στο τελικό παραδοτέο.</p><p>Η γλώσσα ανιχνεύεται αυτόματα, είτε παρέχεται προαιρετική υπόδειξη γλώσσας είτε όχι. Ο παραγωγός τεκμηριώνει πεζούς κωδικούς ISO 639-1 για τις υποδείξεις και επιστρέφει κωδικό γλώσσας για τη λογική της εφαρμογής, μαζί με όνομα γλώσσας για προβολή όταν είναι γνωστό. Η απόκριση αναφέρει μία γλώσσα και όχι κάθε γλώσσα μιας ηχογράφησης που εναλλάσσει γλώσσες. Διατηρήστε την αρχική διατύπωση και τα διαθέσιμα μεταδεδομένα γλώσσας μαζί με το αποτέλεσμα, αντί να αντιμετωπίζετε το αίτημα απομαγνητοφώνησης ως λειτουργία μετάφρασης.</p><p>Για μια ροή υποτίτλων, ομαδοποιήστε διαδοχικά χρονισμένα τμήματα σε ευανάγνωστες ατάκες αντί να προβάλλετε μία λέξη κάθε φορά. Ένα χρήσιμο αποτέλεσμα είναι ένα αρχείο SRT ή WebVTT συνδεδεμένο με το αρχικό κλιπ, με όρια ατακών που ταιριάζουν στις παύσεις και με διαχειρίσιμη ποσότητα κειμένου στην οθόνη. Ελέγξτε για ελλείποντα χρονισμό και βεβαιωθείτε ότι η λήξη κάθε ατάκας έπεται της έναρξής της. Η ομαδοποίηση υποτίτλων και η μορφοποίηση αρχείων είναι βήματα της εφαρμογής που βασίζονται στην επιστρεφόμενη ευθυγράμμιση, και οι επιλογές προβολής πρέπει να ταιριάζουν στη συσκευή αναπαραγωγής και το κοινό.</p><p>Οι τεκμηριωμένες ρυθμίσεις του Transcribe 1 είναι ο ήχος, η υπόδειξη γλώσσας και η επιλογή χρονικών σημάνσεων. Οι δείκτες ομιλητών, οι δομημένες εναλλαγές ομιλητών, οι ρυθμίσεις συναισθηματικών συμβάντων και οι υποδείξεις αριθμού ομιλητών του Pro είναι ξεχωριστές δυνατότητες· δεν ανήκουν στην τεκμηριωμένη σύμβαση απόκρισης αυτού του βασικού μοντέλου. Επιλέξτε το απαιτούμενο παραδοτέο πριν από την επεξεργασία: απλό ευανάγνωστο κείμενο για μια σημείωση ή κείμενο μαζί με ευθυγράμμιση για πλοήγηση κατά την αναπαραγωγή και υπότιτλους. Η διατήρηση του αναγνωριστικού κλιπ, της απομαγνητοφώνησης και κάθε διαθέσιμου χρονισμού κάνει το αποτέλεσμα χρήσιμο για το επόμενο στάδιο της εφαρμογής.</p>",
  "aboutText": "Το Transcribe 1 είναι το γενικό μοντέλο μετατροπής ομιλίας σε κείμενο της Fish Audio για σύντομες ηχογραφήσεις. Δέχεται ένα αρχείο ήχου και επιστρέφει τις αναγνωρισμένες λέξεις ως κείμενο, μαζί με τη διάρκεια της ηχογράφησης, προαιρετικά χρονισμένα τμήματα και πληροφορίες γλώσσας όταν είναι γνωστές. Είναι χρήσιμο για μια σύντομη φωνητική σημείωση, μια προφορική οδηγία, ένα απόσπασμα ηχογράφησης ή ένα ηχητικό κλιπ που χρειάζεται ευανάγνωστη αναπαράσταση κειμένου.\n\nΜια ενδεικτική ροή φωνητικών σημειώσεων διατηρεί την ηχογράφηση μαζί με την πλήρη απομαγνητοφώνηση και ένα αναγνωριστικό για το αρχικό κλιπ. Ένα μεταγενέστερο βήμα της εφαρμογής μπορεί να αναζητήσει μέσα σε αυτό το κείμενο, να οργανώσει τη σημείωση ή να δημιουργήσει περίληψη διατηρώντας την προφορική πηγή. Για μια εντολή, η απομαγνητοφώνηση παρέχει τις αναγνωρισμένες λέξεις στην εφαρμογή· κάθε ενέργεια αποτελεί ξεχωριστό βήμα ερμηνείας και εκτέλεσης. Για απόσπασμα συνέντευξης, καταγράψτε τη θέση του κλιπ στο πλήρες ηχητικό αρχείο ώστε ένα παράθεμα να μπορεί να ελεγχθεί στο σωστό σημείο.\n\nΟ παραγωγός δέχεται WAV, MP3, AAC, συμπεριλαμβανομένων των M4A/MP4, FLAC και Ogg που περιέχει Opus ή Vorbis. Οι εγγραφές προγράμματος περιήγησης σε WebM πρέπει να μετατρέπονται σε Ogg/Opus, MP3 ή WAV για αυτό το μοντέλο· το Pro τεκμηριώνει εγγενή υποστήριξη πρόσθετων μορφών περιέκτη. Παρέχετε ένα αρχείο ήχου ανά αίτημα. Το τεκμηριωμένο όριο αιτήματος του βασικού μοντέλου είναι έως 50 MiB, με τα αρχεία MP3 και Opus κάτω από 25 MiB. Το μέγεθος αρχείου και η διάρκεια ηχογράφησης είναι διαφορετικά ζητήματα: ένα συμπιεσμένο αρχείο μπορεί να χωρά στο όριο μεταφόρτωσης αλλά να χρειάζεται υπερβολικά μεγάλο χρόνο επεξεργασίας.\n\nΤο Transcribe 1 σχεδιάστηκε για σύντομες ηχογραφήσεις. Ο παραγωγός συνιστά το Pro για ήχο μεγαλύτερης διάρκειας από λίγα λεπτά· ένα μεγάλο αίτημα στο βασικό μοντέλο μπορεί να αποτύχει αν υπερβεί το χρονικό όριο επεξεργασίας. Όταν προετοιμάζετε μια μεγαλύτερη πηγή για απομαγνητοφώνηση σύντομων κλιπ, διατηρήστε τη χρονική μετατόπιση έναρξης κάθε κλιπ και επιβεβαιώστε ότι η επιστρεφόμενη απομαγνητοφώνηση καλύπτει ολόκληρο το κλιπ πριν συνδυάσετε τα αποτελέσματα. Προσθέστε την αρχική μετατόπιση στους τοπικούς χρόνους των τμημάτων ώστε η πλοήγηση να παραμένει συνδεδεμένη με την πλήρη ηχογράφηση. Οι οδηγίες για το βασικό μοντέλο δεν πρέπει να ερμηνεύονται ως το ξεχωριστό όριο των 60 λεπτών του Pro.\n\nΗ απόκριση του παραγωγού περιλαμβάνει κείμενο, διάρκεια και τμήματα. Η διάρκεια εκφράζεται σε δευτερόλεπτα και η ευανάγνωστη πλήρης απομαγνητοφώνηση πρέπει να διατηρείται ως η κύρια διατύπωση του κλιπ. Οι χρονικές σημάνσεις είναι προαιρετικές: το ignore_timestamps έχει προεπιλογή true στο API του παραγωγού, ενώ το false ζητά τμήματα ανά λέξη με κείμενο και χρόνους έναρξης και λήξης σε δευτερόλεπτα. Το αίτημα χρονικής ευθυγράμμισης προσθέτει χρόνο επεξεργασίας. Ένας κενός πίνακας segments μπορεί να σημαίνει παράλειψη χρονισμού, απουσία ομιλίας ή προσωρινά μη διαθέσιμη ευθυγράμμιση, επομένως δεν πρέπει να ερμηνεύεται αυτόματα ως κενή πλήρης απομαγνητοφώνηση.\n\nΤα τμήματα είναι συνήθως λέξεις ή ένας χαρακτήρας ή λίγοι χαρακτήρες στα κινεζικά και τα ιαπωνικά. Το κείμενό τους παραλείπει τη στίξη και μπορεί να κανονικοποιεί μια τιμή διαφορετικά από την πλήρη απομαγνητοφώνηση· δεν είναι αντίγραφο χαρακτήρα προς χαρακτήρα της ευανάγνωστης απόκρισης. Ένα τμήμα μπορεί να έχει τον ίδιο χρόνο έναρξης και λήξης. Χρησιμοποιήστε τα τμήματα για εντοπισμό θέσης στην ηχογράφηση ή προετοιμασία χρονισμένης προβολής και το πλήρες κείμενο όταν έχουν σημασία η διατύπωση και η στίξη. Διατηρήστε διακριτές τις δύο αναπαραστάσεις στο τελικό παραδοτέο.\n\nΗ γλώσσα ανιχνεύεται αυτόματα, είτε παρέχεται προαιρετική υπόδειξη γλώσσας είτε όχι. Ο παραγωγός τεκμηριώνει πεζούς κωδικούς ISO 639-1 για τις υποδείξεις και επιστρέφει κωδικό γλώσσας για τη λογική της εφαρμογής, μαζί με όνομα γλώσσας για προβολή όταν είναι γνωστό. Η απόκριση αναφέρει μία γλώσσα και όχι κάθε γλώσσα μιας ηχογράφησης που εναλλάσσει γλώσσες. Διατηρήστε την αρχική διατύπωση και τα διαθέσιμα μεταδεδομένα γλώσσας μαζί με το αποτέλεσμα, αντί να αντιμετωπίζετε το αίτημα απομαγνητοφώνησης ως λειτουργία μετάφρασης.\n\nΓια μια ροή υποτίτλων, ομαδοποιήστε διαδοχικά χρονισμένα τμήματα σε ευανάγνωστες ατάκες αντί να προβάλλετε μία λέξη κάθε φορά. Ένα χρήσιμο αποτέλεσμα είναι ένα αρχείο SRT ή WebVTT συνδεδεμένο με το αρχικό κλιπ, με όρια ατακών που ταιριάζουν στις παύσεις και με διαχειρίσιμη ποσότητα κειμένου στην οθόνη. Ελέγξτε για ελλείποντα χρονισμό και βεβαιωθείτε ότι η λήξη κάθε ατάκας έπεται της έναρξής της. Η ομαδοποίηση υποτίτλων και η μορφοποίηση αρχείων είναι βήματα της εφαρμογής που βασίζονται στην επιστρεφόμενη ευθυγράμμιση, και οι επιλογές προβολής πρέπει να ταιριάζουν στη συσκευή αναπαραγωγής και το κοινό.\n\nΟι τεκμηριωμένες ρυθμίσεις του Transcribe 1 είναι ο ήχος, η υπόδειξη γλώσσας και η επιλογή χρονικών σημάνσεων. Οι δείκτες ομιλητών, οι δομημένες εναλλαγές ομιλητών, οι ρυθμίσεις συναισθηματικών συμβάντων και οι υποδείξεις αριθμού ομιλητών του Pro είναι ξεχωριστές δυνατότητες· δεν ανήκουν στην τεκμηριωμένη σύμβαση απόκρισης αυτού του βασικού μοντέλου. Επιλέξτε το απαιτούμενο παραδοτέο πριν από την επεξεργασία: απλό ευανάγνωστο κείμενο για μια σημείωση ή κείμενο μαζί με ευθυγράμμιση για πλοήγηση κατά την αναπαραγωγή και υπότιτλους. Η διατήρηση του αναγνωριστικού κλιπ, της απομαγνητοφώνησης και κάθε διαθέσιμου χρονισμού κάνει το αποτέλεσμα χρήσιμο για το επόμενο στάδιο της εφαρμογής.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "9740a475957159cf10a3b493869d2b81774c1e689b36827f8b430a49e660249d",
    "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: Transcribe 1</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Κλείσιμο\">×</button></div><div class=\"idline\"><span>Fish Audio /</span><code>fish-audio/transcribe-1</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|transcriptions|/v1/audio/transcriptions|fish-audio%2Ftranscribe-1\">Αναγνώριση</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\">Το Transcribe 1 μετατρέπει σύντομες ηχογραφήσεις σε κείμενο με αυτόματη ανίχνευση γλώσσας και προαιρετικές χρονικές σημάνσεις ανά λέξη. Χρησιμοποιήστε την απομαγνητοφώνηση για φωνητικές σημειώσεις, αποσπάσματα με δυνατότητα αναζήτησης ή προετοιμασία υποτίτλων, διατηρώντας τα χρονισμένα τμήματα χωριστά από το ευανάγνωστο πλήρες κείμενο.</p><dl class=\"card-io\" data-card-io><div><dt>Αποδεκτές είσοδοι</dt><dd>Ήχος</dd></div><div><dt>Αποτελέσματα</dt><dd>Κείμενο</dd></div></dl><details class=\"card-about\"><summary>Σχετικά με το μοντέλο</summary><p class=\"note-s\" data-model-method-boundary>Αυτή η περιγραφή καλύπτει τις δυνατότητες του μοντέλου. Οι είσοδοι, έξοδοι και επιλογές που διατίθενται στο Ailoot παρατίθενται παρακάτω για την επιλεγμένη μέθοδο.</p><div class=\"mabout\" id=\"m-about\"><p>Το Transcribe 1 είναι το γενικό μοντέλο μετατροπής ομιλίας σε κείμενο της Fish Audio για σύντομες ηχογραφήσεις. Δέχεται ένα αρχείο ήχου και επιστρέφει τις αναγνωρισμένες λέξεις ως κείμενο, μαζί με τη διάρκεια της ηχογράφησης, προαιρετικά χρονισμένα τμήματα και πληροφορίες γλώσσας όταν είναι γνωστές. Είναι χρήσιμο για μια σύντομη φωνητική σημείωση, μια προφορική οδηγία, ένα απόσπασμα ηχογράφησης ή ένα ηχητικό κλιπ που χρειάζεται ευανάγνωστη αναπαράσταση κειμένου.</p><p>Μια ενδεικτική ροή φωνητικών σημειώσεων διατηρεί την ηχογράφηση μαζί με την πλήρη απομαγνητοφώνηση και ένα αναγνωριστικό για το αρχικό κλιπ. Ένα μεταγενέστερο βήμα της εφαρμογής μπορεί να αναζητήσει μέσα σε αυτό το κείμενο, να οργανώσει τη σημείωση ή να δημιουργήσει περίληψη διατηρώντας την προφορική πηγή. Για μια εντολή, η απομαγνητοφώνηση παρέχει τις αναγνωρισμένες λέξεις στην εφαρμογή· κάθε ενέργεια αποτελεί ξεχωριστό βήμα ερμηνείας και εκτέλεσης. Για απόσπασμα συνέντευξης, καταγράψτε τη θέση του κλιπ στο πλήρες ηχητικό αρχείο ώστε ένα παράθεμα να μπορεί να ελεγχθεί στο σωστό σημείο.</p><p>Ο παραγωγός δέχεται WAV, MP3, AAC, συμπεριλαμβανομένων των M4A/MP4, FLAC και Ogg που περιέχει Opus ή Vorbis. Οι εγγραφές προγράμματος περιήγησης σε WebM πρέπει να μετατρέπονται σε Ogg/Opus, MP3 ή WAV για αυτό το μοντέλο· το Pro τεκμηριώνει εγγενή υποστήριξη πρόσθετων μορφών περιέκτη. Παρέχετε ένα αρχείο ήχου ανά αίτημα. Το τεκμηριωμένο όριο αιτήματος του βασικού μοντέλου είναι έως 50 MiB, με τα αρχεία MP3 και Opus κάτω από 25 MiB. Το μέγεθος αρχείου και η διάρκεια ηχογράφησης είναι διαφορετικά ζητήματα: ένα συμπιεσμένο αρχείο μπορεί να χωρά στο όριο μεταφόρτωσης αλλά να χρειάζεται υπερβολικά μεγάλο χρόνο επεξεργασίας.</p><p>Το Transcribe 1 σχεδιάστηκε για σύντομες ηχογραφήσεις. Ο παραγωγός συνιστά το Pro για ήχο μεγαλύτερης διάρκειας από λίγα λεπτά· ένα μεγάλο αίτημα στο βασικό μοντέλο μπορεί να αποτύχει αν υπερβεί το χρονικό όριο επεξεργασίας. Όταν προετοιμάζετε μια μεγαλύτερη πηγή για απομαγνητοφώνηση σύντομων κλιπ, διατηρήστε τη χρονική μετατόπιση έναρξης κάθε κλιπ και επιβεβαιώστε ότι η επιστρεφόμενη απομαγνητοφώνηση καλύπτει ολόκληρο το κλιπ πριν συνδυάσετε τα αποτελέσματα. Προσθέστε την αρχική μετατόπιση στους τοπικούς χρόνους των τμημάτων ώστε η πλοήγηση να παραμένει συνδεδεμένη με την πλήρη ηχογράφηση. Οι οδηγίες για το βασικό μοντέλο δεν πρέπει να ερμηνεύονται ως το ξεχωριστό όριο των 60 λεπτών του Pro.</p><p>Η απόκριση του παραγωγού περιλαμβάνει κείμενο, διάρκεια και τμήματα. Η διάρκεια εκφράζεται σε δευτερόλεπτα και η ευανάγνωστη πλήρης απομαγνητοφώνηση πρέπει να διατηρείται ως η κύρια διατύπωση του κλιπ. Οι χρονικές σημάνσεις είναι προαιρετικές: το ignore_timestamps έχει προεπιλογή true στο API του παραγωγού, ενώ το false ζητά τμήματα ανά λέξη με κείμενο και χρόνους έναρξης και λήξης σε δευτερόλεπτα. Το αίτημα χρονικής ευθυγράμμισης προσθέτει χρόνο επεξεργασίας. Ένας κενός πίνακας segments μπορεί να σημαίνει παράλειψη χρονισμού, απουσία ομιλίας ή προσωρινά μη διαθέσιμη ευθυγράμμιση, επομένως δεν πρέπει να ερμηνεύεται αυτόματα ως κενή πλήρης απομαγνητοφώνηση.</p><p>Τα τμήματα είναι συνήθως λέξεις ή ένας χαρακτήρας ή λίγοι χαρακτήρες στα κινεζικά και τα ιαπωνικά. Το κείμενό τους παραλείπει τη στίξη και μπορεί να κανονικοποιεί μια τιμή διαφορετικά από την πλήρη απομαγνητοφώνηση· δεν είναι αντίγραφο χαρακτήρα προς χαρακτήρα της ευανάγνωστης απόκρισης. Ένα τμήμα μπορεί να έχει τον ίδιο χρόνο έναρξης και λήξης. Χρησιμοποιήστε τα τμήματα για εντοπισμό θέσης στην ηχογράφηση ή προετοιμασία χρονισμένης προβολής και το πλήρες κείμενο όταν έχουν σημασία η διατύπωση και η στίξη. Διατηρήστε διακριτές τις δύο αναπαραστάσεις στο τελικό παραδοτέο.</p><p>Η γλώσσα ανιχνεύεται αυτόματα, είτε παρέχεται προαιρετική υπόδειξη γλώσσας είτε όχι. Ο παραγωγός τεκμηριώνει πεζούς κωδικούς ISO 639-1 για τις υποδείξεις και επιστρέφει κωδικό γλώσσας για τη λογική της εφαρμογής, μαζί με όνομα γλώσσας για προβολή όταν είναι γνωστό. Η απόκριση αναφέρει μία γλώσσα και όχι κάθε γλώσσα μιας ηχογράφησης που εναλλάσσει γλώσσες. Διατηρήστε την αρχική διατύπωση και τα διαθέσιμα μεταδεδομένα γλώσσας μαζί με το αποτέλεσμα, αντί να αντιμετωπίζετε το αίτημα απομαγνητοφώνησης ως λειτουργία μετάφρασης.</p><p>Για μια ροή υποτίτλων, ομαδοποιήστε διαδοχικά χρονισμένα τμήματα σε ευανάγνωστες ατάκες αντί να προβάλλετε μία λέξη κάθε φορά. Ένα χρήσιμο αποτέλεσμα είναι ένα αρχείο SRT ή WebVTT συνδεδεμένο με το αρχικό κλιπ, με όρια ατακών που ταιριάζουν στις παύσεις και με διαχειρίσιμη ποσότητα κειμένου στην οθόνη. Ελέγξτε για ελλείποντα χρονισμό και βεβαιωθείτε ότι η λήξη κάθε ατάκας έπεται της έναρξής της. Η ομαδοποίηση υποτίτλων και η μορφοποίηση αρχείων είναι βήματα της εφαρμογής που βασίζονται στην επιστρεφόμενη ευθυγράμμιση, και οι επιλογές προβολής πρέπει να ταιριάζουν στη συσκευή αναπαραγωγής και το κοινό.</p><p>Οι τεκμηριωμένες ρυθμίσεις του Transcribe 1 είναι ο ήχος, η υπόδειξη γλώσσας και η επιλογή χρονικών σημάνσεων. Οι δείκτες ομιλητών, οι δομημένες εναλλαγές ομιλητών, οι ρυθμίσεις συναισθηματικών συμβάντων και οι υποδείξεις αριθμού ομιλητών του Pro είναι ξεχωριστές δυνατότητες· δεν ανήκουν στην τεκμηριωμένη σύμβαση απόκρισης αυτού του βασικού μοντέλου. Επιλέξτε το απαιτούμενο παραδοτέο πριν από την επεξεργασία: απλό ευανάγνωστο κείμενο για μια σημείωση ή κείμενο μαζί με ευθυγράμμιση για πλοήγηση κατά την αναπαραγωγή και υπότιτλους. Η διατήρηση του αναγνωριστικού κλιπ, της απομαγνητοφώνησης και κάθε διαθέσιμου χρονισμού κάνει το αποτέλεσμα χρήσιμο για το επόμενο στάδιο της εφαρμογής.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Απομαγνητοφώνηση</b> <code>POST /v1/audio/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>Είσοδος</dt><dd><code>audio</code></dd></div><div><dt>Έξοδος</dt><dd><code>text</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Πεδίο</th><th>Τύπος</th><th>Απαίτηση</th><th>Τιμές και όρια</th><th>Προεπιλογή</th></tr></thead><tbody><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>string</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span><div>fish-audio/transcribe-1</div></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">input_audio</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span><code>object</code></td><td data-cell-label=\"Απαίτηση\"><span class=\"card-cell-label\">Απαίτηση</span>Υποχρεωτικό</td><td data-cell-label=\"Τιμές και όρια\"><span class=\"card-cell-label\">Τιμές και όρια</span></td><td data-cell-label=\"Προεπιλογή\" data-default=\"unspecified\"><span class=\"card-cell-label\">Προεπιλογή</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Παράμετροι και κύκλος ζωής μεθόδου</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Παράμετρος</th><th>Σύμβαση</th></tr></thead><tbody><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>content_type</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>application/json</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>required</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>model, input_audio</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>audio</td></tr><tr><th data-cell-label=\"Παράμετρος\" scope=\"row\"><span class=\"card-cell-label\">Παράμετρος</span><code>material_conditions</code></th><td data-cell-label=\"Σύμβαση\"><span class=\"card-cell-label\">Σύμβαση</span>Το παράδειγμα διαβάζει το πραγματικό, μη κενό αρχείο PCM WAV σας, κωδικοποιεί όλα τα byte του αρχείου σε base64 και στέλνει το input_audio.format ως wav.</td></tr></tbody></table></div><p>Κύκλος ζωής: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · ακριβές task_id από υπάρχουσα εγγραφή πολυμέσων που σας ανήκουν</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Τιμολόγηση</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Οι τιμολογιακές αναφορές δεν προσθέτουν επιλογές αιτήματος. Οι υποστηριζόμενες παράμετροι αναφέρονται στην επιλεγμένη μέθοδο.</p><dl data-price-conditions><dt>Γρήγορη λειτουργία</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν επιλέγεται η γρήγορη λειτουργία</span></dd><dt>Λειτουργία flex</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν επιλέγεται η λειτουργία flex</span></dd><dt>Μέγιστη προσπάθεια συλλογισμού</dt><dd>Δεν έχει οριστεί <span class=\"note-s\">Όταν η μέγιστη προσπάθεια συλλογισμού χρησιμοποιεί την προσαρμογή default</span></dd></dl></div><div data-declared-tariff-pricing><h4>Χρεώσεις Ailoot</h4><h4>Τιμές ανά διαμόρφωση</h4><p class=\"note-s\">Αντιστοιχίστε κάθε χρέωση στις συνθήκες που εμφανίζονται. Χρησιμοποιήστε μία χρέωση ανά σύνολο εναλλακτικών διαμορφώσεων.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Διαμόρφωση</th><th>Πίνακας χρεώσεων</th><th>Μονάδα τιμολόγησης</th><th>Χρέωση</th></tr></thead><tbody><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>Βασικές χρεώσεις token</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>Βασική χρέωση</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>—</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Είσοδος · Token εισόδου</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Έξοδος · Token εξόδου</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Ανάγνωση από την κρυφή μνήμη</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Εγγραφή στην κρυφή μνήμη</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Είσοδος · Εγγραφή στην κρυφή μνήμη, 1 ώρα</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr><tr><th data-cell-label=\"Διαμόρφωση\" scope=\"row\"><span class=\"card-cell-label\">Διαμόρφωση</span>δευτερόλεπτο ήχου εισόδου</th><td data-cell-label=\"Πίνακας χρεώσεων\"><span class=\"card-cell-label\">Πίνακας χρεώσεων</span>—</td><td data-cell-label=\"Μονάδα τιμολόγησης\"><span class=\"card-cell-label\">Μονάδα τιμολόγησης</span>ανά δευτερόλεπτο ήχου εισόδου</td><td data-cell-label=\"Χρέωση\"><span class=\"card-cell-label\">Χρέωση</span><div><span>Είσοδος · δευτερόλεπτο ήχου εισόδου</span> <b>$0.0002</b> <span class=\"price-unit\">ανά δευτερόλεπτο ήχου εισόδου</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. <a href=\"/docs/el/billing/reserve/\">Πώς λειτουργούν η δέσμευση και η εκκαθάριση →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Παραδείγματα αιτημάτων</h3><h4>Ailoot Ultra · Απομαγνητοφώνηση</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Παραλλαγές κώδικα\"><button class=\"cg-tab\" id=\"model-code-1361-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1361-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · πραγματικό αρχείο WAV και πλήρες αρχικό αποτέλεσμα</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-1361-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1361-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}&quot;\nexport AILOOT_AUDIO_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ[&#39;AILOOT_AUDIO_FILE&#39;]).read_bytes()\nif not (audio[:4] == b&#39;RIFF&#39; and audio[8:12] == b&#39;WAVE&#39;):\n    raise SystemExit(&#39;Supply your actual PCM WAV audio file&#39;)\nwith wave.open(io.BytesIO(audio), &#39;rb&#39;) as recording:\n    if recording.getcomptype() != &#39;NONE&#39; or recording.getnframes() &lt;= 0:\n        raise SystemExit(&#39;Supply a nonempty PCM WAV recording&#39;)\nrequest = {&#39;model&#39;: &#39;fish-audio/transcribe-1&#39;, &#39;input_audio&#39;: {&#39;data&#39;: base64.b64encode(audio).decode(&#39;ascii&#39;), &#39;format&#39;: &#39;wav&#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/transcriptions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\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\">Ολόκληρο το αρχικό σώμα απόκρισης, η κατάσταση και οι προωθημένες κεφαλίδες. Αυτός ο χειριστής δεν προσθέτει καθολική δομή 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\">Διατηρήστε ολόκληρη την απόκριση και τις κεφαλίδες, κάθε πραγματικό αποτέλεσμα εξόδου, τα αρχικά αναγνωριστικά που επιστράφηκαν και όλα τα πεδία χρήσης. Ανακτήστε την αρχική λειτουργία χωρίς να υποβάλετε ξανά αίτημα δημιουργίας.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Αν χρειάζεται έλεγχος της αρχικής απάντησης</h5><p class=\"note-s\">Διατηρήστε το πραγματικό 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\">text (when present)</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span></td></tr><tr><th data-cell-label=\"Πεδίο\" scope=\"row\"><span class=\"card-cell-label\">Πεδίο</span><code class=\"card-field-name\">usage (when present)</code></th><td data-cell-label=\"Τύπος\" data-field-type><span class=\"card-cell-label\">Τύπος</span></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>Το σώμα JSON ή το ρητό κανονικό ID μοντέλου δεν είναι έγκυρο.</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>401 · <code>authentication_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Το κλειδί API του Ailoot δεν είναι έγκυρο.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Χρησιμοποιήστε το εξουσιοδοτημένο κλειδί API του Ailoot σας.</td></tr><tr><th data-cell-label=\"Απάντηση\" scope=\"row\"><span class=\"card-cell-label\">Απάντηση</span>403 · <code>permission_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>404 · <code>not_found_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>422 · <code>price_unavailable</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>503 · <code></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>502 · <code>server_error</code></th><td data-cell-label=\"Συνθήκη\"><span class=\"card-cell-label\">Συνθήκη</span>Το αρχικό αποτέλεσμα, η χρήση ή η εκκαθάριση απαιτεί έλεγχο.</td><td data-cell-label=\"Επόμενο βήμα\"><span class=\"card-cell-label\">Επόμενο βήμα</span>Διατηρήστε το πραγματικό ID αιτήματος και την αρχική απόκριση. Διαβάστε την υπάρχουσα εγγραφή που σας ανήκει· μην επανυποβάλετε αίτημα δημιουργίας.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Εναλλακτικά ονόματα</h3><h4>Εναλλακτικά ονόματα μοντέλου</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=fish-audio%2Ftranscribe-1&amp;route=Ultra&amp;caller=fish-audio%2Ftranscribe-1&amp;fmt=transcriptions\"><code>fish-audio/transcribe-1</code></a></span></p><h4>Εναλλακτικές διαδρομές μεθόδων</h4><p class=\"note-s\">Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.</p><h4>Σχετικά ID μοντέλων</h4><p class=\"note-s\"><a href=\"#m=fish-audio%2Ftranscribe-1&amp;route=Ultra&amp;caller=fish-audio%2Ftranscribe-1&amp;fmt=transcriptions\"><code>fish-audio/transcribe-1</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "fish-audio/transcribe-1",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "fish-audio/transcribe-1",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|fish-audio%2Ftranscribe-1",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "Το σώμα JSON ή το ρητό κανονικό ID μοντέλου δεν είναι έγκυρο.",
                "http_status": 400,
                "recovery": "Διατηρήστε την απόκριση και διορθώστε το υποδεικνυόμενο πεδίο του αιτήματος.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Το κλειδί API του Ailoot δεν είναι έγκυρο.",
                "http_status": 401,
                "recovery": "Χρησιμοποιήστε το εξουσιοδοτημένο κλειδί API του Ailoot σας.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Η ομάδα του κλειδιού δεν επιτρέπει πρόσβαση σε αυτή τη μέθοδο.",
                "http_status": 403,
                "recovery": "Διατηρήστε τις λεπτομέρειες σφάλματος που επιστρέφονται.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Η επιλεγμένη μέθοδος δεν έχει διαδρομή με άδεια πρόσβασης.",
                "http_status": 404,
                "recovery": "Διατηρήστε τις λεπτομέρειες σφάλματος που επιστρέφονται.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Το αποδεκτό τιμολόγιο δεν μπορεί να λάβει την απαιτούμενη ποσότητα εισόδου ή το όριό της.",
                "http_status": 422,
                "recovery": "Διατηρήστε την απόκριση· χρησιμοποιήστε την αναπαράσταση εισόδου που απαιτεί το αποδεκτό τιμολόγιο.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Ο απαιτούμενος χώρος αποθήκευσης, η διαδρομή, η τιμή μεθόδου ή η δέσμευση ποσού δεν είναι διαθέσιμα.",
                "http_status": 503,
                "recovery": "Διατηρήστε ολόκληρη την αρχική απόκριση. Μια αβέβαιη δέσμευση ποσού δεν αποτελεί άδεια επανυποβολής.",
                "type": null
              },
              {
                "code": null,
                "condition": "Το αρχικό αποτέλεσμα, η χρήση ή η εκκαθάριση απαιτεί έλεγχο.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Διατηρήστε το πραγματικό ID αιτήματος και την αρχική απόκριση. Διαβάστε την υπάρχουσα εγγραφή που σας ανήκει· μην επανυποβάλετε αίτημα δημιουργίας.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "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 content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Διατηρήστε το πραγματικό X-Client-Request-ID και ολόκληρη την απόκριση. Διαβάστε τα αρχικά αρχεία πολυμέσων που σας ανήκουν και τα ακριβή υπογεγραμμένα URL περιεχομένου τους· μην επανυποβάλετε ποτέ αίτημα δημιουργίας με αβέβαιο αποτέλεσμα."
            },
            "outputs": {
              "all_results": "Διατηρήστε ολόκληρη την απόκριση και τις κεφαλίδες, κάθε πραγματικό αποτέλεσμα εξόδου, τα αρχικά αναγνωριστικά που επιστράφηκαν και όλα τα πεδία χρήσης. Ανακτήστε την αρχική λειτουργία χωρίς να υποβάλετε ξανά αίτημα δημιουργίας.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Ολόκληρο το αρχικό σώμα απόκρισης, η κατάσταση και οι προωθημένες κεφαλίδες. Αυτός ο χειριστής δεν προσθέτει καθολική δομή JSON, πεδίο κειμένου ή περίβλημα εργασίας."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "fish-audio/transcribe-1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "fish-audio/transcribe-1"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "fish-audio/transcribe-1"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Το παράδειγμα διαβάζει το πραγματικό, μη κενό αρχείο PCM WAV σας, κωδικοποιεί όλα τα byte του αρχείου σε base64 και στέλνει το input_audio.format ως wav."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "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 content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "ακριβές task_id από υπάρχουσα εγγραφή πολυμέσων που σας ανήκουν",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'fish-audio/transcribe-1', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\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/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Απομαγνητοφώνηση",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "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_second": 0.0002
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/transcribe-1",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.0002",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0002",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    }
  ],
  "model_id": "fish-audio/transcribe-1",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "f0ab2960ea4338facc4f9288501fe17b9400fbb3215525fdc219a3d634d30f83",
    "input_html_sha256": "c4473b351abb7c524f2f89fa239dd0a7a4fb1eec36abcc7d7a2c1116617d32d6",
    "private_audit_sha256": "64ad6db6bb777e6860bc66cc40caaf8163957259c6f4f4cbb14c26c657dcb0ad",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/el/fish-audio-transcribe-1/",
    "description": "Το Transcribe 1 μετατρέπει σύντομες ηχογραφήσεις σε κείμενο με αυτόματη ανίχνευση γλώσσας και προαιρετικές χρονικές σημάνσεις ανά λέξη. Χρησιμοποιήστε την απομαγνητοφώνηση για φωνητικές σημειώσεις, αποσπάσματα με δυνατότητα αναζήτησης ή προετοιμασία υποτίτλων, διατηρώντας τα χρονισμένα τμήματα χωριστά από το ευανάγνωστο πλήρες κείμενο.",
    "locale": "el",
    "md_url": "https://ailoot.ai/models/el/fish-audio-transcribe-1/index.md",
    "title": "Fish Audio: Transcribe 1 — Ailoot",
    "url": "https://ailoot.ai/models/el/fish-audio-transcribe-1/"
  },
  "rawModel": {
    "about": "Το Transcribe 1 είναι το γενικό μοντέλο μετατροπής ομιλίας σε κείμενο της Fish Audio για σύντομες ηχογραφήσεις. Δέχεται ένα αρχείο ήχου και επιστρέφει τις αναγνωρισμένες λέξεις ως κείμενο, μαζί με τη διάρκεια της ηχογράφησης, προαιρετικά χρονισμένα τμήματα και πληροφορίες γλώσσας όταν είναι γνωστές. Είναι χρήσιμο για μια σύντομη φωνητική σημείωση, μια προφορική οδηγία, ένα απόσπασμα ηχογράφησης ή ένα ηχητικό κλιπ που χρειάζεται ευανάγνωστη αναπαράσταση κειμένου.\n\nΜια ενδεικτική ροή φωνητικών σημειώσεων διατηρεί την ηχογράφηση μαζί με την πλήρη απομαγνητοφώνηση και ένα αναγνωριστικό για το αρχικό κλιπ. Ένα μεταγενέστερο βήμα της εφαρμογής μπορεί να αναζητήσει μέσα σε αυτό το κείμενο, να οργανώσει τη σημείωση ή να δημιουργήσει περίληψη διατηρώντας την προφορική πηγή. Για μια εντολή, η απομαγνητοφώνηση παρέχει τις αναγνωρισμένες λέξεις στην εφαρμογή· κάθε ενέργεια αποτελεί ξεχωριστό βήμα ερμηνείας και εκτέλεσης. Για απόσπασμα συνέντευξης, καταγράψτε τη θέση του κλιπ στο πλήρες ηχητικό αρχείο ώστε ένα παράθεμα να μπορεί να ελεγχθεί στο σωστό σημείο.\n\nΟ παραγωγός δέχεται WAV, MP3, AAC, συμπεριλαμβανομένων των M4A/MP4, FLAC και Ogg που περιέχει Opus ή Vorbis. Οι εγγραφές προγράμματος περιήγησης σε WebM πρέπει να μετατρέπονται σε Ogg/Opus, MP3 ή WAV για αυτό το μοντέλο· το Pro τεκμηριώνει εγγενή υποστήριξη πρόσθετων μορφών περιέκτη. Παρέχετε ένα αρχείο ήχου ανά αίτημα. Το τεκμηριωμένο όριο αιτήματος του βασικού μοντέλου είναι έως 50 MiB, με τα αρχεία MP3 και Opus κάτω από 25 MiB. Το μέγεθος αρχείου και η διάρκεια ηχογράφησης είναι διαφορετικά ζητήματα: ένα συμπιεσμένο αρχείο μπορεί να χωρά στο όριο μεταφόρτωσης αλλά να χρειάζεται υπερβολικά μεγάλο χρόνο επεξεργασίας.\n\nΤο Transcribe 1 σχεδιάστηκε για σύντομες ηχογραφήσεις. Ο παραγωγός συνιστά το Pro για ήχο μεγαλύτερης διάρκειας από λίγα λεπτά· ένα μεγάλο αίτημα στο βασικό μοντέλο μπορεί να αποτύχει αν υπερβεί το χρονικό όριο επεξεργασίας. Όταν προετοιμάζετε μια μεγαλύτερη πηγή για απομαγνητοφώνηση σύντομων κλιπ, διατηρήστε τη χρονική μετατόπιση έναρξης κάθε κλιπ και επιβεβαιώστε ότι η επιστρεφόμενη απομαγνητοφώνηση καλύπτει ολόκληρο το κλιπ πριν συνδυάσετε τα αποτελέσματα. Προσθέστε την αρχική μετατόπιση στους τοπικούς χρόνους των τμημάτων ώστε η πλοήγηση να παραμένει συνδεδεμένη με την πλήρη ηχογράφηση. Οι οδηγίες για το βασικό μοντέλο δεν πρέπει να ερμηνεύονται ως το ξεχωριστό όριο των 60 λεπτών του Pro.\n\nΗ απόκριση του παραγωγού περιλαμβάνει κείμενο, διάρκεια και τμήματα. Η διάρκεια εκφράζεται σε δευτερόλεπτα και η ευανάγνωστη πλήρης απομαγνητοφώνηση πρέπει να διατηρείται ως η κύρια διατύπωση του κλιπ. Οι χρονικές σημάνσεις είναι προαιρετικές: το ignore_timestamps έχει προεπιλογή true στο API του παραγωγού, ενώ το false ζητά τμήματα ανά λέξη με κείμενο και χρόνους έναρξης και λήξης σε δευτερόλεπτα. Το αίτημα χρονικής ευθυγράμμισης προσθέτει χρόνο επεξεργασίας. Ένας κενός πίνακας segments μπορεί να σημαίνει παράλειψη χρονισμού, απουσία ομιλίας ή προσωρινά μη διαθέσιμη ευθυγράμμιση, επομένως δεν πρέπει να ερμηνεύεται αυτόματα ως κενή πλήρης απομαγνητοφώνηση.\n\nΤα τμήματα είναι συνήθως λέξεις ή ένας χαρακτήρας ή λίγοι χαρακτήρες στα κινεζικά και τα ιαπωνικά. Το κείμενό τους παραλείπει τη στίξη και μπορεί να κανονικοποιεί μια τιμή διαφορετικά από την πλήρη απομαγνητοφώνηση· δεν είναι αντίγραφο χαρακτήρα προς χαρακτήρα της ευανάγνωστης απόκρισης. Ένα τμήμα μπορεί να έχει τον ίδιο χρόνο έναρξης και λήξης. Χρησιμοποιήστε τα τμήματα για εντοπισμό θέσης στην ηχογράφηση ή προετοιμασία χρονισμένης προβολής και το πλήρες κείμενο όταν έχουν σημασία η διατύπωση και η στίξη. Διατηρήστε διακριτές τις δύο αναπαραστάσεις στο τελικό παραδοτέο.\n\nΗ γλώσσα ανιχνεύεται αυτόματα, είτε παρέχεται προαιρετική υπόδειξη γλώσσας είτε όχι. Ο παραγωγός τεκμηριώνει πεζούς κωδικούς ISO 639-1 για τις υποδείξεις και επιστρέφει κωδικό γλώσσας για τη λογική της εφαρμογής, μαζί με όνομα γλώσσας για προβολή όταν είναι γνωστό. Η απόκριση αναφέρει μία γλώσσα και όχι κάθε γλώσσα μιας ηχογράφησης που εναλλάσσει γλώσσες. Διατηρήστε την αρχική διατύπωση και τα διαθέσιμα μεταδεδομένα γλώσσας μαζί με το αποτέλεσμα, αντί να αντιμετωπίζετε το αίτημα απομαγνητοφώνησης ως λειτουργία μετάφρασης.\n\nΓια μια ροή υποτίτλων, ομαδοποιήστε διαδοχικά χρονισμένα τμήματα σε ευανάγνωστες ατάκες αντί να προβάλλετε μία λέξη κάθε φορά. Ένα χρήσιμο αποτέλεσμα είναι ένα αρχείο SRT ή WebVTT συνδεδεμένο με το αρχικό κλιπ, με όρια ατακών που ταιριάζουν στις παύσεις και με διαχειρίσιμη ποσότητα κειμένου στην οθόνη. Ελέγξτε για ελλείποντα χρονισμό και βεβαιωθείτε ότι η λήξη κάθε ατάκας έπεται της έναρξής της. Η ομαδοποίηση υποτίτλων και η μορφοποίηση αρχείων είναι βήματα της εφαρμογής που βασίζονται στην επιστρεφόμενη ευθυγράμμιση, και οι επιλογές προβολής πρέπει να ταιριάζουν στη συσκευή αναπαραγωγής και το κοινό.\n\nΟι τεκμηριωμένες ρυθμίσεις του Transcribe 1 είναι ο ήχος, η υπόδειξη γλώσσας και η επιλογή χρονικών σημάνσεων. Οι δείκτες ομιλητών, οι δομημένες εναλλαγές ομιλητών, οι ρυθμίσεις συναισθηματικών συμβάντων και οι υποδείξεις αριθμού ομιλητών του Pro είναι ξεχωριστές δυνατότητες· δεν ανήκουν στην τεκμηριωμένη σύμβαση απόκρισης αυτού του βασικού μοντέλου. Επιλέξτε το απαιτούμενο παραδοτέο πριν από την επεξεργασία: απλό ευανάγνωστο κείμενο για μια σημείωση ή κείμενο μαζί με ευθυγράμμιση για πλοήγηση κατά την αναπαραγωγή και υπότιτλους. Η διατήρηση του αναγνωριστικού κλιπ, της απομαγνητοφώνησης και κάθε διαθέσιμου χρονισμού κάνει το αποτέλεσμα χρήσιμο για το επόμενο στάδιο της εφαρμογής.",
    "alias_of": null,
    "aliases": [],
    "author": "Fish Audio",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0002",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0002",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ],
        "summary": "Πλήρης τιμολόγηση της διαμόρφωσης στις λεπτομέρειες."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "fish-audio/transcribe-1",
    "input": [
      "audio"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "Το σώμα JSON ή το ρητό κανονικό ID μοντέλου δεν είναι έγκυρο.",
                "http_status": 400,
                "recovery": "Διατηρήστε την απόκριση και διορθώστε το υποδεικνυόμενο πεδίο του αιτήματος.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Το κλειδί API του Ailoot δεν είναι έγκυρο.",
                "http_status": 401,
                "recovery": "Χρησιμοποιήστε το εξουσιοδοτημένο κλειδί API του Ailoot σας.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Η ομάδα του κλειδιού δεν επιτρέπει πρόσβαση σε αυτή τη μέθοδο.",
                "http_status": 403,
                "recovery": "Διατηρήστε τις λεπτομέρειες σφάλματος που επιστρέφονται.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Η επιλεγμένη μέθοδος δεν έχει διαδρομή με άδεια πρόσβασης.",
                "http_status": 404,
                "recovery": "Διατηρήστε τις λεπτομέρειες σφάλματος που επιστρέφονται.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Το αποδεκτό τιμολόγιο δεν μπορεί να λάβει την απαιτούμενη ποσότητα εισόδου ή το όριό της.",
                "http_status": 422,
                "recovery": "Διατηρήστε την απόκριση· χρησιμοποιήστε την αναπαράσταση εισόδου που απαιτεί το αποδεκτό τιμολόγιο.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Ο απαιτούμενος χώρος αποθήκευσης, η διαδρομή, η τιμή μεθόδου ή η δέσμευση ποσού δεν είναι διαθέσιμα.",
                "http_status": 503,
                "recovery": "Διατηρήστε ολόκληρη την αρχική απόκριση. Μια αβέβαιη δέσμευση ποσού δεν αποτελεί άδεια επανυποβολής.",
                "type": null
              },
              {
                "code": null,
                "condition": "Το αρχικό αποτέλεσμα, η χρήση ή η εκκαθάριση απαιτεί έλεγχο.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Διατηρήστε το πραγματικό ID αιτήματος και την αρχική απόκριση. Διαβάστε την υπάρχουσα εγγραφή που σας ανήκει· μην επανυποβάλετε αίτημα δημιουργίας.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "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 content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Διατηρήστε το πραγματικό X-Client-Request-ID και ολόκληρη την απόκριση. Διαβάστε τα αρχικά αρχεία πολυμέσων που σας ανήκουν και τα ακριβή υπογεγραμμένα URL περιεχομένου τους· μην επανυποβάλετε ποτέ αίτημα δημιουργίας με αβέβαιο αποτέλεσμα."
            },
            "outputs": {
              "all_results": "Διατηρήστε ολόκληρη την απόκριση και τις κεφαλίδες, κάθε πραγματικό αποτέλεσμα εξόδου, τα αρχικά αναγνωριστικά που επιστράφηκαν και όλα τα πεδία χρήσης. Ανακτήστε την αρχική λειτουργία χωρίς να υποβάλετε ξανά αίτημα δημιουργίας.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Ολόκληρο το αρχικό σώμα απόκρισης, η κατάσταση και οι προωθημένες κεφαλίδες. Αυτός ο χειριστής δεν προσθέτει καθολική δομή JSON, πεδίο κειμένου ή περίβλημα εργασίας."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "fish-audio/transcribe-1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "fish-audio/transcribe-1"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "fish-audio/transcribe-1"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Το παράδειγμα διαβάζει το πραγματικό, μη κενό αρχείο PCM WAV σας, κωδικοποιεί όλα τα byte του αρχείου σε base64 και στέλνει το input_audio.format ως wav."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "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 content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "ακριβές task_id από υπάρχουσα εγγραφή πολυμέσων που σας ανήκουν",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'fish-audio/transcribe-1', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\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/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Απομαγνητοφώνηση",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "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_second": 0.0002
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/transcribe-1",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.0002",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0002",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "fish-audio/transcribe-1",
        "request_model_id": "fish-audio/transcribe-1",
        "route_label": "Ultra"
      }
    ],
    "name": "Fish Audio: Transcribe 1",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Το Transcribe 1 μετατρέπει σύντομες ηχογραφήσεις σε κείμενο με αυτόματη ανίχνευση γλώσσας και προαιρετικές χρονικές σημάνσεις ανά λέξη. Χρησιμοποιήστε την απομαγνητοφώνηση για φωνητικές σημειώσεις, αποσπάσματα με δυνατότητα αναζήτησης ή προετοιμασία υποτίτλων, διατηρώντας τα χρονισμένα τμήματα χωριστά από το ευανάγνωστο πλήρες κείμενο."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Το Transcribe 1 μετατρέπει σύντομες ηχογραφήσεις σε κείμενο με αυτόματη ανίχνευση γλώσσας και προαιρετικές χρονικές σημάνσεις ανά λέξη. Χρησιμοποιήστε την απομαγνητοφώνηση για φωνητικές σημειώσεις, αποσπάσματα με δυνατότητα αναζήτησης ή προετοιμασία υποτίτλων, διατηρώντας τα χρονισμένα τμήματα χωριστά από το ευανάγνωστο πλήρες κείμενο.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "54f48b82f9d72094e7d7293d2892beae5c8404f34526ad559e8c00b49f10f016",
    "renderer_sha256": "3ed36f7af4f78822bafbd174fdcaed7b698a18a86efe254253d37f1b098a7566"
  },
  "sourceRevision": "50c98150d9499d1c32901bbe216403ea1f44d638e3594e1ad50cd6a2dcffdc9a"
}
