# Qwen 3 TTS Text to Speech 1.7B text to speech fal AI

Needs text.

Qwen 3 TTS - Text to Speech [1.7B], served by fal.ai. $0.09 per 1000 characters Text is limited to 5000 characters; the exact receipt determines the final charge. Asynchronous: returns a request_id; poll fal/status and fetch fal/result with model "fal-ai/qwen-3-tts" and that request_id. The exact endpoint/request billing receipt is required before settlement.

- Tool ID: `fal/fal-ai-qwen-3-tts-text-to-speech-1-7b`
- Name in the catalog: Qwen 3 TTS - Text to Speech \[1.7B\], text to speech
- Provider: [fal.ai](/providers/fal.md)
- Capability: [AI audio](/tools/audio-generation.md)
- Price: $0.09 per 1,000 characters
- Authentication: an authorised Agentik workspace is required for execution, including zero-price tools.

## Pricing contract

The provider’s price, with no markup. Billed for measured usage.


```json
{
  "model": "per_unit",
  "amountUsd": 0.09,
  "unitsField": "text",
  "unitsMeasure": "chars",
  "unitsPer": 1000,
  "fractional": true,
  "maxUnits": 10
}
```

Pricing source: [https://fal.ai/models/fal-ai/qwen-3-tts/text-to-speech/1.7b/llms.txt](https://fal.ai/models/fal-ai/qwen-3-tts/text-to-speech/1.7b/llms.txt). $0.09 per 1000 characters Text is limited to 5000 characters; the exact receipt determines the final charge..

Price verification date: 2026-11-03.

## Complete input schema


```json
{
  "type": "object",
  "properties": {
    "prompt": {
      "description": "Optional prompt to guide the style of the generated speech. This prompt will be ignored if a speaker embedding is provided.",
      "title": "Prompt",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "subtalker_dosample": {
      "default": true,
      "description": "Sampling switch for the sub-talker.",
      "title": "Subtalker Dosample",
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ]
    },
    "subtalker_temperature": {
      "default": 0.9,
      "description": "Temperature for sub-talker sampling.",
      "title": "Subtalker Temperature",
      "anyOf": [
        {
          "maximum": 1,
          "minimum": 0,
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "temperature": {
      "default": 0.9,
      "description": "Sampling temperature; higher => more random.",
      "title": "Temperature",
      "anyOf": [
        {
          "maximum": 1,
          "type": "number",
          "exclusiveMinimum": 0
        },
        {
          "type": "null"
        }
      ]
    },
    "max_new_tokens": {
      "default": 200,
      "description": "Maximum number of new codec tokens to generate.",
      "title": "Max New Tokens",
      "anyOf": [
        {
          "maximum": 8192,
          "minimum": 1,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "enum": [
        200
      ]
    },
    "voice": {
      "description": "The voice to be used for speech synthesis, will be ignored if a speaker embedding is provided. Check out the **[documentation](https://github.com/QwenLM/Qwen3-TTS/tree/main?tab=readme-ov-file#custom-voice-generate)** for each voice's details and which language they primarily support.",
      "title": "Voice",
      "anyOf": [
        {
          "enum": [
            "Vivian",
            "Serena",
            "Uncle_Fu",
            "Dylan",
            "Eric",
            "Ryan",
            "Aiden",
            "Ono_Anna",
            "Sohee"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "subtalker_top_p": {
      "default": 1,
      "description": "Top-p for sub-talker sampling.",
      "title": "Subtalker Top P",
      "anyOf": [
        {
          "maximum": 1,
          "minimum": 0,
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "subtalker_top_k": {
      "default": 50,
      "description": "Top-k for sub-talker sampling.",
      "title": "Subtalker Top K",
      "anyOf": [
        {
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ]
    },
    "language": {
      "default": "Auto",
      "enum": [
        "Auto",
        "English",
        "Chinese",
        "Spanish",
        "French",
        "German",
        "Italian",
        "Japanese",
        "Korean",
        "Portuguese",
        "Russian"
      ],
      "description": "The language of the voice.",
      "title": "Language",
      "type": "string"
    },
    "text": {
      "description": "The text to be converted to speech.",
      "title": "Text",
      "type": "string",
      "maxLength": 5000,
      "minLength": 1
    },
    "repetition_penalty": {
      "default": 1.05,
      "description": "Penalty to reduce repeated tokens/codes.",
      "title": "Repetition Penalty",
      "anyOf": [
        {
          "minimum": 0,
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "enable_safety_checker": {
      "default": true,
      "description": "Authorized callers may set false to request relaxed screening.",
      "title": "Enable Safety Checker",
      "type": "boolean"
    },
    "top_k": {
      "default": 50,
      "description": "Top-k sampling parameter.",
      "title": "Top K",
      "anyOf": [
        {
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ]
    },
    "top_p": {
      "default": 1,
      "description": "Top-p sampling parameter.",
      "title": "Top P",
      "anyOf": [
        {
          "maximum": 1,
          "minimum": 0,
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "text"
  ],
  "additionalProperties": false
}
```

## Published example

This is the provider tool’s published example. Replace example values with the user’s requested inputs, respecting the schema; do not execute an example merely to test a connection.


```json
{
  "tool_id": "fal/fal-ai-qwen-3-tts-text-to-speech-1-7b",
  "input": {
    "text": "I am solving the equation: x = [-b ± √(b²-4ac)] / 2a? Nobody can — it's a disaster (◍•͈⌔•͈◍), very sad!",
    "max_new_tokens": 200,
    "subtalker_dosample": true,
    "subtalker_temperature": 0.9,
    "temperature": 0.9,
    "subtalker_top_p": 1,
    "subtalker_top_k": 50,
    "language": "Auto",
    "repetition_penalty": 1.05,
    "enable_safety_checker": true,
    "top_k": 50,
    "top_p": 1
  }
}
```

## Execute and retrieve

Inspect again before execution, explain the price and obtain the required authority. Use MCP run_tool or POST /v1/run with this tool ID, valid input and an idempotency key. Save the returned run ID and follow the actual state. If Agentik answers that the tool is temporarily unavailable, do not retry it blindly; use discovery to propose an alternative.

This tool uses deferred settlement. Follow its returned task/run instructions; preserve the existing reservation until the result is reconciled.

A partial or uncertain result can still have consumed provider resources. Consult [billing](/docs/billing.md), [idempotency](/docs/idempotency.md) and [asynchronous results](/docs/async.md).

[Provider documentation](https://fal.ai/models/fal-ai/qwen-3-tts/text-to-speech/1.7b)

[REST inspection](https://api.agentik.cc/v1/tools/fal/fal-ai-qwen-3-tts-text-to-speech-1-7b) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/fal/fal-ai-qwen-3-tts-text-to-speech-1-7b) · [Agent index](/llms.txt)
