TL;DR
- 它是什么:Mureka 9.5 是音乐生成模型,在 HiAPI 上有两条线路——歌词成歌提交完整歌词,返回带主唱、和声和伴奏的成品歌;纯音乐只提交一段描述,返回无人声器乐。Mureka 9.5 已在 HiAPI 上线,打开歌词成歌模型页 就能在线试听和生成,新用户注册送 200 积分。
- 多少钱:每次成功生成 $0.3215(643 积分),两条线路同价,与歌词长度和输出时长无关,失败退预扣。$10 约 31 首。
- 最快怎么跑通:模型页贴歌词、选主唱、点运行;接进自己的产品就走
POST /v1/tasks,model写mureka-9.5/lyrics-to-song,拿taskId轮询取 URL。
Mureka 9.5 是什么?
歌词已经定稿,缺的是一首唱出来的成品:Mureka 9.5 的歌词成歌线路把这件事压缩成一次请求。你把完整歌词放进 lyrics,用可选的 prompt 补曲风、情绪、乐器、节奏和人声特征,用 gender 固定主唱是女声还是男声,一次返回一首混好的歌,输出 MP3、44.1 kHz 立体声、约 256 kbps。

站内三首真实案例的长度分别是 1:49、3:02 和 3:30,都来自同一条线路、同一个单价。它不提供自动写词,也不接收参考曲或旋律,输入的边界就是歌词加一段曲风方向。
两条线路有什么区别
| 歌词成歌 | 纯音乐 | |
|---|---|---|
| 模型 ID | mureka-9.5/lyrics-to-song | mureka-9.5/instrumental |
| 必填字段 | lyrics(1–5,000 字符) | prompt(1–1,024 字符) |
| 可选字段 | prompt(1–2,000 字符)、gender(female / male) | 无 |
| 输出 | 完整人声歌曲 | 无人声器乐 |
| 时长 | 由模型根据歌词结构决定 | 由模型决定,没有时长参数 |
| 单价 | $0.3215 / 次 | $0.3215 / 次 |
要人声歌就走左边,要配乐就走右边。两边都不让你填时长,站内三段纯音乐案例是 3:12、3:08 和 3:03。
在线试用:4 步
- 打开歌词成歌模型页,页面上能直接听站内三首案例。
- 在歌词框里按行贴入完整歌词,用
[Verse 1]、[Chorus]这样的段落标记分段。 - 风格方向框写曲风、情绪、乐器和人声特征;主唱性别选女声或男声。
- 点「运行」,等任务结束就能播放和下载。每一次 $0.3215。
纯音乐把第 2 步换成一段器乐描述,打开纯音乐模型页 同样四步。
第一次试,风格方向可以直接用这条:
Warm indie-pop song with a bright female lead vocal, chiming guitars, steady live drums and a wide sing-along chorus, hopeful late-night mood.
点开后会填进风格方向框,再贴四句自己的歌词、主唱选女声,就能跑第一首。
API 接入:4 步
- 注册后在控制台创建 API Key。
POST https://api.hiapi.ai/v1/tasks提交model和input。- 从返回的
data.taskId拿任务 ID,轮询GET /v1/tasks/{taskId}或等回调。 - 状态变成
success后,从data.output取type=audio的条目,下载 MP3。
歌词成歌:curl
curl -s -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "mureka-9.5/lyrics-to-song",
"input": {
"lyrics": "[Verse 1]\nCity lights are waking up\nEvery window starts to glow\n[Chorus]\nWe keep moving through the night\nEvery shadow turns to gold",
"prompt": "Warm indie-pop song with a bright female lead vocal, chiming guitars, steady live drums and a wide sing-along chorus, hopeful late-night mood.",
"gender": "female"
}
}'
返回里取任务 ID:
{"code":200,"data":{"taskId":"tk-hiapi-..."},"message":"success"}
纯音乐:curl
curl -s -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "mureka-9.5/instrumental",
"input": {
"prompt": "Cinematic orchestral instrumental with a fragile piano ostinato, evolving string swells, low brass and soft timpani, hopeful then resolute, wide film-score reverb."
}
}'
查状态:
curl -s https://api.hiapi.ai/v1/tasks/YOUR_TASK_ID \
-H "Authorization: Bearer YOUR_API_KEY"
data.status 依次可能为 queued、handling、success 或 fail。
Python:建任务、轮询、取链接
import time
import requests
BASE = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
payload = {
"model": "mureka-9.5/lyrics-to-song",
"input": {
"lyrics": "[Verse 1]\nCity lights are waking up\nEvery window starts to glow\n[Chorus]\nWe keep moving through the night\nEvery shadow turns to gold",
"prompt": "Warm indie-pop song with a bright female lead vocal, chiming guitars, steady live drums and a wide sing-along chorus, hopeful late-night mood.",
"gender": "female",
},
}
resp = requests.post(BASE, headers=HEADERS, json=payload, timeout=30)
task_id = resp.json()["data"]["taskId"]
while True:
data = requests.get(f"{BASE}/{task_id}", headers=HEADERS, timeout=30).json()["data"]
if data["status"] in ("success", "fail"):
break
time.sleep(10)
if data["status"] == "success":
audio_url = next(item["url"] for item in data["output"] if item["type"] == "audio")
print(audio_url)
else:
print(data.get("error"))
纯音乐用同一段轮询逻辑,只换提交内容,单独也能跑:
import time
import requests
BASE = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
payload = {
"model": "mureka-9.5/instrumental",
"input": {
"prompt": "Cinematic orchestral instrumental with a fragile piano ostinato, evolving string swells, low brass and soft timpani, hopeful then resolute, wide film-score reverb.",
},
}
task_id = requests.post(BASE, headers=HEADERS, json=payload, timeout=30).json()["data"]["taskId"]
while True:
data = requests.get(f"{BASE}/{task_id}", headers=HEADERS, timeout=30).json()["data"]
if data["status"] in ("success", "fail"):
break
time.sleep(10)
print(next((item["url"] for item in data.get("output", []) if item["type"] == "audio"), data.get("error")))
输出与格式
每次请求返回一首 MP3,44.1 kHz、立体声、约 256 kbps。下载时从 data.output 里找 type 为 audio 的那一项即可,不要在响应顶层找字符串。
返回的 url 会过期,落库前先把文件转存到你自己的存储。
上线前注意
- 回调加轮询兜底。 请求体可以带
"callback": {"url": "https://yourapp.com/webhook", "when": "final"},任务进终态时会通知;通知可能丢,再配一个定时查询补上。 - 先存 taskId,别重复 POST。 每次创建任务都按一次计费,客户端超时的时候任务可能已经建好。把
taskId落库,重试前先查状态。 - 歌词按行分段。 一行一句、保留主歌和副歌顺序,段落标记写清楚,结构稳定得多;上限 5,000 字符。
- 主唱性别显式写。 不传时由模型决定;要做系列歌、品牌歌,固定
female或male,同一套素材出来的声音才连贯。
FAQ
歌词可以留空让模型自动写吗?
不行。lyrics 必填,1–5,000 字符。要自动写词,用支持自动歌词的音乐模型。
一首歌最长多长? 没有时长参数,长度由模型根据歌词结构决定。站内三首歌词成歌案例是 1:49、3:02 和 3:30,三段纯音乐是 3:12、3:08 和 3:03。
纯音乐会不会出人声? 不会。纯音乐线路不生成演唱人声,即使描述里写了主唱也一样;要人声就换歌词成歌线路。
生成失败扣钱吗? 不扣。失败任务的预扣金额自动退还。
现在跑通第一首
把上面的 curl 粘进终端,把 YOUR_API_KEY 换成你的 key、歌词换成自己的,就能拿到第一个 taskId。想先看效果,直接打开歌词成歌模型页点运行。完整文档见 歌词成歌接入文档 与 纯音乐接入文档。
相关阅读:Mureka 9.5 价格:一首 $0.3215 · Mureka 9.5 vs MiniMax Music 2.6 · Mureka 9.5 提示词大全:6 条真实案例





