Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.unifically.com/llms.txt

Use this file to discover all available pages before exploring further.

Create a custom voice from audio recordings. This is an async operation — returns a task_id, poll for the result. When the task completes, use the returned persona_id as persona_id in Music Generation so tracks use your custom voice.

Model

suno-ai/voice

Flow

  1. Call GET /v1/resources/suno-ai/voice/verification-phrase to get a phrase_id and phrase_text
  2. Record two audio files: a voice sample and the user reading the verification phrase
  3. Host both as publicly accessible URLs
  4. Call this endpoint with both URLs and the phrase_id

Parameters

ParameterTypeRequiredDefaultDescription
voice_audio_urlstringYesURL to voice recording
verification_audio_urlstringYesURL to verification phrase recording
phrase_idstringYesPhrase ID from verification-phrase endpoint
namestringYesVoice name
descriptionstringNo""Voice description
stylesstringNo""Genre tags (e.g. "funk edm")
singer_skill_levelstringNo"Beginner"Beginner, Intermediate, Advanced, Professional
vocal_start_sfloatNo0Vocal start time in voice audio
vocal_end_sfloatNoautoVocal end time in voice audio

Example

curl -X POST https://api.unifically.com/v1/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "suno-ai/voice",
    "input": {
      "voice_audio_url": "https://example.com/my-voice.wav",
      "verification_audio_url": "https://example.com/my-verification.wav",
      "phrase_id": "35989bb7-9fe5-4be2-b7d2-ef8124ae3e8b",
      "name": "My Voice",
      "description": "Warm male vocal",
      "styles": "funk edm",
      "singer_skill_level": "Intermediate"
    }
  }'

Response

{
  "code": 200,
  "success": true,
  "data": {
    "task_id": "abc123def456",
    "status": "pending"
  }
}

Status Response (Completed)

{
  "code": 200,
  "success": true,
  "data": {
    "task_id": "...",
    "status": "completed",
    "persona_id": "44706829-...",
    "name": "My Voice",
    "image_url": "https://...",
    "styles": "funk edm"
  }
}

Status Response (Failed — Verification Rejected)

{
  "success": false,
  "data": {
    "message": "Voice verification rejected: didnt_say_verification_phrase",
    "status": "failed"
  }
}