> ## Documentation Index
> Fetch the complete documentation index at: https://evolink.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Qwen Audio 3.1 TTS Flash – Sprachsynthese

> - Text in Sprache umwandeln, höchstens `5000` Zeichen pro Anfrage
- 68 Systemstimmen; siehe [Stimmenliste](/de/api-manual/audio-series/qwen-audio-tts/qwen-audio-3.1-tts-flash-voices). Auch eigene, mit [Voice Enrollment](/de/api-manual/audio-series/qwen-audio-tts/voice-enrollment) geklonte oder entworfene Stimmen sind verwendbar
- Benutzerdefinierte Stimmen laufen standardmäßig `6 Stunden` nach Abschluss der Erstellung ab. Danach gibt die Synthese `404` (`voice_expired`) zurück; mit Voice Enrollment eine neue Stimme erstellen
- Unterstützt natürlichsprachliche Anweisungen (`instruction`), Emotions- und paralinguistische Tags im Text, SSML und benutzerdefinierte Aussprache (`hot_fix`)
- Nur die unten aufgeführten Parameter werden akzeptiert; andere ergeben `400` (`unsupported_parameter`)
- Asynchrone Verarbeitung; mit der zurückgegebenen Aufgaben-ID [das Ergebnis abfragen](/de/api-manual/task-management/get-task-detail)
- Nach dem Einreichen ist kein Abbruch möglich
- Erzeugte Audiolinks sind 24 Stunden gültig; zeitnah speichern

**Abrechnung:**
- Nach tatsächlichem Token-Verbrauch: Eingabe-Tokens (abhängig von der Textlänge) und Ausgabe-Tokens (abhängig von der Audiodauer) werden separat berechnet
- Beim Einreichen werden anhand der Textlänge Credits reserviert (`usage.credits_reserved`). Nach Abschluss wird der tatsächliche Verbrauch abgerechnet, mit Erstattung des Überschusses oder Nachberechnung des Fehlbetrags. Bei Fehlschlag vollständige Erstattung
- Zahlen, Buchstaben und Symbole können einzeln vorgelesen werden. Dadurch entstehen längere Audios und mehr Ausgabe-Tokens als bei gleich langer Prosa; der tatsächliche Verbrauch kann die Reservierung übersteigen
- Anweisungen oder Tags für langsames Sprechen, etwa `[very slowly]`, können bei gleichem Text deutlich mehr Ausgabe-Tokens erzeugen. `speech_rate` und SSML-Pausen erhöhen die Anzahl der Ausgabe-Tokens nicht

**Aufgabenergebnis (bei `status: completed`):**

| Feld | Beschreibung |
|---|---|
| `results[0]` | Audio-URL |
| `result_data[0].audio_url` | Audio-URL, identisch mit `results[0]` |
| `result_data[0].format` | Audioformat |
| `result_data[0].sample_rate` | Abtastrate (Hz) |
| `usage.input_tokens` / `usage.output_tokens` / `usage.total_tokens` | Token-Verbrauch dieser Synthese |
| `usage.credits_used` | Tatsächlich verbrauchte Credits |



## OpenAPI

````yaml de/api-manual/audio-series/qwen-audio-tts/qwen-audio-3.1-tts-flash.json POST /v1/audios/generations
openapi: 3.1.0
info:
  title: Qwen Audio 3.1 TTS Flash – API zur Sprachsynthese
  description: >-
    Text in Sprache umwandeln: 68 Systemstimmen, natürlichsprachliche
    Anweisungen, Emotionstags, SSML und benutzerdefinierte Aussprache.
    Abrechnung nach tatsächlichem Token-Verbrauch.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.evolink.ai
    description: Produktionsumgebung
security:
  - bearerAuth: []
tags:
  - name: Sprachsynthese
    description: Endpunkte zur Sprachsynthese mit Qwen Audio 3.1 TTS Flash
