Seedream 5.0 Pro ist LIVE | Jetzt im Bildgenerator testen →

Qwen3 TTS Voice Design

wavespeed-ai /

Qwen3 TTS Voice Design: Generate speech with custom voice characteristics described in natural language. Ready-to-use REST inference API, best performance, no cold starts, affordable pricing.

text-to-audio
Eingabe

Bereit

$0.005pro Durchlauf·~200 / $1

BeispieleAlle anzeigen

Ähnliche Modelle

README

Qwen3-TTS Voice Design

Qwen3-TTS Voice Design is a next-generation text-to-speech model that lets you design custom voices using natural language descriptions. Instead of selecting from preset voices, simply describe the voice you want — age, gender, tone, speaking style — and the model generates speech that matches your description.

Why Choose This?

  • Natural language voice control Describe your ideal voice in plain text (e.g., "a warm, friendly female voice with a slight British accent") and the model creates it.

  • Unlimited voice variety No preset limits — create any voice character you can describe, from professional narrators to unique personas.

  • Multilingual support Generate speech in 10 languages: Chinese, English, German, Italian, Portuguese, Spanish, Japanese, Korean, French, and Russian.

  • Auto language detection Set language to "auto" and the model intelligently detects the language from your text.

Parameters

ParameterRequiredDescription
textYesThe text to convert to speech
voice_descriptionYesNatural language description of the desired voice
languageNoauto, Chinese, English, German, Italian, Portuguese, Spanish, Japanese, Korean, French, Russian (default: auto)

Voice Description Examples

  • "A young female voice, energetic and cheerful, speaking quickly with enthusiasm"
  • "An elderly male narrator with a deep, calm, authoritative tone"
  • "A professional newsreader voice, neutral and clear, with perfect pronunciation"
  • "A warm, friendly customer service representative, patient and helpful"
  • "A dramatic storyteller voice with expressive intonation and theatrical pauses"

How to Use

  1. Enter your text — write or paste the content you want to convert to speech.
  2. Describe your voice — use natural language to describe the voice characteristics you want (age, gender, tone, style, accent, etc.).
  3. Select language — choose the target language or use "auto" for automatic detection.
  4. Run — submit and download your audio file.

Pricing

Text LengthCost
Under 100 chars$0.005
100+ chars$0.005 per 100 characters

Billing Rules

  • Minimum charge: $0.005 (for texts under 100 characters)
  • For longer texts: $0.005 × (character count / 100)

Best Use Cases

  • Character Voices — Create unique voices for games, animations, or audiobooks without voice actors.
  • Prototyping — Quickly test different voice styles before committing to production.
  • Localization — Generate consistent voice styles across multiple languages.
  • Accessibility — Convert text to speech with customized, natural-sounding voices.
  • Content Creation — Produce voiceovers for videos, podcasts, and presentations.

Pro Tips

  • Be specific in your voice description — include age, gender, emotional tone, speaking pace, and any accent preferences.
  • Use descriptive adjectives: "warm", "crisp", "authoritative", "playful", "soothing", etc.
  • Mention the context if relevant (e.g., "suitable for a children's audiobook" or "professional corporate presentation").
  • Test with short text first to fine-tune your voice description before generating longer content.
  • Combine multiple attributes for more nuanced voices (e.g., "middle-aged, confident but approachable").

Notes

  • Voice descriptions work best when they are clear and detailed.
  • The same voice description will produce consistent results across multiple generations.
  • For best quality, match the language parameter to your text content.
Hinweis:Diese Website nutzt KI-Modelle von Drittanbietern.

Qwen3 Tts Voice Design API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/wavespeed-ai/qwen3-tts/voice-design with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Qwen3 Tts Voice Design below.

HTTP example
set -euo pipefail

: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"

