{
  "aboutHtml": "<p>GPT Transcribe è il modello di OpenAI per trascrivere il parlato di file audio completi, restituire progressivamente trascrizioni di file e trascrivere turni audio finalizzati nelle sessioni Realtime. Accetta audio con contesto testuale opzionale e restituisce testo riconosciuto. Il produttore lo presenta per la trascrizione precisa del parlato registrato nella lingua originale, compresi vocabolario specialistico, registrazioni multilingue e alternanza tra lingue. Il risultato utile è una trascrizione che resta collegata alla registrazione, con metadati sulle lingue rilevate quando il modello può formulare una previsione affidabile.</p><h4>Preparare una registrazione completa</h4><p>Il flusso di trascrizione di file di OpenAI accetta caricamenti fino a 25 MB. L’attuale riferimento dell’endpoint elenca i formati in ingresso FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV e WebM e raccomanda metadati sufficienti per identificare il formato, compresi un’estensione del nome del file e un tipo di contenuto adeguati. Per una registrazione più grande, la guida raccomanda di comprimerla o dividerla in file da 25 MB o meno. Evitate di tagliare a metà di una frase, perché rimuovere il parlato circostante può ridurre la precisione del riconoscimento. Mantenete le parti in ordine e conservatene le posizioni nella registrazione originale.</p><p>Per una riunione, un’intervista o una presentazione registrata, fornite l’audio effettivo e identificate l’argomento e la terminologia che potrebbe essere pronunciata. Un risultato utile riporta le parole riconosciute anziché un riassunto dedotto della discussione. Preservate l’identificatore della registrazione con il testo restituito, affinché chi verifica un nome, un numero o una frase incerta possa tornare alla fonte corretta. La trascrizione può poi diventare materiale per un flusso separato di riassunto, traduzione o revisione editoriale.</p><h4>Contesto, parole chiave e lingue attese</h4><p>Il produttore distingue tre tipi di indicazioni. Un prompt fornisce contesto libero sull’argomento o sulla situazione della registrazione. Le parole chiave indicano parole o espressioni letterali attese nel parlato. Un elenco di lingue identifica le lingue parlate previste. Per una discussione bilingue su un prodotto, descrivete la situazione nel prompt, elencate i nomi dei prodotti pertinenti come parole chiave e fornite le lingue attese. Sono indicazioni per il riconoscimento, non istruzioni per inserire vocaboli che nessuno ha pronunciato.</p><p>GPT Transcribe usa il campo plurale languages anziché il precedente campo singolare language; OpenAI dice di non inviarli entrambi. La guida accetta codici ISO 639-1 supportati, alcuni codici ISO 639-3 e codici regionali delle impostazioni locali cinesi, rifiutando valori non supportati o malformati. Ogni parola chiave deve stare su una sola riga e non deve contenere parentesi angolari, ritorni carrello o avanzamenti di riga. Una parola chiave non valida o un prompt troppo lungo possono far rifiutare l’intera richiesta. Mantenete pertinente il contesto e verificate se i nomi suggeriti compaiono effettivamente nell’audio, anziché trattare l’elenco delle indicazioni come la trascrizione.</p><h4>Uscita JSON e previsioni delle lingue rilevate</h4><p>Il risultato documentato per i file è JSON contenente la trascrizione e le lingue rilevate. Queste previsioni sulle lingue sono l’uscita del modello, non una copia delle indicazioni linguistiche fornite. Un elenco di lingue vuoto è un risultato valido quando il modello non può formulare una previsione affidabile; non dimostra che la registrazione fosse silenziosa o che la trascrizione sia fallita. Tenete separati testo riconosciuto e metadati linguistici, affinché l’elaborazione successiva possa usare ciascuno secondo il suo significato.</p><h4>Trasmettere progressivamente la trascrizione di un file</h4><p>Un file completo può produrre testo trascritto in modo incrementale durante l’elaborazione. OpenAI documenta eventi transcript.text.delta per il testo parziale e transcript.text.done per la trascrizione completa del file; l’evento finale include anche le lingue rilevate. Si trasmette così progressivamente l’uscita di una registrazione già fornita. È utile per mostrare l’avanzamento di un caricamento lungo, mentre l’evento finale stabilisce il testo da conservare come risultato completato.</p><h4>Turni finalizzati nelle sessioni Realtime</h4><p>GPT Transcribe ha anche un flusso Realtime specializzato tramite WebSocket. L’audio viene aggiunto al buffer di ingresso, poi l’applicazione finalizza esplicitamente un turno audio. La trascrizione inizia per quel segmento finalizzato e può emettere porzioni di testo prima dell’evento di completamento, comprese informazioni sulle lingue rilevate. Il modello usa automaticamente i turni già trascritti come contesto in questo flusso di sessione del produttore. È distinto dall’emissione continua di sottotitoli in diretta mentre arriva l’audio del microfono; OpenAI indica GPT Live Transcribe per quel flusso continuo.</p><p>Per più turni, conservate l’identificatore dell’elemento in ingresso con la trascrizione corrispondente. OpenAI avverte che gli eventi di completamento di turni diversi non arrivano necessariamente nell’ordine del parlato: associate quindi ogni risultato finale al suo ingresso finalizzato, anziché ordinare una conversazione soltanto in base all’ora di completamento. Il risultato utile è una trascrizione ordinata assemblata dagli elementi finali corretti, con il testo provvisorio trattato come avanzamento anziché come un enunciato completato separato.</p><h4>Uscite specializzate e limiti delle funzionalità</h4><p>Questo profilo non fornisce un contratto universale per sottotitoli, riferimenti temporali, traduzione o etichette dei parlanti. La guida alla migrazione di OpenAI distingue tali capacità specializzate: i formati nativi dei sottotitoli e i riferimenti temporali delle parole richiedono un modello e un formato compatibili, mentre le etichette dei parlanti usano GPT-4o Transcribe Diarize. Il risultato per i file di GPT Transcribe è JSON, non una risposta direttamente sostituibile a SRT, VTT o a una risposta con riferimenti temporali dettagliati. La scheda esatta del modello non pubblica un limite numerico per il contesto o per l’uscita massima, quindi non va presunta una finestra di token da modello di chat per la trascrizione audio.</p><p>Verificate rispetto alla registrazione i vocaboli difficili, i numeri, gli accenti, il rumore di fondo e i cambi di lingua. Controllate che le indicazioni pertinenti abbiano migliorato il riconoscimento senza introdurre termini non pronunciati e che la trascrizione finale includa la fine dell’audio. Per un risultato multilingue, preservate le parole pronunciate prima di preparare una versione tradotta. Questi controlli rendono la trascrizione utile come materiale di origine, mantenendo chiaramente distinti contesto suggerito, lingue rilevate e parlato riconosciuto.</p>",
  "aboutText": "GPT Transcribe è il modello di OpenAI per trascrivere il parlato di file audio completi, restituire progressivamente trascrizioni di file e trascrivere turni audio finalizzati nelle sessioni Realtime. Accetta audio con contesto testuale opzionale e restituisce testo riconosciuto. Il produttore lo presenta per la trascrizione precisa del parlato registrato nella lingua originale, compresi vocabolario specialistico, registrazioni multilingue e alternanza tra lingue. Il risultato utile è una trascrizione che resta collegata alla registrazione, con metadati sulle lingue rilevate quando il modello può formulare una previsione affidabile.\n\n### Preparare una registrazione completa\n\nIl flusso di trascrizione di file di OpenAI accetta caricamenti fino a 25 MB. L’attuale riferimento dell’endpoint elenca i formati in ingresso FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV e WebM e raccomanda metadati sufficienti per identificare il formato, compresi un’estensione del nome del file e un tipo di contenuto adeguati. Per una registrazione più grande, la guida raccomanda di comprimerla o dividerla in file da 25 MB o meno. Evitate di tagliare a metà di una frase, perché rimuovere il parlato circostante può ridurre la precisione del riconoscimento. Mantenete le parti in ordine e conservatene le posizioni nella registrazione originale.\n\nPer una riunione, un’intervista o una presentazione registrata, fornite l’audio effettivo e identificate l’argomento e la terminologia che potrebbe essere pronunciata. Un risultato utile riporta le parole riconosciute anziché un riassunto dedotto della discussione. Preservate l’identificatore della registrazione con il testo restituito, affinché chi verifica un nome, un numero o una frase incerta possa tornare alla fonte corretta. La trascrizione può poi diventare materiale per un flusso separato di riassunto, traduzione o revisione editoriale.\n\n### Contesto, parole chiave e lingue attese\n\nIl produttore distingue tre tipi di indicazioni. Un prompt fornisce contesto libero sull’argomento o sulla situazione della registrazione. Le parole chiave indicano parole o espressioni letterali attese nel parlato. Un elenco di lingue identifica le lingue parlate previste. Per una discussione bilingue su un prodotto, descrivete la situazione nel prompt, elencate i nomi dei prodotti pertinenti come parole chiave e fornite le lingue attese. Sono indicazioni per il riconoscimento, non istruzioni per inserire vocaboli che nessuno ha pronunciato.\n\nGPT Transcribe usa il campo plurale languages anziché il precedente campo singolare language; OpenAI dice di non inviarli entrambi. La guida accetta codici ISO 639-1 supportati, alcuni codici ISO 639-3 e codici regionali delle impostazioni locali cinesi, rifiutando valori non supportati o malformati. Ogni parola chiave deve stare su una sola riga e non deve contenere parentesi angolari, ritorni carrello o avanzamenti di riga. Una parola chiave non valida o un prompt troppo lungo possono far rifiutare l’intera richiesta. Mantenete pertinente il contesto e verificate se i nomi suggeriti compaiono effettivamente nell’audio, anziché trattare l’elenco delle indicazioni come la trascrizione.\n\n### Uscita JSON e previsioni delle lingue rilevate\n\nIl risultato documentato per i file è JSON contenente la trascrizione e le lingue rilevate. Queste previsioni sulle lingue sono l’uscita del modello, non una copia delle indicazioni linguistiche fornite. Un elenco di lingue vuoto è un risultato valido quando il modello non può formulare una previsione affidabile; non dimostra che la registrazione fosse silenziosa o che la trascrizione sia fallita. Tenete separati testo riconosciuto e metadati linguistici, affinché l’elaborazione successiva possa usare ciascuno secondo il suo significato.\n\n### Trasmettere progressivamente la trascrizione di un file\n\nUn file completo può produrre testo trascritto in modo incrementale durante l’elaborazione. OpenAI documenta eventi transcript.text.delta per il testo parziale e transcript.text.done per la trascrizione completa del file; l’evento finale include anche le lingue rilevate. Si trasmette così progressivamente l’uscita di una registrazione già fornita. È utile per mostrare l’avanzamento di un caricamento lungo, mentre l’evento finale stabilisce il testo da conservare come risultato completato.\n\n### Turni finalizzati nelle sessioni Realtime\n\nGPT Transcribe ha anche un flusso Realtime specializzato tramite WebSocket. L’audio viene aggiunto al buffer di ingresso, poi l’applicazione finalizza esplicitamente un turno audio. La trascrizione inizia per quel segmento finalizzato e può emettere porzioni di testo prima dell’evento di completamento, comprese informazioni sulle lingue rilevate. Il modello usa automaticamente i turni già trascritti come contesto in questo flusso di sessione del produttore. È distinto dall’emissione continua di sottotitoli in diretta mentre arriva l’audio del microfono; OpenAI indica GPT Live Transcribe per quel flusso continuo.\n\nPer più turni, conservate l’identificatore dell’elemento in ingresso con la trascrizione corrispondente. OpenAI avverte che gli eventi di completamento di turni diversi non arrivano necessariamente nell’ordine del parlato: associate quindi ogni risultato finale al suo ingresso finalizzato, anziché ordinare una conversazione soltanto in base all’ora di completamento. Il risultato utile è una trascrizione ordinata assemblata dagli elementi finali corretti, con il testo provvisorio trattato come avanzamento anziché come un enunciato completato separato.\n\n### Uscite specializzate e limiti delle funzionalità\n\nQuesto profilo non fornisce un contratto universale per sottotitoli, riferimenti temporali, traduzione o etichette dei parlanti. La guida alla migrazione di OpenAI distingue tali capacità specializzate: i formati nativi dei sottotitoli e i riferimenti temporali delle parole richiedono un modello e un formato compatibili, mentre le etichette dei parlanti usano GPT-4o Transcribe Diarize. Il risultato per i file di GPT Transcribe è JSON, non una risposta direttamente sostituibile a SRT, VTT o a una risposta con riferimenti temporali dettagliati. La scheda esatta del modello non pubblica un limite numerico per il contesto o per l’uscita massima, quindi non va presunta una finestra di token da modello di chat per la trascrizione audio.\n\nVerificate rispetto alla registrazione i vocaboli difficili, i numeri, gli accenti, il rumore di fondo e i cambi di lingua. Controllate che le indicazioni pertinenti abbiano migliorato il riconoscimento senza introdurre termini non pronunciati e che la trascrizione finale includa la fine dell’audio. Per un risultato multilingue, preservate le parole pronunciate prima di preparare una versione tradotta. Questi controlli rendono la trascrizione utile come materiale di origine, mantenendo chiaramente distinti contesto suggerito, lingue rilevate e parlato riconosciuto.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "6196e89347ad631c700511d19539a103fda78354c7950edc9228b48dea747465",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "it",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">O</span><h2 id=\"sheet-title\">OpenAI: GPT Transcribe</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Chiudi\">×</button></div><div class=\"idline\"><span>OpenAI /</span><code>openai/gpt-transcribe</code><button type=\"button\" id=\"copy-id\">Copia ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Sezioni della scheda del modello\"><button type=\"button\" data-card-jump=\"overview\">Introduzione</button><button type=\"button\" data-card-jump=\"methods\">Input e metodi</button><button type=\"button\" data-card-jump=\"pricing\">Tariffe</button><button type=\"button\" data-card-jump=\"examples\">Esempi</button><button type=\"button\" data-card-jump=\"results\">Risultati</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Metodi 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|openai%2Fgpt-transcribe\">Riconoscimento</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\">Introduzione</h3><p class=\"mdesc-full\">GPT Transcribe trasforma il parlato registrato in testo nella lingua originale, con prompt contestuali, indicazioni letterali su parole chiave e suggerimenti per più lingue. OpenAI documenta la trascrizione di file completi, i risultati di trascrizione dei file restituiti progressivamente e la trascrizione dopo la finalizzazione dei turni audio Realtime.</p><dl class=\"card-io\" data-card-io><div><dt>Input accettati</dt><dd>Audio</dd></div><div><dt>Risultati</dt><dd>Testo</dd></div></dl><details class=\"card-about\"><summary>Informazioni sul modello</summary><p class=\"note-s\" data-model-method-boundary>Questa descrizione illustra le funzionalità del modello. Gli input, gli output e le opzioni disponibili in Ailoot per il metodo selezionato sono elencati di seguito.</p><div class=\"mabout\" id=\"m-about\"><p>GPT Transcribe è il modello di OpenAI per trascrivere il parlato di file audio completi, restituire progressivamente trascrizioni di file e trascrivere turni audio finalizzati nelle sessioni Realtime. Accetta audio con contesto testuale opzionale e restituisce testo riconosciuto. Il produttore lo presenta per la trascrizione precisa del parlato registrato nella lingua originale, compresi vocabolario specialistico, registrazioni multilingue e alternanza tra lingue. Il risultato utile è una trascrizione che resta collegata alla registrazione, con metadati sulle lingue rilevate quando il modello può formulare una previsione affidabile.</p><h4>Preparare una registrazione completa</h4><p>Il flusso di trascrizione di file di OpenAI accetta caricamenti fino a 25 MB. L’attuale riferimento dell’endpoint elenca i formati in ingresso FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV e WebM e raccomanda metadati sufficienti per identificare il formato, compresi un’estensione del nome del file e un tipo di contenuto adeguati. Per una registrazione più grande, la guida raccomanda di comprimerla o dividerla in file da 25 MB o meno. Evitate di tagliare a metà di una frase, perché rimuovere il parlato circostante può ridurre la precisione del riconoscimento. Mantenete le parti in ordine e conservatene le posizioni nella registrazione originale.</p><p>Per una riunione, un’intervista o una presentazione registrata, fornite l’audio effettivo e identificate l’argomento e la terminologia che potrebbe essere pronunciata. Un risultato utile riporta le parole riconosciute anziché un riassunto dedotto della discussione. Preservate l’identificatore della registrazione con il testo restituito, affinché chi verifica un nome, un numero o una frase incerta possa tornare alla fonte corretta. La trascrizione può poi diventare materiale per un flusso separato di riassunto, traduzione o revisione editoriale.</p><h4>Contesto, parole chiave e lingue attese</h4><p>Il produttore distingue tre tipi di indicazioni. Un prompt fornisce contesto libero sull’argomento o sulla situazione della registrazione. Le parole chiave indicano parole o espressioni letterali attese nel parlato. Un elenco di lingue identifica le lingue parlate previste. Per una discussione bilingue su un prodotto, descrivete la situazione nel prompt, elencate i nomi dei prodotti pertinenti come parole chiave e fornite le lingue attese. Sono indicazioni per il riconoscimento, non istruzioni per inserire vocaboli che nessuno ha pronunciato.</p><p>GPT Transcribe usa il campo plurale languages anziché il precedente campo singolare language; OpenAI dice di non inviarli entrambi. La guida accetta codici ISO 639-1 supportati, alcuni codici ISO 639-3 e codici regionali delle impostazioni locali cinesi, rifiutando valori non supportati o malformati. Ogni parola chiave deve stare su una sola riga e non deve contenere parentesi angolari, ritorni carrello o avanzamenti di riga. Una parola chiave non valida o un prompt troppo lungo possono far rifiutare l’intera richiesta. Mantenete pertinente il contesto e verificate se i nomi suggeriti compaiono effettivamente nell’audio, anziché trattare l’elenco delle indicazioni come la trascrizione.</p><h4>Uscita JSON e previsioni delle lingue rilevate</h4><p>Il risultato documentato per i file è JSON contenente la trascrizione e le lingue rilevate. Queste previsioni sulle lingue sono l’uscita del modello, non una copia delle indicazioni linguistiche fornite. Un elenco di lingue vuoto è un risultato valido quando il modello non può formulare una previsione affidabile; non dimostra che la registrazione fosse silenziosa o che la trascrizione sia fallita. Tenete separati testo riconosciuto e metadati linguistici, affinché l’elaborazione successiva possa usare ciascuno secondo il suo significato.</p><h4>Trasmettere progressivamente la trascrizione di un file</h4><p>Un file completo può produrre testo trascritto in modo incrementale durante l’elaborazione. OpenAI documenta eventi transcript.text.delta per il testo parziale e transcript.text.done per la trascrizione completa del file; l’evento finale include anche le lingue rilevate. Si trasmette così progressivamente l’uscita di una registrazione già fornita. È utile per mostrare l’avanzamento di un caricamento lungo, mentre l’evento finale stabilisce il testo da conservare come risultato completato.</p><h4>Turni finalizzati nelle sessioni Realtime</h4><p>GPT Transcribe ha anche un flusso Realtime specializzato tramite WebSocket. L’audio viene aggiunto al buffer di ingresso, poi l’applicazione finalizza esplicitamente un turno audio. La trascrizione inizia per quel segmento finalizzato e può emettere porzioni di testo prima dell’evento di completamento, comprese informazioni sulle lingue rilevate. Il modello usa automaticamente i turni già trascritti come contesto in questo flusso di sessione del produttore. È distinto dall’emissione continua di sottotitoli in diretta mentre arriva l’audio del microfono; OpenAI indica GPT Live Transcribe per quel flusso continuo.</p><p>Per più turni, conservate l’identificatore dell’elemento in ingresso con la trascrizione corrispondente. OpenAI avverte che gli eventi di completamento di turni diversi non arrivano necessariamente nell’ordine del parlato: associate quindi ogni risultato finale al suo ingresso finalizzato, anziché ordinare una conversazione soltanto in base all’ora di completamento. Il risultato utile è una trascrizione ordinata assemblata dagli elementi finali corretti, con il testo provvisorio trattato come avanzamento anziché come un enunciato completato separato.</p><h4>Uscite specializzate e limiti delle funzionalità</h4><p>Questo profilo non fornisce un contratto universale per sottotitoli, riferimenti temporali, traduzione o etichette dei parlanti. La guida alla migrazione di OpenAI distingue tali capacità specializzate: i formati nativi dei sottotitoli e i riferimenti temporali delle parole richiedono un modello e un formato compatibili, mentre le etichette dei parlanti usano GPT-4o Transcribe Diarize. Il risultato per i file di GPT Transcribe è JSON, non una risposta direttamente sostituibile a SRT, VTT o a una risposta con riferimenti temporali dettagliati. La scheda esatta del modello non pubblica un limite numerico per il contesto o per l’uscita massima, quindi non va presunta una finestra di token da modello di chat per la trascrizione audio.</p><p>Verificate rispetto alla registrazione i vocaboli difficili, i numeri, gli accenti, il rumore di fondo e i cambi di lingua. Controllate che le indicazioni pertinenti abbiano migliorato il riconoscimento senza introdurre termini non pronunciati e che la trascrizione finale includa la fine dell’audio. Per un risultato multilingue, preservate le parole pronunciate prima di preparare una versione tradotta. Questi controlli rendono la trascrizione utile come materiale di origine, mantenendo chiaramente distinti contesto suggerito, lingue rilevate e parlato riconosciuto.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Disponibile in Ailoot · input e metodi</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Trascrizione</b> <code>POST /v1/audio/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>Tipi di input</dt><dd><code>audio</code></dd></div><div><dt>Tipi di output</dt><dd><code>text</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Campo</th><th>Tipo</th><th>Requisito</th><th>Valori e limiti</th><th>Predefinito</th></tr></thead><tbody><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Obbligatorio</td><td data-cell-label=\"Valori e limiti\"><span class=\"card-cell-label\">Valori e limiti</span><div>openai/gpt-transcribe</div></td><td data-cell-label=\"Predefinito\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinito</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">input_audio</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>object</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Obbligatorio</td><td data-cell-label=\"Valori e limiti\"><span class=\"card-cell-label\">Valori e limiti</span></td><td data-cell-label=\"Predefinito\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinito</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Parametri e ciclo di vita del metodo</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parametro</th><th>Contratto</th></tr></thead><tbody><tr><th data-cell-label=\"Parametro\" scope=\"row\"><span class=\"card-cell-label\">Parametro</span><code>content_type</code></th><td data-cell-label=\"Contratto\"><span class=\"card-cell-label\">Contratto</span>application/json</td></tr><tr><th data-cell-label=\"Parametro\" scope=\"row\"><span class=\"card-cell-label\">Parametro</span><code>required</code></th><td data-cell-label=\"Contratto\"><span class=\"card-cell-label\">Contratto</span>model, input_audio</td></tr><tr><th data-cell-label=\"Parametro\" scope=\"row\"><span class=\"card-cell-label\">Parametro</span><code>material_types</code></th><td data-cell-label=\"Contratto\"><span class=\"card-cell-label\">Contratto</span>audio</td></tr><tr><th data-cell-label=\"Parametro\" scope=\"row\"><span class=\"card-cell-label\">Parametro</span><code>material_conditions</code></th><td data-cell-label=\"Contratto\"><span class=\"card-cell-label\">Contratto</span>L&#39;esempio legge il tuo file PCM WAV reale e non vuoto, codifica tutti i byte del file in base64 e invia input_audio.format con valore wav.</td></tr></tbody></table></div><p>Ciclo di vita: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · task_id esatto di un record multimediale esistente di tua proprietà</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\">Tariffe</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Le tariffe non aggiungono opzioni alla richiesta. I parametri supportati sono elencati nel metodo selezionato.</p><dl data-price-conditions><dt>Modalità rapida</dt><dd>Non specificato <span class=\"note-s\">Quando è selezionata la modalità rapida</span></dd><dt>Modalità flex</dt><dd>Non specificato <span class=\"note-s\">Quando è selezionata la modalità flex</span></dd><dt>Sforzo massimo di ragionamento</dt><dd>Non specificato <span class=\"note-s\">Quando lo sforzo massimo di ragionamento usa l&#39;adeguamento predefinito (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Tariffe Ailoot</h4><h4>Prezzi per configurazione</h4><p class=\"note-s\">Associa ogni costo alle condizioni indicate. Usa una sola tariffa per ogni insieme di configurazioni alternative.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configurazione</th><th>Listino delle tariffe</th><th>Unità di fatturazione</th><th>Costo</th></tr></thead><tbody><tr><th data-cell-label=\"Configurazione\" scope=\"row\"><span class=\"card-cell-label\">Configurazione</span>Tariffe base dei token</th><td data-cell-label=\"Listino delle tariffe\"><span class=\"card-cell-label\">Listino delle tariffe</span>Tariffa base</td><td data-cell-label=\"Unità di fatturazione\"><span class=\"card-cell-label\">Unità di fatturazione</span>—</td><td data-cell-label=\"Costo\"><span class=\"card-cell-label\">Costo</span><div><span>Input · Token in input</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Output · Token in output</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Lettura dalla cache</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Scrittura nella cache</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Scrittura nella cache, 1 ora</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr><tr><th data-cell-label=\"Configurazione\" scope=\"row\"><span class=\"card-cell-label\">Configurazione</span>secondo audio in ingresso</th><td data-cell-label=\"Listino delle tariffe\"><span class=\"card-cell-label\">Listino delle tariffe</span>—</td><td data-cell-label=\"Unità di fatturazione\"><span class=\"card-cell-label\">Unità di fatturazione</span>per secondo di audio in input</td><td data-cell-label=\"Costo\"><span class=\"card-cell-label\">Costo</span><div><span>Input · secondo audio in ingresso</span> <b>$0.00015</b> <span class=\"price-unit\">per secondo di audio in input</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot prenota un importo stimato prima di una richiesta. Dopo il risultato, addebita il costo finale in base all’utilizzo misurato. Per lo streaming, l’addebito usa il record finale di utilizzo. <a href=\"/docs/it/billing/reserve/\">Come funzionano la prenotazione e l’addebito finale →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Esempi di richieste</h3><h4>Ailoot Ultra · Trascrizione</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Varianti di codice\"><button class=\"cg-tab\" id=\"model-code-2158-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2158-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · file WAV effettivo e risultato originale completo</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Copia il codice\"><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-2158-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2158-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;openai/gpt-transcribe&#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\">Ricevi e salva i risultati</h3><h4>Ailoot Ultra · Trascrizione</h4><p class=\"note-s\">Corpo completo della risposta originale, stato e intestazioni inoltrate. Questo gestore non aggiunge alcuna struttura JSON universale, campo di testo o struttura contenitore dell&#39;attività.</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>Conserva tutti i risultati completati</h5><p class=\"note-s\">Conserva ogni risposta, file e parte di contenuto restituiti per intero.</p><p class=\"note-s\">Conserva la risposta completa e gli header, ogni output effettivo, gli identificatori originali restituiti e tutti i campi di utilizzo. Recupera l&#39;operazione originale senza inviare nuovamente la richiesta di creazione.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Se occorre verificare la risposta originale</h5><p class=\"note-s\">Conserva l&#39;X-Client-Request-ID effettivo e la risposta completa. Consulta le risorse originali di tua proprietà e i relativi URL firmati esatti del contenuto; non inviare mai nuovamente una creazione dall&#39;esito incerto.</p></div><details class=\"card-about\" data-output-fields><summary>Campi della risposta</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Campo</th><th>Tipo</th></tr></thead><tbody><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">text (when present)</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span></td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">usage (when present)</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span></td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Errori e passaggi successivi</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Risposta</th><th>Condizione</th><th>Passaggio successivo</th></tr></thead><tbody><tr><th data-cell-label=\"Risposta\" scope=\"row\"><span class=\"card-cell-label\">Risposta</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Condizione\"><span class=\"card-cell-label\">Condizione</span>Il corpo JSON o l&#39;ID canonico esplicito del modello non è valido.</td><td data-cell-label=\"Passaggio successivo\"><span class=\"card-cell-label\">Passaggio successivo</span>Conserva la risposta e correggi il campo della richiesta indicato.</td></tr><tr><th data-cell-label=\"Risposta\" scope=\"row\"><span class=\"card-cell-label\">Risposta</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Condizione\"><span class=\"card-cell-label\">Condizione</span>La chiave API Ailoot non è valida.</td><td data-cell-label=\"Passaggio successivo\"><span class=\"card-cell-label\">Passaggio successivo</span>Usa la tua chiave API Ailoot autorizzata.</td></tr><tr><th data-cell-label=\"Risposta\" scope=\"row\"><span class=\"card-cell-label\">Risposta</span>403 · <code>permission_error</code></th><td data-cell-label=\"Condizione\"><span class=\"card-cell-label\">Condizione</span>Il gruppo della chiave non è autorizzato a utilizzare questo metodo.</td><td data-cell-label=\"Passaggio successivo\"><span class=\"card-cell-label\">Passaggio successivo</span>Conserva i dettagli dell&#39;errore restituiti.</td></tr><tr><th data-cell-label=\"Risposta\" scope=\"row\"><span class=\"card-cell-label\">Risposta</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Condizione\"><span class=\"card-cell-label\">Condizione</span>Il metodo selezionato non dispone di una rotta autorizzata all&#39;utilizzo.</td><td data-cell-label=\"Passaggio successivo\"><span class=\"card-cell-label\">Passaggio successivo</span>Conserva i dettagli dell&#39;errore restituiti.</td></tr><tr><th data-cell-label=\"Risposta\" scope=\"row\"><span class=\"card-cell-label\">Risposta</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Condizione\"><span class=\"card-cell-label\">Condizione</span>La tariffa accettata non può ottenere la quantità in ingresso o il limite richiesto.</td><td data-cell-label=\"Passaggio successivo\"><span class=\"card-cell-label\">Passaggio successivo</span>Conserva la risposta; usa la rappresentazione dell&#39;input richiesta dalla tariffa accettata.</td></tr><tr><th data-cell-label=\"Risposta\" scope=\"row\"><span class=\"card-cell-label\">Risposta</span>503 · <code></code></th><td data-cell-label=\"Condizione\"><span class=\"card-cell-label\">Condizione</span>L&#39;archiviazione richiesta, la rotta, il prezzo del metodo o la riserva dell&#39;importo non sono disponibili.</td><td data-cell-label=\"Passaggio successivo\"><span class=\"card-cell-label\">Passaggio successivo</span>Conserva l&#39;intera risposta originale. Una riserva dell&#39;importo dall&#39;esito incerto non autorizza un nuovo invio.</td></tr><tr><th data-cell-label=\"Risposta\" scope=\"row\"><span class=\"card-cell-label\">Risposta</span>502 · <code>server_error</code></th><td data-cell-label=\"Condizione\"><span class=\"card-cell-label\">Condizione</span>Il risultato originale, i dati di utilizzo o il conguaglio dell&#39;addebito richiedono una verifica.</td><td data-cell-label=\"Passaggio successivo\"><span class=\"card-cell-label\">Passaggio successivo</span>Conserva l&#39;ID effettivo della richiesta e la risposta originale. Consulta il record esistente di tua proprietà; non inviare nuovamente la richiesta di creazione.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Alias del modello</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=openai%2Fgpt-transcribe&amp;route=Ultra&amp;caller=openai%2Fgpt-transcribe&amp;fmt=transcriptions\"><code>openai/gpt-transcribe</code></a></span></p><h4>Alias dei percorsi dei metodi</h4><p class=\"note-s\">Usa i percorsi dei metodi indicati sopra.</p><h4>ID di chiamata correlati</h4><p class=\"note-s\"><a href=\"#m=openai%2Fgpt-transcribe&amp;route=Ultra&amp;caller=openai%2Fgpt-transcribe&amp;fmt=transcriptions\"><code>openai/gpt-transcribe</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "openai/gpt-transcribe",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "openai/gpt-transcribe",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|openai%2Fgpt-transcribe",
      "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": "Il corpo JSON o l'ID canonico esplicito del modello non è valido.",
                "http_status": 400,
                "recovery": "Conserva la risposta e correggi il campo della richiesta indicato.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "La chiave API Ailoot non è valida.",
                "http_status": 401,
                "recovery": "Usa la tua chiave API Ailoot autorizzata.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Il gruppo della chiave non è autorizzato a utilizzare questo metodo.",
                "http_status": 403,
                "recovery": "Conserva i dettagli dell'errore restituiti.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Il metodo selezionato non dispone di una rotta autorizzata all'utilizzo.",
                "http_status": 404,
                "recovery": "Conserva i dettagli dell'errore restituiti.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "La tariffa accettata non può ottenere la quantità in ingresso o il limite richiesto.",
                "http_status": 422,
                "recovery": "Conserva la risposta; usa la rappresentazione dell'input richiesta dalla tariffa accettata.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "L'archiviazione richiesta, la rotta, il prezzo del metodo o la riserva dell'importo non sono disponibili.",
                "http_status": 503,
                "recovery": "Conserva l'intera risposta originale. Una riserva dell'importo dall'esito incerto non autorizza un nuovo invio.",
                "type": null
              },
              {
                "code": null,
                "condition": "Il risultato originale, i dati di utilizzo o il conguaglio dell'addebito richiedono una verifica.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Conserva l'ID effettivo della richiesta e la risposta originale. Consulta il record esistente di tua proprietà; non inviare nuovamente la richiesta di creazione.",
                "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": "Conserva l'X-Client-Request-ID effettivo e la risposta completa. Consulta le risorse originali di tua proprietà e i relativi URL firmati esatti del contenuto; non inviare mai nuovamente una creazione dall'esito incerto."
            },
            "outputs": {
              "all_results": "Conserva la risposta completa e gli header, ogni output effettivo, gli identificatori originali restituiti e tutti i campi di utilizzo. Recupera l'operazione originale senza inviare nuovamente la richiesta di creazione.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Corpo completo della risposta originale, stato e intestazioni inoltrate. Questo gestore non aggiunge alcuna struttura JSON universale, campo di testo o struttura contenitore dell'attività."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "openai/gpt-transcribe"
                ],
                "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": [
                    "openai/gpt-transcribe"
                  ],
                  "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": "openai/gpt-transcribe"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "L'esempio legge il tuo file PCM WAV reale e non vuoto, codifica tutti i byte del file in base64 e invia input_audio.format con valore 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 esatto di un record multimediale esistente di tua proprietà",
                "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.00015",
                "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.00015",
                "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': 'openai/gpt-transcribe', '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": "Trascrizione",
        "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.00015
          }
        },
        "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.00015",
                "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.00015",
                "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": "openai/gpt-transcribe",
        "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.00015",
            "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.00015",
            "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": "openai/gpt-transcribe",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "63a9a4947b4f452b333191ff5ee5ee6464d307ce75543046bc8e15a8d2cd3b7c",
    "input_html_sha256": "3b8d95e38b25044593502fff7b8246f0f60ad82fe1ae7efbde1b1941d78aea53",
    "private_audit_sha256": "178a536e08d3eb1cf8e6d8dcbbde3febc90b3bb932a5d9c66724afb9aa66d768",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/it/openai-gpt-transcribe/",
    "description": "GPT Transcribe trasforma il parlato registrato in testo nella lingua originale, con prompt contestuali, indicazioni letterali su parole chiave e suggerimenti per più lingue. OpenAI documenta la trascrizione di file completi, i risultati di trascrizione dei file restituiti progressivamente e la trascrizione dopo la finalizzazione dei turni audio Realtime.",
    "locale": "it",
    "md_url": "https://ailoot.ai/models/it/openai-gpt-transcribe/index.md",
    "title": "OpenAI: GPT Transcribe — Ailoot",
    "url": "https://ailoot.ai/models/it/openai-gpt-transcribe/"
  },
  "rawModel": {
    "about": "GPT Transcribe è il modello di OpenAI per trascrivere il parlato di file audio completi, restituire progressivamente trascrizioni di file e trascrivere turni audio finalizzati nelle sessioni Realtime. Accetta audio con contesto testuale opzionale e restituisce testo riconosciuto. Il produttore lo presenta per la trascrizione precisa del parlato registrato nella lingua originale, compresi vocabolario specialistico, registrazioni multilingue e alternanza tra lingue. Il risultato utile è una trascrizione che resta collegata alla registrazione, con metadati sulle lingue rilevate quando il modello può formulare una previsione affidabile.\n\n### Preparare una registrazione completa\n\nIl flusso di trascrizione di file di OpenAI accetta caricamenti fino a 25 MB. L’attuale riferimento dell’endpoint elenca i formati in ingresso FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV e WebM e raccomanda metadati sufficienti per identificare il formato, compresi un’estensione del nome del file e un tipo di contenuto adeguati. Per una registrazione più grande, la guida raccomanda di comprimerla o dividerla in file da 25 MB o meno. Evitate di tagliare a metà di una frase, perché rimuovere il parlato circostante può ridurre la precisione del riconoscimento. Mantenete le parti in ordine e conservatene le posizioni nella registrazione originale.\n\nPer una riunione, un’intervista o una presentazione registrata, fornite l’audio effettivo e identificate l’argomento e la terminologia che potrebbe essere pronunciata. Un risultato utile riporta le parole riconosciute anziché un riassunto dedotto della discussione. Preservate l’identificatore della registrazione con il testo restituito, affinché chi verifica un nome, un numero o una frase incerta possa tornare alla fonte corretta. La trascrizione può poi diventare materiale per un flusso separato di riassunto, traduzione o revisione editoriale.\n\n### Contesto, parole chiave e lingue attese\n\nIl produttore distingue tre tipi di indicazioni. Un prompt fornisce contesto libero sull’argomento o sulla situazione della registrazione. Le parole chiave indicano parole o espressioni letterali attese nel parlato. Un elenco di lingue identifica le lingue parlate previste. Per una discussione bilingue su un prodotto, descrivete la situazione nel prompt, elencate i nomi dei prodotti pertinenti come parole chiave e fornite le lingue attese. Sono indicazioni per il riconoscimento, non istruzioni per inserire vocaboli che nessuno ha pronunciato.\n\nGPT Transcribe usa il campo plurale languages anziché il precedente campo singolare language; OpenAI dice di non inviarli entrambi. La guida accetta codici ISO 639-1 supportati, alcuni codici ISO 639-3 e codici regionali delle impostazioni locali cinesi, rifiutando valori non supportati o malformati. Ogni parola chiave deve stare su una sola riga e non deve contenere parentesi angolari, ritorni carrello o avanzamenti di riga. Una parola chiave non valida o un prompt troppo lungo possono far rifiutare l’intera richiesta. Mantenete pertinente il contesto e verificate se i nomi suggeriti compaiono effettivamente nell’audio, anziché trattare l’elenco delle indicazioni come la trascrizione.\n\n### Uscita JSON e previsioni delle lingue rilevate\n\nIl risultato documentato per i file è JSON contenente la trascrizione e le lingue rilevate. Queste previsioni sulle lingue sono l’uscita del modello, non una copia delle indicazioni linguistiche fornite. Un elenco di lingue vuoto è un risultato valido quando il modello non può formulare una previsione affidabile; non dimostra che la registrazione fosse silenziosa o che la trascrizione sia fallita. Tenete separati testo riconosciuto e metadati linguistici, affinché l’elaborazione successiva possa usare ciascuno secondo il suo significato.\n\n### Trasmettere progressivamente la trascrizione di un file\n\nUn file completo può produrre testo trascritto in modo incrementale durante l’elaborazione. OpenAI documenta eventi transcript.text.delta per il testo parziale e transcript.text.done per la trascrizione completa del file; l’evento finale include anche le lingue rilevate. Si trasmette così progressivamente l’uscita di una registrazione già fornita. È utile per mostrare l’avanzamento di un caricamento lungo, mentre l’evento finale stabilisce il testo da conservare come risultato completato.\n\n### Turni finalizzati nelle sessioni Realtime\n\nGPT Transcribe ha anche un flusso Realtime specializzato tramite WebSocket. L’audio viene aggiunto al buffer di ingresso, poi l’applicazione finalizza esplicitamente un turno audio. La trascrizione inizia per quel segmento finalizzato e può emettere porzioni di testo prima dell’evento di completamento, comprese informazioni sulle lingue rilevate. Il modello usa automaticamente i turni già trascritti come contesto in questo flusso di sessione del produttore. È distinto dall’emissione continua di sottotitoli in diretta mentre arriva l’audio del microfono; OpenAI indica GPT Live Transcribe per quel flusso continuo.\n\nPer più turni, conservate l’identificatore dell’elemento in ingresso con la trascrizione corrispondente. OpenAI avverte che gli eventi di completamento di turni diversi non arrivano necessariamente nell’ordine del parlato: associate quindi ogni risultato finale al suo ingresso finalizzato, anziché ordinare una conversazione soltanto in base all’ora di completamento. Il risultato utile è una trascrizione ordinata assemblata dagli elementi finali corretti, con il testo provvisorio trattato come avanzamento anziché come un enunciato completato separato.\n\n### Uscite specializzate e limiti delle funzionalità\n\nQuesto profilo non fornisce un contratto universale per sottotitoli, riferimenti temporali, traduzione o etichette dei parlanti. La guida alla migrazione di OpenAI distingue tali capacità specializzate: i formati nativi dei sottotitoli e i riferimenti temporali delle parole richiedono un modello e un formato compatibili, mentre le etichette dei parlanti usano GPT-4o Transcribe Diarize. Il risultato per i file di GPT Transcribe è JSON, non una risposta direttamente sostituibile a SRT, VTT o a una risposta con riferimenti temporali dettagliati. La scheda esatta del modello non pubblica un limite numerico per il contesto o per l’uscita massima, quindi non va presunta una finestra di token da modello di chat per la trascrizione audio.\n\nVerificate rispetto alla registrazione i vocaboli difficili, i numeri, gli accenti, il rumore di fondo e i cambi di lingua. Controllate che le indicazioni pertinenti abbiano migliorato il riconoscimento senza introdurre termini non pronunciati e che la trascrizione finale includa la fine dell’audio. Per un risultato multilingue, preservate le parole pronunciate prima di preparare una versione tradotta. Questi controlli rendono la trascrizione utile come materiale di origine, mantenendo chiaramente distinti contesto suggerito, lingue rilevate e parlato riconosciuto.",
    "alias_of": null,
    "aliases": [],
    "author": "OpenAI",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00015",
            "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.00015",
            "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": "Tutte le tariffe della configurazione sono riportate nei dettagli."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "openai/gpt-transcribe",
    "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": "Il corpo JSON o l'ID canonico esplicito del modello non è valido.",
                "http_status": 400,
                "recovery": "Conserva la risposta e correggi il campo della richiesta indicato.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "La chiave API Ailoot non è valida.",
                "http_status": 401,
                "recovery": "Usa la tua chiave API Ailoot autorizzata.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Il gruppo della chiave non è autorizzato a utilizzare questo metodo.",
                "http_status": 403,
                "recovery": "Conserva i dettagli dell'errore restituiti.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Il metodo selezionato non dispone di una rotta autorizzata all'utilizzo.",
                "http_status": 404,
                "recovery": "Conserva i dettagli dell'errore restituiti.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "La tariffa accettata non può ottenere la quantità in ingresso o il limite richiesto.",
                "http_status": 422,
                "recovery": "Conserva la risposta; usa la rappresentazione dell'input richiesta dalla tariffa accettata.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "L'archiviazione richiesta, la rotta, il prezzo del metodo o la riserva dell'importo non sono disponibili.",
                "http_status": 503,
                "recovery": "Conserva l'intera risposta originale. Una riserva dell'importo dall'esito incerto non autorizza un nuovo invio.",
                "type": null
              },
              {
                "code": null,
                "condition": "Il risultato originale, i dati di utilizzo o il conguaglio dell'addebito richiedono una verifica.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Conserva l'ID effettivo della richiesta e la risposta originale. Consulta il record esistente di tua proprietà; non inviare nuovamente la richiesta di creazione.",
                "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": "Conserva l'X-Client-Request-ID effettivo e la risposta completa. Consulta le risorse originali di tua proprietà e i relativi URL firmati esatti del contenuto; non inviare mai nuovamente una creazione dall'esito incerto."
            },
            "outputs": {
              "all_results": "Conserva la risposta completa e gli header, ogni output effettivo, gli identificatori originali restituiti e tutti i campi di utilizzo. Recupera l'operazione originale senza inviare nuovamente la richiesta di creazione.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Corpo completo della risposta originale, stato e intestazioni inoltrate. Questo gestore non aggiunge alcuna struttura JSON universale, campo di testo o struttura contenitore dell'attività."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "openai/gpt-transcribe"
                ],
                "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": [
                    "openai/gpt-transcribe"
                  ],
                  "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": "openai/gpt-transcribe"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "L'esempio legge il tuo file PCM WAV reale e non vuoto, codifica tutti i byte del file in base64 e invia input_audio.format con valore 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 esatto di un record multimediale esistente di tua proprietà",
                "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.00015",
                "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.00015",
                "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': 'openai/gpt-transcribe', '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": "Trascrizione",
        "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.00015
          }
        },
        "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.00015",
                "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.00015",
                "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": "openai/gpt-transcribe",
        "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.00015",
            "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.00015",
            "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": "openai/gpt-transcribe",
        "request_model_id": "openai/gpt-transcribe",
        "route_label": "Ultra"
      }
    ],
    "name": "OpenAI: GPT Transcribe",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "GPT Transcribe trasforma il parlato registrato in testo nella lingua originale, con prompt contestuali, indicazioni letterali su parole chiave e suggerimenti per più lingue. OpenAI documenta la trascrizione di file completi, i risultati di trascrizione dei file restituiti progressivamente e la trascrizione dopo la finalizzazione dei turni audio Realtime."
  },
  "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": "GPT Transcribe trasforma il parlato registrato in testo nella lingua originale, con prompt contestuali, indicazioni letterali su parole chiave e suggerimenti per più lingue. OpenAI documenta la trascrizione di file completi, i risultati di trascrizione dei file restituiti progressivamente e la trascrizione dopo la finalizzazione dei turni audio Realtime.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "e2f8bfce19c0f40133763359e388e60f6213d3f00101d1e7f0bac5b83ff2e945",
    "renderer_sha256": "3be1a96012c3c76b38a7b9bea6a57c0def38c56103737bee6a5e77aaa75e488a"
  },
  "sourceRevision": "b2263e687acb6d54a697f5db51578b5b71222eceece8f0b10e45b8fece7a0ee7"
}