paths:
  /v1/audios/generations:
    post:
      tags:
        - Sprachsynthese
      summary: Qwen Audio 3.1 TTS Flash – Sprachsynthese
      description: >-
        - Text in Sprache umwandeln, höchstens `5000` Zeichen pro Anfrage

        - 68 Systemstimmen; siehe
        [Stimmenliste](/de/api-manual/audio-series/qwen-audio-tts/qwen-audio-3.1-tts-flash-voices).
        Auch eigene, mit [Voice
        Enrollment](/de/api-manual/audio-series/qwen-audio-tts/voice-enrollment)
        geklonte oder entworfene Stimmen sind verwendbar

        - Benutzerdefinierte Stimmen laufen standardmäßig `6 Stunden` nach
        Abschluss der Erstellung ab. Danach gibt die Synthese `404`
        (`voice_expired`) zurück; mit Voice Enrollment eine neue Stimme
        erstellen

        - Unterstützt natürlichsprachliche Anweisungen (`instruction`),
        Emotions- und paralinguistische Tags im Text, SSML und
        benutzerdefinierte Aussprache (`hot_fix`)

        - Nur die unten aufgeführten Parameter werden akzeptiert; andere ergeben
        `400` (`unsupported_parameter`)

        - Asynchrone Verarbeitung; mit der zurückgegebenen Aufgaben-ID [das
        Ergebnis abfragen](/de/api-manual/task-management/get-task-detail)

        - Nach dem Einreichen ist kein Abbruch möglich

        - Erzeugte Audiolinks sind 24 Stunden gültig; zeitnah speichern


        **Abrechnung:**

        - Nach tatsächlichem Token-Verbrauch: Eingabe-Tokens (abhängig von der
        Textlänge) und Ausgabe-Tokens (abhängig von der Audiodauer) werden
        separat berechnet

        - Beim Einreichen werden anhand der Textlänge Credits reserviert
        (`usage.credits_reserved`). Nach Abschluss wird der tatsächliche
        Verbrauch abgerechnet, mit Erstattung des Überschusses oder
        Nachberechnung des Fehlbetrags. Bei Fehlschlag vollständige Erstattung

        - Zahlen, Buchstaben und Symbole können einzeln vorgelesen werden.
        Dadurch entstehen längere Audios und mehr Ausgabe-Tokens als bei gleich
        langer Prosa; der tatsächliche Verbrauch kann die Reservierung
        übersteigen

        - Anweisungen oder Tags für langsames Sprechen, etwa `[very slowly]`,
        können bei gleichem Text deutlich mehr Ausgabe-Tokens erzeugen.
        `speech_rate` und SSML-Pausen erhöhen die Anzahl der Ausgabe-Tokens
        nicht


        **Aufgabenergebnis (bei `status: completed`):**


        | Feld | Beschreibung |

        |---|---|

        | `results[0]` | Audio-URL |

        | `result_data[0].audio_url` | Audio-URL, identisch mit `results[0]` |

        | `result_data[0].format` | Audioformat |

        | `result_data[0].sample_rate` | Abtastrate (Hz) |

        | `usage.input_tokens` / `usage.output_tokens` / `usage.total_tokens` |
        Token-Verbrauch dieser Synthese |

        | `usage.credits_used` | Tatsächlich verbrauchte Credits |
      operationId: createQwenAudio31TtsFlash
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QwenAudioTtsRequest'
            examples:
              basic:
                summary: Minimale Anfrage (Standardstimme)
                value:
                  model: qwen-audio-3.1-tts-flash
                  prompt: 我家的后面有一个很大的花园。
              aliases:
                summary: Aliase für Text und Format
                value:
                  model: qwen-audio-3.1-tts-flash
                  input: 我家的后面有一个很大的花园。
                  format: mp3
              with_voice:
                summary: Stimme und Ausgabeformat festlegen
                value:
                  model: qwen-audio-3.1-tts-flash
                  prompt: 各位听众朋友，大家好，欢迎收听晚间新闻。
                  voice: xuyanchu_v3.1
                  response_format: wav
                  sample_rate: 48000
              expressive:
                summary: Anweisungen und Emotionstags
                value:
                  model: qwen-audio-3.1-tts-flash
                  prompt: '[excited]今天的天气真不错！[laughing]我们一起出去玩吧！'
                  voice: longanhuan_v3.1
                  instruction: 用欢快、热情的语气说
              english:
                summary: Englische Stimme
                value:
                  model: qwen-audio-3.1-tts-flash
                  prompt: Hello, this is 110. Please leave a message after the tone.
                  voice: Emily_v3.1
                  language: en
                  speech_rate: 0.9
              ssml:
                summary: SSML-Pausen
                value:
                  model: qwen-audio-3.1-tts-flash
                  prompt: <speak>欢迎收听今天的节目。<break time="1s"/>我们马上开始。</speak>
                  enable_ssml: true
              full_params:
                summary: Alle Parameter
                value:
                  model: qwen-audio-3.1-tts-flash
                  prompt: 今天的天气真不错，适合出去走走。
                  voice: yuxiaoyun_v3.1
                  response_format: mp3
                  sample_rate: 24000
                  volume: 60
                  speech_rate: 1.1
                  pitch: 1
                  instruction: 语气轻松自然，像在和朋友聊天
                  language: zh
                  enable_ssml: false
                  hot_fix:
                    pronunciation:
                      - 天气: tian1 qi4
                    replace:
                      - 走走: 走一走
                  enable_aigc_tag: false
                  callback_url: https://your-domain.com/webhooks/tts-completed
      responses:
        '200':
          description: Aufgabe zur Sprachsynthese erfolgreich erstellt
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QwenAudioTtsResponse'
        '400':
          description: Ungültige Anfrageparameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                missing_prompt:
                  summary: prompt fehlt
                  value:
                    error:
                      code: missing_prompt
                      message: prompt is required for qwen-audio-3.1-tts-flash
                      type: invalid_request_error
                prompt_too_long:
                  summary: prompt überschreitet 5000 Zeichen
                  value:
                    error:
                      code: prompt_too_long
                      message: prompt must be at most 5000 characters, got 5210
                      type: invalid_request_error
                prompt_too_long_after_replace:
                  summary: Nach hot_fix.replace mehr als 5000 Zeichen
                  value:
                    error:
                      code: prompt_too_long
                      message: >-
                        prompt must be at most 5000 characters after
                        hot_fix.replace is applied, got 5120
                      type: invalid_request_error
                hot_fix_too_many_entries:
                  summary: hot_fix überschreitet 200 Einträge
                  value:
                    error:
                      code: invalid_parameter
                      message: >-
                        hot_fix may contain at most 200 entries in total, got
                        201
                      type: invalid_request_error
                invalid_voice:
                  summary: Stimme nicht in der Liste unterstützter Stimmen
                  value:
                    error:
                      code: invalid_voice
                      message: >-
                        voice "longanhuan" is not available for
                        qwen-audio-3.1-tts-flash; use a system voice from the
                        voice list or a voice you created with voice-enrollment
                      type: invalid_request_error
                instruction_too_long:
                  summary: instruction überschreitet 100 Abrechnungszeichen
                  value:
                    error:
                      code: instruction_too_long
                      message: >-
                        instruction must be at most 100 billing characters (CJK
                        characters count as 2), got 124
                      type: invalid_request_error
                wrong_parameter_name:
                  summary: Falscher Parametername (instructions)
                  value:
                    error:
                      code: unsupported_parameter
                      message: instructions is not supported; use "instruction"
                      type: invalid_request_error
                unsupported_parameter:
                  summary: Nicht unterstützter Parameter übergeben
                  value:
                    error:
                      code: unsupported_parameter
                      message: seed is not supported for qwen-audio-3.1-tts-flash
                      type: invalid_request_error
                opus_sample_rate:
                  summary: Nicht unterstützte Abtastrate für opus
                  value:
                    error:
                      code: invalid_parameter
                      message: >-
                        sample_rate 44100 is not supported with
                        response_format=opus; use one of: 8000, 12000, 16000,
                        24000, 48000
                      type: invalid_request_error
        '401':
          description: Nicht authentifiziert, Token ungültig oder abgelaufen
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: Kontingent unzureichend; Aufladung erforderlich
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: insufficient_quota
                  message: Insufficient quota. Please top up your account.
                  type: insufficient_quota
        '403':
          description: Zugriff verweigert
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: model_access_denied
                  message: >-
                    Token does not have access to model:
                    qwen-audio-3.1-tts-flash
                  type: invalid_request_error
        '404':
          description: Stimme nicht vorhanden oder abgelaufen
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                voice_not_found:
                  summary: Stimme nicht vorhanden oder einem anderen Konto zugeordnet
                  value:
                    error:
                      code: voice_not_found
                      message: >-
                        voice
                        "qwen-audio-3.1-tts-flash-myvoice-5996beec833d41f4982158347ba97fae"
                        not found
                      type: invalid_request_error
                voice_expired:
                  summary: Benutzerdefinierte Stimme abgelaufen; neu erstellen
                  value:
                    error:
                      code: voice_expired
                      message: >-
                        voice
                        "qwen-audio-3.1-tts-flash-myvoice-5996beec833d41f4982158347ba97fae"
                        has expired; create a new one with voice-enrollment
                      type: invalid_request_error
        '429':
          description: Anfragelimit überschritten
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: rate_limit_exceeded
                  message: Too many requests, please try again later
                  type: rate_limit_error
        '500':
          description: Interner Serverfehler
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: internal_error
                  message: Internal server error
                  type: api_error
