Uika 音乐
根据文本描述、歌词、音乐参考和语音样本生成原创音乐。
能力
最适合
- •文本提示中的原创歌曲
- •从歌词生成的音乐
- •用您克隆的声音演唱
- •用于编辑的背景床
不适合
- •复制受版权保护的录音
- •茎分离或重新混合
- •专业音频母带制作
身份验证
API 密钥标头
Uika API 使用 API 密钥来验证请求。将您的密钥发送到 X-API 密钥 标题。您的 API 密钥是一个秘密。不要在浏览器或其他客户端代码中公开它。相反,从您的服务器调用 API。登录的 Playground 使用门户会话,并且从不发送您的 API 密钥。
X-API-Key: YOUR_API_KEY
端点
异步·轮询结果
参考上传
媒体输入
媒体输入接受任何公共 URL。要使用本地文件,请将其 content_type 和 size_bytes 发布到 /v1/media/uploads,将文件放入返回的 upload_url,然后传递 url.
# 1. Request a presigned upload URL. Send the file's content# type and its exact size in bytes.curl -X POST https://api.dev.pika.art/v1/media/uploads \-H "X-API-Key: YOUR_API_KEY" \-H "Content-Type: application/json" \-d '{"content_type": "image/png", "size_bytes": 12345}'# The response returns two URLs:# upload_url: a temporary URL to upload the file to. Expires in 5 minutes.# url: the permanent Uika URL. Pass it to the model as the input.# {# "upload_url": "https://upload.r2.pika.art/...?X-Amz-Signature=...",# "url": "https://cdn.pika.art/v2/media/uploads/org_abc/9f8e7d.png"# }# 2. Upload the file to upload_url, then pass url to the model.curl -X PUT "<upload_url>" \-H "Content-Type: image/png" \--data-binary @input.png
生成
POST /v1/media/pika/pika-audio/pika-music
请求
curl -X POST https://api.dev.pika.art/v1/media/pika/pika-audio/pika-music \-H "X-API-Key: YOUR_API_KEY" \-H "Content-Type: application/json" \-d '{"mode": "text_to_music","prompt": "mainstream dance pop, four-on-the-floor house beat, 124 bpm, euphoric and restless, bright clear female lead vocal in an upper-mid register, sidechained warm pads, bright plucked synth hook, punchy kick and clap, filtered verse lifting into a full festival-sized chorus, glossy radio-chart mix, DRY close-mic single unlayered lead vocal front and center, no harmony stacks, no vocal chops, no ad-lib doubles, minimal vocal processing, instrumental sits back","lyrics": "[Verse]\nBlue light on my face at four a.m.\nEverybody sleeping, I'm still typing then\nOne more tab, one more ping, one more thing\n[Pre-Chorus]\nI say I'll stop, I never do\n[Chorus]\nI'm always on, always on\nNever found the off switch, baby\nI'm always on, always on\nGlowing till the morning takes me\n[Verse 2]\nMy notifications know me better than my friends\nThe day begins before the last one ends\n[Final Chorus]\nI'm always on, always on\nDon't wait up, I'll be here\nI'm always on, always on\nSame light, same chair, same year","clean_reference_audio": false,"voice_consent_attested": false,"rewrite_prompt": false,"duration": 60,"seed": 1001}'
返回数据
{"id": "media_8f3a2c91-5b7d-4e0a-9c26-31d4f2a8e6b0","status": "queued"}
请求正文
接受的值
- 模式
输入模式
直接使用公共 URL,或 POST { content_type, size_bytes } 到 /v1/media/uploads,将音频连同返回的标头一起放入返回的 upload_url,然后传递 url。
直接使用公共 URL,或 POST { content_type, size_bytes } 到 /v1/media/uploads,将音频连同返回的标头一起放入返回的 upload_url,然后传递 url。
返回
返回一个 工作对象 状态 ,不是最终输出。存储响应中的 ID 并轮询作业直至完成。
民意调查状态
获取/v1/media/jobs/{request_id}
请求
curl https://api.dev.pika.art/v1/media/jobs/{request_id} \-H "X-API-Key: YOUR_API_KEY"
返回数据
{"id": "media_8f3a2c91-5b7d-4e0a-9c26-31d4f2a8e6b0","status": "running"}
按 ID 轮询作业,直到达到最终状态:已完成或失败。已完成的作业在输出中携带其下载 URL,并且 GET /v1/media/jobs/{request_id}/content 返回与 { "url" } 对于只保留 ID 的客户端。
DELETE /v1/media/jobs/{request_id} 删除作业的存储介质以及提交时捕获的请求(提示和参数)。然后作业报告 deleted_at 并且没有输出,内容端点回答410。
作业对象
错误
在通话中共享
错误使用传统的 HTTP 状态代码以及形状的 JSON 主体 {"message": "..."}。验证失败返回 422 并带有一条命名有问题字段的消息。作业行存在后提交拒绝(余额、速率限制)返回失败的作业信封 — 分支 error.code.
| 状态 | 当 | 身体 |
|---|---|---|
| 401 未经授权 | API 密钥丢失或无效。 | {"message":"Invalid API key"} |
| 403 禁止 | 非活动密钥被拒绝 {"message"} 身体。作业行存在并返回失败的作业信封后,组织余额或后付费周期限制无法覆盖的提交将被拒绝。 GET /billing/balance 将两者分开: 200 表示密钥处于活动状态,因此拒绝的是余额或循环限制。 | {"id":"media_8f3a2c91-5b7d-4e0a-9c26-31d4f2a8e6b0","status":"failed","error":{"code":"insufficient_balance","message":"Insufficient org balance"}} |
| 404 未找到 | 您的组织中不存在具有该 ID 的作业,或者媒体路径名称未知的供应商/型号/功能。 | {"message":"media job not found"} |
| 409冲突 | 在作业完成之前请求结果,或者将 Idempotency-Key 标头与不同的正文重用。 | {"message":"media job is not ready"} |
| 422 无法处理的实体 | 请求正文验证失败:枚举值无效、缺少必填字段、类型错误或 JSON 格式错误。 JSON 消息命名有问题的字段。无法定价的架构有效参数组合在创建作业后失败,并返回失败的作业信封和错误代码 invalid_input. | {"message":"duration: Input should be less than or equal to 15"} |
| 429 请求太多 | 您已达到每分钟或每天的请求限制,或者您组织的作业队列已满。作为失败的作业信封返回。如果存在 Retry-After 标头,请等待那么长时间,然后使用新的 Idempotency-Key 重试。 | {"id":"media_8f3a2c91-5b7d-4e0a-9c26-31d4f2a8e6b0","status":"failed","error":{"code":"rate_limited","message":"rate limit exceeded: rpm"}} |
| 503服务不可用 | 模型导轨或后端依赖项暂时不可用。作为失败的作业信封退回;使用退避和新的幂等密钥重试。 | {"id":"media_8f3a2c91-5b7d-4e0a-9c26-31d4f2a8e6b0","status":"failed","error":{"code":"provider_unavailable","message":"media dispatch unavailable"}} |