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

# Create a custom voice

> Takes a few seconds. See [Custom voices](/tts/custom-voices).



## OpenAPI

````yaml /tts/openapi.json post /v1/voices
openapi: 3.0.3
info:
  title: Ses TTS API
  version: 1.0.12
  description: 'Text to speech: streamed audio, seven languages, custom voices.'
servers:
  - url: https://tts.eu.mihu.ai
    description: Europe (EU)
  - url: https://tts.tr.mihu.ai
    description: Türkiye (TR)
security:
  - bearerAuth: []
tags:
  - name: Speech
  - name: Voices
  - name: Service
paths:
  /v1/voices:
    post:
      tags:
        - Voices
      summary: Create a custom voice
      description: Takes a few seconds. See [Custom voices](/tts/custom-voices).
      operationId: createVoice
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - file
                - name
                - consent
              properties:
                file:
                  type: string
                  description: >-
                    The recording: wav, mp3, m4a, ogg/opus, flac, webm; 10-30 s,
                    at most 10 MB, one person speaking.
                  format: binary
                name:
                  type: string
                  description: 1-100 characters; for you.
                consent:
                  type: boolean
                  description: >-
                    Must be `true`: the person has agreed to the use of their
                    voice as a synthetic voice.
                consent_reference:
                  type: string
                  description: Your reference for that consent, at most 200 characters.
                language:
                  type: string
                  description: >-
                    Language of the recording; the voice speaks only this
                    language.
                  enum:
                    - tr
                    - en
                    - de
                    - fr
                    - es
                    - it
                    - ru
                  default: tr
                gender:
                  type: string
                  description: Informational only.
                  enum:
                    - male
                    - female
      responses:
        '201':
          description: The voice
          content:
            application/json:
              example:
                id: 7f0c5b8e-6a51-4c1e-9d43-2a0d6c2e8b11
                object: voice
                type: custom
                name: Ayşe – support line
                language: tr
                gender: female
                default: false
                quality:
                  speech_seconds: 17.4
                  reference_seconds: 6.8
                  snr_db: 41
                  high_band_db: -24
                  duration_ratio_max: 1.12
                created_at: 1793232000
                consent:
                  given: true
                  at: 1793232000
                  reference: contract 2026-114
        '400':
          description: Invalid request
        '401':
          description: Missing or wrong API key
        '409':
          description: Voice limit reached, or voice made with another model
        '413':
          description: Upload over 10 MB
        '422':
          description: Recording rejected
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Your API key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.