Persona
- 从已有歌曲里提取可复用的歌手人设,异步任务
- 之后生成新歌时绑定这个人设,沿用其音色与风格
- 结果在
result.persona_id
认证
All endpoints authenticate with a Bearer token.
Get an API key: open the console and create one.
Add it to the request header:
Authorization: Bearer YOUR_OAIRoute_KEY引用源音轨
产出源音轨那次任务的 task_id。缺失或无法解析源音轨时,提交阶段直接返回 400。
指定 result.music[] 中第几首作为源音轨,默认 1。一次生成通常为 1 或 2。
The task_id of the task that produced the source track. When it's missing or the source can't be resolved, submission returns a 400.
Which track in result.music[] to use as the source, default 1. A single generation usually yields 1 or 2.
请求参数
音频模型,默认 suno,当前仅 suno。
Persona 名称。缺失时直接返回 400。
描述这个人设的特点。
风格标签。
人声片段的起点,单位秒,不小于 0。
人声片段的终点,单位秒。须大于 vocal_start_s,且不超过已知源时长。
本端点没有版本维度,传 version 会被忽略,也不影响计费。
The audio model; defaults to suno, currently the only one.
The Persona name. Missing returns a 400.
Describes the persona's characteristics.
Style tags.
Start of the vocal segment in seconds, no less than 0.
End of the vocal segment in seconds. Must be greater than vocal_start_s and no longer than the known source duration.
This endpoint has no version dimension; passing version is ignored and doesn't affect billing.
人声片段怎么取
vocal_start_s 与 vocal_end_s 用来指定从哪一段人声里提取特征。建议成对提供:
- 只给起点不给终点,容易把整段都算进去,包含器乐部分
- 区间太长,特征会被多种唱法稀释
- 理想的区间是 10 到 30 秒的纯人声,没有伴奏干扰
vocal_start_s and vocal_end_s specify which stretch of vocals to extract features from. Provide them as a pair:
- Giving only a start and no end tends to count the whole track, including instrumental parts
- A segment that's too long dilutes the features across multiple vocal styles
- The ideal range is 10 to 30 seconds of pure vocals with no backing interference
响应
响应状态码。
提交后为 submitted。
任务唯一标识,用于轮询。
轮询用 GET /v1/music/tasks/{task_id},间隔 3 到 5 秒,典型耗时 30 到 120 秒。结果里的 result.persona_id 就是最终的人设标识。
失败时 data.error.message 给出原因,预扣额度自动退回。
The response status code.
submitted after submission.
The unique task identifier, for polling.
Poll with GET /v1/music/tasks/{task_id} every 3 to 5 seconds; typical duration is 30 to 120 seconds. The result.persona_id in the result is the final persona identifier.
On failure, data.error.message gives the reason and the held balance is refunded automatically.
拿到 persona_id 之后
在生成、翻唱、续写时传 persona_id 即可沿用这个人设:
{
"model": "suno",
"custom": true,
"version": "v6",
"persona_id": "persona_01KA",
"prompt": "[Verse]\n新的歌词",
"tags": "city pop"
}persona_id 与 custom_model_id 互斥,两者不能同时传。它们代表两种不同的复用方式:Persona 复用音色与演唱风格,自定义模型复用整体曲风。
persona_id 与自定义模型 ID 不同,不能作为 API 的 model 值使用。它只能填在 persona_id 字段里。新流程也不需要先创建 Vox。
Pass persona_id when generating, covering, or extending to carry the persona over:
{
"model": "suno",
"custom": true,
"version": "v6",
"persona_id": "persona_01KA",
"prompt": "[Verse]\nNew lyrics here",
"tags": "city pop"
}persona_id and custom_model_id are mutually exclusive; they can't be passed together. They represent two different reuse modes: a Persona reuses timbre and singing style, while a custom model reuses the overall musical style.
persona_id is different from a custom model ID and can't be used as the API's model value. It only goes in the persona_id field. The new flow also doesn't require creating a Vox first.
错误码
For error response formats, status codes, and retry guidance see Error codes and rate limits; for troubleshooting steps on common errors see the FAQ.
使用示例
提交一个任务并拿到 task_id:
提交成功只表示任务已受理。真正的产物要拿返回的 task_id 去任务查询接口轮询,status 变成 completed 之后才有结果。
Submit a task and get a task_id:
A successful submission only means the task was accepted. To get the actual output, poll the task query endpoint with the returned task_id; results appear only after status becomes completed.