Seedream 5.0 Pro 正式上线 | 在图像生成器中体验 →

ACE Step Prompt to Audio

wavespeed-ai /

ACE-Step Prompt-to-Audio creates music from simple prompts, auto-generating genre tags and lyrics for quick song creation. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

text-to-audio
输入

就绪

$0.0002每次运行·~5000 / $1

示例查看全部

A jazzy chillout track with a cozy vibe about rainy evenings in a quiet café.

A mellow acoustic song with a warm vibe about walking through autumn leaves in the park.

A chill indie pop song with a relaxed vibe about lazy mornings by the seaside.

A synthwave instrumental with a dreamy vibe about cruising through neon-lit city streets at night.

相关模型

README

ACE-Step — Prompt to Audio 🎶

ACE-Step Prompt-to-Audio is an intelligent music generation model that composes full-length audio tracks directly from text prompts. Simply describe the sound you want — from chill jazz to cinematic orchestral — and ACE-Step creates a polished piece in seconds.

✨ Key Features

  • Prompt-to-Music Creation Just write your idea in plain language. For example: “A jazzy chillout track with a cozy vibe about rainy evenings in a quiet café.”

  • Instrumental Mode Toggle the instrumental option to generate music without vocals — perfect for background use, podcasts, or film scoring.

  • Duration Control Use the slider to set your track length — anywhere from a few seconds to full-minute compositions (e.g., 60s).

  • Seed for Reproducibility Set the seed value to recreate the same song later, or randomize it for unique variations.

  • Genre & Emotion Understanding The model interprets keywords like “jazzy,” “dark,” “energetic,” “melancholic,” and blends rhythm, instruments, and mood accordingly.

🎧 Use Cases

  • Music Production & Songwriting — Draft melodies, instrumentals, or complete compositions in seconds.
  • Film, Game & Animation Scoring — Create background themes, ambient layers, and emotional moments effortlessly.
  • Social Media & Marketing — Produce custom soundtracks for reels, ads, or brand videos.
  • Education & Experimentation — Teach musical structure or explore AI-based composition.
  • Creative Exploration — Turn story ideas, emotions, or visual scenes into sound.

🧠 Example Prompts

  • “A cheerful pop song about summer memories.”
  • “Dark electronic beat with deep bass and atmospheric pads.”
  • “Calm piano and violin piece inspired by sunrise.”
  • “Lo-fi hip-hop track for late-night studying.”
  • “Epic orchestral theme with rising intensity.”

⚙️ How to Use

  1. Enter a prompt describing mood, genre, or theme.
  2. (Optional) Enable Instrumental for vocal-free music.
  3. Adjust duration with the slider (e.g., 30s, 45s, 60s).
  4. Set seed for reproducibility (or keep random for new results).
  5. Click Generate — and listen to your AI-composed track.

💰 Pricing

MetricPrice
Per second of generated audio$0.0002 / s

🎵 Summary

ACE-Step Prompt-to-Audio transforms words into music — from short jingles to full-length compositions. It’s your AI-powered music studio, ready to help musicians, creators, and filmmakers bring sound to life with just a sentence.

提示:本网站部分功能由第三方 AI 模型提供支持。

Ace Step Prompt To Audio API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/wavespeed-ai/ace-step/prompt-to-audio 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 Ace Step Prompt To Audio below.

HTTP example
set -euo pipefail

: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"

REQUEST_BODY=$(cat <<'JSON'
{
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "instrumental": false,
    "duration": 60,
    "seed": -1
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/ace-step/prompt-to-audio" \
  -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/ace-step/prompt-to-audio";
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({
        "prompt": "A cinematic shot of a city at sunset, soft golden light",
        "instrumental": false,
        "duration": 60,
        "seed": -1
}),
});
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 = {
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "instrumental": False,
    "duration": 60,
    "seed": -1
}

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/ace-step/prompt-to-audio", 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)

Ace Step Prompt To Audio API — Frequently asked questions

What is the Ace Step Prompt To Audio API?

Ace Step Prompt To Audio is a WaveSpeedAI model for audio generation, exposed as a REST API on WaveSpeedAI. ACE-Step Prompt-to-Audio creates music from simple prompts, auto-generating genre tags and lyrics for quick song creation. 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 Ace Step Prompt To Audio 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/ace-step-prompt-to-audio.

How much does Ace Step Prompt To Audio cost per run?

Ace Step Prompt To Audio starts at $0.000 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 Ace Step Prompt To Audio accept?

Key inputs: `prompt`, `duration`, `seed`, `instrumental`. 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/ace-step-prompt-to-audio.

How long does Ace Step Prompt To Audio take to generate?

Median end-to-end generation time on WaveSpeedAI is around 9 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 Ace Step Prompt To Audio 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.

ACE Step Prompt to Audio | Realistic Voice & TTS API | WaveSpeedAI