Mureka 9.5 Song Generation
Integruoti
mureka/api/generate/song
# 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/mureka/api/generate/song?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}'
# 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/mureka/api/generate/song?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}),
});
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 = {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/mureka/api/generate/song", 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/lt/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": "mureka/api/generate/song",
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}
}
Iškvieskite Mureka 9.5 Song Generation modelį (mureka/api/generate/song) per Doitong API. Dokumentacija agentams: https://doitong.com/lt/developers/models/mureka/api/generate/song.md
POST https://api.doitong.com/v1/run/mureka/api/generate/song?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}
Jei atsakymo būsena yra "queued" arba "running", siųskite GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 užklausas, kol būsena taps "succeeded"; failai pateikiami outputs[].url. POST https://api.doitong.com/v1/quote/mureka/api/generate/song su tuo pačiu turiniu grąžina tikslią kainą prieš paleidimą.
Failai kaip pavyzdyje: 0,75 $ 750 API kreditų jūsų failai išmatuojami prieš paleidimą Paleisti šiame puslapyje
Jūsų naujas API raktas. Jis rodomas tik dabar ir jau įrašytas kode bei toliau esančiame API rakto lauke. Saugokite jį paslaptyje: niekada nedėkite jo į kodą, kuris vykdomas naršyklėje.
Čia bus pirmasis jūsų rezultatas
Sukurkite užklausą toliau ir paleiskite ją naudodami savo API raktą. Išvestys nukopijuojamos į mūsų saugyklą ir saugomos neribotą laiką arba 7 dienos nemokamai.
Sukurti užklausą
Valdikliai sugeneruojami pagal modelio schemą. Keisdami juos atnaujinsite kodą ir kainą.
/run/mureka/api/generate/song?wait=20
kaina → 0,75 $
# 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/mureka/api/generate/song?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}'
# 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/mureka/api/generate/song?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
}),
});
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 = {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/mureka/api/generate/song", 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": "mureka/api/generate/song",
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
},
"wait_seconds": 20
}
}
}
Vykdyti šią užklausą
Jūsų raktas lieka šioje naršyklėje: jis siunčiamas tik į Doitong API ir išsaugomas (localStorage) tik pažymėjus Prisiminti. Gauti API raktą
Apie Mureka 9.5 Song Generation
Dainai iš žodžių naudokite `lyrics` (iki 5000 simbolių), o dainai iš užklausos – `prompt` (iki 2000) ir `styles`. Parinktys apima `gender`, `reference_id`, `vocal_id` ir `melody_id`. `model` sąraše pateikiami mureka-7.6, mureka-o2, mureka-8, mureka-9 ir mureka-9.5 (numatytoji). Grąžinamas garsas, trukmė ir `song_id`.
Parametrai
modelneprivalomas
lyricsneprivalomas
stylesneprivalomas
promptneprivalomas
genderneprivalomas
reference_idneprivalomas
vocal_idneprivalomas
melody_idneprivalomas
enable_safety_checkerneprivalomas
Išvestis
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "mureka/api/generate/song",
"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": 750,
"usd": "0.75",
"charged": 750,
"refunded": 0
},
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
},
"output": {
"song_id": "string",
"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
},
"duration": 5,
"lyrics_sections": [
{
"section_type": "intro",
"start": 1,
"end": 1,
"lines": [
{}
]
}
]
},
"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"
}
}
Išvesties laukai
- song_id
- string | nullPakartotinai naudojamas garso identifikatorius galiniams taškams, priimantiems song_id.
- audio
- object {url, content_type, file_name, file_size}Generuojant sukurtas garso failas.
- duration
- integer | nullSugeneruoto garso trukmė milisekundėmis, jei prieinama.
- lyrics_sections
- array of object {section_type, start, end, lines} | nullSugeneruoto garso dainos teksto sekcijos su laiko informacija, jei prieinama.
Kiti Mureka 9.5 variantai
Daugiau modelių: Tekstas į muziką
AI agentams: šis puslapis Markdown formatu pateikiamas adresu https://doitong.com/lt/developers/models/mureka/api/generate/song.md. Visi modeliai ir vadovai: https://doitong.com/developers/llms.txt