Voice AI Beta — Nova

Create Speech Task

Changed on

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": "Hello, this is GenAIPro", "model_id": "e3cd384158934cc9a01029cd7d278634"}'

Rate limit: 30 requests/minute

post/v1/tts/nova

Request

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

tts_model'nova-expressive' | 'nova-2.1' | 'nova-2'

Speech model. nova-expressive (newest) is the most expressive, nova-2.1 is the newest balanced model, nova-2 is the default. Same price for every model. Not to be confused with model_id (the voice). Unknown values → 400 "Unsupported tts_model".

callback_urlstring

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

Example request

{
  "content": "Hello, this is 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: pending → cloning (clone flow only) → queued → processing → merging → process_merging → completed | failed.

providerstring
total_lengthinteger

Billable characters (encoder units ≈ UTF-8 bytes)

costinteger

Credits deducted for this task

Example response

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

Changes

    • info

      added the new optional request property

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status