> ## 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.

# Voice Creation

> Create custom voices with Suno AI

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](/models/audio/suno/music) so tracks use your custom voice.

## Model

```
suno-ai/voice
```

## Flow

1. Call [`GET /v1/resources/suno-ai/voice/verification-phrase`](/api-reference/resources#get-suno-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

| Parameter                | Type   | Required | Default      | Description                                            |
| ------------------------ | ------ | -------- | ------------ | ------------------------------------------------------ |
| `voice_audio_url`        | string | Yes      | —            | URL to voice recording                                 |
| `verification_audio_url` | string | Yes      | —            | URL to verification phrase recording                   |
| `phrase_id`              | string | Yes      | —            | Phrase ID from verification-phrase endpoint            |
| `name`                   | string | Yes      | —            | Voice name                                             |
| `description`            | string | No       | `""`         | Voice description                                      |
| `styles`                 | string | No       | `""`         | Genre tags (e.g. `"funk edm"`)                         |
| `singer_skill_level`     | string | No       | `"Beginner"` | `Beginner`, `Intermediate`, `Advanced`, `Professional` |
| `vocal_start_s`          | float  | No       | `0`          | Vocal start time in voice audio                        |
| `vocal_end_s`            | float  | No       | auto         | Vocal end time in voice audio                          |

## Example

```bash theme={null}
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

```json theme={null}
{
  "code": 200,
  "success": true,
  "data": {
    "task_id": "abc123def456",
    "status": "processing"
  }
}
```

## Status Response (Completed)

```json theme={null}
{
  "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)

```json theme={null}
{
  "success": false,
  "data": {
    "message": "Voice verification rejected: didnt_say_verification_phrase",
    "status": "failed"
  }
}
```
