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

> - 텍스트 설명을 통해 커스텀 음색을 생성하고, 음색 이름과 미리보기 오디오를 반환합니다
- [Qwen3 TTS VD](/ko/api-manual/audio-series/qwen-tts/qwen3-tts-vd) 음성 합성은 **반드시 본 인터페이스로 생성된 음색을 사용**해야 하며, 시스템 기본 음색은 지원하지 않습니다
- 비동기 처리 모드이며, 반환된 작업 ID로 [조회](/ko/api-manual/task-management/get-task-detail)할 수 있습니다
- 생성된 오디오 링크의 유효 기간은 24시간이므로 빠르게 저장하십시오

**사용 흐름:**
1. 본 인터페이스를 호출하여 음색 생성
2. 작업 결과를 폴링하여 `result_data.voice`(음색 이름) 획득
3. [Qwen3 TTS VD](/ko/api-manual/audio-series/qwen-tts/qwen3-tts-vd)를 호출하고 `voice` 파라미터를 전달하여 음성 합성



## OpenAPI

````yaml ko/api-manual/audio-series/qwen-tts/qwen-voice-design.json POST /v1/audios/generations
openapi: 3.1.0
info:
  title: Qwen Voice Design 음성 디자인 인터페이스
  description: >-
    텍스트 설명을 통해 커스텀 음색을 생성하고, 음색 이름과 미리보기 오디오를 반환합니다. qwen3-tts-vd 음성 합성은 반드시 본
    인터페이스로 생성된 음색을 사용해야 하며, 시스템 기본 음색은 지원하지 않습니다.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.evolink.ai
    description: 운영 환경
security:
  - bearerAuth: []
tags:
  - name: 음성 디자인
    description: Qwen Voice Design 음성 디자인 관련 인터페이스
