跳到正文

开发者

把阿拉伯语语音集成到您的产品中

驱动 Vocla 应用的同一引擎,通过 REST API 提供:覆盖所有阿拉伯语方言的文本转语音、变声、音乐生成,以及实时的生成状态。

API 密钥包含在 Business 和企业版方案中。

快速入门

只需四个请求即可完成第一次阿拉伯语生成:选择模型和声音、创建生成任务、跟踪进度、下载结果。

quickstart.sh
export VOCLA_API_KEY="vk_..."   # Enterprise workspace → Settings → API keys
export VOCLA_API="https://api.voclalabs.com"

# 1. Pick a model and a voice
curl -s "$VOCLA_API/v1/catalog"
curl -s "$VOCLA_API/v1/voices?lang=ar&dialect=ar-SA&limit=5" \
  -H "Authorization: Bearer $VOCLA_API_KEY"

# 2. Create a text-to-speech generation (202 Accepted)
curl -s -X POST "$VOCLA_API/v1/generations/tts" \
  -H "Authorization: Bearer $VOCLA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "productModelId": "MODEL_ID",
    "voiceId": "VOICE_ID",
    "text": "مرحباً بك في فوكلا، صوتك يصل أبعد.",
    "locale": "ar-SA"
  }'

# 3. Follow progress as server-sent events
curl -N "$VOCLA_API/v1/generations/GENERATION_ID/events" \
  -H "Authorization: Bearer $VOCLA_API_KEY"

# 4. Fetch fresh download links (signed, short-lived)
curl -s "$VOCLA_API/v1/generations/GENERATION_ID" \
  -H "Authorization: Bearer $VOCLA_API_KEY"

API 工作方式

  • 身份验证

    Business 和企业版工作空间的管理员可在设置中创建 API 密钥,以 Authorization: Bearer vk_… 的形式发送。每个密钥都有权限范围(generations:read、generations:write、voices:read、uploads:write),仅显示一次,并可随时吊销。

  • 幂等请求

    所有消耗积分的请求都需要携带 Idempotency-Key 请求头。使用相同的密钥和请求体重试时,会返回原来的生成结果,而不会重复扣费;用同一密钥发送不同的请求体则返回 409。

  • 生成任务的生命周期

    创建生成任务会返回 202 并预留积分。任务状态从 queued 变为 running,最终为 succeeded、failed 或 cancelled。成功时扣除积分,失败或取消时释放积分。

  • 服务器推送事件(SSE)

    订阅 GET /v1/generations/{id}/events 即可接收 queued、progress、succeeded、failed 和 cancelled 事件,每个事件都附带生成任务数据。进入终态后数据流会关闭;重新连接将返回当前状态。

  • 错误处理

    错误以 application/problem+json 格式返回,包含稳定的错误码(例如 INSUFFICIENT_CREDITS 或 VALIDATION_ERROR)、本地化的详情(发送 Accept-Language: ar 或 en),以及联系我们时可提供的 traceId。

  • 下载

    成功的生成任务包含已签名的 MP3 和 OGG 链接(包含 WAV 的方案还提供 WAV)。链接约 15 分钟后失效;重新获取生成任务即可得到新链接。

主要接口

完整列表及请求和响应结构,请参阅 API 参考文档。

方法接口用途权限范围
GET/v1/catalog模型、声音类别与上传限制公开
GET/v1/voices按语言、方言、性别、年龄和类别搜索声音库voices:read
POST/v1/generations/tts阿拉伯语方言文本转语音generations:write
POST/v1/uploads为需要转换的音频发起分片上传uploads:write
POST/v1/generations/voice-change用另一种声音重新演绎一段录音generations:write
POST/v1/generations/music根据提示词生成音乐generations:write
GET/v1/generations/{id}生成任务的状态、积分和下载链接generations:read
GET/v1/generations/{id}/events通过服务器推送事件实时获取进度generations:read
POST/v1/generations/{id}/cancel取消排队中或运行中的生成任务generations:write

其他生成类型

endpoints.txt
# Voice changer: upload the source audio first (multipart upload, 8 MiB parts)
POST /v1/uploads                      {"filename","contentType","size"}
POST /v1/uploads/{id}/complete        {"parts":[{"partNumber","etag"}]}
POST /v1/generations/voice-change     {"productModelId","uploadId","voiceId"}

# Music from a prompt (lyrics only on vocal-capable routes)
POST /v1/generations/music            {"productModelId","prompt","duration"}

# Estimate the credit cost without reserving credits
POST /v1/generations/quote            {"type":"tts", ...same body as the generation}

事件流示例

text/event-stream
id: 2026-09-19T12:00:01.000Z
event: progress
data: {"id":"0199…","type":"tts","status":"running","progress":50,"creditsReserved":120,"creditsCharged":0}

event: succeeded
data: {"id":"0199…","type":"tts","status":"succeeded","progress":100,"creditsCharged":120,"downloads":{"mp3":"https://…","ogg":"https://…"}}

速率限制

限制按已认证用户或密钥及 IP,以滚动一分钟为窗口计算:API 为 300 次请求,认证接口为 30 次。每个响应都带有 RateLimit-Limit、RateLimit-Remaining 和 RateLimit-Reset(秒)。超出限制时会收到 429 RATE_LIMITED,请等待重置后再重试。企业级负载可协商更高的限制。

Webhook

暂未开放

生成事件的出站 Webhook 暂未开放。请使用服务器推送事件,或轮询 GET /v1/generations/{id}。如果 Webhook 对您的集成很重要,请告诉我们,这有助于我们安排优先级。

完整 API 参考

所有接口、参数和响应结构,均由构建 API 所用的同一份 OpenAPI 文档生成。

https://api.voclalabs.com/docs

准备好集成了吗?

告诉我们您的使用场景和预计用量,我们将为您开通带 API 权限的企业版工作空间。