{
  "aboutHtml": "<p>S1 ist das Text-to-Speech-Modell der vorherigen Generation von Fish Audio für ausdrucksstarke Erzähltexte und Sprachausgabe mit einem Sprecher. Es liest ein bereitgestelltes Skript und liefert Audio mit einer ausgewählten oder durch Referenzmaterial bestimmten Stimme. Das vollständige S1-Modell unterscheidet sich von S1-mini, dem kleineren destillierten Modell; der Hersteller stellt sie als Varianten mit 4 Milliarden beziehungsweise 0,5 Milliarden Parametern vor. Dieses Profil behandelt das benannte S1-Modell.</p><p>Bereiten Sie für einen Erzähltext die tatsächlich zu sprechenden Wörter vor und markieren Sie die Stellen, an denen sich die Sprechweise ändern soll. Ein nützliches Erklärskript nennt zuerst seine Kernaussage, entwickelt jeweils einen Gedanken und trennt mit Satzzeichen Formulierungen, die eine natürliche Pause benötigen. Halten Sie eine kurze Anweisung auch beim Hören ohne Bildschirm verständlich. Bewahren Sie die vorgesehene Lesung von Namen, Abkürzungen und Einheiten und prüfen Sie Zahlen in der Sprachausgabe, statt anzunehmen, dass eine visuell lesbare Zeichenfolge nur eine Aussprache hat.</p><p>S1 verwendet Emotions- und Sprechhinweise in runden Klammern, etwa (angry), (sad), (in a hurry) oder (chuckling). Setzen Sie einen Hinweis vor den Satz oder die Formulierung, die er beeinflussen soll, mit dem tatsächlich gesprochenen Text dahinter. Die Sprechweise gehört zum folgenden Text; ein Stimmungswechsel sollte deshalb dort stehen, wo sich die Darbietung ändern muss. Diese Syntax unterscheidet sich von den Anweisungen in eckigen Klammern von S2. Schreiben Sie das Skript für die ausgewählte Generation, statt beide Auszeichnungsformen als austauschbar anzunehmen.</p><p>Eine Stimme lässt sich über eine gespeicherte Stimmenkennung auswählen oder anhand einer Referenzaufnahme zusammen mit deren Transkript bestimmen. Für einen unmittelbaren Referenzworkflow empfiehlt der allgemeine Sprachleitfaden eine saubere Aufnahme von 10–30 Sekunden. Wählen Sie ein Beispiel, dessen Sprechstil und Aufnahmequalität zum gewünschten Ergebnis passen, und stimmen Sie das Transkript auf die Wörter in dieser Aufnahme ab. Verwenden Sie für einen wiederkehrenden Erzähler über mehrere Passagen dieselbe Stimmreferenz, damit ein Themenwechsel nicht unbeabsichtigt zu einem Figurenwechsel wird.</p><p>Die S1-Veröffentlichung nennt unter anderem Englisch, Chinesisch, Japanisch, Deutsch, Französisch, Spanisch, Koreanisch, Arabisch, Russisch, Niederländisch, Italienisch, Polnisch und Portugiesisch als unterstützte Sprachen und beschreibt das Mischen von Sprachen innerhalb eines Skripts. Stellen Sie den Wortlaut in der Zielsprache bereit, statt Sprachsynthese als Übersetzungsschritt zu behandeln. Halten Sie bei einer Passage mit einem fremdsprachigen Namen oder einem Sprachwechsel Schreibweise und umgebenden Satzkontext klar und prüfen Sie, wie die gewählte Stimme diesen Übergang umsetzt.</p><p>Die S1-Schnittstelle des Herstellers unterstützt einen Sprecher pro Syntheseanfrage. Ein Dialog kann als separate Segmente mit eigenen Stimmreferenzen vorbereitet und anschließend von der Anwendung zusammengesetzt werden; native Synthese mit mehreren Sprechern in der S2-Familie ist eine separate Fähigkeit. Halten Sie bei der Vorbereitung von Figurenzeilen Rolle, Stimme und Text mit jedem Segment verknüpft. Das Syntheseergebnis ist eine Audio-Darbietung des Skripts; die zeitliche Abstimmung eines Gesprächs oder die Kombination mit Musik und Video ist ein späterer Bearbeitungsschritt.</p><p>Zu den Ausgabeoptionen gehören MP3, WAV, rohes PCM und Opus; MP3 ist die Standardeinstellung. Die dokumentierte Ausgabe ist mono; WAV und PCM verwenden 16-Bit-Samples, und die Auswahl der Abtastraten unterscheidet sich je nach Format. MP3 unterstützt 64, 128 und 192 kbps, während Opus 48 kHz verwendet. Die Geschwindigkeit lässt sich von 0.5 bis 2.0 anpassen, ergänzt durch Lautstärkeregler. Wählen Sie eine kodierte Datei für ein Voice-over-Ergebnis oder einen passenden Stream zur Wiedergabe und bewahren Sie gewählte Stimme und Skript beim Ergebnis auf.</p><p>Der Hersteller verarbeitet lange Texte abschnittsweise mit einem dokumentierten Abschnittslängenbereich von 100–300 und einem Audiotoken-Budget pro Abschnitt statt einer garantierten gesamten Aufnahmedauer. Textnormalisierung kann englische und chinesische Zahlen in natürliche Lesungen umwandeln, und die Wiederholungsstrafe von S1 kann wiederkehrende Audiomuster reduzieren. Die Lautheitsnormalisierung der Ausgabe ist eine andere Einstellung und hat bei S1 keine Wirkung. Prüfen Sie Aussprache, Formulierungsgrenzen, wiederholte Laute und den vorgesehenen emotionalen Wechsel, bevor Sie die fertige Passage zusammensetzen; überarbeiten Sie dann die konkrete Zeile oder Referenz, die Aufmerksamkeit benötigt.</p>",
  "aboutText": "S1 ist das Text-to-Speech-Modell der vorherigen Generation von Fish Audio für ausdrucksstarke Erzähltexte und Sprachausgabe mit einem Sprecher. Es liest ein bereitgestelltes Skript und liefert Audio mit einer ausgewählten oder durch Referenzmaterial bestimmten Stimme. Das vollständige S1-Modell unterscheidet sich von S1-mini, dem kleineren destillierten Modell; der Hersteller stellt sie als Varianten mit 4 Milliarden beziehungsweise 0,5 Milliarden Parametern vor. Dieses Profil behandelt das benannte S1-Modell.\n\nBereiten Sie für einen Erzähltext die tatsächlich zu sprechenden Wörter vor und markieren Sie die Stellen, an denen sich die Sprechweise ändern soll. Ein nützliches Erklärskript nennt zuerst seine Kernaussage, entwickelt jeweils einen Gedanken und trennt mit Satzzeichen Formulierungen, die eine natürliche Pause benötigen. Halten Sie eine kurze Anweisung auch beim Hören ohne Bildschirm verständlich. Bewahren Sie die vorgesehene Lesung von Namen, Abkürzungen und Einheiten und prüfen Sie Zahlen in der Sprachausgabe, statt anzunehmen, dass eine visuell lesbare Zeichenfolge nur eine Aussprache hat.\n\nS1 verwendet Emotions- und Sprechhinweise in runden Klammern, etwa (angry), (sad), (in a hurry) oder (chuckling). Setzen Sie einen Hinweis vor den Satz oder die Formulierung, die er beeinflussen soll, mit dem tatsächlich gesprochenen Text dahinter. Die Sprechweise gehört zum folgenden Text; ein Stimmungswechsel sollte deshalb dort stehen, wo sich die Darbietung ändern muss. Diese Syntax unterscheidet sich von den Anweisungen in eckigen Klammern von S2. Schreiben Sie das Skript für die ausgewählte Generation, statt beide Auszeichnungsformen als austauschbar anzunehmen.\n\nEine Stimme lässt sich über eine gespeicherte Stimmenkennung auswählen oder anhand einer Referenzaufnahme zusammen mit deren Transkript bestimmen. Für einen unmittelbaren Referenzworkflow empfiehlt der allgemeine Sprachleitfaden eine saubere Aufnahme von 10–30 Sekunden. Wählen Sie ein Beispiel, dessen Sprechstil und Aufnahmequalität zum gewünschten Ergebnis passen, und stimmen Sie das Transkript auf die Wörter in dieser Aufnahme ab. Verwenden Sie für einen wiederkehrenden Erzähler über mehrere Passagen dieselbe Stimmreferenz, damit ein Themenwechsel nicht unbeabsichtigt zu einem Figurenwechsel wird.\n\nDie S1-Veröffentlichung nennt unter anderem Englisch, Chinesisch, Japanisch, Deutsch, Französisch, Spanisch, Koreanisch, Arabisch, Russisch, Niederländisch, Italienisch, Polnisch und Portugiesisch als unterstützte Sprachen und beschreibt das Mischen von Sprachen innerhalb eines Skripts. Stellen Sie den Wortlaut in der Zielsprache bereit, statt Sprachsynthese als Übersetzungsschritt zu behandeln. Halten Sie bei einer Passage mit einem fremdsprachigen Namen oder einem Sprachwechsel Schreibweise und umgebenden Satzkontext klar und prüfen Sie, wie die gewählte Stimme diesen Übergang umsetzt.\n\nDie S1-Schnittstelle des Herstellers unterstützt einen Sprecher pro Syntheseanfrage. Ein Dialog kann als separate Segmente mit eigenen Stimmreferenzen vorbereitet und anschließend von der Anwendung zusammengesetzt werden; native Synthese mit mehreren Sprechern in der S2-Familie ist eine separate Fähigkeit. Halten Sie bei der Vorbereitung von Figurenzeilen Rolle, Stimme und Text mit jedem Segment verknüpft. Das Syntheseergebnis ist eine Audio-Darbietung des Skripts; die zeitliche Abstimmung eines Gesprächs oder die Kombination mit Musik und Video ist ein späterer Bearbeitungsschritt.\n\nZu den Ausgabeoptionen gehören MP3, WAV, rohes PCM und Opus; MP3 ist die Standardeinstellung. Die dokumentierte Ausgabe ist mono; WAV und PCM verwenden 16-Bit-Samples, und die Auswahl der Abtastraten unterscheidet sich je nach Format. MP3 unterstützt 64, 128 und 192 kbps, während Opus 48 kHz verwendet. Die Geschwindigkeit lässt sich von 0.5 bis 2.0 anpassen, ergänzt durch Lautstärkeregler. Wählen Sie eine kodierte Datei für ein Voice-over-Ergebnis oder einen passenden Stream zur Wiedergabe und bewahren Sie gewählte Stimme und Skript beim Ergebnis auf.\n\nDer Hersteller verarbeitet lange Texte abschnittsweise mit einem dokumentierten Abschnittslängenbereich von 100–300 und einem Audiotoken-Budget pro Abschnitt statt einer garantierten gesamten Aufnahmedauer. Textnormalisierung kann englische und chinesische Zahlen in natürliche Lesungen umwandeln, und die Wiederholungsstrafe von S1 kann wiederkehrende Audiomuster reduzieren. Die Lautheitsnormalisierung der Ausgabe ist eine andere Einstellung und hat bei S1 keine Wirkung. Prüfen Sie Aussprache, Formulierungsgrenzen, wiederholte Laute und den vorgesehenen emotionalen Wechsel, bevor Sie die fertige Passage zusammensetzen; überarbeiten Sie dann die konkrete Zeile oder Referenz, die Aufmerksamkeit benötigt.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "ed60167094e0da6d9c12771d32beaa8b9764af9b9b5a0ecbdd9f2d9a14af5711",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "de-at",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Fish Audio: S1</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Schließen\">×</button></div><div class=\"idline\"><span>Fish Audio /</span><code>fish-audio/s1</code><button type=\"button\" id=\"copy-id\">ID kopieren</button></div><nav class=\"card-jump-nav\" aria-label=\"Bereiche der Modellkarte\"><button type=\"button\" data-card-jump=\"overview\">Einstieg</button><button type=\"button\" data-card-jump=\"methods\">Eingaben und Methoden</button><button type=\"button\" data-card-jump=\"pricing\">Tarife</button><button type=\"button\" data-card-jump=\"examples\">Beispiele</button><button type=\"button\" data-card-jump=\"results\">Ergebnisse</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%2Fs1\">Sprachausgabe</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\">Einstieg</h3><p class=\"mdesc-full\">Fish Audio S1 wandelt mehrsprachige Skripte anhand von Stimmreferenzen und Emotionshinweisen in runden Klammern in ausdrucksstarkes Audio mit einem Sprecher um. Es eignet sich für Erzähltexte, kurze gesprochene Anweisungen oder Figurenzeilen mit Format- und Prosodiesteuerung für das fertige Audio.</p><dl class=\"card-io\" data-card-io><div><dt>Zulässige Eingaben</dt><dd>Text</dd></div><div><dt>Ergebnisse</dt><dd>Audio</dd></div></dl><details class=\"card-about\"><summary>Über das Modell</summary><p class=\"note-s\" data-model-method-boundary>Diese Beschreibung erläutert die Fähigkeiten des Modells. Die über Ailoot verfügbaren Eingaben, Ausgaben und Optionen sind unten für die ausgewählte Methode aufgeführt.</p><div class=\"mabout\" id=\"m-about\"><p>S1 ist das Text-to-Speech-Modell der vorherigen Generation von Fish Audio für ausdrucksstarke Erzähltexte und Sprachausgabe mit einem Sprecher. Es liest ein bereitgestelltes Skript und liefert Audio mit einer ausgewählten oder durch Referenzmaterial bestimmten Stimme. Das vollständige S1-Modell unterscheidet sich von S1-mini, dem kleineren destillierten Modell; der Hersteller stellt sie als Varianten mit 4 Milliarden beziehungsweise 0,5 Milliarden Parametern vor. Dieses Profil behandelt das benannte S1-Modell.</p><p>Bereiten Sie für einen Erzähltext die tatsächlich zu sprechenden Wörter vor und markieren Sie die Stellen, an denen sich die Sprechweise ändern soll. Ein nützliches Erklärskript nennt zuerst seine Kernaussage, entwickelt jeweils einen Gedanken und trennt mit Satzzeichen Formulierungen, die eine natürliche Pause benötigen. Halten Sie eine kurze Anweisung auch beim Hören ohne Bildschirm verständlich. Bewahren Sie die vorgesehene Lesung von Namen, Abkürzungen und Einheiten und prüfen Sie Zahlen in der Sprachausgabe, statt anzunehmen, dass eine visuell lesbare Zeichenfolge nur eine Aussprache hat.</p><p>S1 verwendet Emotions- und Sprechhinweise in runden Klammern, etwa (angry), (sad), (in a hurry) oder (chuckling). Setzen Sie einen Hinweis vor den Satz oder die Formulierung, die er beeinflussen soll, mit dem tatsächlich gesprochenen Text dahinter. Die Sprechweise gehört zum folgenden Text; ein Stimmungswechsel sollte deshalb dort stehen, wo sich die Darbietung ändern muss. Diese Syntax unterscheidet sich von den Anweisungen in eckigen Klammern von S2. Schreiben Sie das Skript für die ausgewählte Generation, statt beide Auszeichnungsformen als austauschbar anzunehmen.</p><p>Eine Stimme lässt sich über eine gespeicherte Stimmenkennung auswählen oder anhand einer Referenzaufnahme zusammen mit deren Transkript bestimmen. Für einen unmittelbaren Referenzworkflow empfiehlt der allgemeine Sprachleitfaden eine saubere Aufnahme von 10–30 Sekunden. Wählen Sie ein Beispiel, dessen Sprechstil und Aufnahmequalität zum gewünschten Ergebnis passen, und stimmen Sie das Transkript auf die Wörter in dieser Aufnahme ab. Verwenden Sie für einen wiederkehrenden Erzähler über mehrere Passagen dieselbe Stimmreferenz, damit ein Themenwechsel nicht unbeabsichtigt zu einem Figurenwechsel wird.</p><p>Die S1-Veröffentlichung nennt unter anderem Englisch, Chinesisch, Japanisch, Deutsch, Französisch, Spanisch, Koreanisch, Arabisch, Russisch, Niederländisch, Italienisch, Polnisch und Portugiesisch als unterstützte Sprachen und beschreibt das Mischen von Sprachen innerhalb eines Skripts. Stellen Sie den Wortlaut in der Zielsprache bereit, statt Sprachsynthese als Übersetzungsschritt zu behandeln. Halten Sie bei einer Passage mit einem fremdsprachigen Namen oder einem Sprachwechsel Schreibweise und umgebenden Satzkontext klar und prüfen Sie, wie die gewählte Stimme diesen Übergang umsetzt.</p><p>Die S1-Schnittstelle des Herstellers unterstützt einen Sprecher pro Syntheseanfrage. Ein Dialog kann als separate Segmente mit eigenen Stimmreferenzen vorbereitet und anschließend von der Anwendung zusammengesetzt werden; native Synthese mit mehreren Sprechern in der S2-Familie ist eine separate Fähigkeit. Halten Sie bei der Vorbereitung von Figurenzeilen Rolle, Stimme und Text mit jedem Segment verknüpft. Das Syntheseergebnis ist eine Audio-Darbietung des Skripts; die zeitliche Abstimmung eines Gesprächs oder die Kombination mit Musik und Video ist ein späterer Bearbeitungsschritt.</p><p>Zu den Ausgabeoptionen gehören MP3, WAV, rohes PCM und Opus; MP3 ist die Standardeinstellung. Die dokumentierte Ausgabe ist mono; WAV und PCM verwenden 16-Bit-Samples, und die Auswahl der Abtastraten unterscheidet sich je nach Format. MP3 unterstützt 64, 128 und 192 kbps, während Opus 48 kHz verwendet. Die Geschwindigkeit lässt sich von 0.5 bis 2.0 anpassen, ergänzt durch Lautstärkeregler. Wählen Sie eine kodierte Datei für ein Voice-over-Ergebnis oder einen passenden Stream zur Wiedergabe und bewahren Sie gewählte Stimme und Skript beim Ergebnis auf.</p><p>Der Hersteller verarbeitet lange Texte abschnittsweise mit einem dokumentierten Abschnittslängenbereich von 100–300 und einem Audiotoken-Budget pro Abschnitt statt einer garantierten gesamten Aufnahmedauer. Textnormalisierung kann englische und chinesische Zahlen in natürliche Lesungen umwandeln, und die Wiederholungsstrafe von S1 kann wiederkehrende Audiomuster reduzieren. Die Lautheitsnormalisierung der Ausgabe ist eine andere Einstellung und hat bei S1 keine Wirkung. Prüfen Sie Aussprache, Formulierungsgrenzen, wiederholte Laute und den vorgesehenen emotionalen Wechsel, bevor Sie die fertige Passage zusammensetzen; überarbeiten Sie dann die konkrete Zeile oder Referenz, die Aufmerksamkeit benötigt.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">In Ailoot verfügbar · Eingaben und Methoden</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Sprachausgabe</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>Eingabe</dt><dd><code>text</code></dd></div><div><dt>Ausgabe</dt><dd><code>audio</code></dd></div><div><dt>Ausgabeformat</dt><dd>tatsächlich deklariertes binäres Audio</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Feld</th><th>Typ</th><th>Anforderung</th><th>Werte und Limits</th><th>Standard</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Erforderlich</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>fish-audio/s1</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Erforderlich</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>Mindestlänge: 1</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"saved_exact_supplier_example\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">voice</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Erforderlich</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>Beispiele: b347db033a6549378b48d00acb0d06cd</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>mp3, pcm</div></td><td data-cell-label=\"Standard\" data-default=\"known\"><span class=\"card-cell-label\">Standard</span>pcm</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinationen von Eingabematerialien</summary><p class=\"note-s\"><b>text_to_speech</b> · Erforderlich: actual UTF-8 script, exact supported voice</p></details><details class=\"note-s\" data-method-contract><summary>Methodenparameter und Lebenszyklus</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Vertrag</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=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</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=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</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=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>text</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>voice_ids</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>b347db033a6549378b48d00acb0d06cd</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>voice_list_exhaustive</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>false</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>response_format</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>mp3, pcm</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>default_response_format</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>pcm</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>quantity</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>UTF-8-Bytes einer einzigen dekodierten Eingabezeichenfolge; ohne Trimmen oder Normalisieren</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>native_byte_quote_controls</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>Nicht leere instructions und Eingaben mit Gesprächsbeiträgen mehrerer Sprecher werden von diesem exakten Pfad zur bytebasierten Kostenermittlung abgelehnt, solange der zusätzliche abgerechnete Text nicht deklariert ist.</td></tr></tbody></table></div><p>Lebenszyklus: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · die tatsächlich zurückgegebene task_id oder ein Eintrag in der Medienbibliothek</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p><p class=\"note-s\">Verwenden Sie das exakte Modell und die dokumentierten Eingabefelder.</p><p class=\"note-s\">Bewahren Sie die vollständige Antwort, jede tatsächliche Ausgabe und die ursprünglich zurückgegebenen IDs auf.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarife</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tarifangaben erweitern die Anfrageoptionen nicht. Unterstützte Parameter stehen bei der ausgewählten Methode.</p><dl data-price-conditions><dt>Schnellmodus</dt><dd>Nicht angegeben <span class=\"note-s\">Wenn der Schnellmodus ausgewählt ist</span></dd><dt>Flex-Modus</dt><dd>Nicht angegeben <span class=\"note-s\">Wenn der Modus flex ausgewählt ist</span></dd><dt>Maximaler Denkaufwand</dt><dd>Nicht angegeben <span class=\"note-s\">Wenn beim maximalen Denkaufwand die Standardanpassung (default) verwendet wird</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-Tarife</h4><h4>Preise nach Konfiguration</h4><p class=\"note-s\">Ordnen Sie jede Gebühr den angezeigten Bedingungen zu. Verwenden Sie für jede Gruppe alternativer Konfigurationen einen Tarif.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfiguration</th><th>Tarifstaffel</th><th>Abrechnungseinheit</th><th>Gebühr</th></tr></thead><tbody><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Basistarife für Tokens</th><td data-cell-label=\"Tarifstaffel\"><span class=\"card-cell-label\">Tarifstaffel</span>Grundtarif</td><td data-cell-label=\"Abrechnungseinheit\"><span class=\"card-cell-label\">Abrechnungseinheit</span>—</td><td data-cell-label=\"Gebühr\"><span class=\"card-cell-label\">Gebühr</span><div><span>Eingabe · Eingabetoken</span> <b>—</b> <span class=\"price-unit\">/ 1K Tokens</span></div><div><span>Ausgabe · Ausgabetoken</span> <b>—</b> <span class=\"price-unit\">/ 1K Tokens</span></div><div><span>Eingabe · Cache lesen</span> <b>—</b> <span class=\"price-unit\">/ 1K Tokens</span></div><div><span>Eingabe · In Cache schreiben</span> <b>—</b> <span class=\"price-unit\">/ 1K Tokens</span></div><div><span>Eingabe · In Cache schreiben, 1 Stunde</span> <b>—</b> <span class=\"price-unit\">/ 1K Tokens</span></div></td></tr><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Ultra</th><td data-cell-label=\"Tarifstaffel\"><span class=\"card-cell-label\">Tarifstaffel</span>—</td><td data-cell-label=\"Abrechnungseinheit\"><span class=\"card-cell-label\">Abrechnungseinheit</span>pro utf8-Byte der Audioeingabe</td><td data-cell-label=\"Gebühr\"><span class=\"card-cell-label\">Gebühr</span><div><span>Eingabe · UTF-8-Byte für Audioeingabe</span> <b>$0.00003</b> <span class=\"price-unit\">pro utf8-Byte der Audioeingabe</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot reserviert vor einer Anfrage einen geschätzten Betrag. Nach dem Ergebnis rechnet Ailoot die endgültige Gebühr anhand des gemessenen Verbrauchs ab. Bei Streaming erfolgt die Abrechnung anhand des abschließenden Verbrauchsdatensatzes. <a href=\"/docs/de-at/billing/reserve/\">So funktionieren Reservierung und Abrechnung →</a></p><div data-declared-reference-pricing><h4>Details zum Referenztarif</h4><p class=\"note-s\">Referenztarifstaffeln auf Modellebene ändern weder Methodenauswahl noch Kostenvoranschläge oder Gebühren. Für die aktive Abrechnung gelten die Tarife der ausgewählten Ailoot-Methode.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Fish Audio: S1</summary><h4>Preise nach Konfiguration</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfiguration</th><th>Abrechnungsbedingungen</th><th>Gebühr</th></tr></thead><tbody><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Fish Audio: S1 · Standardkonfiguration</th><td data-cell-label=\"Abrechnungsbedingungen\"><span class=\"card-cell-label\">Abrechnungsbedingungen</span>Standardkonfiguration</td><td data-cell-label=\"Gebühr\"><span class=\"card-cell-label\">Gebühr</span><div><span>Eingabe · UTF-8-Eingabebytes</span> <b>$ 0,00003</b> <span class=\"price-unit\">pro UTF-8-Byte der Eingabe</span></div></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Beispielanfragen</h3><h4>Ailoot Ultra · Sprachausgabe</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-1354-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1354-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · exakter nativer Request-Body und vollständiges Ergebnis</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Code kopieren\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1354-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1354-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nrequest={&#39;model&#39;: &#39;fish-audio/s1&#39;, &#39;input&#39;: &#39;Hello world&#39;, &#39;voice&#39;: &#39;b347db033a6549378b48d00acb0d06cd&#39;, &#39;response_format&#39;: &#39;mp3&#39;}\nPath(&#39;request.json&#39;).write_text(json.dumps(request,ensure_ascii=False),encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Ergebnisse abrufen und speichern</h3><h4>Ailoot Ultra · Sprachausgabe</h4><p class=\"note-s\">tatsächlich deklariertes binäres Audio</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>Alle fertiggestellten Ergebnisse aufbewahren</h5><p class=\"note-s\">Bewahren Sie jede vollständig zurückgegebene Antwort, Datei und jeden Inhaltsteil auf.</p><p class=\"note-s\">Speichern Sie sämtliche vollständigen Binärbytes und alle ursprünglichen Header; bewahren Sie vollständiges JSON auf, falls es zurückgegeben wird. Tatsächliche Vorgangs- und Asset-IDs bleiben erhalten.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Wenn die ursprüngliche Antwort geprüft werden muss</h5><p class=\"note-s\">Bewahren Sie die ursprüngliche operation_id/X-Client-Request-ID und die ursprüngliche Antwort auf. Lesen Sie tatsächliche, Ihnen zugeordnete Aufgaben-/Asset-Datensätze ohne erneute Übermittlung; es wird keine eigene Audio-Abfrage-URL konstruiert.</p></div><details class=\"card-about\" data-output-fields><summary>Antwortfelder</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Feld</th><th>Typ</th></tr></thead><tbody><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">binary audio</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>bytes</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">response headers</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>headers</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliasnamen</h3><h4>Modellaliasnamen</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=fish-audio%2Fs1&amp;route=Ultra&amp;caller=fish-audio%2Fs1&amp;fmt=speech\"><code>fish-audio/s1</code></a></span></p><h4>Aliasnamen für Methodenpfade</h4><p class=\"note-s\">Verwenden Sie die oben angezeigten Methodenpfade.</p><h4>Zugehörige Aufrufer-IDs</h4><p class=\"note-s\"><a href=\"#m=fish-audio%2Fs1&amp;route=Ultra&amp;caller=fish-audio%2Fs1&amp;fmt=speech\"><code>fish-audio/s1</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "fish-audio/s1",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "fish-audio/s1",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|fish-audio%2Fs1",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Save all complete binary bytes and all original headers; keep full JSON if returned. Actual operation/asset IDs are preserved.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Bewahren Sie die ursprüngliche operation_id/X-Client-Request-ID und die ursprüngliche Antwort auf. Lesen Sie tatsächliche, Ihnen zugeordnete Aufgaben-/Asset-Datensätze ohne erneute Übermittlung; es wird keine eigene Audio-Abfrage-URL konstruiert."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "actual UTF-8 script",
                  "exact supported voice"
                ]
              }
            ],
            "outputs": {
              "all_results": "Speichern Sie sämtliche vollständigen Binärbytes und alle ursprünglichen Header; bewahren Sie vollständiges JSON auf, falls es zurückgegeben wird. Tatsächliche Vorgangs- und Asset-IDs bleiben erhalten.",
              "family": "audio",
              "fields": [
                {
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "tatsächlich deklariertes binäres Audio"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "enum": [
                  "fish-audio/s1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "min_length": 1,
                "name": "input",
                "quantity_unit": "decoded input UTF-8 bytes",
                "required": true,
                "type": "string"
              },
              {
                "availability": "saved_exact_supplier_example",
                "enum": [
                  "b347db033a6549378b48d00acb0d06cd"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "pcm",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "properties": {
                "input": {
                  "minLength": 1,
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "fish-audio/s1"
                  ],
                  "type": "string"
                },
                "response_format": {
                  "default": "pcm",
                  "enum": [
                    "mp3",
                    "pcm"
                  ],
                  "type": "string"
                },
                "voice": {
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input",
                "voice"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "Hello world",
                "model": "fish-audio/s1",
                "response_format": "mp3",
                "voice": "b347db033a6549378b48d00acb0d06cd"
              },
              "content_type": "application/json"
            }
          },
          "hints": [
            "Verwenden Sie das exakte Modell und die dokumentierten Eingabefelder.",
            "Bewahren Sie die vollständige Antwort, jede tatsächliche Ausgabe und die ursprünglich zurückgegebenen IDs auf."
          ],
          "input": {
            "content_type": "application/json",
            "default_response_format": "pcm",
            "material_types": [
              "text"
            ],
            "native_byte_quote_controls": "Nicht leere instructions und Eingaben mit Gesprächsbeiträgen mehrerer Sprecher werden von diesem exakten Pfad zur bytebasierten Kostenermittlung abgelehnt, solange der zusätzliche abgerechnete Text nicht deklariert ist.",
            "quantity": "UTF-8-Bytes einer einzigen dekodierten Eingabezeichenfolge; ohne Trimmen oder Normalisieren",
            "required": [
              "model",
              "input",
              "voice"
            ],
            "response_format": [
              "mp3",
              "pcm"
            ],
            "voice_ids": [
              "b347db033a6549378b48d00acb0d06cd"
            ],
            "voice_list_exhaustive": false
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "die tatsächlich zurückgegebene task_id oder ein Eintrag in der Medienbibliothek",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID and original response. Read actual owned task/asset records without resubmitting; no dedicated audio poll URL is constructed."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "all_results": true,
            "family": "audio",
            "format": "actual MP3 or PCM bytes and MIME",
            "response": "complete raw audio bytes plus response headers"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quantity_basis": "actual physical units",
              "quoted_unit": "per audio input utf8 byte"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_audio_input_utf8_byte",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "audio input utf8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per audio input utf8 byte",
                "quantity": "1",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_utf8_byte"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'fish-audio/s1', 'input': 'Hello world', 'voice': 'b347db033a6549378b48d00acb0d06cd', 'response_format': 'mp3'}\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\n",
            "label": "curl · exact native body and complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Use the exact model and documented input fields.",
          "Keep the complete response, every actual output and original returned IDs."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Озвучка текста",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_utf8_byte": 3e-05
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quantity_basis": "actual physical units",
              "quoted_unit": "per audio input utf8 byte"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_audio_input_utf8_byte",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "audio input utf8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per audio input utf8 byte",
                "quantity": "1",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_utf8_byte"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/s1",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.00003",
            "amount_unit": "usd_per_audio_input_utf8_byte",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "audio input utf8 byte",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per audio input utf8 byte",
            "quantity": "1",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_utf8_byte"
          }
        ]
      }
    }
  ],
  "model_id": "fish-audio/s1",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "b567f367475874a937f6c63974056afeb8e0e177996a35b079657129fe78df59",
    "input_html_sha256": "1e13de7edae3512dd872da19b5b0faa928a62c8b31845af57e79ddea59943b96",
    "private_audit_sha256": "5c0c932d553671b7deb9082fb901c3e6f480e190658eec2e5b9cd2629d813b08",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/de-at/fish-audio-s1/",
    "description": "Fish Audio S1 wandelt mehrsprachige Skripte anhand von Stimmreferenzen und Emotionshinweisen in runden Klammern in ausdrucksstarkes Audio mit einem Sprecher um. Es eignet sich für Erzähltexte, kurze gesprochene Anweisungen oder Figurenzeilen mit Format- und Prosodiesteuerung für das fertige Audio.",
    "locale": "de-at",
    "md_url": "https://ailoot.ai/models/de-at/fish-audio-s1/index.md",
    "title": "Fish Audio: S1 — Ailoot",
    "url": "https://ailoot.ai/models/de-at/fish-audio-s1/"
  },
  "rawModel": {
    "about": "S1 ist das Text-to-Speech-Modell der vorherigen Generation von Fish Audio für ausdrucksstarke Erzähltexte und Sprachausgabe mit einem Sprecher. Es liest ein bereitgestelltes Skript und liefert Audio mit einer ausgewählten oder durch Referenzmaterial bestimmten Stimme. Das vollständige S1-Modell unterscheidet sich von S1-mini, dem kleineren destillierten Modell; der Hersteller stellt sie als Varianten mit 4 Milliarden beziehungsweise 0,5 Milliarden Parametern vor. Dieses Profil behandelt das benannte S1-Modell.\n\nBereiten Sie für einen Erzähltext die tatsächlich zu sprechenden Wörter vor und markieren Sie die Stellen, an denen sich die Sprechweise ändern soll. Ein nützliches Erklärskript nennt zuerst seine Kernaussage, entwickelt jeweils einen Gedanken und trennt mit Satzzeichen Formulierungen, die eine natürliche Pause benötigen. Halten Sie eine kurze Anweisung auch beim Hören ohne Bildschirm verständlich. Bewahren Sie die vorgesehene Lesung von Namen, Abkürzungen und Einheiten und prüfen Sie Zahlen in der Sprachausgabe, statt anzunehmen, dass eine visuell lesbare Zeichenfolge nur eine Aussprache hat.\n\nS1 verwendet Emotions- und Sprechhinweise in runden Klammern, etwa (angry), (sad), (in a hurry) oder (chuckling). Setzen Sie einen Hinweis vor den Satz oder die Formulierung, die er beeinflussen soll, mit dem tatsächlich gesprochenen Text dahinter. Die Sprechweise gehört zum folgenden Text; ein Stimmungswechsel sollte deshalb dort stehen, wo sich die Darbietung ändern muss. Diese Syntax unterscheidet sich von den Anweisungen in eckigen Klammern von S2. Schreiben Sie das Skript für die ausgewählte Generation, statt beide Auszeichnungsformen als austauschbar anzunehmen.\n\nEine Stimme lässt sich über eine gespeicherte Stimmenkennung auswählen oder anhand einer Referenzaufnahme zusammen mit deren Transkript bestimmen. Für einen unmittelbaren Referenzworkflow empfiehlt der allgemeine Sprachleitfaden eine saubere Aufnahme von 10–30 Sekunden. Wählen Sie ein Beispiel, dessen Sprechstil und Aufnahmequalität zum gewünschten Ergebnis passen, und stimmen Sie das Transkript auf die Wörter in dieser Aufnahme ab. Verwenden Sie für einen wiederkehrenden Erzähler über mehrere Passagen dieselbe Stimmreferenz, damit ein Themenwechsel nicht unbeabsichtigt zu einem Figurenwechsel wird.\n\nDie S1-Veröffentlichung nennt unter anderem Englisch, Chinesisch, Japanisch, Deutsch, Französisch, Spanisch, Koreanisch, Arabisch, Russisch, Niederländisch, Italienisch, Polnisch und Portugiesisch als unterstützte Sprachen und beschreibt das Mischen von Sprachen innerhalb eines Skripts. Stellen Sie den Wortlaut in der Zielsprache bereit, statt Sprachsynthese als Übersetzungsschritt zu behandeln. Halten Sie bei einer Passage mit einem fremdsprachigen Namen oder einem Sprachwechsel Schreibweise und umgebenden Satzkontext klar und prüfen Sie, wie die gewählte Stimme diesen Übergang umsetzt.\n\nDie S1-Schnittstelle des Herstellers unterstützt einen Sprecher pro Syntheseanfrage. Ein Dialog kann als separate Segmente mit eigenen Stimmreferenzen vorbereitet und anschließend von der Anwendung zusammengesetzt werden; native Synthese mit mehreren Sprechern in der S2-Familie ist eine separate Fähigkeit. Halten Sie bei der Vorbereitung von Figurenzeilen Rolle, Stimme und Text mit jedem Segment verknüpft. Das Syntheseergebnis ist eine Audio-Darbietung des Skripts; die zeitliche Abstimmung eines Gesprächs oder die Kombination mit Musik und Video ist ein späterer Bearbeitungsschritt.\n\nZu den Ausgabeoptionen gehören MP3, WAV, rohes PCM und Opus; MP3 ist die Standardeinstellung. Die dokumentierte Ausgabe ist mono; WAV und PCM verwenden 16-Bit-Samples, und die Auswahl der Abtastraten unterscheidet sich je nach Format. MP3 unterstützt 64, 128 und 192 kbps, während Opus 48 kHz verwendet. Die Geschwindigkeit lässt sich von 0.5 bis 2.0 anpassen, ergänzt durch Lautstärkeregler. Wählen Sie eine kodierte Datei für ein Voice-over-Ergebnis oder einen passenden Stream zur Wiedergabe und bewahren Sie gewählte Stimme und Skript beim Ergebnis auf.\n\nDer Hersteller verarbeitet lange Texte abschnittsweise mit einem dokumentierten Abschnittslängenbereich von 100–300 und einem Audiotoken-Budget pro Abschnitt statt einer garantierten gesamten Aufnahmedauer. Textnormalisierung kann englische und chinesische Zahlen in natürliche Lesungen umwandeln, und die Wiederholungsstrafe von S1 kann wiederkehrende Audiomuster reduzieren. Die Lautheitsnormalisierung der Ausgabe ist eine andere Einstellung und hat bei S1 keine Wirkung. Prüfen Sie Aussprache, Formulierungsgrenzen, wiederholte Laute und den vorgesehenen emotionalen Wechsel, bevor Sie die fertige Passage zusammensetzen; überarbeiten Sie dann die konkrete Zeile oder Referenz, die Aufmerksamkeit benötigt.",
    "alias_of": null,
    "aliases": [],
    "author": "Fish Audio",
    "available": null,
    "canonical_model": "fish-audio/s1",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "speech"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00003",
            "amount_unit": "usd_per_audio_input_utf8_byte",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "audio input utf8 byte",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per audio input utf8 byte",
            "quantity": "1",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_utf8_byte"
          }
        ],
        "summary": "Die vollständigen Preisangaben zur Konfiguration finden Sie in den Details."
      }
    ],
    "ctx": null,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "ca1892881aa6bc927745",
        "label": "Fish Audio: S1",
        "profiles": [
          {
            "basis": "",
            "dimensions": {
              "conditions": "Standardkonfiguration"
            },
            "label": "Fish Audio: S1 · Standardkonfiguration",
            "units": [
              {
                "amount": "0.000030",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "key": "e7b3eb5a7636763feb8a9472",
                "label": "Input UTF-8 bytes",
                "public_unit_label": "per input UTF-8 byte",
                "quantity": "1",
                "rate_role": "declared_tariff_rate",
                "side": "in",
                "unit": "input_utf8_byte"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "speech"
    ],
    "id": "fish-audio/s1",
    "input": [
      "text"
    ],
    "kind": "speech",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Save all complete binary bytes and all original headers; keep full JSON if returned. Actual operation/asset IDs are preserved.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Bewahren Sie die ursprüngliche operation_id/X-Client-Request-ID und die ursprüngliche Antwort auf. Lesen Sie tatsächliche, Ihnen zugeordnete Aufgaben-/Asset-Datensätze ohne erneute Übermittlung; es wird keine eigene Audio-Abfrage-URL konstruiert."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "actual UTF-8 script",
                  "exact supported voice"
                ]
              }
            ],
            "outputs": {
              "all_results": "Speichern Sie sämtliche vollständigen Binärbytes und alle ursprünglichen Header; bewahren Sie vollständiges JSON auf, falls es zurückgegeben wird. Tatsächliche Vorgangs- und Asset-IDs bleiben erhalten.",
              "family": "audio",
              "fields": [
                {
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "tatsächlich deklariertes binäres Audio"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "enum": [
                  "fish-audio/s1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "min_length": 1,
                "name": "input",
                "quantity_unit": "decoded input UTF-8 bytes",
                "required": true,
                "type": "string"
              },
              {
                "availability": "saved_exact_supplier_example",
                "enum": [
                  "b347db033a6549378b48d00acb0d06cd"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "pcm",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              }
            ],
            "request_schema": {
              "properties": {
                "input": {
                  "minLength": 1,
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "fish-audio/s1"
                  ],
                  "type": "string"
                },
                "response_format": {
                  "default": "pcm",
                  "enum": [
                    "mp3",
                    "pcm"
                  ],
                  "type": "string"
                },
                "voice": {
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input",
                "voice"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "Hello world",
                "model": "fish-audio/s1",
                "response_format": "mp3",
                "voice": "b347db033a6549378b48d00acb0d06cd"
              },
              "content_type": "application/json"
            }
          },
          "hints": [
            "Verwenden Sie das exakte Modell und die dokumentierten Eingabefelder.",
            "Bewahren Sie die vollständige Antwort, jede tatsächliche Ausgabe und die ursprünglich zurückgegebenen IDs auf."
          ],
          "input": {
            "content_type": "application/json",
            "default_response_format": "pcm",
            "material_types": [
              "text"
            ],
            "native_byte_quote_controls": "Nicht leere instructions und Eingaben mit Gesprächsbeiträgen mehrerer Sprecher werden von diesem exakten Pfad zur bytebasierten Kostenermittlung abgelehnt, solange der zusätzliche abgerechnete Text nicht deklariert ist.",
            "quantity": "UTF-8-Bytes einer einzigen dekodierten Eingabezeichenfolge; ohne Trimmen oder Normalisieren",
            "required": [
              "model",
              "input",
              "voice"
            ],
            "response_format": [
              "mp3",
              "pcm"
            ],
            "voice_ids": [
              "b347db033a6549378b48d00acb0d06cd"
            ],
            "voice_list_exhaustive": false
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "die tatsächlich zurückgegebene task_id oder ein Eintrag in der Medienbibliothek",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID and original response. Read actual owned task/asset records without resubmitting; no dedicated audio poll URL is constructed."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "all_results": true,
            "family": "audio",
            "format": "actual MP3 or PCM bytes and MIME",
            "response": "complete raw audio bytes plus response headers"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quantity_basis": "actual physical units",
              "quoted_unit": "per audio input utf8 byte"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_audio_input_utf8_byte",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "audio input utf8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per audio input utf8 byte",
                "quantity": "1",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_utf8_byte"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'fish-audio/s1', 'input': 'Hello world', 'voice': 'b347db033a6549378b48d00acb0d06cd', 'response_format': 'mp3'}\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\n",
            "label": "curl · exact native body and complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Use the exact model and documented input fields.",
          "Keep the complete response, every actual output and original returned IDs."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Озвучка текста",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_utf8_byte": 3e-05
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quantity_basis": "actual physical units",
              "quoted_unit": "per audio input utf8 byte"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.00003",
                "amount_unit": "usd_per_audio_input_utf8_byte",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_utf8_byte",
                "label": "audio input utf8 byte",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per audio input utf8 byte",
                "quantity": "1",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_utf8_byte"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/s1",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.00003",
            "amount_unit": "usd_per_audio_input_utf8_byte",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_utf8_byte",
            "label": "audio input utf8 byte",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per audio input utf8 byte",
            "quantity": "1",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_utf8_byte"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "fish-audio/s1",
        "request_model_id": "fish-audio/s1",
        "route_label": "Ultra"
      }
    ],
    "name": "Fish Audio: S1",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "not_character_or_token_count": true,
          "quoted_unit": "1000000_UTF8_bytes",
          "retirement_date": "2026-12-31"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.000030",
            "amount_unit": "usd_per_input_utf8_byte",
            "conditions": {
              "not_character_or_token_count": true,
              "quoted_unit": "1000000_UTF8_bytes",
              "retirement_date": "2026-12-31"
            },
            "key": "base",
            "label": "base",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_utf8_byte"
          }
        ]
      }
    ],
    "public_id": "fish-audio/s1",
    "short": "Fish Audio S1 wandelt mehrsprachige Skripte anhand von Stimmreferenzen und Emotionshinweisen in runden Klammern in ausdrucksstarkes Audio mit einem Sprecher um. Es eignet sich für Erzähltexte, kurze gesprochene Anweisungen oder Figurenzeilen mit Format- und Prosodiesteuerung für das fertige Audio."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Fish Audio S1 wandelt mehrsprachige Skripte anhand von Stimmreferenzen und Emotionshinweisen in runden Klammern in ausdrucksstarkes Audio mit einem Sprecher um. Es eignet sich für Erzähltexte, kurze gesprochene Anweisungen oder Figurenzeilen mit Format- und Prosodiesteuerung für das fertige Audio.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "9947afd07f2a049b7c9397119635e5fc41e07724cec727f00a63b47a2fdde9cc",
    "renderer_sha256": "4915581496a34d8a27d706c57a04aa12aa22b4b136560828b2e1b9b8437d1eb0"
  },
  "sourceRevision": "19a1cd6d636f56a01e7110e7bbfa48a141e9798df36e1a0d7ae49bb523bfd571"
}
