Voice Cloning

Voice cloning lives in the MiniMax route family (/v1m). Upload a sample, keep the returned voice_id, then reuse that id in MiniMax TTS requests.

Create Clone

http
POST https://api.cheapaiapi.com/v1m/voice/clone

Send this request as multipart/form-data.

filefilerequiredSource audio sample.
voice_namestringDisplay name for the cloned voice.
preview_textstringPreview text for the cloning flow.
language_tagstringLanguage label such as English.
need_noise_reductionbooleanEnable cleanup for noisy source audio.
gender_tagstringOptional tag such as male or female.
bash
curl -X POST "https://api.cheapaiapi.com/v1m/voice/clone" \
  -H "Authorization: Bearer sk_your_api_key" \
  -F 'file=@voice_sample.mp3' \
  -F 'voice_name=My Custom Voice' \
  -F 'language_tag=English' \
  -F 'preview_text=Hello world'

Create Clone Response

json
{
  "success": true,
  "cloned_voice_id": 12345
}

List Clones

http
GET https://api.cheapaiapi.com/v1m/voice/clone
json
{
  "success": true,
  "data": [
    {
      "voice_id": "12345",
      "voice_name": "My Custom Voice",
      "tag_list": ["English", "Clone"],
      "sample_audio": "https://..."
    }
  ]
}

Delete Clone

http
DELETE https://api.cheapaiapi.com/v1m/voice/clone/{voice_clone_id}

How It Connects To TTS

Once a clone exists, use its voice_id inside the MiniMax TTS route:

json
{
  "model": "speech-2.6-hd",
  "voice_setting": {
    "voice_id": "12345",
    "vol": 1,
    "pitch": 0,
    "speed": 1
  }
}

Tips For Better UX

  • Show upload quality guidance before the user submits the source audio.
  • Let the user name the clone during creation so it is reusable later.
  • After clone creation, offer a direct jump into MiniMax TTS with the new voice_id prefilled.
  • Keep list and delete actions close together so teams can manage test voices cleanly.