> ## Documentation Index
> Fetch the complete documentation index at: https://platform.perso.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Voice

> Create a new voice using instant voice cloning.

## Request Parameters

| Parameter | Required | Description |
|-----------|----------|-------------|
| `name` | Yes | Name for the voice |
| `description` | No | Description of the voice |
| `files` | Yes | Audio files for voice cloning |

## Audio Requirements

- Clear speech recordings work best
- Recommended: 30 seconds to 3 minutes of audio
- Supported formats: MP3, WAV, M4A

## Example

Select **"CreateVoiceRequest"** from the **Examples** dropdown to see a request example.




## OpenAPI

````yaml /specs/openapi-speech.json post /api/speech/v1/voices/add
openapi: 3.0.3
info:
  title: Perso Speech API
  version: 0.0.0
servers:
  - url: https://platform.perso.ai
security: []
paths:
  /api/speech/v1/voices/add:
    post:
      tags:
        - Speech
      summary: Create Voice
      description: >
        Create a new voice using instant voice cloning.


        ## Request Parameters


        | Parameter | Required | Description |

        |-----------|----------|-------------|

        | `name` | Yes | Name for the voice |

        | `description` | No | Description of the voice |

        | `files` | Yes | Audio files for voice cloning |


        ## Audio Requirements


        - Clear speech recordings work best

        - Recommended: 30 seconds to 3 minutes of audio

        - Supported formats: MP3, WAV, M4A


        ## Example


        Select **"CreateVoiceRequest"** from the **Examples** dropdown to see a
        request example.
      operationId: speech_v1_voices_add_create
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreateVoiceRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/CreateVoiceRequest'
            examples:
              CreateVoiceRequest:
                value:
                  name: My Voice
                  description: A custom cloned voice
                  files:
                    - <audio file>
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateVoiceResponse'
          description: ''
        '400':
          description: Bad Request - Invalid input data or parameters.
        '401':
          description: Unauthorized - Invalid or missing authentication credentials.
        '403':
          description: Forbidden - You do not have permission to perform this action.
        '500':
          description: Internal Server Error - An unexpected error occurred.
      security:
        - PersoPlatform-APIKey: []
          xi-api-key: []
        - {}
components:
  schemas:
    CreateVoiceRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
        files:
          type: array
          items:
            type: string
            format: binary
          description: One or more audio sample files used to clone the voice.
          minItems: 1
        remove_background_noise:
          type: boolean
          default: false
          description: If true, denoise the sample audio before training the clone.
        description:
          type: string
        prompt_text:
          type: string
          default: ''
          description: >-
            Optional transcript of the sample audio, used to improve clone
            fidelity.
      required:
        - files
        - name
    CreateVoiceResponse:
      type: object
      properties:
        voice_id:
          type: string
      required:
        - voice_id
  securitySchemes:
    PersoPlatform-APIKey:
      type: apiKey
      in: header
      name: PersoPlatform-APIKey
    xi-api-key:
      type: apiKey
      in: header
      name: xi-api-key
      description: >-
        Use this header if you want to call the API with an
        ElevenLabs-compatible SDK. Pass your Perso API key as the `xi-api-key`
        header value.

````