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

# Qwen3 TTS Speech Synthesis API

> Qwen's speech synthesis model delivers human-like voices with natural expressiveness. It supports multiple languages and dialects, generates multilingual content using a single voice, and automatically adapts tone to handle complex text.

## Overview

Qwen3-TTS is a text-to-speech model from the Qwen team at Alibaba Cloud. This model turns text into natural-sounding
speech across 10 languages, including Chinese, English, Japanese, Korean, German, French, Russian, Portuguese, Spanish,
and Italian.\
Includes three powerful modes: Voice, Clone, and Design.

#### What you can do with it

#### Speech Synthesis:

Enter the text to be synthesized, select the built-in voice of the system, and the speech can be generated.
Multi-language mixed input is supported.

#### Voice Cloning:

Give the model 3 seconds of audio and it can reproduce that voice speaking any text you provide. The cloning works
across languages too—clone a voice in English and use it to speak Chinese.

#### Design Voice:

Describe the voice you want in plain language and the model creates it. You might ask for “a warm
storyteller voice with gentle pacing” or “a deep male voice with a British accent.” The model interprets your
description and generates matching speech.

#### Control speech style:

Use natural language instructions to adjust how the speech sounds. You can control emotion, speaking speed, and tone.
The model adapts its output based on the meaning of your text, placing pauses naturally and emphasizing the right words.

## Query Task Status

After submitting a task, use the unified query endpoint to check progress and retrieve results:

<Card title="Get Task Info" icon="magnifying-glass" href="/models/common/get-task-info">
  Learn how to query task status and retrieve generation results
</Card>

<Tip>
  For production use, we recommend using the `callback_url` parameter to receive automatic notifications when generation completes, rather than polling the status endpoint.
</Tip>

## Related Resources

<CardGroup cols={2}>
  <Card title="Models Overview" icon="store" href="/models/quickstart">
    Explore all available models
  </Card>

  <Card title="Common API" icon="gear" href="/common-api/get-account-credits">
    Check credits and account usage
  </Card>
</CardGroup>


## OpenAPI

````yaml models/qwen/qwen-tts.json post /api/v1/client/job/CreateTask
openapi: 3.0.0
info:
  title: Crun Qwen TTS API
  description: crun.ai Qwen3 TTS API Documentation
  version: 1.0.0
  contact:
    name: Technical Support
    email: support@crun.ai
servers:
  - url: https://api.crun.ai
    description: API Server
security:
  - ApiKeyAuth: []
paths:
  /api/v1/client/job/CreateTask:
    post:
      summary: qwen3 tts speech synthesis
      operationId: qwen3-tts-speech-synthesis
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
                - input
              properties:
                model:
                  type: string
                  enum:
                    - qwen3-tts/speech-synthesis
                  description: |-
                    The model name to use for generation. Required field.

                    - Must be `qwen3-tts/speech-synthesis` for this endpoint
                callback_url:
                  type: string
                  format: uri
                  description: >-
                    Optional. Callback URL for receiving task completion
                    notifications.


                    - System will POST task status and results to this URL when
                    generation completes

                    - Callback payloads structure is consistent with the `data`
                    object returned by the task status query

                    - Your callback endpoint should accept POST requests with
                    JSON payload containing results

                    - It returns an HTTP 200 status code upon successful receipt
                  example: https://your-domain.com/api/callback
                input:
                  type: object
                  description: Input parameters for the Qwen3 TTS speech synthesis task
                  required:
                    - text
                    - voice
                  properties:
                    text:
                      type: string
                      description: >-
                        The text to synthesize. Mixed-language input is
                        supported.
                      minLength: 1
                      maxLength: 600
                      example: >-
                        The weather is lovely today. Let's take a walk in the
                        park.
                    voice:
                      type: string
                      description: >-
                        the voice to use. See [Supported system
                        voices](https://www.alibabacloud.com/help/en/model-studio/qwen-tts#bac280ddf5a1u).
                      minLength: 1
                      maxLength: 600
                      example: Cherry
                    language_type:
                      type: string
                      enum:
                        - Auto
                        - Chinese
                        - English
                        - German
                        - Italian
                        - Portuguese
                        - Spanish
                        - Japanese
                        - Korean
                        - French
                      description: >-
                        Language type for synthesis. Use `Auto` to let the
                        system detect language.

                        - Use this when the text language is uncertain or
                        contains multiple languages. The model automatically
                        matches pronunciation for different language segments in
                        the text, but cannot guarantee perfectly accurate
                        pronunciation.

                        - Specify language: Use this when the text is in a
                        single language. Specifying the exact language
                        significantly improves synthesis quality, usually
                        outperforming `Auto`. Supported values include the
                        following:
                      default: Auto
                      example: Chinese
                    instructions:
                      type: string
                      description: >-
                        Optional. Style or delivery instructions, such as tone,
                        emotion, or speaking style. Only Chinese and English are
                        supported.
                      maxLength: 1600
                      example: Use a warm, friendly tone and a slightly slower pace.
                    optimize_instructions:
                      type: boolean
                      description: >-
                        Optimize the `instructions` to improve the naturalness
                        and expressiveness of speech synthesis.
                      default: false
                      example: true
            example:
              model: qwen3-tts/speech-synthesis
              callback_url: https://your-domain.com/api/callback
              input:
                text: >-
                  Welcome to Qwen3 TTS. We can synthesize natural speech in
                  multiple languages.
                voice: Serena
                language_type: English
                instructions: Speak clearly with a friendly, confident tone.
                optimize_instructions: true
      responses:
        '200':
          description: Request successful
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          task_id:
                            type: string
                            description: >-
                              Task ID, can be used with Get Task Details
                              endpoint to query task status
                            example: task_12345678
              example:
                code: 200
                message: success
                data:
                  task_id: task_12345678
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - type: object
                    properties:
                      errors:
                        type: array
                        description: Detailed validation error messages
                        items:
                          type: string
                        example:
                          - specific error field message
              example:
                code: 422
                message: Missing Params or Type Error
                errors:
                  - specific error field message
        '500':
          $ref: '#/components/responses/Error'
components:
  schemas:
    ApiResponse:
      type: object
      properties:
        code:
          type: integer
          enum:
            - 200
            - 401
            - 402
            - 404
            - 422
            - 429
            - 455
            - 500
            - 501
            - 505
          description: >-
            Response status code


            - **200**: Success - Request has been processed successfully

            - **401**: Unauthorized - Authentication credentials are missing or
            invalid

            - **402**: Insufficient Credits - Account does not have enough
            credits to perform the operation

            - **404**: Not Found - The requested resource or endpoint does not
            exist

            - **422**: Validation Error - The request parameters failed
            validation checks

            - **429**: Rate Limited - Request limit has been exceeded for this
            resource

            - **455**: Service Unavailable - System is currently undergoing
            maintenance

            - **500**: Server Error - An unexpected error occurred while
            processing the request

            - **501**: Generation Failed - Content generation task failed

            - **505**: Feature Disabled - The requested feature is currently
            disabled
        message:
          type: string
          description: Response message, error description when failed
          example: success
  responses:
    Error:
      description: Server Error
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        All APIs require authentication via API Key.


        Get API Key:

        1. Visit [API Key Management Page](https://crun.ai/user-api-key) to get
        your API Key


        Usage:

        Add to request header:


        x-api-key: YOUR_API_KEY


        Note:

        - Keep your API Key secure and do not share it with others

        - If you suspect your API Key has been compromised, reset it immediately
        in the management page

````