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

# Qwen Voice Design

> - Créez des timbres vocaux personnalisés à partir d'une description textuelle et obtenez le nom du timbre ainsi qu'un aperçu audio
- La synthèse vocale [Qwen3 TTS VD](/fr/api-manual/audio-series/qwen-tts/qwen3-tts-vd) **doit obligatoirement utiliser les timbres créés par cette interface** ; les timbres système intégrés ne sont pas pris en charge
- Traitement asynchrone : utilisez l'ID de tâche retourné pour [interroger le résultat](/fr/api-manual/task-management/get-task-detail)
- Le lien audio généré est valable 24 heures, veuillez le sauvegarder rapidement

**Flux d'utilisation :**
1. Appelez cette interface pour créer un timbre vocal
2. Interrogez le résultat de la tâche pour obtenir `result_data.voice` (nom du timbre)
3. Appelez [Qwen3 TTS VD](/fr/api-manual/audio-series/qwen-tts/qwen3-tts-vd) en passant le paramètre `voice` pour la synthèse vocale



## OpenAPI

````yaml fr/api-manual/audio-series/qwen-tts/qwen-voice-design.json POST /v1/audios/generations
openapi: 3.1.0
info:
  title: Interface Qwen Voice Design - Conception Vocale
  description: >-
    Créez des timbres vocaux personnalisés à partir d'une description textuelle,
    et obtenez le nom du timbre ainsi qu'un aperçu audio. La synthèse vocale
    qwen3-tts-vd doit obligatoirement utiliser les timbres créés par cette
    interface ; les timbres système intégrés ne sont pas pris en charge.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.evolink.ai
    description: Environnement de production
security:
  - bearerAuth: []
tags:
  - name: Conception Vocale
    description: Interfaces relatives à la conception vocale Qwen Voice Design
paths:
  /v1/audios/generations:
    post:
      tags:
        - Conception Vocale
      summary: Qwen Voice Design - Conception Vocale
      description: >-
        - Créez des timbres vocaux personnalisés à partir d'une description
        textuelle et obtenez le nom du timbre ainsi qu'un aperçu audio

        - La synthèse vocale [Qwen3 TTS
        VD](/fr/api-manual/audio-series/qwen-tts/qwen3-tts-vd) **doit
        obligatoirement utiliser les timbres créés par cette interface** ; les
        timbres système intégrés ne sont pas pris en charge

        - Traitement asynchrone : utilisez l'ID de tâche retourné pour
        [interroger le résultat](/fr/api-manual/task-management/get-task-detail)

        - Le lien audio généré est valable 24 heures, veuillez le sauvegarder
        rapidement


        **Flux d'utilisation :**

        1. Appelez cette interface pour créer un timbre vocal

        2. Interrogez le résultat de la tâche pour obtenir `result_data.voice`
        (nom du timbre)

        3. Appelez [Qwen3 TTS
        VD](/fr/api-manual/audio-series/qwen-tts/qwen3-tts-vd) en passant le
        paramètre `voice` pour la synthèse vocale
      operationId: createQwenVoiceDesign
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QwenVoiceDesignRequest'
            examples:
              minimal:
                summary: Appel minimal
                value:
                  model: qwen-voice-design
                  voice_prompt: >-
                    Présentateur masculin d'âge mûr au ton posé, voix grave et
                    profonde, magnétique, débit régulier, articulation claire
                  preview_text: Bonsoir à tous nos auditeurs, bienvenue au journal du soir.
                  preferred_name: announcer
              full_params:
                summary: Paramètres complets
                value:
                  model: qwen-voice-design
                  voice_prompt: >-
                    Jeune femme dynamique, débit rapide, intonation montante
                    prononcée, idéale pour présenter des produits de mode
                  preview_text: Hi everyone, welcome to today's fashion review!
                  preferred_name: fashion_host
                  language: fr
                  sample_rate: 48000
                  response_format: mp3
      responses:
        '200':
          description: Tâche de conception vocale créée avec succès
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QwenVoiceDesignResponse'
        '400':
          description: Paramètres de requête invalides
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: invalid_parameter
                  message: 'Missing required parameter: voice_prompt or preview_text'
                  type: invalid_request_error
        '401':
          description: Non authentifié, token invalide ou expiré
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: Quota insuffisant, rechargement nécessaire
          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: Accès refusé
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: model_access_denied
                  message: 'Token does not have access to model: qwen-voice-design'
                  type: invalid_request_error
        '429':
          description: Limite de fréquence de requêtes dépassée
          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: Erreur interne du serveur
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: internal_error
                  message: Internal server error
                  type: api_error
