{
  "aboutHtml": "<p>Transcribe 1 ist Fish Audios allgemeines Spracherkennungsmodell für kurze Aufnahmen. Es nimmt eine Audiodatei entgegen und liefert die erkannten Wörter als Text, dazu die Aufnahmedauer, optionale zeitlich ausgerichtete Segmente und gegebenenfalls Sprachinformationen. Das Modell ist für eine kurze Sprachnotiz, eine gesprochene Anweisung, einen Aufnahmeauszug oder einen Audioclip nützlich, der eine lesbare Textdarstellung benötigt.</p><p>Ein beispielhafter Sprachnotizablauf bewahrt Aufnahme, vollständiges Transkript und Kennung des Originalclips zusammen auf. Ein späterer Anwendungsschritt kann den Text durchsuchen, die Notiz ordnen oder eine Zusammenfassung erstellen und dabei die gesprochene Quelle erhalten. Bei einem Befehl liefert das Transkript erkannte Wörter an die Anwendung; jede Handlung ist ein gesonderter Interpretations- und Ausführungsschritt. Halten Sie bei einem Interviewauszug dessen Position im vollständigen Audio fest, damit ein Zitat an der richtigen Stelle geprüft werden kann.</p><p>Der Hersteller akzeptiert WAV, MP3, AAC einschliesslich M4A/MP4, FLAC und Ogg mit Opus oder Vorbis. Browseraufnahmen in WebM sollten für dieses Modell in Ogg/Opus, MP3 oder WAV umgewandelt werden; Pro dokumentiert native Unterstützung weiterer Container. Liefern Sie eine Audiodatei je Anfrage. Das dokumentierte Anfragebudget des Basismodells beträgt bis zu 50 MiB; MP3- und Opus-Dateien müssen unter 25 MiB bleiben. Dateigrösse und Aufnahmelänge sind verschiedene Aspekte: Eine komprimierte Datei kann in das Uploadbudget passen und dennoch zu lange für die Verarbeitung dauern.</p><p>Transcribe 1 ist für kurze Aufnahmen ausgelegt. Der Hersteller empfiehlt Pro für Audio, das länger als einige Minuten ist; eine lange Basismodellanfrage kann bei Überschreiten der Verarbeitungszeitgrenze fehlschlagen. Bewahren Sie bei der Aufteilung längerer Quellen in kurze Transkriptionsclips den Startversatz jedes Clips und bestätigen Sie vor dem Zusammenführen, dass das zurückgegebene Transkript den gesamten Clip abdeckt. Addieren Sie den ursprünglichen Versatz zu den lokalen Segmentzeiten, damit die Navigation mit der vollständigen Aufnahme verbunden bleibt. Die Hinweise zum Basismodell sind nicht als separates 60-Minuten-Budget von Pro zu verstehen.</p><p>Die Herstellerantwort enthält Text, Dauer und Segmente. Die Dauer wird in Sekunden angegeben; das lesbare Gesamttranskript sollte als massgeblicher Wortlaut des Clips erhalten bleiben. Zeitstempel sind optional: ignore_timestamps ist in der Hersteller-API standardmässig true; false fordert Segmente auf Wortebene mit Text sowie Start- und Endzeiten in Sekunden an. Die zeitliche Ausrichtung verlängert die Verarbeitung. Ein leeres Segmentarray kann übersprungene Zeitangaben, fehlende Sprache oder vorübergehend nicht verfügbare Ausrichtung bedeuten und sollte deshalb nicht automatisch als leeres Gesamttranskript gelten.</p><p>Segmente sind meist Wörter, im Chinesischen und Japanischen auch ein oder wenige Zeichen. Ihr Text enthält keine Interpunktion und kann einen Wert anders normalisieren als das Gesamttranskript; er ist keine zeichengetreue Kopie der lesbaren Antwort. Ein Segment kann dieselbe Start- und Endzeit haben. Verwenden Sie Segmente zum Auffinden einer Position in der Aufnahme oder für die zeitgesteuerte Anzeige und den Gesamttext, wenn Wortlaut und Interpunktion zählen. Halten Sie beide Darstellungen im Ergebnis getrennt.</p><p>Die Sprache wird automatisch erkannt, unabhängig von einem optionalen Sprachhinweis. Der Hersteller dokumentiert kleingeschriebene ISO-639-1-Codes für Hinweise und gibt, soweit bekannt, einen Sprachcode für Anwendungslogik sowie einen Sprachnamen zur Anzeige zurück. Die Antwort meldet eine Sprache statt aller Sprachen einer mehrsprachig wechselnden Aufnahme. Bewahren Sie Quellwortlaut und verfügbare Sprachmetadaten zusammen mit dem Ergebnis auf, statt eine Transkriptionsanfrage als Übersetzung zu behandeln.</p><p>Gruppieren Sie für Untertitel aufeinanderfolgende zeitlich ausgerichtete Segmente zu lesbaren Einblendungen, statt jedes Wort einzeln zu zeigen. Ein nützliches Ergebnis ist eine mit dem Originalclip verknüpfte SRT- oder WebVTT-Datei, deren Einblendungsgrenzen zu Pausen passen und deren Textmenge auf dem Bildschirm überschaubar bleibt. Prüfen Sie fehlende Zeitangaben und stellen Sie sicher, dass das Ende jeder Einblendung nach ihrem Anfang liegt. Gruppierung und Dateiformatierung sind Anwendungsschritte auf Grundlage der zurückgegebenen Ausrichtung; die Darstellung sollte zum Player und Publikum passen.</p><p>Die dokumentierten Regler von Transcribe 1 sind Audio, ein Sprachhinweis und die Zeitstempelauswahl. Sprechermarkierungen, strukturierte Sprecherwechsel, Regler für emotionale Ereignisse und Hinweise zur Sprecherzahl von Pro sind gesonderte Funktionen und gehören nicht zum dokumentierten Antwortvertrag dieses Basismodells. Wählen Sie das benötigte Ergebnis vor der Verarbeitung: lesbarer Klartext für eine Notiz oder Text samt Ausrichtung für Wiedergabenavigation und Untertitel. Clipkennung, Transkript und verfügbare Zeitangaben zu bewahren macht das Ergebnis für den nächsten Anwendungsschritt nutzbar.</p>",
  "aboutText": "Transcribe 1 ist Fish Audios allgemeines Spracherkennungsmodell für kurze Aufnahmen. Es nimmt eine Audiodatei entgegen und liefert die erkannten Wörter als Text, dazu die Aufnahmedauer, optionale zeitlich ausgerichtete Segmente und gegebenenfalls Sprachinformationen. Das Modell ist für eine kurze Sprachnotiz, eine gesprochene Anweisung, einen Aufnahmeauszug oder einen Audioclip nützlich, der eine lesbare Textdarstellung benötigt.\n\nEin beispielhafter Sprachnotizablauf bewahrt Aufnahme, vollständiges Transkript und Kennung des Originalclips zusammen auf. Ein späterer Anwendungsschritt kann den Text durchsuchen, die Notiz ordnen oder eine Zusammenfassung erstellen und dabei die gesprochene Quelle erhalten. Bei einem Befehl liefert das Transkript erkannte Wörter an die Anwendung; jede Handlung ist ein gesonderter Interpretations- und Ausführungsschritt. Halten Sie bei einem Interviewauszug dessen Position im vollständigen Audio fest, damit ein Zitat an der richtigen Stelle geprüft werden kann.\n\nDer Hersteller akzeptiert WAV, MP3, AAC einschliesslich M4A/MP4, FLAC und Ogg mit Opus oder Vorbis. Browseraufnahmen in WebM sollten für dieses Modell in Ogg/Opus, MP3 oder WAV umgewandelt werden; Pro dokumentiert native Unterstützung weiterer Container. Liefern Sie eine Audiodatei je Anfrage. Das dokumentierte Anfragebudget des Basismodells beträgt bis zu 50 MiB; MP3- und Opus-Dateien müssen unter 25 MiB bleiben. Dateigrösse und Aufnahmelänge sind verschiedene Aspekte: Eine komprimierte Datei kann in das Uploadbudget passen und dennoch zu lange für die Verarbeitung dauern.\n\nTranscribe 1 ist für kurze Aufnahmen ausgelegt. Der Hersteller empfiehlt Pro für Audio, das länger als einige Minuten ist; eine lange Basismodellanfrage kann bei Überschreiten der Verarbeitungszeitgrenze fehlschlagen. Bewahren Sie bei der Aufteilung längerer Quellen in kurze Transkriptionsclips den Startversatz jedes Clips und bestätigen Sie vor dem Zusammenführen, dass das zurückgegebene Transkript den gesamten Clip abdeckt. Addieren Sie den ursprünglichen Versatz zu den lokalen Segmentzeiten, damit die Navigation mit der vollständigen Aufnahme verbunden bleibt. Die Hinweise zum Basismodell sind nicht als separates 60-Minuten-Budget von Pro zu verstehen.\n\nDie Herstellerantwort enthält Text, Dauer und Segmente. Die Dauer wird in Sekunden angegeben; das lesbare Gesamttranskript sollte als massgeblicher Wortlaut des Clips erhalten bleiben. Zeitstempel sind optional: ignore_timestamps ist in der Hersteller-API standardmässig true; false fordert Segmente auf Wortebene mit Text sowie Start- und Endzeiten in Sekunden an. Die zeitliche Ausrichtung verlängert die Verarbeitung. Ein leeres Segmentarray kann übersprungene Zeitangaben, fehlende Sprache oder vorübergehend nicht verfügbare Ausrichtung bedeuten und sollte deshalb nicht automatisch als leeres Gesamttranskript gelten.\n\nSegmente sind meist Wörter, im Chinesischen und Japanischen auch ein oder wenige Zeichen. Ihr Text enthält keine Interpunktion und kann einen Wert anders normalisieren als das Gesamttranskript; er ist keine zeichengetreue Kopie der lesbaren Antwort. Ein Segment kann dieselbe Start- und Endzeit haben. Verwenden Sie Segmente zum Auffinden einer Position in der Aufnahme oder für die zeitgesteuerte Anzeige und den Gesamttext, wenn Wortlaut und Interpunktion zählen. Halten Sie beide Darstellungen im Ergebnis getrennt.\n\nDie Sprache wird automatisch erkannt, unabhängig von einem optionalen Sprachhinweis. Der Hersteller dokumentiert kleingeschriebene ISO-639-1-Codes für Hinweise und gibt, soweit bekannt, einen Sprachcode für Anwendungslogik sowie einen Sprachnamen zur Anzeige zurück. Die Antwort meldet eine Sprache statt aller Sprachen einer mehrsprachig wechselnden Aufnahme. Bewahren Sie Quellwortlaut und verfügbare Sprachmetadaten zusammen mit dem Ergebnis auf, statt eine Transkriptionsanfrage als Übersetzung zu behandeln.\n\nGruppieren Sie für Untertitel aufeinanderfolgende zeitlich ausgerichtete Segmente zu lesbaren Einblendungen, statt jedes Wort einzeln zu zeigen. Ein nützliches Ergebnis ist eine mit dem Originalclip verknüpfte SRT- oder WebVTT-Datei, deren Einblendungsgrenzen zu Pausen passen und deren Textmenge auf dem Bildschirm überschaubar bleibt. Prüfen Sie fehlende Zeitangaben und stellen Sie sicher, dass das Ende jeder Einblendung nach ihrem Anfang liegt. Gruppierung und Dateiformatierung sind Anwendungsschritte auf Grundlage der zurückgegebenen Ausrichtung; die Darstellung sollte zum Player und Publikum passen.\n\nDie dokumentierten Regler von Transcribe 1 sind Audio, ein Sprachhinweis und die Zeitstempelauswahl. Sprechermarkierungen, strukturierte Sprecherwechsel, Regler für emotionale Ereignisse und Hinweise zur Sprecherzahl von Pro sind gesonderte Funktionen und gehören nicht zum dokumentierten Antwortvertrag dieses Basismodells. Wählen Sie das benötigte Ergebnis vor der Verarbeitung: lesbarer Klartext für eine Notiz oder Text samt Ausrichtung für Wiedergabenavigation und Untertitel. Clipkennung, Transkript und verfügbare Zeitangaben zu bewahren macht das Ergebnis für den nächsten Anwendungsschritt nutzbar.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "6f85ea084055e6c5b42e1de01e87a3776674a545d897d3bbf9feae842e831cda",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "de-ch",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Fish Audio: Transcribe 1</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Schliessen\">×</button></div><div class=\"idline\"><span>Fish Audio /</span><code>fish-audio/transcribe-1</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|transcriptions|/v1/audio/transcriptions|fish-audio%2Ftranscribe-1\">Erkennung</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\">Transcribe 1 wandelt kurze Audioaufnahmen mit automatischer Spracherkennung und optionalen Zeitstempeln auf Wortebene in Text um. Nutzen Sie das Transkript für Sprachnotizen, durchsuchbare Clips oder die Untertitelvorbereitung und halten Sie zeitlich ausgerichtete Segmente vom lesbaren Gesamttext getrennt.</p><dl class=\"card-io\" data-card-io><div><dt>Zulässige Eingaben</dt><dd>Audio</dd></div><div><dt>Ergebnisse</dt><dd>Text</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>Transcribe 1 ist Fish Audios allgemeines Spracherkennungsmodell für kurze Aufnahmen. Es nimmt eine Audiodatei entgegen und liefert die erkannten Wörter als Text, dazu die Aufnahmedauer, optionale zeitlich ausgerichtete Segmente und gegebenenfalls Sprachinformationen. Das Modell ist für eine kurze Sprachnotiz, eine gesprochene Anweisung, einen Aufnahmeauszug oder einen Audioclip nützlich, der eine lesbare Textdarstellung benötigt.</p><p>Ein beispielhafter Sprachnotizablauf bewahrt Aufnahme, vollständiges Transkript und Kennung des Originalclips zusammen auf. Ein späterer Anwendungsschritt kann den Text durchsuchen, die Notiz ordnen oder eine Zusammenfassung erstellen und dabei die gesprochene Quelle erhalten. Bei einem Befehl liefert das Transkript erkannte Wörter an die Anwendung; jede Handlung ist ein gesonderter Interpretations- und Ausführungsschritt. Halten Sie bei einem Interviewauszug dessen Position im vollständigen Audio fest, damit ein Zitat an der richtigen Stelle geprüft werden kann.</p><p>Der Hersteller akzeptiert WAV, MP3, AAC einschliesslich M4A/MP4, FLAC und Ogg mit Opus oder Vorbis. Browseraufnahmen in WebM sollten für dieses Modell in Ogg/Opus, MP3 oder WAV umgewandelt werden; Pro dokumentiert native Unterstützung weiterer Container. Liefern Sie eine Audiodatei je Anfrage. Das dokumentierte Anfragebudget des Basismodells beträgt bis zu 50 MiB; MP3- und Opus-Dateien müssen unter 25 MiB bleiben. Dateigrösse und Aufnahmelänge sind verschiedene Aspekte: Eine komprimierte Datei kann in das Uploadbudget passen und dennoch zu lange für die Verarbeitung dauern.</p><p>Transcribe 1 ist für kurze Aufnahmen ausgelegt. Der Hersteller empfiehlt Pro für Audio, das länger als einige Minuten ist; eine lange Basismodellanfrage kann bei Überschreiten der Verarbeitungszeitgrenze fehlschlagen. Bewahren Sie bei der Aufteilung längerer Quellen in kurze Transkriptionsclips den Startversatz jedes Clips und bestätigen Sie vor dem Zusammenführen, dass das zurückgegebene Transkript den gesamten Clip abdeckt. Addieren Sie den ursprünglichen Versatz zu den lokalen Segmentzeiten, damit die Navigation mit der vollständigen Aufnahme verbunden bleibt. Die Hinweise zum Basismodell sind nicht als separates 60-Minuten-Budget von Pro zu verstehen.</p><p>Die Herstellerantwort enthält Text, Dauer und Segmente. Die Dauer wird in Sekunden angegeben; das lesbare Gesamttranskript sollte als massgeblicher Wortlaut des Clips erhalten bleiben. Zeitstempel sind optional: ignore_timestamps ist in der Hersteller-API standardmässig true; false fordert Segmente auf Wortebene mit Text sowie Start- und Endzeiten in Sekunden an. Die zeitliche Ausrichtung verlängert die Verarbeitung. Ein leeres Segmentarray kann übersprungene Zeitangaben, fehlende Sprache oder vorübergehend nicht verfügbare Ausrichtung bedeuten und sollte deshalb nicht automatisch als leeres Gesamttranskript gelten.</p><p>Segmente sind meist Wörter, im Chinesischen und Japanischen auch ein oder wenige Zeichen. Ihr Text enthält keine Interpunktion und kann einen Wert anders normalisieren als das Gesamttranskript; er ist keine zeichengetreue Kopie der lesbaren Antwort. Ein Segment kann dieselbe Start- und Endzeit haben. Verwenden Sie Segmente zum Auffinden einer Position in der Aufnahme oder für die zeitgesteuerte Anzeige und den Gesamttext, wenn Wortlaut und Interpunktion zählen. Halten Sie beide Darstellungen im Ergebnis getrennt.</p><p>Die Sprache wird automatisch erkannt, unabhängig von einem optionalen Sprachhinweis. Der Hersteller dokumentiert kleingeschriebene ISO-639-1-Codes für Hinweise und gibt, soweit bekannt, einen Sprachcode für Anwendungslogik sowie einen Sprachnamen zur Anzeige zurück. Die Antwort meldet eine Sprache statt aller Sprachen einer mehrsprachig wechselnden Aufnahme. Bewahren Sie Quellwortlaut und verfügbare Sprachmetadaten zusammen mit dem Ergebnis auf, statt eine Transkriptionsanfrage als Übersetzung zu behandeln.</p><p>Gruppieren Sie für Untertitel aufeinanderfolgende zeitlich ausgerichtete Segmente zu lesbaren Einblendungen, statt jedes Wort einzeln zu zeigen. Ein nützliches Ergebnis ist eine mit dem Originalclip verknüpfte SRT- oder WebVTT-Datei, deren Einblendungsgrenzen zu Pausen passen und deren Textmenge auf dem Bildschirm überschaubar bleibt. Prüfen Sie fehlende Zeitangaben und stellen Sie sicher, dass das Ende jeder Einblendung nach ihrem Anfang liegt. Gruppierung und Dateiformatierung sind Anwendungsschritte auf Grundlage der zurückgegebenen Ausrichtung; die Darstellung sollte zum Player und Publikum passen.</p><p>Die dokumentierten Regler von Transcribe 1 sind Audio, ein Sprachhinweis und die Zeitstempelauswahl. Sprechermarkierungen, strukturierte Sprecherwechsel, Regler für emotionale Ereignisse und Hinweise zur Sprecherzahl von Pro sind gesonderte Funktionen und gehören nicht zum dokumentierten Antwortvertrag dieses Basismodells. Wählen Sie das benötigte Ergebnis vor der Verarbeitung: lesbarer Klartext für eine Notiz oder Text samt Ausrichtung für Wiedergabenavigation und Untertitel. Clipkennung, Transkript und verfügbare Zeitangaben zu bewahren macht das Ergebnis für den nächsten Anwendungsschritt nutzbar.</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 · Transkription</b> <code>POST /v1/audio/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>Eingabe</dt><dd><code>audio</code></dd></div><div><dt>Ausgabe</dt><dd><code>text</code></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><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/transcribe-1</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">input_audio</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>object</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></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr></tbody></table></div><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_audio</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>audio</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_conditions</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>Das Beispiel liest Ihre tatsächliche, nicht leere PCM-WAV-Datei, codiert sämtliche Dateibytes als base64 und sendet input_audio.format als wav.</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> · Exakte task_id aus einem bestehenden, Ihnen zugeordneten Medieneintrag</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">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>Token-Basistarife</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 · Cache schreiben</span> <b>—</b> <span class=\"price-unit\">/ 1K Tokens</span></div><div><span>Eingabe · 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>Audioeingabe-Sekunde</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 Sekunde Eingabeaudio</td><td data-cell-label=\"Gebühr\"><span class=\"card-cell-label\">Gebühr</span><div><span>Eingabe · Audioeingabe-Sekunde</span> <b>$0.0002</b> <span class=\"price-unit\">pro Sekunde Eingabeaudio</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 abschliessenden Verbrauchsdatensatzes. <a href=\"/docs/de-ch/billing/reserve/\">So funktionieren Reservierung und Abrechnung →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Beispielanfragen</h3><h4>Ailoot Ultra · Transkription</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-1361-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1361-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · tatsächliche WAV-Datei und vollständiges Originalergebnis</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-1361-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1361-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}&quot;\nexport AILOOT_AUDIO_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ[&#39;AILOOT_AUDIO_FILE&#39;]).read_bytes()\nif not (audio[:4] == b&#39;RIFF&#39; and audio[8:12] == b&#39;WAVE&#39;):\n    raise SystemExit(&#39;Supply your actual PCM WAV audio file&#39;)\nwith wave.open(io.BytesIO(audio), &#39;rb&#39;) as recording:\n    if recording.getcomptype() != &#39;NONE&#39; or recording.getnframes() &lt;= 0:\n        raise SystemExit(&#39;Supply a nonempty PCM WAV recording&#39;)\nrequest = {&#39;model&#39;: &#39;fish-audio/transcribe-1&#39;, &#39;input_audio&#39;: {&#39;data&#39;: base64.b64encode(audio).decode(&#39;ascii&#39;), &#39;format&#39;: &#39;wav&#39;}}\nPath(&#39;request.json&#39;).write_text(json.dumps(request, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Ergebnisse abrufen und speichern</h3><h4>Ailoot Ultra · Transkription</h4><p class=\"note-s\">Vollständiger ursprünglicher Antwortinhalt, Status und weitergeleitete Header. Dieser Handler fügt weder eine allgemeingültige JSON-Struktur noch ein Textfeld oder eine Aufgabenhülle hinzu.</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\">Die vollständige Antwort und ihre Header, jede tatsächliche Ausgabe, die ursprünglich zurückgegebenen Kennungen und alle Nutzungsfelder aufbewahren. Den ursprünglichen Vorgang wiederaufnehmen, ohne die Erstellung erneut anzufordern.</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 tatsächliche X-Client-Request-ID und die vollständige Antwort auf. Lesen Sie die ursprünglichen, Ihnen zugeordneten Assets und ihre exakten signierten Inhalts-URLs; reichen Sie eine Erstellung mit unklarem Ausgang niemals erneut ein.</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\">text (when present)</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span></td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">usage (when present)</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span></td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Fehler und nächste Schritte</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Antwort</th><th>Bedingung</th><th>Nächster Schritt</th></tr></thead><tbody><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Der JSON-Anfragetext oder die explizite kanonische Modell-ID ist ungültig.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Bewahren Sie die Antwort auf und korrigieren Sie das angegebene Anfragefeld.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Der API-Schlüssel von Ailoot ist ungültig.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Verwenden Sie Ihren autorisierten API-Schlüssel von Ailoot.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>403 · <code>permission_error</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Die Schlüsselgruppe lässt diese Methode nicht zu.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Bewahren Sie die zurückgegebenen Fehlerdetails auf.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Für die ausgewählte Methode gibt es keine zugelassene Route.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Bewahren Sie die zurückgegebenen Fehlerdetails auf.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Für den akzeptierten Tarif lässt sich die erforderliche Eingabemenge oder deren Grenze nicht ermitteln.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Bewahren Sie die Antwort auf; verwenden Sie die vom akzeptierten Tarif verlangte Eingabedarstellung.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>503 · <code></code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Erforderlicher Speicher, Route, Methodenpreis oder Reservierung ist nicht verfügbar.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Bewahren Sie die vollständige ursprüngliche Antwort auf. Eine Reservierung mit unklarem Zustand ist keine Erlaubnis zum erneuten Einreichen.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>502 · <code>server_error</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Das ursprüngliche Ergebnis, der Verbrauch oder die Abrechnung muss geprüft werden.</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Bewahren Sie die tatsächliche Anfrage-ID und die ursprüngliche Antwort auf. Lesen Sie den bestehenden, Ihnen zugeordneten Eintrag; reichen Sie die Erstellung nicht erneut ein.</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%2Ftranscribe-1&amp;route=Ultra&amp;caller=fish-audio%2Ftranscribe-1&amp;fmt=transcriptions\"><code>fish-audio/transcribe-1</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%2Ftranscribe-1&amp;route=Ultra&amp;caller=fish-audio%2Ftranscribe-1&amp;fmt=transcriptions\"><code>fish-audio/transcribe-1</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "fish-audio/transcribe-1",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "fish-audio/transcribe-1",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|fish-audio%2Ftranscribe-1",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "Der JSON-Anfragetext oder die explizite kanonische Modell-ID ist ungültig.",
                "http_status": 400,
                "recovery": "Bewahren Sie die Antwort auf und korrigieren Sie das angegebene Anfragefeld.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Der API-Schlüssel von Ailoot ist ungültig.",
                "http_status": 401,
                "recovery": "Verwenden Sie Ihren autorisierten API-Schlüssel von Ailoot.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Die Schlüsselgruppe lässt diese Methode nicht zu.",
                "http_status": 403,
                "recovery": "Bewahren Sie die zurückgegebenen Fehlerdetails auf.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Für die ausgewählte Methode gibt es keine zugelassene Route.",
                "http_status": 404,
                "recovery": "Bewahren Sie die zurückgegebenen Fehlerdetails auf.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Für den akzeptierten Tarif lässt sich die erforderliche Eingabemenge oder deren Grenze nicht ermitteln.",
                "http_status": 422,
                "recovery": "Bewahren Sie die Antwort auf; verwenden Sie die vom akzeptierten Tarif verlangte Eingabedarstellung.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Erforderlicher Speicher, Route, Methodenpreis oder Reservierung ist nicht verfügbar.",
                "http_status": 503,
                "recovery": "Bewahren Sie die vollständige ursprüngliche Antwort auf. Eine Reservierung mit unklarem Zustand ist keine Erlaubnis zum erneuten Einreichen.",
                "type": null
              },
              {
                "code": null,
                "condition": "Das ursprüngliche Ergebnis, der Verbrauch oder die Abrechnung muss geprüft werden.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Bewahren Sie die tatsächliche Anfrage-ID und die ursprüngliche Antwort auf. Lesen Sie den bestehenden, Ihnen zugeordneten Eintrag; reichen Sie die Erstellung nicht erneut ein.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Bewahren Sie die tatsächliche X-Client-Request-ID und die vollständige Antwort auf. Lesen Sie die ursprünglichen, Ihnen zugeordneten Assets und ihre exakten signierten Inhalts-URLs; reichen Sie eine Erstellung mit unklarem Ausgang niemals erneut ein."
            },
            "outputs": {
              "all_results": "Die vollständige Antwort und ihre Header, jede tatsächliche Ausgabe, die ursprünglich zurückgegebenen Kennungen und alle Nutzungsfelder aufbewahren. Den ursprünglichen Vorgang wiederaufnehmen, ohne die Erstellung erneut anzufordern.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Vollständiger ursprünglicher Antwortinhalt, Status und weitergeleitete Header. Dieser Handler fügt weder eine allgemeingültige JSON-Struktur noch ein Textfeld oder eine Aufgabenhülle hinzu."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "fish-audio/transcribe-1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "fish-audio/transcribe-1"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "fish-audio/transcribe-1"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Das Beispiel liest Ihre tatsächliche, nicht leere PCM-WAV-Datei, codiert sämtliche Dateibytes als base64 und sendet input_audio.format als wav."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "Exakte task_id aus einem bestehenden, Ihnen zugeordneten Medieneintrag",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'fish-audio/transcribe-1', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\nPath('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Transkription",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_second": 0.0002
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/transcribe-1",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.0002",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0002",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    }
  ],
  "model_id": "fish-audio/transcribe-1",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "ba0aeae7bcc334653c90af4ab3ff6769d11dd1391110346f885c3399f0ada94e",
    "input_html_sha256": "520072bc311090bd58a0916acfafc7d2aa00e027160b597bb2a2f6dbadd3b073",
    "private_audit_sha256": "316b2127295e8d64959ea80f5d81403dd1ee771492118e8a74003cc0e226595b",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/de-ch/fish-audio-transcribe-1/",
    "description": "Transcribe 1 wandelt kurze Audioaufnahmen mit automatischer Spracherkennung und optionalen Zeitstempeln auf Wortebene in Text um. Nutzen Sie das Transkript für Sprachnotizen, durchsuchbare Clips oder die Untertitelvorbereitung und halten Sie zeitlich ausgerichtete Segmente vom lesbaren Gesamttext getrennt.",
    "locale": "de-ch",
    "md_url": "https://ailoot.ai/models/de-ch/fish-audio-transcribe-1/index.md",
    "title": "Fish Audio: Transcribe 1 — Ailoot",
    "url": "https://ailoot.ai/models/de-ch/fish-audio-transcribe-1/"
  },
  "rawModel": {
    "about": "Transcribe 1 ist Fish Audios allgemeines Spracherkennungsmodell für kurze Aufnahmen. Es nimmt eine Audiodatei entgegen und liefert die erkannten Wörter als Text, dazu die Aufnahmedauer, optionale zeitlich ausgerichtete Segmente und gegebenenfalls Sprachinformationen. Das Modell ist für eine kurze Sprachnotiz, eine gesprochene Anweisung, einen Aufnahmeauszug oder einen Audioclip nützlich, der eine lesbare Textdarstellung benötigt.\n\nEin beispielhafter Sprachnotizablauf bewahrt Aufnahme, vollständiges Transkript und Kennung des Originalclips zusammen auf. Ein späterer Anwendungsschritt kann den Text durchsuchen, die Notiz ordnen oder eine Zusammenfassung erstellen und dabei die gesprochene Quelle erhalten. Bei einem Befehl liefert das Transkript erkannte Wörter an die Anwendung; jede Handlung ist ein gesonderter Interpretations- und Ausführungsschritt. Halten Sie bei einem Interviewauszug dessen Position im vollständigen Audio fest, damit ein Zitat an der richtigen Stelle geprüft werden kann.\n\nDer Hersteller akzeptiert WAV, MP3, AAC einschliesslich M4A/MP4, FLAC und Ogg mit Opus oder Vorbis. Browseraufnahmen in WebM sollten für dieses Modell in Ogg/Opus, MP3 oder WAV umgewandelt werden; Pro dokumentiert native Unterstützung weiterer Container. Liefern Sie eine Audiodatei je Anfrage. Das dokumentierte Anfragebudget des Basismodells beträgt bis zu 50 MiB; MP3- und Opus-Dateien müssen unter 25 MiB bleiben. Dateigrösse und Aufnahmelänge sind verschiedene Aspekte: Eine komprimierte Datei kann in das Uploadbudget passen und dennoch zu lange für die Verarbeitung dauern.\n\nTranscribe 1 ist für kurze Aufnahmen ausgelegt. Der Hersteller empfiehlt Pro für Audio, das länger als einige Minuten ist; eine lange Basismodellanfrage kann bei Überschreiten der Verarbeitungszeitgrenze fehlschlagen. Bewahren Sie bei der Aufteilung längerer Quellen in kurze Transkriptionsclips den Startversatz jedes Clips und bestätigen Sie vor dem Zusammenführen, dass das zurückgegebene Transkript den gesamten Clip abdeckt. Addieren Sie den ursprünglichen Versatz zu den lokalen Segmentzeiten, damit die Navigation mit der vollständigen Aufnahme verbunden bleibt. Die Hinweise zum Basismodell sind nicht als separates 60-Minuten-Budget von Pro zu verstehen.\n\nDie Herstellerantwort enthält Text, Dauer und Segmente. Die Dauer wird in Sekunden angegeben; das lesbare Gesamttranskript sollte als massgeblicher Wortlaut des Clips erhalten bleiben. Zeitstempel sind optional: ignore_timestamps ist in der Hersteller-API standardmässig true; false fordert Segmente auf Wortebene mit Text sowie Start- und Endzeiten in Sekunden an. Die zeitliche Ausrichtung verlängert die Verarbeitung. Ein leeres Segmentarray kann übersprungene Zeitangaben, fehlende Sprache oder vorübergehend nicht verfügbare Ausrichtung bedeuten und sollte deshalb nicht automatisch als leeres Gesamttranskript gelten.\n\nSegmente sind meist Wörter, im Chinesischen und Japanischen auch ein oder wenige Zeichen. Ihr Text enthält keine Interpunktion und kann einen Wert anders normalisieren als das Gesamttranskript; er ist keine zeichengetreue Kopie der lesbaren Antwort. Ein Segment kann dieselbe Start- und Endzeit haben. Verwenden Sie Segmente zum Auffinden einer Position in der Aufnahme oder für die zeitgesteuerte Anzeige und den Gesamttext, wenn Wortlaut und Interpunktion zählen. Halten Sie beide Darstellungen im Ergebnis getrennt.\n\nDie Sprache wird automatisch erkannt, unabhängig von einem optionalen Sprachhinweis. Der Hersteller dokumentiert kleingeschriebene ISO-639-1-Codes für Hinweise und gibt, soweit bekannt, einen Sprachcode für Anwendungslogik sowie einen Sprachnamen zur Anzeige zurück. Die Antwort meldet eine Sprache statt aller Sprachen einer mehrsprachig wechselnden Aufnahme. Bewahren Sie Quellwortlaut und verfügbare Sprachmetadaten zusammen mit dem Ergebnis auf, statt eine Transkriptionsanfrage als Übersetzung zu behandeln.\n\nGruppieren Sie für Untertitel aufeinanderfolgende zeitlich ausgerichtete Segmente zu lesbaren Einblendungen, statt jedes Wort einzeln zu zeigen. Ein nützliches Ergebnis ist eine mit dem Originalclip verknüpfte SRT- oder WebVTT-Datei, deren Einblendungsgrenzen zu Pausen passen und deren Textmenge auf dem Bildschirm überschaubar bleibt. Prüfen Sie fehlende Zeitangaben und stellen Sie sicher, dass das Ende jeder Einblendung nach ihrem Anfang liegt. Gruppierung und Dateiformatierung sind Anwendungsschritte auf Grundlage der zurückgegebenen Ausrichtung; die Darstellung sollte zum Player und Publikum passen.\n\nDie dokumentierten Regler von Transcribe 1 sind Audio, ein Sprachhinweis und die Zeitstempelauswahl. Sprechermarkierungen, strukturierte Sprecherwechsel, Regler für emotionale Ereignisse und Hinweise zur Sprecherzahl von Pro sind gesonderte Funktionen und gehören nicht zum dokumentierten Antwortvertrag dieses Basismodells. Wählen Sie das benötigte Ergebnis vor der Verarbeitung: lesbarer Klartext für eine Notiz oder Text samt Ausrichtung für Wiedergabenavigation und Untertitel. Clipkennung, Transkript und verfügbare Zeitangaben zu bewahren macht das Ergebnis für den nächsten Anwendungsschritt nutzbar.",
    "alias_of": null,
    "aliases": [],
    "author": "Fish Audio",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0002",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0002",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ],
        "summary": "Die vollständigen Preisangaben zur Konfiguration finden Sie in den Details."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "fish-audio/transcribe-1",
    "input": [
      "audio"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "errors": [
              {
                "code": null,
                "condition": "Der JSON-Anfragetext oder die explizite kanonische Modell-ID ist ungültig.",
                "http_status": 400,
                "recovery": "Bewahren Sie die Antwort auf und korrigieren Sie das angegebene Anfragefeld.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Der API-Schlüssel von Ailoot ist ungültig.",
                "http_status": 401,
                "recovery": "Verwenden Sie Ihren autorisierten API-Schlüssel von Ailoot.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Die Schlüsselgruppe lässt diese Methode nicht zu.",
                "http_status": 403,
                "recovery": "Bewahren Sie die zurückgegebenen Fehlerdetails auf.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Für die ausgewählte Methode gibt es keine zugelassene Route.",
                "http_status": 404,
                "recovery": "Bewahren Sie die zurückgegebenen Fehlerdetails auf.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Für den akzeptierten Tarif lässt sich die erforderliche Eingabemenge oder deren Grenze nicht ermitteln.",
                "http_status": 422,
                "recovery": "Bewahren Sie die Antwort auf; verwenden Sie die vom akzeptierten Tarif verlangte Eingabedarstellung.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Erforderlicher Speicher, Route, Methodenpreis oder Reservierung ist nicht verfügbar.",
                "http_status": 503,
                "recovery": "Bewahren Sie die vollständige ursprüngliche Antwort auf. Eine Reservierung mit unklarem Zustand ist keine Erlaubnis zum erneuten Einreichen.",
                "type": null
              },
              {
                "code": null,
                "condition": "Das ursprüngliche Ergebnis, der Verbrauch oder die Abrechnung muss geprüft werden.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Bewahren Sie die tatsächliche Anfrage-ID und die ursprüngliche Antwort auf. Lesen Sie den bestehenden, Ihnen zugeordneten Eintrag; reichen Sie die Erstellung nicht erneut ein.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Bewahren Sie die tatsächliche X-Client-Request-ID und die vollständige Antwort auf. Lesen Sie die ursprünglichen, Ihnen zugeordneten Assets und ihre exakten signierten Inhalts-URLs; reichen Sie eine Erstellung mit unklarem Ausgang niemals erneut ein."
            },
            "outputs": {
              "all_results": "Die vollständige Antwort und ihre Header, jede tatsächliche Ausgabe, die ursprünglich zurückgegebenen Kennungen und alle Nutzungsfelder aufbewahren. Den ursprünglichen Vorgang wiederaufnehmen, ohne die Erstellung erneut anzufordern.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Vollständiger ursprünglicher Antwortinhalt, Status und weitergeleitete Header. Dieser Handler fügt weder eine allgemeingültige JSON-Struktur noch ein Textfeld oder eine Aufgabenhülle hinzu."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "fish-audio/transcribe-1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "fish-audio/transcribe-1"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "fish-audio/transcribe-1"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Das Beispiel liest Ihre tatsächliche, nicht leere PCM-WAV-Datei, codiert sämtliche Dateibytes als base64 und sendet input_audio.format als wav."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "Exakte task_id aus einem bestehenden, Ihnen zugeordneten Medieneintrag",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'fish-audio/transcribe-1', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\nPath('request.json').write_text(json.dumps(request, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Transkription",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_second": 0.0002
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "fish-audio/transcribe-1",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.0002",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0002",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "fish-audio/transcribe-1",
        "request_model_id": "fish-audio/transcribe-1",
        "route_label": "Ultra"
      }
    ],
    "name": "Fish Audio: Transcribe 1",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Transcribe 1 wandelt kurze Audioaufnahmen mit automatischer Spracherkennung und optionalen Zeitstempeln auf Wortebene in Text um. Nutzen Sie das Transkript für Sprachnotizen, durchsuchbare Clips oder die Untertitelvorbereitung und halten Sie zeitlich ausgerichtete Segmente vom lesbaren Gesamttext getrennt."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Transcribe 1 wandelt kurze Audioaufnahmen mit automatischer Spracherkennung und optionalen Zeitstempeln auf Wortebene in Text um. Nutzen Sie das Transkript für Sprachnotizen, durchsuchbare Clips oder die Untertitelvorbereitung und halten Sie zeitlich ausgerichtete Segmente vom lesbaren Gesamttext getrennt.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "cce9b29df37b37d90c94ec1ae1311fe944925a513dd0bb91b5cc81912c4482c8",
    "renderer_sha256": "76caa42c097db2ddc47d1e1e6fe7ca45c8363d7211296daf28e4352971e6c0c8"
  },
  "sourceRevision": "497a4bc962c752bc3b38584cdc93c237fc09175ab2ae0afbb897ff6fca2b85c9"
}
