Seedream 5.0 Pro เปิดให้ใช้งานแล้ว | ลองใช้ในเครื่องสร้างรูปภาพ →
เข้าสู่ระบบ

Voice Clone

minimax /

Minimax Voice Clone creates high-quality voice clones from short reference clips, closely matching tone, accent, and speaking style. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

audio-to-audio
อินพุต

ว่าง

$0.5ต่อครั้ง·~20 / $10

ตัวอย่างดูทั้งหมด

โมเดลที่เกี่ยวข้อง

README

MiniMax Voice Clone

MiniMax Voice Clone is a state-of-the-art voice synthesis and cloning pipeline from MiniMax. It turns a short reference clip into a reusable voice ID, then uses MiniMax Speech models to generate speech that closely matches the speaker’s timbre, accent, and style. The system is built on the MiniMax Speech-02 and Speech-2.6 families, which deliver high-fidelity, multilingual, low-latency TTS for production use.

Now we also supports MiniMax’s latest generation models: Speech 2.6 HD and Speech 2.6 Turbo.

Key Features

  • High-Fidelity Voice Cloning Generates speech that is perceptually very close to the reference speaker, with natural prosody, clear pronunciation, and stable timbre across long passages.

  • Few-Second Voice Adaptation Uses a learnable speaker encoder to extract timbre from just a few seconds of audio, enabling fast, zero-/one-shot voice cloning without transcription.

  • Emotion and Style Control Exposes parameters for speaking rate, pitch, loudness, and emotion, making it suitable for storytelling, dialogue, gaming characters, and branded voices.

  • Multilingual & Cross-Lingual Output Supports dozens of languages (30+ in Speech-02 and 40+ in Speech-2.6 on WaveSpeedAI), with robust accent control and smooth code-switching between languages.

  • Low-Latency Inference Speech-02-Turbo and Speech-2.6-Turbo are optimized for real-time scenarios, with end-to-end latency in the sub-second range and < 250 ms reported for 2.6 in typical interactive settings.

Use Cases

  • AI voiceovers for YouTube, TikTok, and other content platforms
  • Personalized digital assistants and customer-service bots
  • Audiobook and podcast narration in a specific, consistent voice
  • In-game characters, VTubers, and interactive story experiences
  • Assistive speech applications for users who have lost or cannot safely use their natural voice

Model Overview

MiniMax Voice Clone is built around a neural TTS pipeline with:

  • A speaker encoder that extracts a compact voice embedding from a short reference clip
  • A text-to-audio generator (Speech-02 / Speech-2.6 HD or Turbo) that conditions on both text and the voice embedding
  • Optional controls for language, pace, pitch, and emotion

This design combines the clarity of studio-grade TTS with flexible voice cloning, making it suitable for both offline content production and real-time agents.

How to Use

  • Upload or paste your reference audio

  • In the audio field, upload a short, clean voice clip (or paste a direct URL). Around 5–20 seconds of speech without background music works best.

  • Set custom_voice_id

  • Choose a new, descriptive ID (for example: Alice-001).

  • This ID must be unique across your account.

  • If you reuse an existing ID when creating a new clone, the request will fail with a “voice clone voice id duplicate” error.

  • Select the speech model: Such as speech-02-hd.

  • Enter the output text

  • In the text field, type what you want the cloned voice to say.

Example: “Hello! Welcome to WaveSpeedAI. This is a preview of your cloned voice.”

  • Run the job
  • After it finishes, you can replay and download the audio.

Optional: Enable enhancements

  • Turn on need_noise_reduction if your reference audio has background noise.

  • Turn on need_volume_normalization to even out volume differences.

  • Adjust the accuracy slider if available: higher values make cloning closer to the reference, lower values make it more forgiving to noisy audio.

The custom_voice_id you used is now available for reuse in the supported MiniMax speech models.

Price

  • Just $0.5 per run!

Supported Speech Models on WaveSpeedAI

Your cloned voice IDs can be used directly with the following MiniMax speech models on WaveSpeedAI:

Voice ID Persistence (Important)

To keep your cloned voice reusable in the long term:

  • Any new voice ID must be used at least once with one of the MiniMax speech models above (02 HD/Turbo or 2.6 HD/Turbo).
  • If a voice ID is created but never used in a speech generation request, WaveSpeedAI can only retain it for 7 days. After 7 days of inactivity, the ID and its associated embedding are deleted and can no longer be called from our API.
หมายเหตุ:เว็บไซต์นี้ใช้โมเดล AI ที่จัดหาโดยบุคคลที่สาม

Voice Clone API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/minimax/voice-clone 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 Voice Clone below.

HTTP example
set -euo pipefail

: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"

REQUEST_BODY=$(cat <<'JSON'
{
    "audio": "https://interactive-examples.mdn.mozilla.net/media/cc0-audio/t-rex-roar.mp3",
    "custom_voice_id": "example",
    "model": "speech-02-hd",
    "need_noise_reduction": false,
    "need_volume_normalization": false,
    "accuracy": 0.7,
    "language_boost": "Chinese"
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/minimax/voice-clone" \
  -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/minimax/voice-clone";
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({
        "audio": "https://interactive-examples.mdn.mozilla.net/media/cc0-audio/t-rex-roar.mp3",
        "custom_voice_id": "example",
        "model": "speech-02-hd",
        "need_noise_reduction": false,
        "need_volume_normalization": false,
        "accuracy": 0.7,
        "language_boost": "Chinese"
}),
});
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 = {
    "audio": "https://interactive-examples.mdn.mozilla.net/media/cc0-audio/t-rex-roar.mp3",
    "custom_voice_id": "example",
    "model": "speech-02-hd",
    "need_noise_reduction": False,
    "need_volume_normalization": False,
    "accuracy": 0.7,
    "language_boost": "Chinese"
}

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/minimax/voice-clone", 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)

Voice Clone API — Frequently asked questions

What is the Voice Clone API?

Voice Clone is a MiniMax model for AI inference, exposed as a REST API on WaveSpeedAI. Minimax Voice Clone creates high-quality voice clones from short reference clips, closely matching tone, accent, and speaking style. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.

How do I call the Voice Clone 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/minimax/minimax-voice-clone.

How much does Voice Clone cost per run?

Voice Clone starts at $0.50 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 Voice Clone accept?

Key inputs: `audio`, `accuracy`, `custom_voice_id`, `language_boost`, `model`, `need_noise_reduction`. 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/minimax/minimax-voice-clone.

How long does Voice Clone take to generate?

Median end-to-end generation time on WaveSpeedAI is around 12 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 Voice Clone outputs commercially?

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

Voice Clone | Realistic Voice & TTS API | WaveSpeedAI