{
  "aboutHtml": "<p>Transcribe 1 Pro ist Fish Audios Speech-to-Text-Modell für kurze Clips, Gespräche mit mehreren Sprechern und lange Aufnahmen. Es nimmt aufgezeichnetes Audio entgegen und gibt ein Transkript mit optionalen Zeitangaben und strukturierten Sprecherbeiträgen zurück. Seine besonderen Merkmale sind im Text markierte Sprecherwechsel und Hinweise auf Emotionen oder stimmliche Ereignisse, die mehr von der Gesprächsstruktur der Aufnahme bewahren als eine bloße Wortfolge.</p><p>Bewahren Sie bei einem Interview, Meeting oder Podcast das vollständige Gespräch in einer Datei, damit wiederkehrende Sprecher innerhalb der Antwort konsistente Bezeichnungen behalten können. Ein nützliches Prüfartefakt ist ein mit der Originalaufnahme verknüpftes Transkript mit getrennt dargestellten Beiträgen und einem Zeitstempel zur Prüfung eines Zitats. Eine Zusammenfassung oder Aktionsliste ist ein nachfolgender Anwendungsschritt: Halten Sie sie vom Transkript getrennt, damit die gesprochene Quelle zum Vergleich verfügbar bleibt.</p><p>Der Anbieter akzeptiert Aufnahmen bis zu 60 Minuten und beschreibt die Verarbeitung langer Dateien mit komprimiertem Audio wie MP3, Opus oder AAC. Unterstützte Formate umfassen WAV, MP3, AAC in M4A oder MP4, FLAC, Ogg mit Opus oder Vorbis, WebM/Matroska und MOV. Bei einer Videodatei verwendet er die erste Audiospur. AIFF, CAF, WMA, AMR, AC-3 und rohes PCM ohne Header werden nicht unterstützt. Pro Anfrage wird eine Audiodatei bereitgestellt; das Ergebnis kommt nach der Transkription der gesamten Aufnahme, und eine lange Aufnahme kann mehrere Minuten benötigen. Clips unter ungefähr 0,08 Sekunden werden zurückgewiesen.</p><p>Die Anbieterantwort enthält den vollständigen Text, die Aufnahmedauer in Sekunden und ein segments-Array. Pro markiert Sprecherwechsel inline mit Bezeichnungen wie &lt;|speaker:0|&gt; und &lt;|speaker:1|&gt;; eine Bezeichnung gilt für den folgenden Text bis zur nächsten Markierung. Dies sind Kennungen innerhalb einer Antwort, keine verifizierten Namen oder Identitäten, die anfrageübergreifend zugeordnet werden können. Wenn das Transkript keine Sprechermarkierung enthält, behandelt der Leitfaden es als Ergebnis mit einem Sprecher. Bewahren Sie Text vor der ersten Markierung beim ersten Beitrag, statt ihn zu verwerfen.</p><p>Zeitstempel auf Wortebene sind optional. In der Anbieteranfrage ist ignore_timestamps standardmäßig true; false fordert Segmente mit Text sowie Start- und Endzeiten in Sekunden an. Ein Segment ist gewöhnlich ein Wort oder im Chinesischen und Japanischen ein oder wenige Zeichen. Segmenttext lässt Zeichensetzung, Sprechermarkierungen und Ereignishinweise weg und kann einen gesprochenen Wert anders normalisieren als das vollständige Transkript. Ein Wortsegment kann dieselbe Start- und Endzeit haben. Ein leeres segments-Array kann bedeuten, dass keine Zeitstempel angefordert wurden, keine Sprachäußerungen erkannt wurden oder Zeitangaben vorübergehend nicht verfügbar waren. Verwenden Sie das vollständige Transkript für lesbaren Wortlaut und segments für die zeitliche Ausrichtung, statt anzunehmen, dass beide Zeichenfolgen Zeichen für Zeichen übereinstimmen.</p><p>Die Einstellung diarize ist standardmäßig auto. Wenn Zeitstempel angefordert werden und diarize nicht false ist, gibt Pro außerdem speaker_turns zurück. Jeder Beitrag enthält seine Sprecherbezeichnung, Text und Start-/Endzeiten und bewahrt Zeichensetzung und erhaltene Hinweise ohne die Inline-Sprechermarkierung. Wenn Wortzeiten nicht verfügbar sind, können Beitragszeiten ungefähr sein und die gesamte Aufnahme umfassen; benachbarte Beiträge sind nicht notwendigerweise lückenlos oder überschneidungsfrei. Das Deaktivieren von diarize entfernt die strukturierte Beitragsliste, lässt aber Sprechermarkierungen im vollständigen Text bestehen. Eine bekannte Sprecheranzahl oder Mindest- und Höchstanzahlen können die Sprechertrennung längerer Aufnahmen auf Best-Effort-Basis unterstützen. Die genaue Anzahl kann nicht mit den Anzahlgrenzen kombiniert werden, und Anzahlhinweise können bei deaktiviertem diarize nicht verwendet werden.</p><p>Emotions- und stimmliche Ereignishinweise erscheinen als Text in eckigen Klammern, beispielsweise [laughter], neben der erkannten Sprache. Sie werden aus dem Audio erschlossen und sind keine Wörter, die Nutzer vor der Transkription hinzufügen müssen. Pros Einstellung tag_audio_events ist standardmäßig true; ihre Deaktivierung entfernt diese Hinweise aus Transkript und Beitragstext, ohne die Zeitangaben zu verändern. Es gibt kein separates Emotionsfeld und keine feste Emotionsaufzählung. Bewahren Sie das annotierte Transkript, wenn der Klang einer Bemerkung wichtig ist, und verwenden Sie eine Version ohne Hinweise, wenn das nachgelagerte Artefakt nur die gesprochenen Wörter benötigt.</p><p>Die Sprache wird automatisch erkannt. Ein optionaler kleingeschriebener ISO-639-1-Hinweis erzwingt keine Übersetzung und verändert Pros Transkript nicht. Wenn die Sprache nicht bestimmt werden kann, kann der zurückgegebene Sprachcode den Hinweis wiedergeben, ohne ihn anhand des Audios zu verifizieren. Der Anbieter meldet eine Sprache statt eines Verzeichnisses aller Sprachen einer gemischtsprachigen Aufnahme. Bewahren Sie Originalwortlaut und Sprachmetadaten gemeinsam, wenn Sie ein durchsuchbares Archiv vorbereiten, besonders wenn verschiedene Gesprächsteile die Sprache wechseln.</p><p>Gruppieren Sie für Untertitel aufeinanderfolgende zeitlich ausgerichtete Wörter in lesbare SRT- oder WebVTT-Einträge, statt pro Wort einen Untertitel zu erzeugen. Trennen Sie Einträge an Pausen und wählen Sie Länge und Anzeigezeit passend zu Player und Publikum. Sprecherbeitragsgrenzen können verschiedene Sprecher in getrennten Einträgen halten. Prüfen Sie auf leere Zeitergebnisse und auf Einträge, deren Ende später als ihr Beginn liegen muss. Untertitelformatierung, Namen für anonyme Sprecherbezeichnungen und spätere Zusammenfassungen sind Anwendungsartefakte, die aus dem Transkriptionsergebnis entstehen.</p><p>Entscheiden Sie für einen praktischen Aufnahme-Workflow vor der Transkription, ob Sie ein schlichtes lesbares Transkript, annotierte Gesprächsbeiträge oder zeitlich ausgerichtete Untertitel benötigen. Bewahren Sie die Audiokennung beim Ergebnis, erhalten Sie den zurückgegebenen vollständigen Text, wenn Zeichensetzung und Hinweise wichtig sind, und verwenden Sie die strukturierten Zeitfelder zur Navigation. Pros Fähigkeiten für lange Aufnahmen und mehrere Sprecher unterscheiden sich vom allgemeinen Kurzaufnahme-Modell Transcribe 1; ihre Grenzen und Steuereinstellungen sollten nicht als austauschbar behandelt werden.</p>",
  "aboutText": "Transcribe 1 Pro ist Fish Audios Speech-to-Text-Modell für kurze Clips, Gespräche mit mehreren Sprechern und lange Aufnahmen. Es nimmt aufgezeichnetes Audio entgegen und gibt ein Transkript mit optionalen Zeitangaben und strukturierten Sprecherbeiträgen zurück. Seine besonderen Merkmale sind im Text markierte Sprecherwechsel und Hinweise auf Emotionen oder stimmliche Ereignisse, die mehr von der Gesprächsstruktur der Aufnahme bewahren als eine bloße Wortfolge.\n\nBewahren Sie bei einem Interview, Meeting oder Podcast das vollständige Gespräch in einer Datei, damit wiederkehrende Sprecher innerhalb der Antwort konsistente Bezeichnungen behalten können. Ein nützliches Prüfartefakt ist ein mit der Originalaufnahme verknüpftes Transkript mit getrennt dargestellten Beiträgen und einem Zeitstempel zur Prüfung eines Zitats. Eine Zusammenfassung oder Aktionsliste ist ein nachfolgender Anwendungsschritt: Halten Sie sie vom Transkript getrennt, damit die gesprochene Quelle zum Vergleich verfügbar bleibt.\n\nDer Anbieter akzeptiert Aufnahmen bis zu 60 Minuten und beschreibt die Verarbeitung langer Dateien mit komprimiertem Audio wie MP3, Opus oder AAC. Unterstützte Formate umfassen WAV, MP3, AAC in M4A oder MP4, FLAC, Ogg mit Opus oder Vorbis, WebM/Matroska und MOV. Bei einer Videodatei verwendet er die erste Audiospur. AIFF, CAF, WMA, AMR, AC-3 und rohes PCM ohne Header werden nicht unterstützt. Pro Anfrage wird eine Audiodatei bereitgestellt; das Ergebnis kommt nach der Transkription der gesamten Aufnahme, und eine lange Aufnahme kann mehrere Minuten benötigen. Clips unter ungefähr 0,08 Sekunden werden zurückgewiesen.\n\nDie Anbieterantwort enthält den vollständigen Text, die Aufnahmedauer in Sekunden und ein segments-Array. Pro markiert Sprecherwechsel inline mit Bezeichnungen wie <|speaker:0|> und <|speaker:1|>; eine Bezeichnung gilt für den folgenden Text bis zur nächsten Markierung. Dies sind Kennungen innerhalb einer Antwort, keine verifizierten Namen oder Identitäten, die anfrageübergreifend zugeordnet werden können. Wenn das Transkript keine Sprechermarkierung enthält, behandelt der Leitfaden es als Ergebnis mit einem Sprecher. Bewahren Sie Text vor der ersten Markierung beim ersten Beitrag, statt ihn zu verwerfen.\n\nZeitstempel auf Wortebene sind optional. In der Anbieteranfrage ist ignore_timestamps standardmäßig true; false fordert Segmente mit Text sowie Start- und Endzeiten in Sekunden an. Ein Segment ist gewöhnlich ein Wort oder im Chinesischen und Japanischen ein oder wenige Zeichen. Segmenttext lässt Zeichensetzung, Sprechermarkierungen und Ereignishinweise weg und kann einen gesprochenen Wert anders normalisieren als das vollständige Transkript. Ein Wortsegment kann dieselbe Start- und Endzeit haben. Ein leeres segments-Array kann bedeuten, dass keine Zeitstempel angefordert wurden, keine Sprachäußerungen erkannt wurden oder Zeitangaben vorübergehend nicht verfügbar waren. Verwenden Sie das vollständige Transkript für lesbaren Wortlaut und segments für die zeitliche Ausrichtung, statt anzunehmen, dass beide Zeichenfolgen Zeichen für Zeichen übereinstimmen.\n\nDie Einstellung diarize ist standardmäßig auto. Wenn Zeitstempel angefordert werden und diarize nicht false ist, gibt Pro außerdem speaker_turns zurück. Jeder Beitrag enthält seine Sprecherbezeichnung, Text und Start-/Endzeiten und bewahrt Zeichensetzung und erhaltene Hinweise ohne die Inline-Sprechermarkierung. Wenn Wortzeiten nicht verfügbar sind, können Beitragszeiten ungefähr sein und die gesamte Aufnahme umfassen; benachbarte Beiträge sind nicht notwendigerweise lückenlos oder überschneidungsfrei. Das Deaktivieren von diarize entfernt die strukturierte Beitragsliste, lässt aber Sprechermarkierungen im vollständigen Text bestehen. Eine bekannte Sprecheranzahl oder Mindest- und Höchstanzahlen können die Sprechertrennung längerer Aufnahmen auf Best-Effort-Basis unterstützen. Die genaue Anzahl kann nicht mit den Anzahlgrenzen kombiniert werden, und Anzahlhinweise können bei deaktiviertem diarize nicht verwendet werden.\n\nEmotions- und stimmliche Ereignishinweise erscheinen als Text in eckigen Klammern, beispielsweise [laughter], neben der erkannten Sprache. Sie werden aus dem Audio erschlossen und sind keine Wörter, die Nutzer vor der Transkription hinzufügen müssen. Pros Einstellung tag_audio_events ist standardmäßig true; ihre Deaktivierung entfernt diese Hinweise aus Transkript und Beitragstext, ohne die Zeitangaben zu verändern. Es gibt kein separates Emotionsfeld und keine feste Emotionsaufzählung. Bewahren Sie das annotierte Transkript, wenn der Klang einer Bemerkung wichtig ist, und verwenden Sie eine Version ohne Hinweise, wenn das nachgelagerte Artefakt nur die gesprochenen Wörter benötigt.\n\nDie Sprache wird automatisch erkannt. Ein optionaler kleingeschriebener ISO-639-1-Hinweis erzwingt keine Übersetzung und verändert Pros Transkript nicht. Wenn die Sprache nicht bestimmt werden kann, kann der zurückgegebene Sprachcode den Hinweis wiedergeben, ohne ihn anhand des Audios zu verifizieren. Der Anbieter meldet eine Sprache statt eines Verzeichnisses aller Sprachen einer gemischtsprachigen Aufnahme. Bewahren Sie Originalwortlaut und Sprachmetadaten gemeinsam, wenn Sie ein durchsuchbares Archiv vorbereiten, besonders wenn verschiedene Gesprächsteile die Sprache wechseln.\n\nGruppieren Sie für Untertitel aufeinanderfolgende zeitlich ausgerichtete Wörter in lesbare SRT- oder WebVTT-Einträge, statt pro Wort einen Untertitel zu erzeugen. Trennen Sie Einträge an Pausen und wählen Sie Länge und Anzeigezeit passend zu Player und Publikum. Sprecherbeitragsgrenzen können verschiedene Sprecher in getrennten Einträgen halten. Prüfen Sie auf leere Zeitergebnisse und auf Einträge, deren Ende später als ihr Beginn liegen muss. Untertitelformatierung, Namen für anonyme Sprecherbezeichnungen und spätere Zusammenfassungen sind Anwendungsartefakte, die aus dem Transkriptionsergebnis entstehen.\n\nEntscheiden Sie für einen praktischen Aufnahme-Workflow vor der Transkription, ob Sie ein schlichtes lesbares Transkript, annotierte Gesprächsbeiträge oder zeitlich ausgerichtete Untertitel benötigen. Bewahren Sie die Audiokennung beim Ergebnis, erhalten Sie den zurückgegebenen vollständigen Text, wenn Zeichensetzung und Hinweise wichtig sind, und verwenden Sie die strukturierten Zeitfelder zur Navigation. Pros Fähigkeiten für lange Aufnahmen und mehrere Sprecher unterscheiden sich vom allgemeinen Kurzaufnahme-Modell Transcribe 1; ihre Grenzen und Steuereinstellungen sollten nicht als austauschbar behandelt werden.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "2e197892c0455d724b31926fdce03cd62881e82f2aef83e9d3a7fedab5b18f82",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "de",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Fish Audio: Transcribe 1 Pro</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Schließen\">×</button></div><div class=\"idline\"><span>Fish Audio /</span><code>fish-audio/transcribe-1-pro</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\">Start</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-pro\">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\">Start</h3><p class=\"mdesc-full\">Transcribe 1 Pro wandelt Aufnahmen bis zu 60 Minuten in Text mit Sprechermarkierungen und optionalen Zeitangaben auf Wortebene um. Es bewahrt erschlossene Emotions- und stimmliche Ereignishinweise und erleichtert damit die Prüfung, Suche oder Untertitelvorbereitung von Interviews, Meetings und Podcasts.</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 Pro ist Fish Audios Speech-to-Text-Modell für kurze Clips, Gespräche mit mehreren Sprechern und lange Aufnahmen. Es nimmt aufgezeichnetes Audio entgegen und gibt ein Transkript mit optionalen Zeitangaben und strukturierten Sprecherbeiträgen zurück. Seine besonderen Merkmale sind im Text markierte Sprecherwechsel und Hinweise auf Emotionen oder stimmliche Ereignisse, die mehr von der Gesprächsstruktur der Aufnahme bewahren als eine bloße Wortfolge.</p><p>Bewahren Sie bei einem Interview, Meeting oder Podcast das vollständige Gespräch in einer Datei, damit wiederkehrende Sprecher innerhalb der Antwort konsistente Bezeichnungen behalten können. Ein nützliches Prüfartefakt ist ein mit der Originalaufnahme verknüpftes Transkript mit getrennt dargestellten Beiträgen und einem Zeitstempel zur Prüfung eines Zitats. Eine Zusammenfassung oder Aktionsliste ist ein nachfolgender Anwendungsschritt: Halten Sie sie vom Transkript getrennt, damit die gesprochene Quelle zum Vergleich verfügbar bleibt.</p><p>Der Anbieter akzeptiert Aufnahmen bis zu 60 Minuten und beschreibt die Verarbeitung langer Dateien mit komprimiertem Audio wie MP3, Opus oder AAC. Unterstützte Formate umfassen WAV, MP3, AAC in M4A oder MP4, FLAC, Ogg mit Opus oder Vorbis, WebM/Matroska und MOV. Bei einer Videodatei verwendet er die erste Audiospur. AIFF, CAF, WMA, AMR, AC-3 und rohes PCM ohne Header werden nicht unterstützt. Pro Anfrage wird eine Audiodatei bereitgestellt; das Ergebnis kommt nach der Transkription der gesamten Aufnahme, und eine lange Aufnahme kann mehrere Minuten benötigen. Clips unter ungefähr 0,08 Sekunden werden zurückgewiesen.</p><p>Die Anbieterantwort enthält den vollständigen Text, die Aufnahmedauer in Sekunden und ein segments-Array. Pro markiert Sprecherwechsel inline mit Bezeichnungen wie &lt;|speaker:0|&gt; und &lt;|speaker:1|&gt;; eine Bezeichnung gilt für den folgenden Text bis zur nächsten Markierung. Dies sind Kennungen innerhalb einer Antwort, keine verifizierten Namen oder Identitäten, die anfrageübergreifend zugeordnet werden können. Wenn das Transkript keine Sprechermarkierung enthält, behandelt der Leitfaden es als Ergebnis mit einem Sprecher. Bewahren Sie Text vor der ersten Markierung beim ersten Beitrag, statt ihn zu verwerfen.</p><p>Zeitstempel auf Wortebene sind optional. In der Anbieteranfrage ist ignore_timestamps standardmäßig true; false fordert Segmente mit Text sowie Start- und Endzeiten in Sekunden an. Ein Segment ist gewöhnlich ein Wort oder im Chinesischen und Japanischen ein oder wenige Zeichen. Segmenttext lässt Zeichensetzung, Sprechermarkierungen und Ereignishinweise weg und kann einen gesprochenen Wert anders normalisieren als das vollständige Transkript. Ein Wortsegment kann dieselbe Start- und Endzeit haben. Ein leeres segments-Array kann bedeuten, dass keine Zeitstempel angefordert wurden, keine Sprachäußerungen erkannt wurden oder Zeitangaben vorübergehend nicht verfügbar waren. Verwenden Sie das vollständige Transkript für lesbaren Wortlaut und segments für die zeitliche Ausrichtung, statt anzunehmen, dass beide Zeichenfolgen Zeichen für Zeichen übereinstimmen.</p><p>Die Einstellung diarize ist standardmäßig auto. Wenn Zeitstempel angefordert werden und diarize nicht false ist, gibt Pro außerdem speaker_turns zurück. Jeder Beitrag enthält seine Sprecherbezeichnung, Text und Start-/Endzeiten und bewahrt Zeichensetzung und erhaltene Hinweise ohne die Inline-Sprechermarkierung. Wenn Wortzeiten nicht verfügbar sind, können Beitragszeiten ungefähr sein und die gesamte Aufnahme umfassen; benachbarte Beiträge sind nicht notwendigerweise lückenlos oder überschneidungsfrei. Das Deaktivieren von diarize entfernt die strukturierte Beitragsliste, lässt aber Sprechermarkierungen im vollständigen Text bestehen. Eine bekannte Sprecheranzahl oder Mindest- und Höchstanzahlen können die Sprechertrennung längerer Aufnahmen auf Best-Effort-Basis unterstützen. Die genaue Anzahl kann nicht mit den Anzahlgrenzen kombiniert werden, und Anzahlhinweise können bei deaktiviertem diarize nicht verwendet werden.</p><p>Emotions- und stimmliche Ereignishinweise erscheinen als Text in eckigen Klammern, beispielsweise [laughter], neben der erkannten Sprache. Sie werden aus dem Audio erschlossen und sind keine Wörter, die Nutzer vor der Transkription hinzufügen müssen. Pros Einstellung tag_audio_events ist standardmäßig true; ihre Deaktivierung entfernt diese Hinweise aus Transkript und Beitragstext, ohne die Zeitangaben zu verändern. Es gibt kein separates Emotionsfeld und keine feste Emotionsaufzählung. Bewahren Sie das annotierte Transkript, wenn der Klang einer Bemerkung wichtig ist, und verwenden Sie eine Version ohne Hinweise, wenn das nachgelagerte Artefakt nur die gesprochenen Wörter benötigt.</p><p>Die Sprache wird automatisch erkannt. Ein optionaler kleingeschriebener ISO-639-1-Hinweis erzwingt keine Übersetzung und verändert Pros Transkript nicht. Wenn die Sprache nicht bestimmt werden kann, kann der zurückgegebene Sprachcode den Hinweis wiedergeben, ohne ihn anhand des Audios zu verifizieren. Der Anbieter meldet eine Sprache statt eines Verzeichnisses aller Sprachen einer gemischtsprachigen Aufnahme. Bewahren Sie Originalwortlaut und Sprachmetadaten gemeinsam, wenn Sie ein durchsuchbares Archiv vorbereiten, besonders wenn verschiedene Gesprächsteile die Sprache wechseln.</p><p>Gruppieren Sie für Untertitel aufeinanderfolgende zeitlich ausgerichtete Wörter in lesbare SRT- oder WebVTT-Einträge, statt pro Wort einen Untertitel zu erzeugen. Trennen Sie Einträge an Pausen und wählen Sie Länge und Anzeigezeit passend zu Player und Publikum. Sprecherbeitragsgrenzen können verschiedene Sprecher in getrennten Einträgen halten. Prüfen Sie auf leere Zeitergebnisse und auf Einträge, deren Ende später als ihr Beginn liegen muss. Untertitelformatierung, Namen für anonyme Sprecherbezeichnungen und spätere Zusammenfassungen sind Anwendungsartefakte, die aus dem Transkriptionsergebnis entstehen.</p><p>Entscheiden Sie für einen praktischen Aufnahme-Workflow vor der Transkription, ob Sie ein schlichtes lesbares Transkript, annotierte Gesprächsbeiträge oder zeitlich ausgerichtete Untertitel benötigen. Bewahren Sie die Audiokennung beim Ergebnis, erhalten Sie den zurückgegebenen vollständigen Text, wenn Zeichensetzung und Hinweise wichtig sind, und verwenden Sie die strukturierten Zeitfelder zur Navigation. Pros Fähigkeiten für lange Aufnahmen und mehrere Sprecher unterscheiden sich vom allgemeinen Kurzaufnahme-Modell Transcribe 1; ihre Grenzen und Steuereinstellungen sollten nicht als austauschbar behandelt werden.</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 · Spracherkennung</b> <code>POST /v1/audio/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>Eingabetypen</dt><dd><code>audio</code></dd></div><div><dt>Ausgabetypen</dt><dd><code>text</code></dd></div><div><dt>Ausgabeformat</dt><dd>json</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Feld</th><th>Typ</th><th>Anforderung</th><th>Werte und Limits</th><th>Standard</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Erforderlich</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>fish-audio/transcribe-1-pro</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">input_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><div>Exakte Schlüssel: data, format</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">input_audio.data</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>base64_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>Maximale Anzahl dekodierter Bytes: 26.214.400</div><div>Striktes Base64: Ja</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">input_audio.format</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Erforderlich</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>Bedingungen: Muss dem tatsächlich durch die Dateiprüfung ermittelten Format entsprechen</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>json</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinationen von Eingabematerialien</summary><p class=\"note-s\"><b>speech_to_text</b> · Erforderlich: input_audio.data, input_audio.format</p></details><details class=\"note-s\" data-method-contract><summary>Methodenparameter und Lebenszyklus</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Vertrag</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>model, input_audio</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>additional_properties</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>false</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>parameters</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>{&quot;name&quot;:&quot;model&quot;,&quot;type&quot;:&quot;string&quot;,&quot;required&quot;:true,&quot;enum&quot;:[&quot;fish-audio/transcribe-1-pro&quot;]}, {&quot;name&quot;:&quot;input_audio&quot;,&quot;type&quot;:&quot;object&quot;,&quot;required&quot;:true,&quot;exact_keys&quot;:[&quot;data&quot;,&quot;format&quot;],&quot;data&quot;:&quot;Strikte base64-Kodierung tatsächlicher unterstützter Audiobytes&quot;,&quot;format&quot;:&quot;Exaktes durch Dateiprüfung ermitteltes Format; muss mit den tatsächlichen Bytes übereinstimmen&quot;}, {&quot;name&quot;:&quot;response_format&quot;,&quot;type&quot;:&quot;string&quot;,&quot;required&quot;:false,&quot;enum&quot;:[&quot;json&quot;]}</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>max_audio_bytes</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>26214400</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>multipart_for_this_profile</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>false</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>audio</td></tr></tbody></table></div><p>Lebenszyklus: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · die tatsächlich zurückgegebene task_id oder ein Eintrag in der Medienbibliothek</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p><p class=\"note-s\">Bewahren Sie die vollständige Antwort und die ursprünglich zurückgegebenen IDs auf.</p><p class=\"note-s\">Übermitteln Sie eine Erstellung mit unklarem Ausgang niemals erneut.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarife</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tarifangaben erweitern die Anfrageoptionen nicht. Unterstützte Parameter stehen bei der ausgewählten Methode.</p><dl data-price-conditions><dt>Schnellmodus</dt><dd>Nicht angegeben <span class=\"note-s\">Wenn der Schnellmodus ausgewählt ist</span></dd><dt>Flex-Modus</dt><dd>Nicht angegeben <span class=\"note-s\">Wenn der Modus flex ausgewählt ist</span></dd><dt>Maximaler Denkaufwand</dt><dd>Nicht angegeben <span class=\"note-s\">Wenn beim maximalen Denkaufwand die Standardanpassung (default) verwendet wird</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-Tarife</h4><h4>Preise nach Konfiguration</h4><p class=\"note-s\">Ordnen Sie jede Gebühr den angezeigten Bedingungen zu. Verwenden Sie für jede Gruppe alternativer Konfigurationen einen Tarif.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfiguration</th><th>Tarifstaffel</th><th>Abrechnungseinheit</th><th>Gebühr</th></tr></thead><tbody><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Basistarife für Token</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 Token</span></div><div><span>Ausgabe · Ausgabetoken</span> <b>—</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>Eingabe · Cache-Lesen</span> <b>—</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>Eingabe · Cache-Schreiben</span> <b>—</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>Eingabe · Cache-Schreiben, 1 Stunde</span> <b>—</b> <span class=\"price-unit\">/ 1K Token</span></div></td></tr><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Audioeingabesekunde</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 · Audioeingabesekunde</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 abschließenden Verbrauchsdatensatzes. <a href=\"/docs/de/billing/reserve/\">So funktionieren Reservierung und Abrechnung →</a></p><div data-declared-reference-pricing><h4>Details zum Referenztarif</h4><p class=\"note-s\">Referenztarifstaffeln auf Modellebene ändern weder Methodenauswahl noch Kostenvoranschläge oder Gebühren. Für die aktive Abrechnung gelten die Tarife der ausgewählten Ailoot-Methode.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Fish Audio: Transcribe 1 Pro</summary><h4>Preise nach Konfiguration</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfiguration</th><th>Abrechnungsbedingungen</th><th>Gebühr</th></tr></thead><tbody><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Fish Audio: Transcribe 1 Pro · Standardkonfiguration</th><td data-cell-label=\"Abrechnungsbedingungen\"><span class=\"card-cell-label\">Abrechnungsbedingungen</span>Standardkonfiguration</td><td data-cell-label=\"Gebühr\"><span class=\"card-cell-label\">Gebühr</span><div><span>Eingabe · Audioeingabesekunden</span> <b>0,0002 $</b> <span class=\"price-unit\">pro Sekunde Eingabeaudio</span></div></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Beispielanfragen</h3><h4>Ailoot Ultra · Spracherkennung</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-1362-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1362-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · tatsächliche Audio-Bytes und ermitteltes Format</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-1362-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1362-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 your actual audio file}&quot;\n: &quot;${AILOOT_AUDIO_FORMAT:?Set its actual probed file format}&quot;\nexport AILOOT_AUDIO_FILE AILOOT_AUDIO_FORMAT\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;fish-audio/transcribe-1-pro&quot;, &quot;response_format&quot;: &quot;json&quot;}&#39;)\nimport base64\nf=Path(os.environ[&#39;AILOOT_AUDIO_FILE&#39;])\nraw=f.read_bytes()\nif not raw or len(raw)&gt;26214400:raise SystemExit(&#39;Use actual audio bytes within 25 MiB&#39;)\nfmt=os.environ[&#39;AILOOT_AUDIO_FORMAT&#39;].strip()\nif not fmt:raise SystemExit(&#39;Use the actual probed format; the server checks it against the bytes&#39;)\np[&#39;input_audio&#39;]={&#39;data&#39;:base64.b64encode(raw).decode(),&#39;format&#39;:fmt}\nPath(&#39;request.json&#39;).write_text(json.dumps(p,ensure_ascii=False))\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 result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\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 · Spracherkennung</h4><p class=\"note-s\">json</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>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\">Bewahren Sie das vollständige JSON, die Antwortheader, den Text und jedes tatsächlich zurückgegebene Verbrauchsfeld auf. Verwenden Sie tatsächliche Aufgaben- und Asset-Kennungen aus der Antwort oder der Ihnen zugeordneten Bibliothek; operation_id ist nicht task_id.</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\">Die ursprüngliche operation_id/X-Client-Request-ID für den Abgleich ohne erneute Einreichung aufbewahren; es gibt keine eigene Route zur Abfrage des Audiostatus.</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><th>Bedeutung</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</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td><td data-cell-label=\"Bedeutung\"><span class=\"card-cell-label\">Bedeutung</span>Transkribierter Text.</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>object</td><td data-cell-label=\"Bedeutung\"><span class=\"card-cell-label\">Bedeutung</span>Audioverbrauch.</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">usage.seconds</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>number</td><td data-cell-label=\"Bedeutung\"><span class=\"card-cell-label\">Bedeutung</span>Audiodauer in Sekunden.</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">duration</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>number</td><td data-cell-label=\"Bedeutung\"><span class=\"card-cell-label\">Bedeutung</span>Audiodauer in Sekunden.</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">task_id</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td><td data-cell-label=\"Bedeutung\"><span class=\"card-cell-label\">Bedeutung</span>Aufgaben-ID des Transkripts; wird zusammen mit asset_url zurückgegeben, wenn ein nicht leeres Transkript gespeichert, veröffentlicht und mit einer signierten Inhalts-URL versehen wurde.</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">asset_url</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td><td data-cell-label=\"Bedeutung\"><span class=\"card-cell-label\">Bedeutung</span>Signierte Inhalts-URL des Transkripts; wird zusammen mit task_id zurückgegeben, wenn ein nicht leeres Transkript gespeichert, veröffentlicht und mit einer signierten Inhalts-URL versehen wurde.</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>Pflichtfelder, Darstellung des Eingabematerials oder Parameterwert ungültig</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Die angegebenen Felder vor einer neuen Erstellungsanfrage korrigieren.</td></tr><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span><code>server_error</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Die zurückgegebene Antwort gibt an, dass der Vorgang oder das Ergebnis eine Prüfung erfordert</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Die ursprünglich zurückgegebene Vorgangs-/Aufgaben-ID, die Anfrageheader und die Antwort aufbewahren; mit unterstützten Leseaufrufen für diesen ursprünglichen Vorgang fortfahren. Die Erstellungsanfrage nicht erneut senden.</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-pro&amp;route=Ultra&amp;caller=fish-audio%2Ftranscribe-1-pro&amp;fmt=transcriptions\"><code>fish-audio/transcribe-1-pro</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-pro&amp;route=Ultra&amp;caller=fish-audio%2Ftranscribe-1-pro&amp;fmt=transcriptions\"><code>fish-audio/transcribe-1-pro</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "fish-audio/transcribe-1-pro",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "fish-audio/transcribe-1-pro",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|fish-audio%2Ftranscribe-1-pro",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep the complete JSON, response headers, text and every actual returned usage field. Use actual task/asset identities from the response or owned library; operation_id is not task_id.",
            "errors": [
              {
                "code": null,
                "condition": "Pflichtfelder, Darstellung des Eingabematerials oder Parameterwert ungültig",
                "http_status": 400,
                "recovery": "Die angegebenen Felder vor einer neuen Erstellungsanfrage korrigieren.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Die zurückgegebene Antwort gibt an, dass der Vorgang oder das Ergebnis eine Prüfung erfordert",
                "http_status": null,
                "recovery": "Die ursprünglich zurückgegebene Vorgangs-/Aufgaben-ID, die Anfrageheader und die Antwort aufbewahren; mit unterstützten Leseaufrufen für diesen ursprünglichen Vorgang fortfahren. Die Erstellungsanfrage nicht erneut senden.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Die ursprüngliche operation_id/X-Client-Request-ID für den Abgleich ohne erneute Einreichung aufbewahren; es gibt keine eigene Route zur Abfrage des Audiostatus."
            },
            "limits": {
              "decoded_audio_max_bytes": 26214400
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "speech_to_text",
                "required": [
                  "input_audio.data",
                  "input_audio.format"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "speech_to_text"
            ],
            "outputs": {
              "all_results": "Bewahren Sie das vollständige JSON, die Antwortheader, den Text und jedes tatsächlich zurückgegebene Verbrauchsfeld auf. Verwenden Sie tatsächliche Aufgaben- und Asset-Kennungen aus der Antwort oder der Ihnen zugeordneten Bibliothek; operation_id ist nicht task_id.",
              "family": "transcription",
              "fields": [
                {
                  "description": "Transkribierter Text.",
                  "name": "text",
                  "required": true,
                  "required_known": true,
                  "type": "string"
                },
                {
                  "description": "Audioverbrauch.",
                  "name": "usage",
                  "required": true,
                  "required_known": true,
                  "type": "object"
                },
                {
                  "description": "Audiodauer in Sekunden.",
                  "name": "usage.seconds",
                  "required": true,
                  "required_known": true,
                  "type": "number"
                },
                {
                  "description": "Audiodauer in Sekunden.",
                  "name": "duration",
                  "required": true,
                  "required_known": true,
                  "type": "number"
                },
                {
                  "description": "Aufgaben-ID des Transkripts; wird zusammen mit asset_url zurückgegeben, wenn ein nicht leeres Transkript gespeichert, veröffentlicht und mit einer signierten Inhalts-URL versehen wurde.",
                  "name": "task_id",
                  "required": false,
                  "required_known": true,
                  "type": "string"
                },
                {
                  "description": "Signierte Inhalts-URL des Transkripts; wird zusammen mit task_id zurückgegeben, wenn ein nicht leeres Transkript gespeichert, veröffentlicht und mit einer signierten Inhalts-URL versehen wurde.",
                  "name": "asset_url",
                  "required": false,
                  "required_known": true,
                  "type": "string"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "fish-audio/transcribe-1-pro"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "data",
                  "format"
                ],
                "name": "input_audio",
                "required": true,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "decoded_maximum_bytes": 26214400,
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_audio.data",
                "required": true,
                "strict_base64": true,
                "type": "base64_string"
              },
              {
                "availability": "source_interface",
                "conditions": "Muss dem tatsächlich durch die Dateiprüfung ermittelten Format entsprechen",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_audio.format",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "json"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "multipart input on this exact profile",
              "fields outside model/input_audio/response_format",
              "non-json response format"
            ]
          },
          "hints": [
            "Bewahren Sie die vollständige Antwort und die ursprünglich zurückgegebenen IDs auf.",
            "Übermitteln Sie eine Erstellung mit unklarem Ausgang niemals erneut."
          ],
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "audio"
            ],
            "max_audio_bytes": 26214400,
            "multipart_for_this_profile": false,
            "parameters": [
              {
                "enum": [
                  "fish-audio/transcribe-1-pro"
                ],
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "data": "Strikte base64-Kodierung tatsächlicher unterstützter Audiobytes",
                "exact_keys": [
                  "data",
                  "format"
                ],
                "format": "Exaktes durch Dateiprüfung ermitteltes Format; muss mit den tatsächlichen Bytes übereinstimmen",
                "name": "input_audio",
                "required": true,
                "type": "object"
              },
              {
                "enum": [
                  "json"
                ],
                "name": "response_format",
                "required": false,
                "type": "string"
              }
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "lifecycle": {
            "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "die tatsächlich zurückgegebene task_id oder ein Eintrag in der Medienbibliothek",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "method_aliases": [],
          "operation_modes": [
            "speech_to_text"
          ],
          "output": {
            "family": "text",
            "type": "JSON transcript with text and usage; actual owned transcript flow"
          }
        },
        "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 your actual audio file}\"\n: \"${AILOOT_AUDIO_FORMAT:?Set its actual probed file format}\"\nexport AILOOT_AUDIO_FILE AILOOT_AUDIO_FORMAT\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"fish-audio/transcribe-1-pro\", \"response_format\": \"json\"}')\nimport base64\nf=Path(os.environ['AILOOT_AUDIO_FILE'])\nraw=f.read_bytes()\nif not raw or len(raw)>26214400:raise SystemExit('Use actual audio bytes within 25 MiB')\nfmt=os.environ['AILOOT_AUDIO_FORMAT'].strip()\nif not fmt:raise SystemExit('Use the actual probed format; the server checks it against the bytes')\np['input_audio']={'data':base64.b64encode(raw).decode(),'format':fmt}\nPath('request.json').write_text(json.dumps(p,ensure_ascii=False))\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 result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · actual audio bytes and probed format",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "Keep the complete response and the original returned IDs.",
          "Never resubmit an unknown creation."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Распознавание речи",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "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-pro",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.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-pro",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "abdb23bcdfb1214ee3f479d6b249b8e18be1a09b51e3b7e07effba9c8ebccb8e",
    "input_html_sha256": "d1738b2725ab3e2fc0570eef7820457479702576db7f6c9583bf99f62b89d779",
    "private_audit_sha256": "9cb0ff1a741492106b800af3f6fef11f5d7a49114ed4373aacfd04598fff9a90",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/de/fish-audio-transcribe-1-pro/",
    "description": "Transcribe 1 Pro wandelt Aufnahmen bis zu 60 Minuten in Text mit Sprechermarkierungen und optionalen Zeitangaben auf Wortebene um. Es bewahrt erschlossene Emotions- und stimmliche Ereignishinweise und erleichtert damit die Prüfung, Suche oder Untertitelvorbereitung von Interviews, Meetings und Podcasts.",
    "locale": "de",
    "md_url": "https://ailoot.ai/models/de/fish-audio-transcribe-1-pro/index.md",
    "title": "Fish Audio: Transcribe 1 Pro — Ailoot",
    "url": "https://ailoot.ai/models/de/fish-audio-transcribe-1-pro/"
  },
  "rawModel": {
    "about": "Transcribe 1 Pro ist Fish Audios Speech-to-Text-Modell für kurze Clips, Gespräche mit mehreren Sprechern und lange Aufnahmen. Es nimmt aufgezeichnetes Audio entgegen und gibt ein Transkript mit optionalen Zeitangaben und strukturierten Sprecherbeiträgen zurück. Seine besonderen Merkmale sind im Text markierte Sprecherwechsel und Hinweise auf Emotionen oder stimmliche Ereignisse, die mehr von der Gesprächsstruktur der Aufnahme bewahren als eine bloße Wortfolge.\n\nBewahren Sie bei einem Interview, Meeting oder Podcast das vollständige Gespräch in einer Datei, damit wiederkehrende Sprecher innerhalb der Antwort konsistente Bezeichnungen behalten können. Ein nützliches Prüfartefakt ist ein mit der Originalaufnahme verknüpftes Transkript mit getrennt dargestellten Beiträgen und einem Zeitstempel zur Prüfung eines Zitats. Eine Zusammenfassung oder Aktionsliste ist ein nachfolgender Anwendungsschritt: Halten Sie sie vom Transkript getrennt, damit die gesprochene Quelle zum Vergleich verfügbar bleibt.\n\nDer Anbieter akzeptiert Aufnahmen bis zu 60 Minuten und beschreibt die Verarbeitung langer Dateien mit komprimiertem Audio wie MP3, Opus oder AAC. Unterstützte Formate umfassen WAV, MP3, AAC in M4A oder MP4, FLAC, Ogg mit Opus oder Vorbis, WebM/Matroska und MOV. Bei einer Videodatei verwendet er die erste Audiospur. AIFF, CAF, WMA, AMR, AC-3 und rohes PCM ohne Header werden nicht unterstützt. Pro Anfrage wird eine Audiodatei bereitgestellt; das Ergebnis kommt nach der Transkription der gesamten Aufnahme, und eine lange Aufnahme kann mehrere Minuten benötigen. Clips unter ungefähr 0,08 Sekunden werden zurückgewiesen.\n\nDie Anbieterantwort enthält den vollständigen Text, die Aufnahmedauer in Sekunden und ein segments-Array. Pro markiert Sprecherwechsel inline mit Bezeichnungen wie <|speaker:0|> und <|speaker:1|>; eine Bezeichnung gilt für den folgenden Text bis zur nächsten Markierung. Dies sind Kennungen innerhalb einer Antwort, keine verifizierten Namen oder Identitäten, die anfrageübergreifend zugeordnet werden können. Wenn das Transkript keine Sprechermarkierung enthält, behandelt der Leitfaden es als Ergebnis mit einem Sprecher. Bewahren Sie Text vor der ersten Markierung beim ersten Beitrag, statt ihn zu verwerfen.\n\nZeitstempel auf Wortebene sind optional. In der Anbieteranfrage ist ignore_timestamps standardmäßig true; false fordert Segmente mit Text sowie Start- und Endzeiten in Sekunden an. Ein Segment ist gewöhnlich ein Wort oder im Chinesischen und Japanischen ein oder wenige Zeichen. Segmenttext lässt Zeichensetzung, Sprechermarkierungen und Ereignishinweise weg und kann einen gesprochenen Wert anders normalisieren als das vollständige Transkript. Ein Wortsegment kann dieselbe Start- und Endzeit haben. Ein leeres segments-Array kann bedeuten, dass keine Zeitstempel angefordert wurden, keine Sprachäußerungen erkannt wurden oder Zeitangaben vorübergehend nicht verfügbar waren. Verwenden Sie das vollständige Transkript für lesbaren Wortlaut und segments für die zeitliche Ausrichtung, statt anzunehmen, dass beide Zeichenfolgen Zeichen für Zeichen übereinstimmen.\n\nDie Einstellung diarize ist standardmäßig auto. Wenn Zeitstempel angefordert werden und diarize nicht false ist, gibt Pro außerdem speaker_turns zurück. Jeder Beitrag enthält seine Sprecherbezeichnung, Text und Start-/Endzeiten und bewahrt Zeichensetzung und erhaltene Hinweise ohne die Inline-Sprechermarkierung. Wenn Wortzeiten nicht verfügbar sind, können Beitragszeiten ungefähr sein und die gesamte Aufnahme umfassen; benachbarte Beiträge sind nicht notwendigerweise lückenlos oder überschneidungsfrei. Das Deaktivieren von diarize entfernt die strukturierte Beitragsliste, lässt aber Sprechermarkierungen im vollständigen Text bestehen. Eine bekannte Sprecheranzahl oder Mindest- und Höchstanzahlen können die Sprechertrennung längerer Aufnahmen auf Best-Effort-Basis unterstützen. Die genaue Anzahl kann nicht mit den Anzahlgrenzen kombiniert werden, und Anzahlhinweise können bei deaktiviertem diarize nicht verwendet werden.\n\nEmotions- und stimmliche Ereignishinweise erscheinen als Text in eckigen Klammern, beispielsweise [laughter], neben der erkannten Sprache. Sie werden aus dem Audio erschlossen und sind keine Wörter, die Nutzer vor der Transkription hinzufügen müssen. Pros Einstellung tag_audio_events ist standardmäßig true; ihre Deaktivierung entfernt diese Hinweise aus Transkript und Beitragstext, ohne die Zeitangaben zu verändern. Es gibt kein separates Emotionsfeld und keine feste Emotionsaufzählung. Bewahren Sie das annotierte Transkript, wenn der Klang einer Bemerkung wichtig ist, und verwenden Sie eine Version ohne Hinweise, wenn das nachgelagerte Artefakt nur die gesprochenen Wörter benötigt.\n\nDie Sprache wird automatisch erkannt. Ein optionaler kleingeschriebener ISO-639-1-Hinweis erzwingt keine Übersetzung und verändert Pros Transkript nicht. Wenn die Sprache nicht bestimmt werden kann, kann der zurückgegebene Sprachcode den Hinweis wiedergeben, ohne ihn anhand des Audios zu verifizieren. Der Anbieter meldet eine Sprache statt eines Verzeichnisses aller Sprachen einer gemischtsprachigen Aufnahme. Bewahren Sie Originalwortlaut und Sprachmetadaten gemeinsam, wenn Sie ein durchsuchbares Archiv vorbereiten, besonders wenn verschiedene Gesprächsteile die Sprache wechseln.\n\nGruppieren Sie für Untertitel aufeinanderfolgende zeitlich ausgerichtete Wörter in lesbare SRT- oder WebVTT-Einträge, statt pro Wort einen Untertitel zu erzeugen. Trennen Sie Einträge an Pausen und wählen Sie Länge und Anzeigezeit passend zu Player und Publikum. Sprecherbeitragsgrenzen können verschiedene Sprecher in getrennten Einträgen halten. Prüfen Sie auf leere Zeitergebnisse und auf Einträge, deren Ende später als ihr Beginn liegen muss. Untertitelformatierung, Namen für anonyme Sprecherbezeichnungen und spätere Zusammenfassungen sind Anwendungsartefakte, die aus dem Transkriptionsergebnis entstehen.\n\nEntscheiden Sie für einen praktischen Aufnahme-Workflow vor der Transkription, ob Sie ein schlichtes lesbares Transkript, annotierte Gesprächsbeiträge oder zeitlich ausgerichtete Untertitel benötigen. Bewahren Sie die Audiokennung beim Ergebnis, erhalten Sie den zurückgegebenen vollständigen Text, wenn Zeichensetzung und Hinweise wichtig sind, und verwenden Sie die strukturierten Zeitfelder zur Navigation. Pros Fähigkeiten für lange Aufnahmen und mehrere Sprecher unterscheiden sich vom allgemeinen Kurzaufnahme-Modell Transcribe 1; ihre Grenzen und Steuereinstellungen sollten nicht als austauschbar behandelt werden.",
    "alias_of": null,
    "aliases": [],
    "author": "Fish Audio",
    "available": null,
    "canonical_model": "fish-audio/transcribe-1-pro",
    "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,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "aeebfac63d7ddd8619fb",
        "label": "Fish Audio: Transcribe 1 Pro",
        "profiles": [
          {
            "basis": "",
            "dimensions": {
              "conditions": "Standardkonfiguration"
            },
            "label": "Fish Audio: Transcribe 1 Pro · Standardkonfiguration",
            "units": [
              {
                "amount": "0.0002",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "key": "0949942d98ce2e4c35b418d6",
                "label": "Input audio seconds",
                "public_unit_label": "per input audio second",
                "quantity": "1",
                "rate_role": "declared_tariff_rate",
                "side": "in",
                "unit": "input_audio_second"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "transcriptions"
    ],
    "id": "fish-audio/transcribe-1-pro",
    "input": [
      "audio"
    ],
    "kind": "transcription",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep the complete JSON, response headers, text and every actual returned usage field. Use actual task/asset identities from the response or owned library; operation_id is not task_id.",
            "errors": [
              {
                "code": null,
                "condition": "Pflichtfelder, Darstellung des Eingabematerials oder Parameterwert ungültig",
                "http_status": 400,
                "recovery": "Die angegebenen Felder vor einer neuen Erstellungsanfrage korrigieren.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Die zurückgegebene Antwort gibt an, dass der Vorgang oder das Ergebnis eine Prüfung erfordert",
                "http_status": null,
                "recovery": "Die ursprünglich zurückgegebene Vorgangs-/Aufgaben-ID, die Anfrageheader und die Antwort aufbewahren; mit unterstützten Leseaufrufen für diesen ursprünglichen Vorgang fortfahren. Die Erstellungsanfrage nicht erneut senden.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Die ursprüngliche operation_id/X-Client-Request-ID für den Abgleich ohne erneute Einreichung aufbewahren; es gibt keine eigene Route zur Abfrage des Audiostatus."
            },
            "limits": {
              "decoded_audio_max_bytes": 26214400
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "speech_to_text",
                "required": [
                  "input_audio.data",
                  "input_audio.format"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "speech_to_text"
            ],
            "outputs": {
              "all_results": "Bewahren Sie das vollständige JSON, die Antwortheader, den Text und jedes tatsächlich zurückgegebene Verbrauchsfeld auf. Verwenden Sie tatsächliche Aufgaben- und Asset-Kennungen aus der Antwort oder der Ihnen zugeordneten Bibliothek; operation_id ist nicht task_id.",
              "family": "transcription",
              "fields": [
                {
                  "description": "Transkribierter Text.",
                  "name": "text",
                  "required": true,
                  "required_known": true,
                  "type": "string"
                },
                {
                  "description": "Audioverbrauch.",
                  "name": "usage",
                  "required": true,
                  "required_known": true,
                  "type": "object"
                },
                {
                  "description": "Audiodauer in Sekunden.",
                  "name": "usage.seconds",
                  "required": true,
                  "required_known": true,
                  "type": "number"
                },
                {
                  "description": "Audiodauer in Sekunden.",
                  "name": "duration",
                  "required": true,
                  "required_known": true,
                  "type": "number"
                },
                {
                  "description": "Aufgaben-ID des Transkripts; wird zusammen mit asset_url zurückgegeben, wenn ein nicht leeres Transkript gespeichert, veröffentlicht und mit einer signierten Inhalts-URL versehen wurde.",
                  "name": "task_id",
                  "required": false,
                  "required_known": true,
                  "type": "string"
                },
                {
                  "description": "Signierte Inhalts-URL des Transkripts; wird zusammen mit task_id zurückgegeben, wenn ein nicht leeres Transkript gespeichert, veröffentlicht und mit einer signierten Inhalts-URL versehen wurde.",
                  "name": "asset_url",
                  "required": false,
                  "required_known": true,
                  "type": "string"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "fish-audio/transcribe-1-pro"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "data",
                  "format"
                ],
                "name": "input_audio",
                "required": true,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "decoded_maximum_bytes": 26214400,
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_audio.data",
                "required": true,
                "strict_base64": true,
                "type": "base64_string"
              },
              {
                "availability": "source_interface",
                "conditions": "Muss dem tatsächlich durch die Dateiprüfung ermittelten Format entsprechen",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_audio.format",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "json"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "multipart input on this exact profile",
              "fields outside model/input_audio/response_format",
              "non-json response format"
            ]
          },
          "hints": [
            "Bewahren Sie die vollständige Antwort und die ursprünglich zurückgegebenen IDs auf.",
            "Übermitteln Sie eine Erstellung mit unklarem Ausgang niemals erneut."
          ],
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "audio"
            ],
            "max_audio_bytes": 26214400,
            "multipart_for_this_profile": false,
            "parameters": [
              {
                "enum": [
                  "fish-audio/transcribe-1-pro"
                ],
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "data": "Strikte base64-Kodierung tatsächlicher unterstützter Audiobytes",
                "exact_keys": [
                  "data",
                  "format"
                ],
                "format": "Exaktes durch Dateiprüfung ermitteltes Format; muss mit den tatsächlichen Bytes übereinstimmen",
                "name": "input_audio",
                "required": true,
                "type": "object"
              },
              {
                "enum": [
                  "json"
                ],
                "name": "response_format",
                "required": false,
                "type": "string"
              }
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "lifecycle": {
            "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "die tatsächlich zurückgegebene task_id oder ein Eintrag in der Medienbibliothek",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "method_aliases": [],
          "operation_modes": [
            "speech_to_text"
          ],
          "output": {
            "family": "text",
            "type": "JSON transcript with text and usage; actual owned transcript flow"
          }
        },
        "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 your actual audio file}\"\n: \"${AILOOT_AUDIO_FORMAT:?Set its actual probed file format}\"\nexport AILOOT_AUDIO_FILE AILOOT_AUDIO_FORMAT\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"fish-audio/transcribe-1-pro\", \"response_format\": \"json\"}')\nimport base64\nf=Path(os.environ['AILOOT_AUDIO_FILE'])\nraw=f.read_bytes()\nif not raw or len(raw)>26214400:raise SystemExit('Use actual audio bytes within 25 MiB')\nfmt=os.environ['AILOOT_AUDIO_FORMAT'].strip()\nif not fmt:raise SystemExit('Use the actual probed format; the server checks it against the bytes')\np['input_audio']={'data':base64.b64encode(raw).decode(),'format':fmt}\nPath('request.json').write_text(json.dumps(p,ensure_ascii=False))\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 result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · actual audio bytes and probed format",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "Keep the complete response and the original returned IDs.",
          "Never resubmit an unknown creation."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Распознавание речи",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "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-pro",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.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-pro",
        "request_model_id": "fish-audio/transcribe-1-pro",
        "route_label": "Ultra"
      }
    ],
    "name": "Fish Audio: Transcribe 1 Pro",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0002",
            "amount_unit": "usd_per_declared_unit",
            "conditions": {},
            "key": "prompt",
            "label": "prompt",
            "quantity": "1",
            "rate_role": "typed_active_maker_rate",
            "side": "in",
            "unit": "input_audio_second"
          }
        ]
      }
    ],
    "public_id": "fish-audio/transcribe-1-pro",
    "short": "Transcribe 1 Pro wandelt Aufnahmen bis zu 60 Minuten in Text mit Sprechermarkierungen und optionalen Zeitangaben auf Wortebene um. Es bewahrt erschlossene Emotions- und stimmliche Ereignishinweise und erleichtert damit die Prüfung, Suche oder Untertitelvorbereitung von Interviews, Meetings und Podcasts."
  },
  "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 Pro wandelt Aufnahmen bis zu 60 Minuten in Text mit Sprechermarkierungen und optionalen Zeitangaben auf Wortebene um. Es bewahrt erschlossene Emotions- und stimmliche Ereignishinweise und erleichtert damit die Prüfung, Suche oder Untertitelvorbereitung von Interviews, Meetings und Podcasts.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "d940fbc870e65ac40d02a495e53ef6d46449befdd6a270df94df5381e21b932b",
    "renderer_sha256": "8bd3076b303b7b3aa4d961032854071403a471ec26a4f50c64e3a32556ea2925"
  },
  "sourceRevision": "0bb738514ed93d6a21e52b6667a8e7b77a5991b0aa7f46ae62e28999751cfbe8"
}
