Deprecated

Instant Cloning (/v1/voices/clone)

Clone a custom voice from a short audio sample and use it like any built-in voice in subsequent text-to-speech calls.

Upload a WAV or MP3 file (max 25 MB). The server extracts a speaker embedding and returns a custom voice ID with the uc_ prefix that can be passed directly to POST /v1/text-to-speech (and any other endpoint that accepts a voice_id). The original audio is uploaded to S3 in the background after the response is returned.

Limits

  • Audio file: max 25 MB. Supported formats: WAV, MP3.
  • Audio duration: 5 to 150 seconds.
  • Voice name: 1-30 characters.
  • Model: ssfm-v21 or ssfm-v30. The cloned voice is bound to this engine model.
  • Each plan has a maximum number of active custom voices (the custom_voice_slot). Use DELETE /v1/voices/{voice_id} to free a slot.

Typical flow

  1. POST /v1/voices/clone with the sample audio → receive voice_id (e.g. uc_64a1b2...).
  2. POST /v1/text-to-speech with voice_id set to the cloned ID.
  3. DELETE /v1/voices/{voice_id} when you no longer need the voice.
post/v1/voices/clone

Request

  • Base URL: https://api.typecast.ai
  • URL: https://api.typecast.ai/v1/voices/clone
  • Auth: API key in header X-API-KEY

Response

Successful Response - Custom voice created

namestring required

Human-readable voice name (1-30 characters).

model'ssfm-v30' | 'ssfm-v21' required

TTS model version to use for speech synthesis. Different models offer varying capabilities and quality levels.

Available models:

  • ssfm-v30: Latest model with improved prosody and additional emotion presets (recommended)
  • ssfm-v21: Stable production model with proven reliability and consistent quality
status'pending' | 'training' | 'completed' | 'failed' required

Current creation or training status of a custom voice.

voice_idstring required

Custom voice identifier with the uc_ prefix. Use this value as voice_id in POST /v1/text-to-speech and other endpoints that accept voice_id.

Example response

{
  "voice_id": "uc_64a1b2c3d4e5f6a7b8c9d0e1"
}

Changes

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