components:
  schemas:
    QwenAudioTtsRequest:
      type: object
      required:
        - model
      description: >-
        Mindestens eines der Textfelder `prompt` oder `input` muss nicht leer
        sein. Sind beide angegeben, müssen ihre Inhalte übereinstimmen. Sind
        `response_format` und `format` beide angegeben, müssen auch ihre Werte
        übereinstimmen.
      anyOf:
        - required:
            - prompt
          properties:
            prompt:
              pattern: \S
        - required:
            - input
          properties:
            input:
              pattern: \S
      properties:
        model:
          type: string
          description: Modellname
          enum:
            - qwen-audio-3.1-tts-flash
          default: qwen-audio-3.1-tts-flash
          example: qwen-audio-3.1-tts-flash
        prompt:
          type: string
          description: >-
            Zu synthetisierender Text


            **Vorgaben:**

            - Höchstens `5000` Zeichen

            - Bei langen Texten Satzzeichen beibehalten: lange Passagen ohne
            Satzgrenzen können upstream auf etwa `1500` Ausgabe-Tokens (etwa 120
            Sekunden Audio) gekürzt werden. Die Aufgabe gilt dennoch als
            erfolgreich und wird nach den tatsächlich erzeugten Tokens
            berechnet; das Gateway kann diese Kürzung nicht erkennen

            - Alternativ `input` verwenden. Mindestens ein nicht leeres Textfeld
            ist erforderlich; möglichst nur eines übergeben. Abweichende Inhalte
            ergeben `400` (`parameter_conflict`)

            - Der Text muss in einer von der Stimme unterstützten Sprache sein,
            sonst sind Aussprachefehler möglich


            **Emotions- und paralinguistische Tags:** Direkt in den Text
            einfügen, ohne zusätzliche Parameter; der Tag-Text zählt als
            Abrechnungszeichen

            - **Steuerungstags**: Legen die Emotion oder den Stil des folgenden
            Textes bis zum nächsten Steuerungstag fest. `[sad]` traurig,
            `[amazed]` erstaunt, `[deep and loud shouting]` tiefes, lautes
            Schreien, `[trembling]` zitternd, `[angry]` wütend, `[excited]`
            aufgeregt, `[sarcastic]` sarkastisch, `[curious]` neugierig, `[like
            dracula]` tief und unheimlich, `[bored]` gelangweilt, `[tired]`
            müde, `[scornful]` verächtlich, `[shouting]` schreiend, `[asmr]`
            sanftes ASMR-Flüstern, `[panicked]` panisch, `[mischievously]`
            schelmisch, `[empathetic]` einfühlsam, `[whispers]` flüsternd,
            `[reluctantly]` widerwillig, `[crying]` weinend, `[serious]` ernst,
            `[very slowly]` sehr langsam, `[very fast]` sehr schnell

            - **Paralinguistische Tags**: Fügen an dieser Stelle einen
            Stimmeffekt ein, ohne die Emotion des umgebenden Textes zu ändern.
            `[gasp]` nach Luft schnappen, `[sighing]` seufzen, `[clears throat]`
            räuspern, `[giggles]` kichern, `[laughing]` lachen, `[cough]`
            husten, `[snorts]` schnauben


            **Beispiel:** `[excited]今天的天气真不错！[laughing]我们一起出去玩吧！`


            Bei `enable_ssml: true` wird dieses Feld als SSML verarbeitet
          maxLength: 5000
          example: 我家的后面有一个很大的花园。
        input:
          type: string
          description: >-
            Alias für `prompt` mit denselben Längen- und Nutzungsregeln


            - Mindestens `prompt` oder `input` als nicht leeren Text angeben

            - Bei Angabe beider Felder müssen die Inhalte übereinstimmen, sonst
            `400` (`parameter_conflict`)
          maxLength: 5000
          example: 我家的后面有一个很大的花园。
        voice:
          type: string
          description: >-
            Stimmenname, Groß-/Kleinschreibung beachten


            - 68 Systemstimmen; Namen, Geschlecht und Einsatzgebiete siehe
            [Stimmenliste](/de/api-manual/audio-series/qwen-audio-tts/qwen-audio-3.1-tts-flash-voices)

            - Ohne Angabe wird `longanhuan_v3.1` verwendet

            - Eigene Stimmen aus [Voice
            Enrollment](/de/api-manual/audio-series/qwen-audio-tts/voice-enrollment)
            sind ebenfalls möglich: geklont
            `qwen-audio-3.1-tts-flash-{prefix}-{32-character-id}`, entworfen
            `qwen-audio-3.1-tts-flash-vd-{prefix}-{32-character-id}`. Nur das
            erstellende Konto kann sie verwenden. Stimmen anderer Modelle, etwa
            `qwen-tts-vd-…` von `qwen-voice-design`, ergeben `400`
            (`invalid_voice`). Nicht vorhandene oder fremde Stimmen ergeben
            `404` (`voice_not_found`)

            - Benutzerdefinierte Stimmen laufen standardmäßig `6 Stunden` nach
            Abschluss der Erstellung ab. Danach gibt die Synthese `404`
            (`voice_expired`) zurück; mit Voice Enrollment eine neue Stimme
            erstellen
          default: longanhuan_v3.1
          example: longanhuan_v3.1
        response_format:
          type: string
          description: >-
            Audioausgabeformat: `mp3`, `wav` oder `opus`, Standard `mp3`


            - `opus` verwendet einen Ogg-Opus-Container

            - Alternativ `format` verwenden. Möglichst nur ein Feld übergeben;
            unterschiedliche Werte ergeben `400` (`parameter_conflict`)
          enum:
            - mp3
            - wav
            - opus
          default: mp3
          example: mp3
        format:
          type: string
          description: >-
            Alias für `response_format`; unterstützt `mp3`, `wav` und `opus`


            - Ohne beide Felder wird `mp3` verwendet

            - Bei Angabe beider Felder müssen die Werte übereinstimmen, sonst
            `400` (`parameter_conflict`)
          enum:
            - mp3
            - wav
            - opus
          example: mp3
        sample_rate:
          type:
            - integer
            - 'null'
          description: >-
            Ausgabe-Abtastrate (Hz)


            - Bei `response_format: opus` werden `22050` und `44100` nicht
            unterstützt

            - Ohne Angabe oder bei `null` gilt der Standardwert; `0` oder Werte
            außerhalb der Liste ergeben `400`
          enum:
            - 8000
            - 12000
            - 16000
            - 22050
            - 24000
            - 44100
            - 48000
            - null
          default: 24000
          example: 24000
        volume:
          type: integer
          description: Lautstärke von `0` bis `100`
          minimum: 0
          maximum: 100
          default: 50
          example: 50
        speech_rate:
          type: number
          description: >-
            Sprechgeschwindigkeitsfaktor


            - `1.0`: normale Geschwindigkeit (Standard)

            - `2.0`: doppelte Geschwindigkeit; `0.5`: halbe Geschwindigkeit


            Bereich `0.5` bis `2.0`. Eine Änderung beeinflusst die Anzahl der
            Ausgabe-Tokens nicht
          minimum: 0.5
          maximum: 2
          default: 1
          example: 1
        pitch:
          type: number
          description: >-
            Tonhöhenfaktor


            - `1.0`: Standardtonhöhe

            - Über `1.0` höher, unter `1.0` tiefer


            Bereich `0.5` bis `2.0`


            **Eine Tonhöhenänderung verändert auch Sprechgeschwindigkeit und
            Audiodauer**

            - Höhere Tonhöhe beschleunigt und verkürzt, tiefere verlangsamt und
            verlängert. Die Dauer verändert sich ungefähr umgekehrt proportional
            zum Quadrat des Tonhöhenwerts

            - Bei einem Satz von etwa 2.8 Sekunden bei `1.0`: `0.8` etwa 4.3
            Sekunden, `1.2` etwa 2.1 Sekunden, `0.5` etwa 10.9 Sekunden, `2.0`
            etwa 0.7 Sekunden

            - Kleine Änderungen zwischen `0.8` und `1.2` empfohlen; nahe `0.5`
            oder `2.0` ist die Sprache deutlich zu langsam oder zu schnell

            - Ist gleichzeitig `speech_rate` ungleich `1.0` gesetzt, bleibt
            `pitch` wirkungslos; beide lassen sich nicht kombinieren

            - Die Tonhöhe verändert die Anzahl der Ausgabe-Tokens nicht
          minimum: 0.5
          maximum: 2
          default: 1
          example: 1
        instruction:
          type: string
          description: >-
            Natürlichsprachliche Anweisungen für Emotion, Tonfall, Rolle,
            Dialekt und Ausdruck


            **Vorgaben:**

            - Höchstens `100` Abrechnungszeichen: Han-Zeichen (einschließlich
            japanischer Kanji und koreanischer Hanja) zählen als 2; alle anderen
            Zeichen, einschließlich Kana und Hangul, als 1 (etwa 50 Han-Zeichen
            oder 100 englische Zeichen). Überschreitung ergibt `400`


            **Beispiele:**

            - `用欢快、热情的语气说` (fröhlich und begeistert sprechen)

            - `请用上海话表达` (Shanghaier Dialekt; mehrsprachige und Dialektstimmen)

            - `Speak slowly in a calm and gentle tone`


            Anweisungen zählen nicht als Eingabe-Tokens, können aber die
            Audiodauer und damit die Ausgabe-Tokens beeinflussen


            > Der Parameter heißt `instruction` (Singular); `instructions`
            ergibt `400`
          example: 用欢快、热情的语气说
        language:
          type: string
          description: >-
            Hinweis zur Zielsprache für bessere Aussprache von Zahlen,
            Abkürzungen und Symbolen sowie bessere Synthese weniger verbreiteter
            Sprachen


            Bei `zh` wird beispielsweise `110` in `hello, this is 110`
            chinesisch als „yao yao ling“ gelesen


            | Wert | Sprache | Wert | Sprache |

            |---|---|---|---|

            | `zh` | Chinesisch | `th` | Thailändisch |

            | `en` | Englisch | `id` | Indonesisch |

            | `fr` | Französisch | `vi` | Vietnamesisch |

            | `de` | Deutsch | `es` | Spanisch |

            | `ja` | Japanisch | `it` | Italienisch |

            | `ko` | Koreanisch | `ms` | Malaiisch |

            | `ru` | Russisch | `fil` | Filipino |

            | `pt` | Portugiesisch | `ar` | Arabisch |


            Ohne Angabe erkennt das Modell die Sprache automatisch; dieser
            Parameter übersetzt den Text nicht
          enum:
            - zh
            - en
            - fr
            - de
            - ja
            - ko
            - ru
            - pt
            - th
            - id
            - vi
            - es
            - it
            - ms
            - fil
            - ar
          example: zh
        enable_ssml:
          type: boolean
          description: >-
            `prompt` als SSML verarbeiten


            Wenn aktiviert, sind SSML-Tags möglich, etwa `<break time="1s"/>`
            für eine Pause:

            `<speak>欢迎收听今天的节目。<break time="1s"/>我们马上开始。</speak>`


            SSML-Pausen zählen nicht als Ausgabe-Tokens
          default: false
          example: false
        hot_fix:
          type: object
          description: >-
            Benutzerdefinierte Aussprache und Textersetzung zur Korrektur
            mehrdeutiger Zeichen, Eigennamen und anderer Aussprachen


            - `pronunciation`: Wörter mit Pinyin versehen; Silben durch
            Leerzeichen trennen, Töne als Ziffern angeben, etwa `tian1 qi4`

            - `replace`: Wörter vor der Synthese ersetzen. Synthese und
            Abrechnung erfolgen anhand des ersetzten Texts; auch dieser darf
            höchstens `5000` Zeichen haben, sonst `400` (`prompt_too_long`)


            Beide Listen zusammen dürfen höchstens `200` Einträge enthalten,
            gezählt als Schlüssel-Wert-Paare in den Objekten. Überschreitung
            ergibt `400` (`invalid_parameter`)


            Mindestens eine Liste angeben. Jede angegebene Liste muss ein nicht
            leeres Array von Objekten der Form `{"Wort": "Wert"}` sein


            **Beispiel:**

            ```json

            {
              "pronunciation": [{"天气": "tian1 qi4"}],
              "replace": [{"今天": "金天"}]
            }

            ```
          properties:
            pronunciation:
              type: array
              description: >-
                Liste benutzerdefinierter Aussprachen; jeder Eintrag ist ein
                Objekt wie `{"Wort": "Pinyin"}`
              items:
                type: object
                additionalProperties:
                  type: string
              example:
                - 天气: tian1 qi4
            replace:
              type: array
              description: >-
                Liste der Textersetzungen; jeder Eintrag ist ein Objekt wie
                `{"Originalwort": "Ersatztext"}`
              items:
                type: object
                additionalProperties:
                  type: string
              example:
                - 今天: 金天
        enable_aigc_tag:
          type: boolean
          description: >-
            Unsichtbare AIGC-Kennzeichnung in das erzeugte Audio einbetten (für
            `wav` / `mp3` / `opus`)
          default: false
          example: false
        callback_url:
          type: string
          description: >-
            HTTPS-Callback-URL für das Aufgabenergebnis


            **Zeitpunkt:**

            - Bei Abschluss (`completed`) oder Fehlschlag (`failed`); dieses
            Modell unterstützt keinen Abbruch

            - Versand nach Bestätigung der Abrechnung


            **Sicherheitsvorgaben:**

            - Nur HTTPS

            - Keine privaten IP-Adressen (127.0.0.1, 10.x.x.x, 172.16–31.x.x,
            192.168.x.x usw.)

            - URL mit höchstens `2048` Zeichen


            **Zustellung:**

            - Timeout: `10` Sekunden

            - Bei Fehlschlag höchstens `3` Wiederholungen nach `1` / `2` / `4`
            Sekunden

            - Callback-Inhalt im gleichen Format wie die Aufgabenabfrage

            - 2xx gilt als Erfolg; andere Statuscodes lösen Wiederholungen aus
          format: uri
          example: https://your-domain.com/webhooks/tts-completed
    QwenAudioTtsResponse:
      type: object
      properties:
        created:
          type: integer
          description: Zeitstempel der Aufgabenerstellung
          example: 1790000000
        id:
          type: string
          description: Aufgaben-ID
          example: task-unified-1790000000-abcd1234
        model:
          type: string
          description: Tatsächlich verwendetes Modell
          example: qwen-audio-3.1-tts-flash
        object:
          type: string
          enum:
            - audio.generation.task
          description: Konkreter Typ des Aufgabenobjekts
        progress:
          type: integer
          description: Aufgabenfortschritt in Prozent (0–100)
          minimum: 0
          maximum: 100
          example: 0
        status:
          type: string
          description: Aufgabenstatus
          enum:
            - pending
            - processing
            - completed
            - failed
          example: pending
        task_info:
          $ref: '#/components/schemas/AudioTaskInfo'
          description: Details der Audioaufgabe
        type:
          type: string
          enum:
            - audio
          description: Ausgabetyp der Aufgabe
          example: audio
        usage:
          $ref: '#/components/schemas/AudioUsage'
          description: Verbrauchs- und Abrechnungsinformationen
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Fehlercode
            message:
              type: string
              description: Fehlermeldung
            type:
              type: string
              description: Fehlertyp
    AudioTaskInfo:
      type: object
      properties:
        can_cancel:
          type: boolean
          description: >-
            Ob die Aufgabe abgebrochen werden kann (dieses Modell unterstützt
            keinen Abbruch)
          example: false
        estimated_time:
          type: integer
          description: >-
            Geschätzte Dauer in Sekunden; steigt mit der Textlänge, bis etwa
            `90` Sekunden
          minimum: 0
          example: 3
        audio_type:
          type: string
          description: Typ der Audioaufgabe
          example: tts
    AudioUsage:
      type: object
      description: Verbrauchsinformationen
      properties:
        credits_reserved:
          type: number
          description: >-
            Nach Textlänge reservierte Credits; nach Abschluss anhand des
            tatsächlichen Token-Verbrauchs abgerechnet, Überschüsse erstattet
            und Fehlbeträge nachberechnet
          minimum: 0
          example: 0.0144
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ## Alle Endpunkte erfordern Bearer-Token-Authentifizierung


        **API-Key erhalten:**


        Den API-Key auf der Seite
        [API-Key-Verwaltung](https://evolink.ai/dashboard/keys) abrufen


        **Diesen Anfrageheader hinzufügen:**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.