Mureka
Mureka 9.5
mureka-9.5/lyrics-to-song
A music generation model with more restrained arrangements and more open space, closely following the prompt's genre, instrumentation, and mood, with more natural vocals; supports both instrumental-only and lyrics-to-song modes
Try mureka-9.5/lyrics-to-song
Input
Showcases
View all showcasesOutput
audioPricing
mureka-9.5/lyrics-to-song per request
| Unit Price | $0.3215 |
|---|
Positioning Overview
mureka-9.5/lyrics-to-song is a text-to-music model built for song generation: developers submit lyrics, optionally along with a style direction and a vocal gender preference, and the model outputs a complete audio track featuring sung vocals and arrangement. Compared with generation approaches that simply stack up audio layers, it places more emphasis on giving melody, vocals, and emotional progression room to breathe, so the result sounds closer to human-made production and the vocals come across as more natural and convincing. It suits independent musicians, content creators, and advertising teams who need to quickly turn lyrics into listenable song demos.
Key Highlights
- Lyrics drive the whole song — lyrics are a required input of up to 5,000 characters, and a complete track with sung vocals is generated in a single pass.
- Restrained arrangement with less mechanical stacking — the output makes more deliberate choices in its arrangement, leaving room for melody and emotional shifts, so it sounds closer to human-made production.
- Style and vocals can be specified as needed — an optional style description can define genre, mood, and instrumentation, while vocal gender specifies the lead singer's gender.
Capabilities
Generate a vocal song from lyrics: submit lyrics to get a complete audio track with lead vocals and arrangement, turning written lyrics directly into a finished, auditionable song.
Controllable style direction: use a style prompt of up to 2,000 characters to describe genre, mood, instrumentation, and vocal characteristics, so the result stays closer to your intended creative direction.
Lead vocal gender selection: choose female or male vocals for the lead according to the song's positioning, making it easy to quickly compare and iterate across multiple versions.
Natural vocal expression: the sung vocals are more natural and convincing in tone and emotion, well suited to song demos and content soundtracks that need vocal texture.
Use Cases
- Independent musicians turning lyric drafts into song demos — enter self-written lyrics and a style direction to get an auditionable version with vocals, used to evaluate melodic direction and arrangement internally.
- Content creators producing vocal theme songs — submit custom lyrics for short videos, podcasts, or games and produce song audio that can be used directly in intros and theme segments.
- Music prototypes for advertising and brand content — use lyrics and style prompts to generate song prototypes that match a brand's tone, for auditioning and confirming direction during the pitch stage.
- Multi-version iteration on the same lyrics — keep the lyrics fixed, swap the style prompt or lead vocal gender, and quickly produce multiple versions for A/B comparison and selection.
Limitations and Selection Advice
The output is audio only; it does not provide structured artifacts such as scores, MIDI, or stems, so engineering workflows that require post-editing must be handled separately. The arrangement style leans toward restraint and open space; if the goal is a large-ensemble, densely layered, grand arrangement, it is advisable to first validate the effect with a style prompt. Current performance notes come mostly from vendor descriptions and internal testing, with little independent third-party evaluation, so before making a formal selection, it is advisable to run samples with your actual lyrics for comparison. Lyrics are required; purely instrumental needs should use the instrumental route in the same family instead.
Create a generation task
https://api.hiapi.ai/v1/tasks Headers
AuthorizationstringRequiredAccount API key. Required on every request. Example: Bearer YOUR_HIAPI_API_KEY. Get your API key
Content-TypestringOptionalThe request body is always parsed as JSON; when sent, only application/json (optionally with charset) is accepted — any other value returns 415. Example: application/json.
Idempotency-KeystringOptionalIdempotency key, up to 255 bytes. Retries with the same key from the same account create the task only once; replays return the original taskId.
On network timeouts or client retries, the same key creates the task only once — no double charges (scope: the API key's account). Use a business-unique identifier as the key (e.g. "order-42"); replays return the original taskId, and keys expire 24 hours after the first request. See the Unified Async API overview for the full scenario matrix.
Body
modelstringRequiredCurrent fixed value: mureka-9.5/lyrics-to-song
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for mureka-9.5/lyrics-to-song and route default — see the parameter table below.
genderstringOptionalSpecifies the vocal gender of the lead singer for the generated song, as a string value, used to control the gender tendency of the lead vocals.
femalemalelyricsstringRequiredminLength 1maxLength 5000The lyrics text to be sung in the generated song, as a string, up to 5000 characters.
promptstringOptionalminLength 1maxLength 2000Optional description of the song's musical style, covering genre, mood, instrumentation, arrangement, and vocal characteristics, as a string, up to 2000 characters.
callbackobjectOptional
Terminal-state notification config. When omitted, no callback is delivered — poll the task yourself. See the callback note below.
Provide callback.url when creating a task and HiAPI POSTs to your service once the task reaches a terminal state — no polling needed. The callback payload mirrors the task detail structure; signature verification, delivery retries and idempotency are documented on the Unified Async API overview page.
urlstringRequiredRequired when callback is present. A POST is sent to this URL once the task reaches a terminal state; must be a valid http(s) URL.
whenstringOptionalDefault: "final"Only final is supported today — notified on both success and fail.
finalstoragestringOptionalDefault: "temp"Artifact storage tier: temp (default, retained about 7 days) or persistent (long-term, billed by size). Insufficient balance or exceeding the storage cap silently downgrades to temp; the effective tier is shown in the task detail response.
temppersistentRequest examples
# Submit an async task; returns a taskId immediately (no waiting for generation)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "mureka-9.5/lyrics-to-song",
"input": {
"lyrics": "…"
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "mureka-9.5/lyrics-to-song",
input: {
"lyrics": "…"
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "mureka-9.5/lyrics-to-song",
"input": {
"lyrics": "…"
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Get task detail
https://api.hiapi.ai/v1/tasks/:id Response fields
taskIdstringRequiredTask ID, always prefixed with tk-hiapi-.
modelstringRequiredResolved full model name. Tasks submitted with the route parameter return base@route (e.g. gpt-image-2/text-to-image@ext); otherwise identical to the name passed at creation.
routestringOptionalPresent only when the task was submitted with an explicit route parameter; echoes the submitted value.
statusstringRequiredTask status.
queued Queued, not started yet.
handling Being processed.
archiving Processing finished, artifacts being prepared.
success Terminal: completed, artifacts available (output returned).
fail Terminal: failed (error returned).
After submission, check status: success and fail are terminal, everything else is non-terminal. Poll every 1–3 seconds until terminal. On success, download artifacts from output[].url and transfer them before expireAt; pass storage: "persistent" at creation time when long-term retention is needed.
creatednumberRequiredTask creation time (Unix seconds).
completednumberRequiredUnix seconds when the task reached a terminal state; fixed to 0 while not terminal.
outputarrayOptional
Present only when status == success. Artifact list — always an array; a single task may return multiple types at once (e.g. video + first_frame).
Array [ object ]
Array items
urlstringRequiredArtifact URL, directly downloadable.
typestringRequiredCurrent possible values: video, image, audio, first_frame, last_frame, thumbnail; more may be added later.
expireAtnumberRequiredUnix seconds until which the artifact remains accessible; download or transfer before it expires.
errorobjectOptional
Present only when status == fail.
codestringRequiredBusiness error code.
messagestringRequiredError description.
Response examples
Success
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} Processing (non-terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Failed
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articles
View all articles →Related Models
View all models →Same Type
-
Gemini 3.1 Flash TTS Google -- -
ElevenLabs ElevenLabs $0.0029 /second -
Qwen Audio 3.0 TTS Alibaba $0.030 /1,000 characters -
Lyria 3.5 Google $0.090 /song -
MiniMax Music 3 MiniMax $0.0026 /second -
Lyria 3 Pro Google $0.140 /song -
Mirelo SFX 2.0 Mirelo AI $0.021 /second -
MiniMax Music 2.6 MiniMax $0.210 /song -
MiniMax Music 1.5 MiniMax $0.070 /song -
Mureka 9.5 Mureka $0.322 per request



