text_to_speech endpoint, the same parameters, the same response shape.
This example walks through the full flow: upload an audio sample, list your custom voices, generate speech with the new clone.
Voice cloning via the API is not available on the Free tier. Sample audio must be WAV or MP3 under 3 MB, and voice names must be ≤ 100 characters.
Step 1 — Clone a voice from a sample
- Python
- TypeScript
- cURL
voice_id. Save it — that’s what you’ll pass to TTS calls.
Step 2 — List your custom voices
- Python
- TypeScript
search_custom_voices to filter by name or description.
Step 3 — Generate speech with the new voice
voice_settings, output_format, include_phonemes, and normalized_text fields as preset voices.
Step 4 — Update or delete
Tips
- Same-account only. Cloned voices can only be called by the account that created them. Sharing a
voice_idwith another account returns403 Forbidden. - Cross-platform. Voices cloned in Supertone Play appear in
list_custom_voicesautomatically. The opposite is also true — voices cloned via API show up in Play. - Sample quality. Clean, mono, single-speaker audio (5–30 seconds) yields the best clones. Avoid background music, multiple voices, or heavy room noise.
- Permissions and disclosure. Make sure you have rights to clone any voice you upload. See your jurisdiction’s rules around AI-generated voices and disclosure.
Related
Create cloned voice
Full upload schema and constraints.
Voices
How preset and custom voices fit together.