REQUEST_BODY=$(cat <<'JSON'
{
    "text": "A clear example input",
    "voice_description": "example",
    "language": "auto"
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/qwen3-tts/voice-design" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $WAVESPEED_API_KEY" \
  -d "$REQUEST_BODY")

TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL=$(printf '%s' "$TASK" | jq -r '.urls.get // empty')
if [ -z "$RESULT_URL" ]; then
  RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"
fi

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
    -H "Authorization: Bearer $WAVESPEED_API_KEY")
  RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
  STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
  case "$STATUS" in
    completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
    failed|cancelled|timeout) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
    created|processing) sleep 2 ;;
    *) printf 'Unexpected status: %s
' "$STATUS" >&2; exit 1 ;;
  esac
done
Node.js example
const submitUrl = "https://api.wavespeed.ai/api/v3/wavespeed-ai/qwen3-tts/voice-design";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');

async function requestJson(url, options = {}) {
  const response = await fetch(url, options);
  if (!response.ok) throw new Error(await response.text());
  return response.json();
}

// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "text": "A clear example input",
        "voice_description": "example",
        "language": "auto"
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = task.urls?.get ||
  `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;

// 2. Poll until the prediction finishes.
while (true) {
  const resultBody = await requestJson(resultUrl, {
    headers: { "Authorization": `Bearer ${apiKey}` },
  });
  const result = resultBody.data ?? resultBody;
  if (result.status === "completed") {
    console.log(result.outputs);
    break;
  }
  if (["failed", "cancelled", "timeout"].includes(result.status)) throw new Error(JSON.stringify(result));
  if (!["created", "processing"].includes(result.status)) throw new Error("Unexpected status: " + result.status);
  await new Promise(resolve => setTimeout(resolve, 2000));
}
Python example
import json
import os
import time
from urllib.request import Request, urlopen

api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
    "text": "A clear example input",
    "voice_description": "example",
    "language": "auto"
}

def request_json(url, data=None):
    request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
    with urlopen(request) as response:
        return json.load(response)

# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/wavespeed-ai/qwen3-tts/voice-design", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
    raise RuntimeError("Submission response did not contain a prediction id")
result_url = task.get("urls", {}).get("get") or f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"

# 2. Poll until the prediction finishes.
while True:
    result_body = request_json(result_url)
    result = result_body.get("data", result_body)
    status = result.get("status")
    if status == "completed":
        print(result.get("outputs", []))
        break
    if status in {"failed", "cancelled", "timeout"}:
        raise RuntimeError(result)
    if status not in {"created", "processing"}:
        raise RuntimeError(f"Unexpected status: {status}")
    time.sleep(2)

Qwen3 Tts Voice Design API — Frequently asked questions

What is the Qwen3 Tts Voice Design API?

Qwen3 Tts Voice Design is a WaveSpeedAI model for audio generation, exposed as a REST API on WaveSpeedAI. Qwen3 TTS Voice Design: Generate speech with custom voice characteristics described in natural language. Ready-to-use REST inference API, best performance, no cold starts, affordable pricing. You can call it programmatically or try it from the playground above.

How do I call the Qwen3 Tts Voice Design API?

POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates production-oriented Python, JavaScript, and cURL examples with timeouts, transient-error handling, and safe GET retries. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/wavespeed-ai/qwen3-tts-voice-design.

How much does Qwen3 Tts Voice Design cost per run?

Qwen3 Tts Voice Design starts at $0.005 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.

What inputs does Qwen3 Tts Voice Design accept?

Key inputs: `language`, `text`, `voice_description`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/wavespeed-ai/qwen3-tts-voice-design.

How long does Qwen3 Tts Voice Design take to generate?

Median end-to-end generation time on WaveSpeedAI is around 15 seconds per request, based on recent successful runs. Queue time varies with global demand; live status is visible in the prediction record.

Can I use Qwen3 Tts Voice Design outputs commercially?

Commercial usage rights depend on the model's license, set by its provider (WaveSpeedAI). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.

Qwen3 TTS Voice Design | Realistic Voice & TTS API | WaveSpeedAI