ACE Step Audio Outpaint
التكامل
ace-step/audio-outpaint
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/ace-step/audio-outpaint?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
"tags": "lofi, hiphop, drum and bass, trap, chill"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/ace-step/audio-outpaint?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
"tags": "lofi, hiphop, drum and bass, trap, chill"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
"tags": "lofi, hiphop, drum and bass, trap, chill",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/ace-step/audio-outpaint", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
# 1. Connect once (Claude Code; Cursor, VS Code, Claude Desktop: https://doitong.com/ar/developers/docs/mcp)
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "ace-step/audio-outpaint",
"input": {
"audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
"tags": "lofi, hiphop, drum and bass, trap, chill"
}
}
استدعِ نموذج ACE Step Audio Outpaint (ace-step/audio-outpaint) عبر Doitong API. توثيق الوكلاء: https://doitong.com/ar/developers/models/ace-step/audio-outpaint.md
POST https://api.doitong.com/v1/run/ace-step/audio-outpaint?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
"tags": "lofi, hiphop, drum and bass, trap, chill"
}
إذا كانت حالة الاستجابة "queued" أو "running"، فأرسل طلبات GET إلى https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 حتى تصبح "succeeded"؛ توجد الملفات في outputs[].url. يعيد POST https://api.doitong.com/v1/quote/ace-step/audio-outpaint مع نفس النص الأساسي السعر الدقيق قبل التشغيل.
ملفات مثل المثال: 0.006 $ 6 أرصدة API تُقاس ملفاتك قبل التشغيل تشغيله في هذه الصفحة
مفتاح API الجديد الخاص بك. يظهر الآن فقط، وهو مُدرج بالفعل في الشيفرة وفي حقل مفتاح API أدناه. احتفظ به سريًا: لا تضعه أبدًا في شيفرة تعمل في المتصفح.
ستظهر نتيجتك الأولى هنا
أنشئ طلبًا أدناه وشغّله باستخدام مفتاح API الخاص بك. تُنسخ المخرجات إلى تخزيننا، وتُحفظ إلى الأبد أو لمدة 7 أيام مجانًا.
إنشاء طلب
تُنشأ عناصر التحكم من مخطط النموذج. يتحدّث الرمز والسعر عند تغييرها.
/run/ace-step/audio-outpaint?wait=20
عرض السعر → 0.006 $
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/ace-step/audio-outpaint?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
"tags": "lofi, hiphop, drum and bass, trap, chill"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/ace-step/audio-outpaint?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
"tags": "lofi, hiphop, drum and bass, trap, chill"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
"tags": "lofi, hiphop, drum and bass, trap, chill",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/ace-step/audio-outpaint", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "run",
"arguments": {
"model_id": "ace-step/audio-outpaint",
"input": {
"audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
"tags": "lofi, hiphop, drum and bass, trap, chill"
},
"wait_seconds": 20
}
}
}
تشغيل هذا الطلب
يبقى مفتاحك في هذا المتصفح: لا يُرسل إلا إلى Doitong API ويُحفظ في localStorage فقط إذا فعّلت خيار التذكّر. الحصول على مفتاح API
حول ACE Step Audio Outpaint
يواصل مسارًا مقدمًا عبر `audio_url`. يضيف كل من `extend_before_duration` و`extend_after_duration` مدة تصل إلى 107 ثوانٍ في البداية أو النهاية، والقيمة الافتراضية هي 30 ثانية بعد النهاية. يأتي الأسلوب من `tags`، مع إمكانية إضافة `lyrics` للأجزاء الجديدة. تتطابق إعدادات عدد الخطوات والمجدول والتوجيه مع نماذج ACE Step الأخرى.
المعاملات
أرسل الاسم الأساسي أو الاسم الأصلي، وليس كليهما. الأسماء الأساسية
audio_urlمطلوب
audio
extend_before_durationاختياري
extend_after_durationاختياري
tagsمطلوب
lyricsاختياري
number_of_stepsاختياري
seedاختياري
schedulerاختياري
guidance_typeاختياري
granularity_scaleاختياري
guidance_intervalاختياري
guidance_interval_decayاختياري
guidance_scaleاختياري
minimum_guidance_scaleاختياري
tag_guidance_scaleاختياري
lyric_guidance_scaleاختياري
تقبل معاملات الملفات عنوان URL عامًا يبدأ بـ https://، أو URI من نوع data: يصل حجمه إلى 10 MB، أو file_url لملف تم تحميله. الملفات
المخرجات
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "ace-step/audio-outpaint",
"status": "succeeded",
"created_at": "2026-10-20T12:00:00Z",
"started_at": "2026-10-20T12:00:02Z",
"completed_at": "2026-10-20T12:00:09Z",
"queue_position": null,
"cost": {
"credits": 6,
"usd": "0.006",
"charged": 6,
"refunded": 0
},
"input": {
"tags": "lofi, hiphop, drum and bass, trap, chill",
"audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
},
"output": {
"audio": {
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp3",
"content_type": "audio/mpeg",
"file_name": "0-output.mp3",
"file_size": 1843200
},
"seed": 42,
"tags": "lofi, hiphop, drum and bass, trap, chill",
"lyrics": "[inst]"
},
"outputs": [
{
"type": "audio",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp3",
"content_type": "audio/mpeg",
"file_size": 1843200,
"duration": 12,
"stored": true
}
],
"error": null,
"metrics": {
"inference_seconds": 6.8
},
"urls": {
"self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
حقول المخرجات
- audio
- object {url, content_type, file_name, file_size}ملف الصوت الناتج عن التوليد.
- seed
- integerالبذرة العشوائية المستخدمة أثناء التوليد.
- tags
- stringوسوم النوع المطبّقة أثناء التوليد.
- lyrics
- stringالكلمات المطبّقة أثناء التوليد.
أنواع ACE Step الأخرى
مزيد من النماذج: تحويل النص إلى موسيقى
لوكلاء الذكاء الاصطناعي: تتوفر هذه الصفحة بصيغة Markdown على https://doitong.com/ar/developers/models/ace-step/audio-outpaint.md. جميع النماذج والأدلة: https://doitong.com/developers/llms.txt