{
  "aboutHtml": "<p>Drama 3 is het tekst-naar-spraakmodel van Fish Audio voor een voorgedragen script. Het maakt spraakaudio van de woorden die u aanlevert en geeft de scriptschrijver controle over de voordracht. Een regel kan een emotionele aanwijzing, een lokale verandering in stemgebruik of een uitspraakinstructie bevatten, zodat de invoer zowel de gesproken inhoud als de gewenste klank bevat.</p><h4>Schrijf de woorden en regisseer de uitvoering</h4><p>Bereid de exacte woorden voor die de luisteraar zou moeten horen voordat u uitvoeringsaanwijzingen toevoegt. Houd belangrijke namen, datums en instructies duidelijk in het script en gebruik interpunctie om het beoogde zinsritme vast te leggen. Plaats vervolgens een aanwijzing in gewone taal tussen vierkante haakjes vóór de regel waarop deze betrekking heeft. Beschrijf de gewenste emotie of voordracht concreet, bijvoorbeeld een ingetogen aankondiging, een gespannen gesprek of een warme uitleg.</p><p>Drama 3 ondersteunt ook lokale besturing binnen een regel. Inline-instructies kunnen geluiden en pauzes introduceren, terwijl gepaarde voordrachtstags bepaalde woorden kunnen beïnvloeden. Houd de reikwijdte van elke instructie duidelijk: een aanwijzing voor één zinsdeel zou niet onbedoeld de aanwijzing voor de hele scène moeten worden. Lees het script vóór de synthese eenmaal op betekenis en eenmaal op uitvoering.</p><h4>Scènes, talen en uitspraak</h4><p>Het gepubliceerde model ondersteunt meerdere sprekers binnen één verzoek. Organiseer de dialoog in duidelijke spreekbeurten en geef elke beurt een doel: een vraag, onderbreking, uitleg of antwoord. Voor een les of uitleg kan dezelfde aanpak een verteller scheiden van een geciteerd personage, zonder het materiaal te herschrijven tot één ongedifferentieerde monoloog.</p><p>Drama 3 ondersteunt meer dan 80 talen en kan binnen een zin van taal wisselen met behoud van de stem. Bereid meertalige passages voor in de talen waarin ze moeten worden uitgesproken, in plaats van aan te nemen dat een Engelse instructie een vertaling oplevert. Bepaal hoe buitenlandse namen en leenwoorden zouden moeten klinken en gebruik de foneeminstellingen van het model wanneer de uitspraak nauwkeurige sturing nodig heeft.</p><h4>Bruikbare audioresultaten</h4><p>Het model past bij personagedialogen, ingesproken lessen, korte uitleg, productaankondigingen en gescripte stemantwoorden. Houd inhoud en acteerskeuzes bij elkaar: een educatieve passage heeft begrijpelijke terminologie en doelgerichte pauzes nodig; een personagescène heeft duidelijk gescheiden beurten en een consistente dramatische bedoeling nodig. Dat zijn schrijfkeuzes die kunnen worden beoordeeld voordat er audio wordt gegenereerd.</p><p>Vergelijk na de synthese de gesproken woorden met het voltooide script. Luister naar weggelaten zinsdelen, verkeerd geplaatste pauzes, onduidelijke sprekerwisselingen en de uitspraak van te behouden namen. Bewaar het script en de voordrachtaanwijzingen bij de audio, zodat een correctie op de betrokken regel kan worden gericht. Houd bij het voorbereiden van een herziening de uiteindelijke gesproken inhoud en de voordrachtskeuzes per regel samen.</p><h4>Mogelijkheden</h4><ul><li>Voordracht van een voltooid script via tekst-naar-spraak.</li><li>Aanwijzingen in gewone taal tussen vierkante haakjes vóór een regel.</li><li>Inline-geluiden en pauzes, met gepaarde voordrachtstags voor specifieke woorden.</li><li>Scènes met meerdere sprekers en meer dan 80 gesproken talen.</li><li>Foneeminstellingen voor namen en specialistische terminologie.</li></ul><h4>Gebruiksscenario’s</h4><ul><li><strong>Personagedialoog</strong> — Een script met duidelijk gescheiden spreekbeurten en voordrachtsaanwijzingen. Resultaat: Een gesproken scène met doelbewuste veranderingen in voordracht.</li><li><strong>Ingesproken uitleg</strong> — Een voltooide les met gemarkeerde terminologie en pauzes. Resultaat: Spraakaudio die aan de lestekst kan worden getoetst.</li><li><strong>Meertalige aankondiging</strong> — Definitieve tekst in de beoogde talen, met behoud van de uitspraakkeuzes. Resultaat: Een gesproken passage met gecontroleerde taalovergangen.</li><li><strong>Gesproken antwoord op basis van een script.</strong> — Een beknopt antwoord met een expliciete toon en de uit te spreken woorden. Resultaat: Een herbruikbaar spraaksegment voor de omringende applicatie.</li></ul><h4>Beperkingen</h4><ul><li><strong>Invoer en resultaat</strong> — Het gepubliceerde model neemt tekst aan en geeft spraakaudio terug.</li><li><strong>Reikwijdte van de aanwijzingen</strong> — Koppel een aanwijzing aan de beoogde regel of frase en houd gepaarde voordrachtstags correct afgebakend.</li><li><strong>Beoordelingseenheid</strong> — Bewaar het exacte script en de aanwijzingen bij de audio; beoordeel uitspraak en spreekbeurten per regel.</li></ul>",
  "aboutText": "Drama 3 is het tekst-naar-spraakmodel van Fish Audio voor een voorgedragen script. Het maakt spraakaudio van de woorden die u aanlevert en geeft de scriptschrijver controle over de voordracht. Een regel kan een emotionele aanwijzing, een lokale verandering in stemgebruik of een uitspraakinstructie bevatten, zodat de invoer zowel de gesproken inhoud als de gewenste klank bevat.\n\n### Schrijf de woorden en regisseer de uitvoering\n\nBereid de exacte woorden voor die de luisteraar zou moeten horen voordat u uitvoeringsaanwijzingen toevoegt. Houd belangrijke namen, datums en instructies duidelijk in het script en gebruik interpunctie om het beoogde zinsritme vast te leggen. Plaats vervolgens een aanwijzing in gewone taal tussen vierkante haakjes vóór de regel waarop deze betrekking heeft. Beschrijf de gewenste emotie of voordracht concreet, bijvoorbeeld een ingetogen aankondiging, een gespannen gesprek of een warme uitleg.\n\nDrama 3 ondersteunt ook lokale besturing binnen een regel. Inline-instructies kunnen geluiden en pauzes introduceren, terwijl gepaarde voordrachtstags bepaalde woorden kunnen beïnvloeden. Houd de reikwijdte van elke instructie duidelijk: een aanwijzing voor één zinsdeel zou niet onbedoeld de aanwijzing voor de hele scène moeten worden. Lees het script vóór de synthese eenmaal op betekenis en eenmaal op uitvoering.\n\n### Scènes, talen en uitspraak\n\nHet gepubliceerde model ondersteunt meerdere sprekers binnen één verzoek. Organiseer de dialoog in duidelijke spreekbeurten en geef elke beurt een doel: een vraag, onderbreking, uitleg of antwoord. Voor een les of uitleg kan dezelfde aanpak een verteller scheiden van een geciteerd personage, zonder het materiaal te herschrijven tot één ongedifferentieerde monoloog.\n\nDrama 3 ondersteunt meer dan 80 talen en kan binnen een zin van taal wisselen met behoud van de stem. Bereid meertalige passages voor in de talen waarin ze moeten worden uitgesproken, in plaats van aan te nemen dat een Engelse instructie een vertaling oplevert. Bepaal hoe buitenlandse namen en leenwoorden zouden moeten klinken en gebruik de foneeminstellingen van het model wanneer de uitspraak nauwkeurige sturing nodig heeft.\n\n### Bruikbare audioresultaten\n\nHet model past bij personagedialogen, ingesproken lessen, korte uitleg, productaankondigingen en gescripte stemantwoorden. Houd inhoud en acteerskeuzes bij elkaar: een educatieve passage heeft begrijpelijke terminologie en doelgerichte pauzes nodig; een personagescène heeft duidelijk gescheiden beurten en een consistente dramatische bedoeling nodig. Dat zijn schrijfkeuzes die kunnen worden beoordeeld voordat er audio wordt gegenereerd.\n\nVergelijk na de synthese de gesproken woorden met het voltooide script. Luister naar weggelaten zinsdelen, verkeerd geplaatste pauzes, onduidelijke sprekerwisselingen en de uitspraak van te behouden namen. Bewaar het script en de voordrachtaanwijzingen bij de audio, zodat een correctie op de betrokken regel kan worden gericht. Houd bij het voorbereiden van een herziening de uiteindelijke gesproken inhoud en de voordrachtskeuzes per regel samen.\n\n### Mogelijkheden\n\n- Voordracht van een voltooid script via tekst-naar-spraak.\n- Aanwijzingen in gewone taal tussen vierkante haakjes vóór een regel.\n- Inline-geluiden en pauzes, met gepaarde voordrachtstags voor specifieke woorden.\n- Scènes met meerdere sprekers en meer dan 80 gesproken talen.\n- Foneeminstellingen voor namen en specialistische terminologie.\n\n### Gebruiksscenario’s\n\n- **Personagedialoog** — Een script met duidelijk gescheiden spreekbeurten en voordrachtsaanwijzingen. Resultaat: Een gesproken scène met doelbewuste veranderingen in voordracht.\n- **Ingesproken uitleg** — Een voltooide les met gemarkeerde terminologie en pauzes. Resultaat: Spraakaudio die aan de lestekst kan worden getoetst.\n- **Meertalige aankondiging** — Definitieve tekst in de beoogde talen, met behoud van de uitspraakkeuzes. Resultaat: Een gesproken passage met gecontroleerde taalovergangen.\n- **Gesproken antwoord op basis van een script.** — Een beknopt antwoord met een expliciete toon en de uit te spreken woorden. Resultaat: Een herbruikbaar spraaksegment voor de omringende applicatie.\n\n### Beperkingen\n\n- **Invoer en resultaat** — Het gepubliceerde model neemt tekst aan en geeft spraakaudio terug.\n- **Reikwijdte van de aanwijzingen** — Koppel een aanwijzing aan de beoogde regel of frase en houd gepaarde voordrachtstags correct afgebakend.\n- **Beoordelingseenheid** — Bewaar het exacte script en de aanwijzingen bij de audio; beoordeel uitspraak en spreekbeurten per regel.\n",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "494db952945907fd5c135c5198ba84f3f7edd02643f0ee91a9353172299d00a0",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "nl-be",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Fish Audio: Drama 3</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Sluiten\">×</button></div><div class=\"idline\"><span>Fish Audio /</span><code>fish-audio/drama-3</code><button type=\"button\" id=\"copy-id\">ID kopiëren</button></div><nav class=\"card-jump-nav\" aria-label=\"Onderdelen van de modelkaart\"><button type=\"button\" data-card-jump=\"overview\">Aan de slag</button><button type=\"button\" data-card-jump=\"methods\">Invoer en methoden</button><button type=\"button\" data-card-jump=\"pricing\">Tarieven</button><button type=\"button\" data-card-jump=\"examples\">Voorbeelden</button><button type=\"button\" data-card-jump=\"results\">Resultaten</button><button type=\"button\" data-card-jump=\"aliases\">Aliasnamen</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-methoden\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|speech|/v1/audio/speech|fish-audio%2Fdrama-3\">Spraakgeneratie</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\">Aan de slag</h3><p class=\"mdesc-full\">Drama 3 zet een geschreven script om in geregisseerde spraak. Stuur emotie en voordracht met aanwijzingen in gewone taal, voeg pauzes en geluiden toe, begeleid de uitspraak en maak scènes met meerdere sprekers. De gepubliceerde spraakworkflow ondersteunt meer dan 80 talen, inclusief taalwisselingen binnen een zin.</p><dl class=\"card-io\" data-card-io><div><dt>Toegestane invoer</dt><dd>Tekst</dd></div><div><dt>Resultaten</dt><dd>Audio</dd></div></dl><details class=\"card-about\"><summary>Over het model</summary><p class=\"note-s\" data-model-method-boundary>Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.</p><div class=\"mabout\" id=\"m-about\"><p>Drama 3 is het tekst-naar-spraakmodel van Fish Audio voor een voorgedragen script. Het maakt spraakaudio van de woorden die u aanlevert en geeft de scriptschrijver controle over de voordracht. Een regel kan een emotionele aanwijzing, een lokale verandering in stemgebruik of een uitspraakinstructie bevatten, zodat de invoer zowel de gesproken inhoud als de gewenste klank bevat.</p><h4>Schrijf de woorden en regisseer de uitvoering</h4><p>Bereid de exacte woorden voor die de luisteraar zou moeten horen voordat u uitvoeringsaanwijzingen toevoegt. Houd belangrijke namen, datums en instructies duidelijk in het script en gebruik interpunctie om het beoogde zinsritme vast te leggen. Plaats vervolgens een aanwijzing in gewone taal tussen vierkante haakjes vóór de regel waarop deze betrekking heeft. Beschrijf de gewenste emotie of voordracht concreet, bijvoorbeeld een ingetogen aankondiging, een gespannen gesprek of een warme uitleg.</p><p>Drama 3 ondersteunt ook lokale besturing binnen een regel. Inline-instructies kunnen geluiden en pauzes introduceren, terwijl gepaarde voordrachtstags bepaalde woorden kunnen beïnvloeden. Houd de reikwijdte van elke instructie duidelijk: een aanwijzing voor één zinsdeel zou niet onbedoeld de aanwijzing voor de hele scène moeten worden. Lees het script vóór de synthese eenmaal op betekenis en eenmaal op uitvoering.</p><h4>Scènes, talen en uitspraak</h4><p>Het gepubliceerde model ondersteunt meerdere sprekers binnen één verzoek. Organiseer de dialoog in duidelijke spreekbeurten en geef elke beurt een doel: een vraag, onderbreking, uitleg of antwoord. Voor een les of uitleg kan dezelfde aanpak een verteller scheiden van een geciteerd personage, zonder het materiaal te herschrijven tot één ongedifferentieerde monoloog.</p><p>Drama 3 ondersteunt meer dan 80 talen en kan binnen een zin van taal wisselen met behoud van de stem. Bereid meertalige passages voor in de talen waarin ze moeten worden uitgesproken, in plaats van aan te nemen dat een Engelse instructie een vertaling oplevert. Bepaal hoe buitenlandse namen en leenwoorden zouden moeten klinken en gebruik de foneeminstellingen van het model wanneer de uitspraak nauwkeurige sturing nodig heeft.</p><h4>Bruikbare audioresultaten</h4><p>Het model past bij personagedialogen, ingesproken lessen, korte uitleg, productaankondigingen en gescripte stemantwoorden. Houd inhoud en acteerskeuzes bij elkaar: een educatieve passage heeft begrijpelijke terminologie en doelgerichte pauzes nodig; een personagescène heeft duidelijk gescheiden beurten en een consistente dramatische bedoeling nodig. Dat zijn schrijfkeuzes die kunnen worden beoordeeld voordat er audio wordt gegenereerd.</p><p>Vergelijk na de synthese de gesproken woorden met het voltooide script. Luister naar weggelaten zinsdelen, verkeerd geplaatste pauzes, onduidelijke sprekerwisselingen en de uitspraak van te behouden namen. Bewaar het script en de voordrachtaanwijzingen bij de audio, zodat een correctie op de betrokken regel kan worden gericht. Houd bij het voorbereiden van een herziening de uiteindelijke gesproken inhoud en de voordrachtskeuzes per regel samen.</p><h4>Mogelijkheden</h4><ul><li>Voordracht van een voltooid script via tekst-naar-spraak.</li><li>Aanwijzingen in gewone taal tussen vierkante haakjes vóór een regel.</li><li>Inline-geluiden en pauzes, met gepaarde voordrachtstags voor specifieke woorden.</li><li>Scènes met meerdere sprekers en meer dan 80 gesproken talen.</li><li>Foneeminstellingen voor namen en specialistische terminologie.</li></ul><h4>Gebruiksscenario’s</h4><ul><li><strong>Personagedialoog</strong> — Een script met duidelijk gescheiden spreekbeurten en voordrachtsaanwijzingen. Resultaat: Een gesproken scène met doelbewuste veranderingen in voordracht.</li><li><strong>Ingesproken uitleg</strong> — Een voltooide les met gemarkeerde terminologie en pauzes. Resultaat: Spraakaudio die aan de lestekst kan worden getoetst.</li><li><strong>Meertalige aankondiging</strong> — Definitieve tekst in de beoogde talen, met behoud van de uitspraakkeuzes. Resultaat: Een gesproken passage met gecontroleerde taalovergangen.</li><li><strong>Gesproken antwoord op basis van een script.</strong> — Een beknopt antwoord met een expliciete toon en de uit te spreken woorden. Resultaat: Een herbruikbaar spraaksegment voor de omringende applicatie.</li></ul><h4>Beperkingen</h4><ul><li><strong>Invoer en resultaat</strong> — Het gepubliceerde model neemt tekst aan en geeft spraakaudio terug.</li><li><strong>Reikwijdte van de aanwijzingen</strong> — Koppel een aanwijzing aan de beoogde regel of frase en houd gepaarde voordrachtstags correct afgebakend.</li><li><strong>Beoordelingseenheid</strong> — Bewaar het exacte script en de aanwijzingen bij de audio; beoordeel uitspraak en spreekbeurten per regel.</li></ul></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Beschikbaar in Ailoot · invoer en methoden</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Spraak</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>Invoer</dt><dd><code>text</code></dd></div><div><dt>Uitvoer</dt><dd><code>audio</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Veld</th><th>Type</th><th>Vereiste</th><th>Waarden en limieten</th><th>Standaard</th></tr></thead><tbody><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Vereist</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>fish-audio/drama-3</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Vereist</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>Minimumlengte: 1</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">voice</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Vereist</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>Minimumlengte: 1</div></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Optioneel</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span><div>mp3, pcm</div></td><td data-cell-label=\"Standaard\" data-default=\"known\"><span class=\"card-cell-label\">Standaard</span>pcm</td></tr><tr><th data-cell-label=\"Veld\" scope=\"row\"><span class=\"card-cell-label\">Veld</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>object</code></td><td data-cell-label=\"Vereiste\"><span class=\"card-cell-label\">Vereiste</span>Optioneel</td><td data-cell-label=\"Waarden en limieten\"><span class=\"card-cell-label\">Waarden en limieten</span></td><td data-cell-label=\"Standaard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standaard</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Methodeparameters en levenscyclus</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Contract</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>model, input, voice</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>text</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_conditions</code></th><td data-cell-label=\"Contract\"><span class=\"card-cell-label\">Contract</span>Selecteer een werkelijke ondersteunde stem-ID; voor dit model is geen letterlijke standaardwaarde of stem verzonnen.</td></tr></tbody></table></div><p>Levenscyclus: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · daadwerkelijk teruggegeven task_id of record in de mediabibliotheek</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\">Tarieven</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.</p><dl data-price-conditions><dt>Snelle modus</dt><dd>Niet opgegeven <span class=\"note-s\">Wanneer de snelle modus geselecteerd is</span></dd><dt>Flex-modus</dt><dd>Niet opgegeven <span class=\"note-s\">Wanneer de flex-modus geselecteerd is</span></dd><dt>Maximale redeneerinspanning</dt><dd>Niet opgegeven <span class=\"note-s\">Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-tarieven</h4><h4>Prijzen per configuratie</h4><p class=\"note-s\">Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuratie</th><th>Tariefstaffel</th><th>Rekeneenheid</th><th>Kosten</th></tr></thead><tbody><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>Basistarieven voor tokens</th><td data-cell-label=\"Tariefstaffel\"><span class=\"card-cell-label\">Tariefstaffel</span>Basistarief</td><td data-cell-label=\"Rekeneenheid\"><span class=\"card-cell-label\">Rekeneenheid</span>—</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Invoer · Invoertokens</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Uitvoer · Uitvoertokens</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Invoer · Cache lezen</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Invoer · Cache schrijven</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Invoer · Cache schrijven, 1 uur</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div></td></tr><tr><th data-cell-label=\"Configuratie\" scope=\"row\"><span class=\"card-cell-label\">Configuratie</span>UTF-8-invoerbyte</th><td data-cell-label=\"Tariefstaffel\"><span class=\"card-cell-label\">Tariefstaffel</span>—</td><td data-cell-label=\"Rekeneenheid\"><span class=\"card-cell-label\">Rekeneenheid</span>per UTF-8-byte invoer</td><td data-cell-label=\"Kosten\"><span class=\"card-cell-label\">Kosten</span><div><span>Invoer · UTF-8-invoerbyte</span> <b>$0.00002</b> <span class=\"price-unit\">per UTF-8-byte invoer</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. <a href=\"/docs/nl-be/billing/reserve/\">Zo werken reservering en afrekening →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Voorbeeldverzoeken</h3><h4>Ailoot Ultra · Spraak</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Codevarianten\"><button class=\"cg-tab\" id=\"model-code-1352-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1352-panel-0\" aria-selected=\"true\" tabindex=\"0\">Gebruik daadwerkelijke invoer en bewaar het volledige resultaat</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Code kopiëren\"><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-1352-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1352-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_INPUT_TEXT:?Set the actual documented input value}&quot;\nexport AILOOT_INPUT_TEXT\n: &quot;${AILOOT_VOICE:?Set the actual documented input value}&quot;\nexport AILOOT_VOICE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nrequest={&#39;model&#39;: &#39;fish-audio/drama-3&#39;, &#39;input&#39;: &#39;${ACTUAL_INPUT_TEXT}&#39;, &#39;voice&#39;: &#39;${ACTUAL_SUPPORTED_VOICE}&#39;}\nrequest[&#39;input&#39;]=os.environ[&#39;AILOOT_INPUT_TEXT&#39;]\nrequest[&#39;voice&#39;]=os.environ[&#39;AILOOT_VOICE&#39;]\nPath(&#39;request.json&#39;).write_text(json.dumps(request,ensure_ascii=False),encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Resultaten ophalen en opslaan</h3><h4>Ailoot Ultra · Spraak</h4><p class=\"note-s\">Volledige binaire audio of het oorspronkelijke audio_url-antwoord, headers en elke asset die je toebehoort.</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><details class=\"card-about\"><summary>Lezen van andere inhoud</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Codevarianten\"><button class=\"cg-tab\" id=\"model-code-1353-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1353-panel-0\" aria-selected=\"true\" tabindex=\"0\">Bestaande eigen bestanden ophalen</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Code kopiëren\"><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-1353-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1353-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Alle voltooide resultaten bewaren</h5><p class=\"note-s\">Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.</p><p class=\"note-s\">Bewaar de volledige respons en headers, iedere daadwerkelijke uitvoer, de oorspronkelijk teruggegeven identificatoren en alle verbruiksvelden. Herstel de oorspronkelijke bewerking zonder de aanmaakaanvraag opnieuw in te dienen.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Als het oorspronkelijke antwoord moet worden gecontroleerd</h5><p class=\"note-s\">Bewaar de teruggegeven X-Client-Request-ID voor de reconciliatie. Lees uitsluitend daadwerkelijk teruggegeven task_id/asset_id-waarden of de eigen mediabibliotheek uit; bouw nooit een taak-URL op basis van de bewerkings-ID en dien de aanmaakaanvraag nooit opnieuw in.</p></div></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliasnamen</h3><h4>Modelaliasnamen</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=fish-audio%2Fdrama-3&amp;route=Ultra&amp;caller=fish-audio%2Fdrama-3&amp;fmt=speech\"><code>fish-audio/drama-3</code></a></span></p><h4>Aliasnamen voor methodepaden</h4><p class=\"note-s\">Gebruik de hierboven getoonde methodepaden.</p><h4>Gerelateerde aanroeper-ID’s</h4><p class=\"note-s\"><a href=\"#m=fish-audio%2Fdrama-3&amp;route=Ultra&amp;caller=fish-audio%2Fdrama-3&amp;fmt=speech\"><code>fish-audio/drama-3</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "fish-audio/drama-3",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "fish-audio/drama-3",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|fish-audio%2Fdrama-3",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Bewaar de teruggegeven X-Client-Request-ID voor de reconciliatie. Lees uitsluitend daadwerkelijk teruggegeven task_id/asset_id-waarden of de eigen mediabibliotheek uit; bouw nooit een taak-URL op basis van de bewerkings-ID en dien de aanmaakaanvraag nooit opnieuw in."
            },
            "outputs": {
              "all_results": "Bewaar de volledige respons en headers, iedere daadwerkelijke uitvoer, de oorspronkelijk teruggegeven identificatoren en alle verbruiksvelden. Herstel de oorspronkelijke bewerking zonder de aanmaakaanvraag opnieuw in te dienen.",
              "family": "audio",
              "formats": [
                "mp3",
                "pcm"
              ],
              "result": "Volledige binaire audio of het oorspronkelijke audio_url-antwoord, headers en elke asset die je toebehoort."
            },
            "parameters": [
              {
                "enum": [
                  "fish-audio/drama-3"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "default": "pcm",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input": {
                  "minLength": 1,
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "fish-audio/drama-3"
                  ],
                  "type": "string"
                },
                "provider": {
                  "description": "Documented speech data policy and provider-specific options.",
                  "properties": {
                    "data_collection": {
                      "enum": [
                        "allow",
                        "deny",
                        null
                      ],
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "options": {
                      "type": "object"
                    },
                    "zdr": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "response_format": {
                  "default": "pcm",
                  "enum": [
                    "mp3",
                    "pcm"
                  ],
                  "type": "string"
                },
                "voice": {
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input",
                "voice"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "${ACTUAL_INPUT_TEXT}",
                "model": "fish-audio/drama-3",
                "voice": "${ACTUAL_SUPPORTED_VOICE}"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Selecteer een werkelijke ondersteunde stem-ID; voor dit model is geen letterlijke standaardwaarde of stem verzonnen."
            ],
            "material_types": [
              "text"
            ],
            "required": [
              "model",
              "input",
              "voice"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "daadwerkelijk teruggegeven task_id of record in de mediabibliotheek",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "audio",
            "formats": [
              "mp3",
              "pcm"
            ],
            "result": "Complete binary audio or original audio_url response, headers and every owned asset."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input UTF-8 byte"
            },
            "label": "input UTF-8 byte",
            "units": [
              {
                "amount": "0.00002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "input UTF-8 byte",
                "native_amount_usd_per_unit": "0.00002",
                "native_quantity": 1,
                "public_unit_label": "per input UTF-8 byte",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_utf8_byte"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_INPUT_TEXT:?Set the actual documented input value}\"\nexport AILOOT_INPUT_TEXT\n: \"${AILOOT_VOICE:?Set the actual documented input value}\"\nexport AILOOT_VOICE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'fish-audio/drama-3', 'input': '${ACTUAL_INPUT_TEXT}', 'voice': '${ACTUAL_SUPPORTED_VOICE}'}\nrequest['input']=os.environ['AILOOT_INPUT_TEXT']\nrequest['voice']=os.environ['AILOOT_VOICE']\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n",
            "label": "Use actual input and retain the complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Spraak",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_speech",
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_utf8_byte": 2e-05
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input UTF-8 byte"
            },
            "label": "input UTF-8 byte",
            "units": [
              {
                "amount": "0.00002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "input UTF-8 byte",
                "native_amount_usd_per_unit": "0.00002",
                "native_quantity": 1,
                "public_unit_label": "per input UTF-8 byte",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_utf8_byte"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/drama-3",
        "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.00002",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "input UTF-8 byte",
            "native_amount_usd_per_unit": "0.00002",
            "native_quantity": 1,
            "public_unit_label": "per input UTF-8 byte",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_utf8_byte"
          }
        ]
      }
    }
  ],
  "model_id": "fish-audio/drama-3",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "5844dbf7193ca6cf3ed10e1a285b0274f1a71fb22deac355b08ef5225b84bf78",
    "input_html_sha256": "d55bc3852f0a8966516a0aca28fa8fa1a3b03497666253e1e974b505d56618d0",
    "private_audit_sha256": "52151d90ea9862025d2370ac2467a2d2d4a2bd27b55900e538af6cf1a57141b4",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/nl-be/fish-audio-drama-3/",
    "description": "Drama 3 zet een geschreven script om in geregisseerde spraak. Stuur emotie en voordracht met aanwijzingen in gewone taal, voeg pauzes en geluiden toe, begeleid de uitspraak en maak scènes met meerdere sprekers. De gepubliceerde spraakworkflow ondersteunt meer dan 80 talen, inclusief taalwisselingen binnen een zin.",
    "locale": "nl-be",
    "md_url": "https://ailoot.ai/models/nl-be/fish-audio-drama-3/index.md",
    "title": "Fish Audio: Drama 3 — Ailoot",
    "url": "https://ailoot.ai/models/nl-be/fish-audio-drama-3/"
  },
  "rawModel": {
    "about": "Drama 3 is het tekst-naar-spraakmodel van Fish Audio voor een voorgedragen script. Het maakt spraakaudio van de woorden die u aanlevert en geeft de scriptschrijver controle over de voordracht. Een regel kan een emotionele aanwijzing, een lokale verandering in stemgebruik of een uitspraakinstructie bevatten, zodat de invoer zowel de gesproken inhoud als de gewenste klank bevat.\n\n### Schrijf de woorden en regisseer de uitvoering\n\nBereid de exacte woorden voor die de luisteraar zou moeten horen voordat u uitvoeringsaanwijzingen toevoegt. Houd belangrijke namen, datums en instructies duidelijk in het script en gebruik interpunctie om het beoogde zinsritme vast te leggen. Plaats vervolgens een aanwijzing in gewone taal tussen vierkante haakjes vóór de regel waarop deze betrekking heeft. Beschrijf de gewenste emotie of voordracht concreet, bijvoorbeeld een ingetogen aankondiging, een gespannen gesprek of een warme uitleg.\n\nDrama 3 ondersteunt ook lokale besturing binnen een regel. Inline-instructies kunnen geluiden en pauzes introduceren, terwijl gepaarde voordrachtstags bepaalde woorden kunnen beïnvloeden. Houd de reikwijdte van elke instructie duidelijk: een aanwijzing voor één zinsdeel zou niet onbedoeld de aanwijzing voor de hele scène moeten worden. Lees het script vóór de synthese eenmaal op betekenis en eenmaal op uitvoering.\n\n### Scènes, talen en uitspraak\n\nHet gepubliceerde model ondersteunt meerdere sprekers binnen één verzoek. Organiseer de dialoog in duidelijke spreekbeurten en geef elke beurt een doel: een vraag, onderbreking, uitleg of antwoord. Voor een les of uitleg kan dezelfde aanpak een verteller scheiden van een geciteerd personage, zonder het materiaal te herschrijven tot één ongedifferentieerde monoloog.\n\nDrama 3 ondersteunt meer dan 80 talen en kan binnen een zin van taal wisselen met behoud van de stem. Bereid meertalige passages voor in de talen waarin ze moeten worden uitgesproken, in plaats van aan te nemen dat een Engelse instructie een vertaling oplevert. Bepaal hoe buitenlandse namen en leenwoorden zouden moeten klinken en gebruik de foneeminstellingen van het model wanneer de uitspraak nauwkeurige sturing nodig heeft.\n\n### Bruikbare audioresultaten\n\nHet model past bij personagedialogen, ingesproken lessen, korte uitleg, productaankondigingen en gescripte stemantwoorden. Houd inhoud en acteerskeuzes bij elkaar: een educatieve passage heeft begrijpelijke terminologie en doelgerichte pauzes nodig; een personagescène heeft duidelijk gescheiden beurten en een consistente dramatische bedoeling nodig. Dat zijn schrijfkeuzes die kunnen worden beoordeeld voordat er audio wordt gegenereerd.\n\nVergelijk na de synthese de gesproken woorden met het voltooide script. Luister naar weggelaten zinsdelen, verkeerd geplaatste pauzes, onduidelijke sprekerwisselingen en de uitspraak van te behouden namen. Bewaar het script en de voordrachtaanwijzingen bij de audio, zodat een correctie op de betrokken regel kan worden gericht. Houd bij het voorbereiden van een herziening de uiteindelijke gesproken inhoud en de voordrachtskeuzes per regel samen.\n\n### Mogelijkheden\n\n- Voordracht van een voltooid script via tekst-naar-spraak.\n- Aanwijzingen in gewone taal tussen vierkante haakjes vóór een regel.\n- Inline-geluiden en pauzes, met gepaarde voordrachtstags voor specifieke woorden.\n- Scènes met meerdere sprekers en meer dan 80 gesproken talen.\n- Foneeminstellingen voor namen en specialistische terminologie.\n\n### Gebruiksscenario’s\n\n- **Personagedialoog** — Een script met duidelijk gescheiden spreekbeurten en voordrachtsaanwijzingen. Resultaat: Een gesproken scène met doelbewuste veranderingen in voordracht.\n- **Ingesproken uitleg** — Een voltooide les met gemarkeerde terminologie en pauzes. Resultaat: Spraakaudio die aan de lestekst kan worden getoetst.\n- **Meertalige aankondiging** — Definitieve tekst in de beoogde talen, met behoud van de uitspraakkeuzes. Resultaat: Een gesproken passage met gecontroleerde taalovergangen.\n- **Gesproken antwoord op basis van een script.** — Een beknopt antwoord met een expliciete toon en de uit te spreken woorden. Resultaat: Een herbruikbaar spraaksegment voor de omringende applicatie.\n\n### Beperkingen\n\n- **Invoer en resultaat** — Het gepubliceerde model neemt tekst aan en geeft spraakaudio terug.\n- **Reikwijdte van de aanwijzingen** — Koppel een aanwijzing aan de beoogde regel of frase en houd gepaarde voordrachtstags correct afgebakend.\n- **Beoordelingseenheid** — Bewaar het exacte script en de aanwijzingen bij de audio; beoordeel uitspraak en spreekbeurten per regel.\n",
    "alias_of": null,
    "aliases": [],
    "author": "Fish Audio",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "speech"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00002",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "input UTF-8 byte",
            "native_amount_usd_per_unit": "0.00002",
            "native_quantity": 1,
            "public_unit_label": "per input UTF-8 byte",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_utf8_byte"
          }
        ],
        "summary": "De volledige prijsinformatie voor de configuratie vindt u bij de details."
      }
    ],
    "ctx": null,
    "formats": [
      "speech"
    ],
    "id": "fish-audio/drama-3",
    "input": [
      "text"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Bewaar de teruggegeven X-Client-Request-ID voor de reconciliatie. Lees uitsluitend daadwerkelijk teruggegeven task_id/asset_id-waarden of de eigen mediabibliotheek uit; bouw nooit een taak-URL op basis van de bewerkings-ID en dien de aanmaakaanvraag nooit opnieuw in."
            },
            "outputs": {
              "all_results": "Bewaar de volledige respons en headers, iedere daadwerkelijke uitvoer, de oorspronkelijk teruggegeven identificatoren en alle verbruiksvelden. Herstel de oorspronkelijke bewerking zonder de aanmaakaanvraag opnieuw in te dienen.",
              "family": "audio",
              "formats": [
                "mp3",
                "pcm"
              ],
              "result": "Volledige binaire audio of het oorspronkelijke audio_url-antwoord, headers en elke asset die je toebehoort."
            },
            "parameters": [
              {
                "enum": [
                  "fish-audio/drama-3"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "default": "pcm",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input": {
                  "minLength": 1,
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "fish-audio/drama-3"
                  ],
                  "type": "string"
                },
                "provider": {
                  "description": "Documented speech data policy and provider-specific options.",
                  "properties": {
                    "data_collection": {
                      "enum": [
                        "allow",
                        "deny",
                        null
                      ],
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "options": {
                      "type": "object"
                    },
                    "zdr": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "response_format": {
                  "default": "pcm",
                  "enum": [
                    "mp3",
                    "pcm"
                  ],
                  "type": "string"
                },
                "voice": {
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input",
                "voice"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "${ACTUAL_INPUT_TEXT}",
                "model": "fish-audio/drama-3",
                "voice": "${ACTUAL_SUPPORTED_VOICE}"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Selecteer een werkelijke ondersteunde stem-ID; voor dit model is geen letterlijke standaardwaarde of stem verzonnen."
            ],
            "material_types": [
              "text"
            ],
            "required": [
              "model",
              "input",
              "voice"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "daadwerkelijk teruggegeven task_id of record in de mediabibliotheek",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "audio",
            "formats": [
              "mp3",
              "pcm"
            ],
            "result": "Complete binary audio or original audio_url response, headers and every owned asset."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input UTF-8 byte"
            },
            "label": "input UTF-8 byte",
            "units": [
              {
                "amount": "0.00002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "input UTF-8 byte",
                "native_amount_usd_per_unit": "0.00002",
                "native_quantity": 1,
                "public_unit_label": "per input UTF-8 byte",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_utf8_byte"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_INPUT_TEXT:?Set the actual documented input value}\"\nexport AILOOT_INPUT_TEXT\n: \"${AILOOT_VOICE:?Set the actual documented input value}\"\nexport AILOOT_VOICE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'fish-audio/drama-3', 'input': '${ACTUAL_INPUT_TEXT}', 'voice': '${ACTUAL_SUPPORTED_VOICE}'}\nrequest['input']=os.environ['AILOOT_INPUT_TEXT']\nrequest['voice']=os.environ['AILOOT_VOICE']\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n",
            "label": "Use actual input and retain the complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Spraak",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_speech",
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_utf8_byte": 2e-05
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input UTF-8 byte"
            },
            "label": "input UTF-8 byte",
            "units": [
              {
                "amount": "0.00002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "input UTF-8 byte",
                "native_amount_usd_per_unit": "0.00002",
                "native_quantity": 1,
                "public_unit_label": "per input UTF-8 byte",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_utf8_byte"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/drama-3",
        "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.00002",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "input UTF-8 byte",
            "native_amount_usd_per_unit": "0.00002",
            "native_quantity": 1,
            "public_unit_label": "per input UTF-8 byte",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_utf8_byte"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "fish-audio/drama-3",
        "request_model_id": "fish-audio/drama-3",
        "route_label": "Ultra"
      }
    ],
    "name": "Fish Audio: Drama 3",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Drama 3 zet een geschreven script om in geregisseerde spraak. Stuur emotie en voordracht met aanwijzingen in gewone taal, voeg pauzes en geluiden toe, begeleid de uitspraak en maak scènes met meerdere sprekers. De gepubliceerde spraakworkflow ondersteunt meer dan 80 talen, inclusief taalwisselingen binnen een zin."
  },
  "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": "Drama 3 zet een geschreven script om in geregisseerde spraak. Stuur emotie en voordracht met aanwijzingen in gewone taal, voeg pauzes en geluiden toe, begeleid de uitspraak en maak scènes met meerdere sprekers. De gepubliceerde spraakworkflow ondersteunt meer dan 80 talen, inclusief taalwisselingen binnen een zin.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "327bac650e5cc1c46795b63b804fc14fd484236df3b91b67f73d0b90226b1129",
    "renderer_sha256": "a5aefc67f30427b283b8d8bf7955908a0216c6e5e4ca3cc1887842431e2b1ee6"
  },
  "sourceRevision": "af0303378d3261c8d07e0641b2fc6cb4aef95f7f98b0955d1633ece2ef6e56f8"
}
