> ## 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

> - Crea un timbre personalizado mediante descripción de texto y devuelve el nombre del timbre y el audio de vista previa
- La síntesis de voz [Qwen3 TTS VD](/es/api-manual/audio-series/qwen-tts/qwen3-tts-vd) **debe utilizar el timbre creado por esta interfaz** y no admite timbres del sistema
- Modo de procesamiento asíncrono, use el ID de tarea devuelto para [consultar](/es/api-manual/task-management/get-task-detail)
- Los enlaces de audio generados son válidos por 24 horas, guárdelos cuanto antes

**Flujo de uso:**
1. Llame a esta interfaz para crear el timbre
2. Sondee el resultado de la tarea para obtener `result_data.voice` (nombre del timbre)
3. Llame a [Qwen3 TTS VD](/es/api-manual/audio-series/qwen-tts/qwen3-tts-vd) y pase el parámetro `voice` para la síntesis de voz



## OpenAPI

````yaml es/api-manual/audio-series/qwen-tts/qwen-voice-design.json POST /v1/audios/generations
openapi: 3.1.0
info:
  title: Interfaz de diseño de voz Qwen Voice Design
  description: >-
    Crea un timbre personalizado mediante descripción de texto y devuelve el
    nombre del timbre y el audio de vista previa. La síntesis de voz
    qwen3-tts-vd debe utilizar el timbre creado por esta interfaz y no admite
    timbres del sistema.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.evolink.ai
    description: Entorno de producción
security:
  - bearerAuth: []
tags:
  - name: Diseño de voz
    description: Interfaces relacionadas con el diseño de voz Qwen Voice Design
