Voice AI Beta — Nova

Create Speech Task

Create a Text-to-Speech task with Nova. Provide exactly one of model_id (preset voice from GET /v1/tts/nova/voices) or voice_asset_id (your voice clone). Cost: ⌈characters × 0.7⌉ credits, deducted on creation and refunded automatically on failure.

Example

curl -X POST https://genaipro.io/api/v1/tts/nova \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"content": "Xin chào, đây là GenAIPro", "model_id": "e3cd384158934cc9a01029cd7d278634"}'

Rate limit: 30 requests/minute

post/v1/tts/nova

Request body

titlestring

Optional title (derived from content when empty)

contentstring required

Text to convert to speech (no fixed length limit — bounded by your credit balance)

model_idstring

Preset voice id (_id from GET /v1/tts/nova/voices). Provide exactly one of model_id / voice_asset_id.

voice_asset_idstring

Voice clone id (from POST /v1/tts/voice-assets). Provide exactly one of model_id / voice_asset_id.

normalizeboolean

Normalize text before synthesis

callback_urlstring

Optional webhook — receives the task object when the task completes or fails

Example request

{
  "content": "Xin chào, đây là GenAIPro",
  "model_id": "e3cd384158934cc9a01029cd7d278634"
}

Response

Task created — credits already deducted (cost)

idstring

Task ID (poll via the provider's GET /{id})

status'pending' | 'cloning' | 'queued' | 'processing' | 'merging' | 'process_merging' | 'completed' | 'failed'

Voice AI Beta task lifecycle: pendingcloning (clone flow only) → queuedprocessingmergingprocess_mergingcompleted | failed.

providerstring
total_lengthinteger

Billable characters (encoder units ≈ UTF-8 bytes)

costinteger

Credits deducted for this task

Example response

{
  "status": "completed",
  "provider": "lyra"
}

Changes

No recorded changes to this endpoint across all 1 revision of this API.