paths:
  /v1/audios/generations:
    post:
      tags:
        - 음성 디자인
      summary: Qwen Voice Design 음성 디자인
      description: >-
        - 텍스트 설명을 통해 커스텀 음색을 생성하고, 음색 이름과 미리보기 오디오를 반환합니다

        - [Qwen3 TTS VD](/ko/api-manual/audio-series/qwen-tts/qwen3-tts-vd) 음성
        합성은 **반드시 본 인터페이스로 생성된 음색을 사용**해야 하며, 시스템 기본 음색은 지원하지 않습니다

        - 비동기 처리 모드이며, 반환된 작업 ID로
        [조회](/ko/api-manual/task-management/get-task-detail)할 수 있습니다

        - 생성된 오디오 링크의 유효 기간은 24시간이므로 빠르게 저장하십시오


        **사용 흐름:**

        1. 본 인터페이스를 호출하여 음색 생성

        2. 작업 결과를 폴링하여 `result_data.voice`(음색 이름) 획득

        3. [Qwen3 TTS VD](/ko/api-manual/audio-series/qwen-tts/qwen3-tts-vd)를
        호출하고 `voice` 파라미터를 전달하여 음성 합성
      operationId: createQwenVoiceDesign
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QwenVoiceDesignRequest'
            examples:
              minimal:
                summary: 최소 호출
                value:
                  model: qwen-voice-design
                  voice_prompt: 침착한 중년 남성 아나운서, 낮고 중후한 음색, 자기력 있는 목소리, 안정적인 속도, 명확한 발음
                  preview_text: 청취자 여러분, 안녕하세요. 저녁 뉴스를 시청해 주셔서 감사합니다.
                  preferred_name: announcer
              full_params:
                summary: 전체 파라미터
                value:
                  model: qwen-voice-design
                  voice_prompt: 젊고 활발한 여성 목소리, 빠른 속도, 뚜렷한 상승 어조, 패션 제품 소개에 적합
                  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: 음성 디자인 작업 생성 성공
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QwenVoiceDesignResponse'
        '400':
          description: 요청 파라미터 오류
          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: 인증되지 않음, 토큰 유효하지 않거나 만료됨
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: 크레딧 부족, 충전 필요
          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: 접근 권한 없음
          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: 요청 빈도 초과
          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: 서버 내부 오류
          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: 모델 이름
          enum:
            - qwen-voice-design
          default: qwen-voice-design
          example: qwen-voice-design
        voice_prompt:
          type: string
          description: |-
            음색을 정의하기 위한 음성 특성 설명

            **제약:**
            - 최대 `2048`자
            - 중국어와 영어만 지원

            **설명 차원 권장:**
            - 성별: 남성, 여성, 중성
            - 연령: 어린이(5-12), 청소년(13-18), 청년(19-35), 중년(36-55), 노년(55+)
            - 음조: 고음, 중음, 저음
            - 속도: 빠름, 중간, 느림
            - 감성: 밝음, 침착, 부드러움, 엄숙, 활발, 차분
            - 특징: 자기력, 청아함, 허스키, 풍부함, 달콤함, 중후함
            - 용도: 뉴스 방송, 광고 더빙, 오디오북, 애니메이션 캐릭터, 음성 어시스턴트

            **권장 작성 예시:**
            - `침착한 중년 남성, 느린 속도, 낮고 자기력 있는 음색, 뉴스 또는 다큐멘터리 해설에 적합`
            - `귀여운 어린이 목소리, 약 8세 여자아이, 약간 유치한 말투, 애니메이션 캐릭터 더빙에 적합`
            - `부드럽고 지적인 여성, 30대 전후, 평온한 어조, 오디오북 낭독에 적합`
          maxLength: 2048
          example: 침착한 중년 남성 아나운서, 낮고 중후한 음색, 자기력 있는 목소리, 안정적인 속도, 명확한 발음
        preview_text:
          type: string
          description: |-
            미리보기 오디오를 생성하기 위한 미리보기 텍스트

            **제약:**
            - 최대 `1024`자
            - 10가지 언어 지원: 중국어, 영어, 일본어, 한국어, 독일어, 프랑스어, 이탈리아어, 러시아어, 포르투갈어, 스페인어
            - `language` 언어와 일치하도록 권장
          maxLength: 1024
          example: 청취자 여러분, 안녕하세요. 저녁 뉴스를 시청해 주셔서 감사합니다.
        preferred_name:
          type: string
          description: >-
            음색 이름 접두사


            **제약:**

            - 숫자, 영문자, 밑줄만 허용

            - `16`자 이하


            생성되는 전체 음색 이름 형식: `qwen-tts-vd-{preferred_name}-voice-{timestamp}`


            `announcer`를 입력하면 최종 음색 이름은 다음과 같습니다:
            `qwen-tts-vd-announcer-voice-20260402-a1b2`
          maxLength: 16
          pattern: ^[a-zA-Z0-9_]+$
          example: announcer
        language:
          type: string
          description: |-
            음색의 언어 성향, `preview_text` 언어와 일치하도록 권장

            미전달 시 업스트림 기본값 `zh` 사용
          enum:
            - zh
            - en
            - ja
            - ko
            - de
            - fr
            - it
            - ru
            - pt
            - es
          example: zh
        sample_rate:
          type: integer
          description: |-
            미리보기 오디오 샘플링 레이트(Hz)

            미전달 시 업스트림 기본값 `24000` 사용
          enum:
            - 8000
            - 16000
            - 24000
            - 48000
          example: 24000
        response_format:
          type: string
          description: |-
            미리보기 오디오 형식

            미전달 시 업스트림 기본값 `wav` 사용
          enum:
            - pcm
            - wav
            - mp3
            - opus
          example: wav
        target_model:
          type: string
          description: >-
            생성된 음색을 구동할 TTS 모델


            **중요:** 음색 생성 시 지정한 `target_model`은 이후 음성 합성 시 사용하는 모델과 반드시 일치해야 하며,
            그렇지 않으면 합성이 실패합니다


            | 값 | 설명 |

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

            | `qwen3-tts-vd-2026-01-26` | Qwen3-TTS-VD 비스트리밍(기본값) |

            | `qwen3-tts-vd-realtime-2026-01-15` | Qwen3-TTS-VD-Realtime 양방향
            스트리밍(신버전) |

            | `qwen3-tts-vd-realtime-2025-12-16` | Qwen3-TTS-VD-Realtime 양방향
            스트리밍(구버전) |


            > 현재 본 플랫폼은 `qwen3-tts-vd-2026-01-26`(비스트리밍)을 지원하며, realtime 모델은 아직
            미지원이지만 음색 사전 생성은 가능합니다
          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: >-
            작업 완료 후 HTTPS 콜백 주소


            **콜백 시점:**

            - 작업 완료(completed), 실패(failed) 또는 취소(cancelled) 시 트리거

            - 과금 확인 완료 후 발송


            **보안 제한:**

            - HTTPS 프로토콜만 지원

            - 내부 IP 주소로의 콜백 금지(127.0.0.1, 10.x.x.x, 172.16-31.x.x, 192.168.x.x
            등)

            - URL 길이 `2048`자 이하


            **콜백 메커니즘:**

            - 타임아웃: `10`초

            - 실패 후 최대 `3`회 재시도(각각 실패 후 `1`초/`2`초/`4`초 후 재시도)

            - 콜백 응답 본문 형식은 작업 조회 인터페이스 반환 형식과 동일

            - 콜백 주소가 2xx 상태 코드를 반환하면 성공으로 간주, 그 외 상태 코드는 재시도 트리거
          format: uri
          example: https://your-domain.com/webhooks/voice-design-completed
    QwenVoiceDesignResponse:
      type: object
      properties:
        created:
          type: integer
          description: 작업 생성 타임스탬프
          example: 1775123456
        id:
          type: string
          description: 작업 ID
          example: task-unified-1775123456-abcd1234
        model:
          type: string
          description: 실제 사용된 모델 이름
          example: qwen-voice-design
        object:
          type: string
          enum:
            - audio.generation.task
          description: 작업의 구체적인 유형
        progress:
          type: integer
          description: 작업 진행률 (0-100)
          minimum: 0
          maximum: 100
          example: 0
        status:
          type: string
          description: 작업 상태
          enum:
            - pending
            - processing
            - completed
            - failed
          example: pending
        task_info:
          $ref: '#/components/schemas/AudioTaskInfo'
          description: 오디오 작업 상세 정보
        type:
          type: string
          enum:
            - audio
          description: 작업의 출력 유형
          example: audio
        usage:
          $ref: '#/components/schemas/AudioUsage'
          description: 사용량 및 과금 정보
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: 오류 코드 식별자
            message:
              type: string
              description: 오류 설명 메시지
            type:
              type: string
              description: 오류 유형
    AudioTaskInfo:
      type: object
      properties:
        can_cancel:
          type: boolean
          description: 작업 취소 가능 여부
          example: true
        estimated_time:
          type: integer
          description: 예상 완료 시간(초)
          minimum: 0
          example: 15
        audio_type:
          type: string
          description: 오디오 작업 유형
          example: voice_design
    AudioUsage:
      type: object
      description: 사용량 정보
      properties:
        credits_reserved:
          type: number
          description: 예상 소모 크레딧 수
          minimum: 0
          example: 2
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: |-
        ##모든 인터페이스는 Bearer Token 인증이 필요합니다##

        **API Key 발급:**

        [API Key 관리 페이지](https://evolink.ai/dashboard/keys)에서 API Key를 발급받으세요

        **요청 헤더에 다음을 추가하세요:**
        ```
        Authorization: Bearer YOUR_API_KEY
        ```

````