curl -X POST https://api.magpipe.ai/functions/v1/clone-voice \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "name=Dr. Smith" \
-F "description=Warm, professional male voice" \
-F "files=@sample1.wav" \
-F "files=@sample2.wav"
const formData = new FormData();
formData.append('name', 'Dr. Smith');
formData.append('description', 'Warm, professional male voice');
formData.append('files', audioFile1);
formData.append('files', audioFile2);
const response = await fetch(
'https://api.magpipe.ai/functions/v1/clone-voice',
{
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
},
body: formData,
}
);
const voice = await response.json();
console.log('Voice ID:', voice.id);
import requests
files = [
('files', ('sample1.wav', open('sample1.wav', 'rb'), 'audio/wav')),
('files', ('sample2.wav', open('sample2.wav', 'rb'), 'audio/wav')),
]
response = requests.post(
'https://api.magpipe.ai/functions/v1/clone-voice',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
},
data={
'name': 'Dr. Smith',
'description': 'Warm, professional male voice',
},
files=files
)
voice = response.json()
print(f"Voice ID: {voice['id']}")
{
"id": "pNInz6obpgDQGcFmaJgB",
"name": "Dr. Smith",
"description": "Warm, professional male voice",
"preview_url": "https://api.elevenlabs.io/v1/voices/pNInz6obpgDQGcFmaJgB/preview.mp3",
"provider": "elevenlabs",
"created_at": "2024-01-15T10:30:00Z"
}
{
"error": {
"code": "insufficient_audio",
"message": "Please provide at least 30 seconds of clean audio"
}
}
Voice
Clone Voice
Create a custom voice clone from audio samples
POST
/
clone-voice
curl -X POST https://api.magpipe.ai/functions/v1/clone-voice \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "name=Dr. Smith" \
-F "description=Warm, professional male voice" \
-F "files=@sample1.wav" \
-F "files=@sample2.wav"
const formData = new FormData();
formData.append('name', 'Dr. Smith');
formData.append('description', 'Warm, professional male voice');
formData.append('files', audioFile1);
formData.append('files', audioFile2);
const response = await fetch(
'https://api.magpipe.ai/functions/v1/clone-voice',
{
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
},
body: formData,
}
);
const voice = await response.json();
console.log('Voice ID:', voice.id);
import requests
files = [
('files', ('sample1.wav', open('sample1.wav', 'rb'), 'audio/wav')),
('files', ('sample2.wav', open('sample2.wav', 'rb'), 'audio/wav')),
]
response = requests.post(
'https://api.magpipe.ai/functions/v1/clone-voice',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
},
data={
'name': 'Dr. Smith',
'description': 'Warm, professional male voice',
},
files=files
)
voice = response.json()
print(f"Voice ID: {voice['id']}")
{
"id": "pNInz6obpgDQGcFmaJgB",
"name": "Dr. Smith",
"description": "Warm, professional male voice",
"preview_url": "https://api.elevenlabs.io/v1/voices/pNInz6obpgDQGcFmaJgB/preview.mp3",
"provider": "elevenlabs",
"created_at": "2024-01-15T10:30:00Z"
}
{
"error": {
"code": "insufficient_audio",
"message": "Please provide at least 30 seconds of clean audio"
}
}
Create a professional voice clone using ElevenLabs technology. Upload audio samples of the voice you want to clone, and we’ll create a custom voice that can be used with your AI agents.
Request Body
Send asmultipart/form-data:
string
required
Name for the cloned voice.Example:
Dr. Smithstring
Description of the voice characteristics.Example:
Warm, professional male voicefile[]
required
Audio files for voice cloning.Requirements:
- At least 1 file, up to 25 files
- Supported formats: WAV, MP3, M4A
- At least 30 seconds of clean audio per file
- Total audio should be 1-3 minutes for best results
- Clear speech, minimal background noise
Response
string
Unique voice identifier (use as
voice_id in agent config).string
Voice display name.
string
Voice description.
string
URL to preview the cloned voice.
string
Voice provider (always
elevenlabs for cloned voices).curl -X POST https://api.magpipe.ai/functions/v1/clone-voice \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "name=Dr. Smith" \
-F "description=Warm, professional male voice" \
-F "files=@sample1.wav" \
-F "files=@sample2.wav"
const formData = new FormData();
formData.append('name', 'Dr. Smith');
formData.append('description', 'Warm, professional male voice');
formData.append('files', audioFile1);
formData.append('files', audioFile2);
const response = await fetch(
'https://api.magpipe.ai/functions/v1/clone-voice',
{
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
},
body: formData,
}
);
const voice = await response.json();
console.log('Voice ID:', voice.id);
import requests
files = [
('files', ('sample1.wav', open('sample1.wav', 'rb'), 'audio/wav')),
('files', ('sample2.wav', open('sample2.wav', 'rb'), 'audio/wav')),
]
response = requests.post(
'https://api.magpipe.ai/functions/v1/clone-voice',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
},
data={
'name': 'Dr. Smith',
'description': 'Warm, professional male voice',
},
files=files
)
voice = response.json()
print(f"Voice ID: {voice['id']}")
{
"id": "pNInz6obpgDQGcFmaJgB",
"name": "Dr. Smith",
"description": "Warm, professional male voice",
"preview_url": "https://api.elevenlabs.io/v1/voices/pNInz6obpgDQGcFmaJgB/preview.mp3",
"provider": "elevenlabs",
"created_at": "2024-01-15T10:30:00Z"
}
{
"error": {
"code": "insufficient_audio",
"message": "Please provide at least 30 seconds of clean audio"
}
}
Voice Cloning Tips
For best results:- Use high-quality recordings - Professional microphone, quiet room
- Provide diverse samples - Different sentences, natural intonation
- Avoid music/background noise - Clean speech only
- Include natural speech patterns - Not too formal or scripted
- 1-3 minutes total - More audio generally improves quality