paths:
  /v1/audios/generations:
    post:
      tags:
        - Diseño de voz
      summary: Diseño de voz Qwen Voice Design
      description: >-
        - Crea un timbre personalizado mediante descripción de texto y devuelve
        el nombre del timbre y el audio de vista previa

        - La síntesis de voz [Qwen3 TTS
        VD](/es/api-manual/audio-series/qwen-tts/qwen3-tts-vd) **debe utilizar
        el timbre creado por esta interfaz** y no admite timbres del sistema

        - Modo de procesamiento asíncrono, use el ID de tarea devuelto para
        [consultar](/es/api-manual/task-management/get-task-detail)

        - Los enlaces de audio generados son válidos por 24 horas, guárdelos
        cuanto antes


        **Flujo de uso:**

        1. Llame a esta interfaz para crear el timbre

        2. Sondee el resultado de la tarea para obtener `result_data.voice`
        (nombre del timbre)

        3. Llame a [Qwen3 TTS
        VD](/es/api-manual/audio-series/qwen-tts/qwen3-tts-vd) y pase el
        parámetro `voice` para la síntesis de voz
      operationId: createQwenVoiceDesign
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QwenVoiceDesignRequest'
            examples:
              minimal:
                summary: Llamada mínima
                value:
                  model: qwen-voice-design
                  voice_prompt: >-
                    Locutor masculino de mediana edad, serio y sereno, voz grave
                    y resonante, con magnetismo, ritmo estable y pronunciación
                    clara
                  preview_text: >-
                    Estimados oyentes, buenas noches y bienvenidos al noticiero
                    nocturno.
                  preferred_name: announcer
              full_params:
                summary: Parámetros completos
                value:
                  model: qwen-voice-design
                  voice_prompt: >-
                    Voz femenina joven y animada, ritmo rápido, entonación
                    ascendente pronunciada, ideal para presentar productos de
                    moda
                  preview_text: Hi everyone, welcome to today's fashion review!
                  preferred_name: fashion_host
                  language: en
                  sample_rate: 48000
                  response_format: mp3
      responses:
        '200':
          description: Tarea de diseño de voz creada con éxito
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QwenVoiceDesignResponse'
        '400':
          description: Error en los parámetros de solicitud
          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: No autenticado, token inválido o expirado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: Créditos insuficientes, recarga necesaria
          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: Sin permiso de acceso
          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: Frecuencia de solicitudes excedida
          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: Error interno del servidor
          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: Nombre del modelo
          enum:
            - qwen-voice-design
          default: qwen-voice-design
          example: qwen-voice-design
        voice_prompt:
          type: string
          description: >-
            Descripción de las características de voz para definir el timbre


            **Restricciones:**

            - Máximo `2048` caracteres

            - Solo se admiten chino e inglés


            **Dimensiones de descripción recomendadas:**

            - Género: masculino, femenino, neutro

            - Edad: niño(5-12), adolescente(13-18), joven(19-35), adulto(36-55),
            mayor(55+)

            - Tono: agudo, medio, grave

            - Velocidad: rápido, medio, lento

            - Emoción: alegre, sereno, suave, serio, animado, tranquilo

            - Características: magnético, cristalino, ronco, redondo, dulce,
            profundo

            - Uso: locución de noticias, doblaje publicitario, audiolibros,
            personajes de animación, asistente de voz


            **Ejemplos de redacción recomendada:**

            - `Hombre de mediana edad sereno, ritmo lento, voz grave con
            magnetismo, ideal para leer noticias o narrar documentales`

            - `Voz infantil adorable, niña de unos 8 años, habla con cierta
            ingenuidad, ideal para doblaje de personajes de animación`

            - `Mujer suave e intelectual, alrededor de 30 años, tono tranquilo,
            ideal para narrar audiolibros`
          maxLength: 2048
          example: >-
            Locutor masculino de mediana edad, serio y sereno, voz grave y
            resonante, con magnetismo, ritmo estable y pronunciación clara
        preview_text:
          type: string
          description: >-
            Texto de vista previa para generar el audio de muestra


            **Restricciones:**

            - Máximo `1024` caracteres

            - Compatible con 10 idiomas: chino, inglés, japonés, coreano,
            alemán, francés, italiano, ruso, portugués, español

            - Se recomienda que coincida con el idioma del parámetro `language`
          maxLength: 1024
          example: >-
            Estimados oyentes, buenas noches y bienvenidos al noticiero
            nocturno.
        preferred_name:
          type: string
          description: >-
            Prefijo del nombre del timbre


            **Restricciones:**

            - Solo números, letras del alfabeto inglés y guiones bajos

            - No más de `16` caracteres


            Formato del nombre completo del timbre generado:
            `qwen-tts-vd-{preferred_name}-voice-{timestamp}`


            Si se ingresa `announcer`, el nombre final del timbre será similar
            a: `qwen-tts-vd-announcer-voice-20260402-a1b2`
          maxLength: 16
          pattern: ^[a-zA-Z0-9_]+$
          example: announcer
        language:
          type: string
          description: >-
            Preferencia de idioma del timbre, se recomienda que coincida con el
            idioma de `preview_text`


            Si no se envía, el valor predeterminado del upstream es `zh`
          enum:
            - zh
            - en
            - ja
            - ko
            - de
            - fr
            - it
            - ru
            - pt
            - es
          example: zh
        sample_rate:
          type: integer
          description: |-
            Frecuencia de muestreo del audio de vista previa (Hz)

            Si no se envía, el valor predeterminado del upstream es `24000`
          enum:
            - 8000
            - 16000
            - 24000
            - 48000
          example: 24000
        response_format:
          type: string
          description: |-
            Formato del audio de vista previa

            Si no se envía, el valor predeterminado del upstream es `wav`
          enum:
            - pcm
            - wav
            - mp3
            - opus
          example: wav
        target_model:
          type: string
          description: >-
            Modelo TTS que impulsará el timbre creado


            **Importante:** El `target_model` especificado al crear el timbre
            debe coincidir con el modelo utilizado en la síntesis de voz
            posterior; de lo contrario, la síntesis fallará


            | Valor | Descripción |

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

            | `qwen3-tts-vd-2026-01-26` | Qwen3-TTS-VD no streaming
            (predeterminado) |

            | `qwen3-tts-vd-realtime-2026-01-15` | Qwen3-TTS-VD-Realtime
            streaming bidireccional (versión nueva) |

            | `qwen3-tts-vd-realtime-2025-12-16` | Qwen3-TTS-VD-Realtime
            streaming bidireccional (versión antigua) |


            > Actualmente esta plataforma ha integrado `qwen3-tts-vd-2026-01-26`
            (no streaming); los modelos realtime aún no están disponibles pero
            se pueden pre-crear 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: >-
            Dirección de callback HTTPS tras completar la tarea


            **Momento del callback:**

            - Se activa cuando la tarea se completa (completed), falla (failed)
            o se cancela (cancelled)

            - Se envía tras confirmar la facturación


            **Restricciones de seguridad:**

            - Solo se admite el protocolo HTTPS

            - Prohibido hacer callback a direcciones IP internas (127.0.0.1,
            10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)

            - La URL no debe superar los `2048` caracteres


            **Mecanismo de callback:**

            - Tiempo de espera: `10` segundos

            - Máximo `3` reintentos tras fallo (respectivamente `1`/`2`/`4`
            segundos después del fallo)

            - El formato del cuerpo de respuesta del callback es igual al
            formato de retorno de la interfaz de consulta de tareas

            - Si la dirección de callback devuelve código de estado 2xx se
            considera exitoso; otros códigos activan reintentos
          format: uri
          example: https://your-domain.com/webhooks/voice-design-completed
    QwenVoiceDesignResponse:
      type: object
      properties:
        created:
          type: integer
          description: Marca de tiempo de creación de la tarea
          example: 1775123456
        id:
          type: string
          description: ID de tarea
          example: task-unified-1775123456-abcd1234
        model:
          type: string
          description: Nombre del modelo realmente utilizado
          example: qwen-voice-design
        object:
          type: string
          enum:
            - audio.generation.task
          description: Tipo específico de la tarea
        progress:
          type: integer
          description: Porcentaje de progreso de la tarea (0-100)
          minimum: 0
          maximum: 100
          example: 0
        status:
          type: string
          description: Estado de la tarea
          enum:
            - pending
            - processing
            - completed
            - failed
          example: pending
        task_info:
          $ref: '#/components/schemas/AudioTaskInfo'
          description: Información detallada de la tarea de audio
        type:
          type: string
          enum:
            - audio
          description: Tipo de salida de la tarea
          example: audio
        usage:
          $ref: '#/components/schemas/AudioUsage'
          description: Información de uso y facturación
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Identificador del código de error
            message:
              type: string
              description: Mensaje de descripción del error
            type:
              type: string
              description: Tipo de error
    AudioTaskInfo:
      type: object
      properties:
        can_cancel:
          type: boolean
          description: Si la tarea se puede cancelar
          example: true
        estimated_time:
          type: integer
          description: Tiempo estimado de finalización (segundos)
          minimum: 0
          example: 15
        audio_type:
          type: string
          description: Tipo de tarea de audio
          example: voice_design
    AudioUsage:
      type: object
      description: Información de uso
      properties:
        credits_reserved:
          type: number
          description: Créditos estimados a consumir
          minimum: 0
          example: 2
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##Todas las interfaces requieren autenticación con Bearer Token##


        **Obtener API Key:**


        Visita la [página de administración de API
        Key](https://evolink.ai/dashboard/keys) para obtener tu API Key


        **Agrégalo en el encabezado de solicitud:**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````