components:
  schemas:
    QwenVoiceDesignRequest:
      type: object
      required:
        - model
        - voice_prompt
        - preview_text
        - preferred_name
      properties:
        model:
          type: string
          description: Nom du modèle
          enum:
            - qwen-voice-design
          default: qwen-voice-design
          example: qwen-voice-design
        voice_prompt:
          type: string
          description: >-
            Description des caractéristiques vocales pour définir le timbre


            **Contraintes :**

            - Maximum `2048` caractères

            - Uniquement le chinois et l'anglais sont pris en charge


            **Dimensions de description suggérées :**

            - Genre : masculin, féminin, neutre

            - Âge : enfant (5-12), adolescent (13-18), jeune adulte (19-35),
            adulte (36-55), senior (55+)

            - Tonalité : aiguë, moyenne, grave

            - Débit : rapide, modéré, lent

            - Émotion : joyeux, posé, doux, sérieux, vif, calme

            - Caractéristiques : magnétique, cristallin, voilé, velouté, suave,
            profond

            - Usage : lecture d'actualités, doublage publicitaire, livre audio,
            personnage animé, assistant vocal


            **Exemples de formulations recommandées :**

            - `Homme d'âge mûr au ton posé, débit lent, voix grave et
            magnétique, idéale pour lire des journaux ou commenter des
            documentaires`

            - `Voix enfantine adorable, fillette d'environ 8 ans, ton légèrement
            naïf, idéale pour le doublage de personnages animés`

            - `Femme douce et cultivée, environ 30 ans, ton serein, idéale pour
            la lecture de livres audio`
          maxLength: 2048
          example: >-
            Présentateur masculin d'âge mûr au ton posé, voix grave et profonde,
            magnétique, débit régulier, articulation claire
        preview_text:
          type: string
          description: >-
            Texte d'aperçu pour générer l'audio d'écoute


            **Contraintes :**

            - Maximum `1024` caractères

            - Supporte 10 langues : chinois, anglais, japonais, coréen,
            allemand, français, italien, russe, portugais, espagnol

            - Il est conseillé que la langue corresponde au paramètre `language`
          maxLength: 1024
          example: Bonsoir à tous nos auditeurs, bienvenue au journal du soir.
        preferred_name:
          type: string
          description: >-
            Préfixe du nom du timbre vocal


            **Contraintes :**

            - Uniquement chiffres, lettres anglaises et underscores

            - Maximum `16` caractères


            Format du nom de timbre complet généré :
            `qwen-tts-vd-{preferred_name}-voice-{timestamp}`


            Si vous saisissez `announcer`, le nom final ressemblera à :
            `qwen-tts-vd-announcer-voice-20260402-a1b2`
          maxLength: 16
          pattern: ^[a-zA-Z0-9_]+$
          example: announcer
        language:
          type: string
          description: >-
            Préférence linguistique du timbre ; il est conseillé de la faire
            correspondre à la langue de `preview_text`


            Si non renseigné, la valeur par défaut `zh` est utilisée en amont
          enum:
            - zh
            - en
            - ja
            - ko
            - de
            - fr
            - it
            - ru
            - pt
            - es
          example: fr
        sample_rate:
          type: integer
          description: |-
            Taux d'échantillonnage de l'audio d'aperçu (Hz)

            Si non renseigné, la valeur par défaut `24000` est utilisée en amont
          enum:
            - 8000
            - 16000
            - 24000
            - 48000
          example: 24000
        response_format:
          type: string
          description: |-
            Format de l'audio d'aperçu

            Si non renseigné, la valeur par défaut `wav` est utilisée en amont
          enum:
            - pcm
            - wav
            - mp3
            - opus
          example: wav
        target_model:
          type: string
          description: >-
            Modèle TTS qui pilotera le timbre créé


            **Important :** Le `target_model` spécifié lors de la création du
            timbre doit correspondre au modèle utilisé lors de la synthèse
            vocale ultérieure, sinon la synthèse échouera


            | Valeur | Description |

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

            | `qwen3-tts-vd-2026-01-26` | Qwen3-TTS-VD non-streaming (par
            défaut) |

            | `qwen3-tts-vd-realtime-2026-01-15` | Qwen3-TTS-VD-Realtime
            streaming bidirectionnel (nouvelle version) |

            | `qwen3-tts-vd-realtime-2025-12-16` | Qwen3-TTS-VD-Realtime
            streaming bidirectionnel (ancienne version) |


            > Actuellement, cette plateforme a intégré `qwen3-tts-vd-2026-01-26`
            (non-streaming) ; les modèles realtime ne sont pas encore
            disponibles mais vous pouvez pré-créer des timbres
          enum:
            - qwen3-tts-vd-2026-01-26
            - qwen3-tts-vd-realtime-2026-01-15
            - qwen3-tts-vd-realtime-2025-12-16
          default: qwen3-tts-vd-2026-01-26
          example: qwen3-tts-vd-2026-01-26
        callback_url:
          type: string
          description: >-
            URL de rappel HTTPS après la fin de la tâche


            **Déclenchement du rappel :**

            - Déclenché lorsque la tâche est terminée (completed), échouée
            (failed) ou annulée (cancelled)

            - Envoyé après confirmation de la facturation


            **Restrictions de sécurité :**

            - Uniquement le protocole HTTPS est pris en charge

            - Les rappels vers des adresses IP internes sont interdits
            (127.0.0.1, 10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)

            - La longueur de l'URL ne doit pas dépasser `2048` caractères


            **Mécanisme de rappel :**

            - Délai d'expiration : `10` secondes

            - Maximum `3` nouvelles tentatives en cas d'échec (à `1` s / `2` s /
            `4` s après l'échec respectivement)

            - Le format du corps de rappel est identique à celui retourné par
            l'interface de requête de tâche

            - Un code de statut 2xx de l'URL de rappel est considéré comme un
            succès ; tout autre code déclenche une nouvelle tentative
          format: uri
          example: https://your-domain.com/webhooks/voice-design-completed
    QwenVoiceDesignResponse:
      type: object
      properties:
        created:
          type: integer
          description: Horodatage de création de la tâche
          example: 1775123456
        id:
          type: string
          description: ID de la tâche
          example: task-unified-1775123456-abcd1234
        model:
          type: string
          description: Nom du modèle réellement utilisé
          example: qwen-voice-design
        object:
          type: string
          enum:
            - audio.generation.task
          description: Type spécifique de la tâche
        progress:
          type: integer
          description: Pourcentage de progression de la tâche (0-100)
          minimum: 0
          maximum: 100
          example: 0
        status:
          type: string
          description: Statut de la tâche
          enum:
            - pending
            - processing
            - completed
            - failed
          example: pending
        task_info:
          $ref: '#/components/schemas/AudioTaskInfo'
          description: Informations détaillées sur la tâche audio
        type:
          type: string
          enum:
            - audio
          description: Type de sortie de la tâche
          example: audio
        usage:
          $ref: '#/components/schemas/AudioUsage'
          description: Informations d'utilisation et de facturation
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Identifiant du code d'erreur
            message:
              type: string
              description: Description de l'erreur
            type:
              type: string
              description: Type d'erreur
    AudioTaskInfo:
      type: object
      properties:
        can_cancel:
          type: boolean
          description: Indique si la tâche peut être annulée
          example: true
        estimated_time:
          type: integer
          description: Temps d'achèvement estimé (secondes)
          minimum: 0
          example: 15
        audio_type:
          type: string
          description: Type de tâche audio
          example: voice_design
    AudioUsage:
      type: object
      description: Informations d'utilisation
      properties:
        credits_reserved:
          type: number
          description: Nombre de crédits estimés consommés
          minimum: 0
          example: 2
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##Toutes les interfaces nécessitent une authentification par Bearer
        Token##


        **Obtenir une clé API :**


        Visitez la [page de gestion des clés
        API](https://evolink.ai/dashboard/keys) pour obtenir votre clé API


        **Ajoutez ceci dans l'en-tête de la requête :**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````