Skip to main content
用两次免费请求创建 Voice Personainitcomplete,同一个 taskId 这是免费的 Voice Persona 路径。Clone Voice/voices)是同一套流程的收费一步封装。对比见 Persona 总览 /generate 里必须传 persona.is_voice: true,并保持同一 Suno 账号。

工作流程

任务状态流

任务达到 awaiting 状态后,您必须在 30 秒(默认)内调用 complete。超时后任务将失败并返回 VP_USER_TIMEOUT,您需要从 init 重新开始。

第一步:Init — 上传语音并获取验证短语

上传用户的语音音频。系统将提取人声并返回一段用户需要朗读的验证短语。
这是一个异步任务。使用返回的 taskId 轮询获取任务状态。等待状态变为 awaiting(不是 success)。

请求

轮询结果(status: awaiting)

当任务达到 awaiting 状态时,data 包含:
用户只需要 phrase_text。所有其他字段由系统内部使用 — 您无需将它们传给 complete 步骤。
参见 Init API 参考 →

第二步:Complete — 上传验证录音并创建角色

用户朗读 phrase_text 并录制后,使用相同的 taskId 上传验证录音,完成语音验证并创建角色。
使用 init 返回的相同 taskId。调用 complete 后,继续轮询同一个 taskId 直到状态变为 success

请求

不需要中间数据(vox_audio_idphrase_id 等)— 系统会自动从 init 阶段读取这些数据。
参见 Complete API 参考 →

完整示例


错误码

重要说明

验证录音必须清晰包含完整的 phrase_text 内容。不完整或不清晰的录音将导致语音验证失败。
  • 单一 taskId 生命周期:init 和 complete 使用相同的 taskId — 在整个流程中轮询同一个任务。
  • awaiting 状态:init 完成后,任务状态为 awaiting(不是 success)。data 字段包含供用户朗读的 phrase_text
  • 30 秒时间限制:任务达到 awaiting 后,您必须在 30 秒内调用 complete。超时将导致 VP_USER_TIMEOUT
  • 简化参数complete 只需要 taskId + 验证录音 URL + 角色信息。所有中间数据由系统自动填充。
  • 同一账户保证:两个阶段自动使用相同的 Suno 账户。
  • 语言选择language 决定验证短语的语言。为获得最佳效果,请选择与原始语音音频匹配的语言。
  • 处理时间:Init 大约需要 20-60 秒(包含人声提取);Complete 大约需要 10-30 秒(包含语音验证)。
  • 并发安全:系统对每个账户的 Voice Persona 操作进行串行化 — 不同用户的并发请求不会相互干扰。