curl -X POST https://api.60db.ai/songs/voices \
-H "Authorization: Bearer your-api-key" \
-F "name=My Brand Voice" \
-F "[email protected]" \
-F "consent=true"
const voiceFile = document.querySelector('input[type="file"]').files[0];
const voice = await client.music.createVoice({
name: 'My Brand Voice',
file: voiceFile
});
console.log('Voice ID:', voice.data.voice_id);
with open('voice-sample.wav', 'rb') as f:
voice = client.music.create_voice(
name='My Brand Voice',
file=f
)
print('Voice ID:', voice['data']['voice_id'])
{
"success": true,
"data": {
"voice_id": "<string>",
"name": "<string>",
"gender": "<string>",
"language": "<string>",
"preview_url": null
}
}Music
Create Voice
Save a custom voice from an audio sample
POST
/
songs
/
voices
curl -X POST https://api.60db.ai/songs/voices \
-H "Authorization: Bearer your-api-key" \
-F "name=My Brand Voice" \
-F "[email protected]" \
-F "consent=true"
const voiceFile = document.querySelector('input[type="file"]').files[0];
const voice = await client.music.createVoice({
name: 'My Brand Voice',
file: voiceFile
});
console.log('Voice ID:', voice.data.voice_id);
with open('voice-sample.wav', 'rb') as f:
voice = client.music.create_voice(
name='My Brand Voice',
file=f
)
print('Voice ID:', voice['data']['voice_id'])
{
"success": true,
"data": {
"voice_id": "<string>",
"name": "<string>",
"gender": "<string>",
"language": "<string>",
"preview_url": null
}
}Upload an audio sample and create a custom voice for your workspace. The voice can then be used in future song creations.
Request
Headers
string
required
Bearer token with your API key
string
required
multipart/form-data
Body (Multipart)
string
required
Display name for the voice (≤200 chars)
file
required
Audio file (wav/flac/mp3/m4a/ogg, 3–30 seconds, ≤10 MB)
string
required
Must be
"true". The caller attests they have permission to use this voice.Response
boolean
True on success
object
Errors
| Status | Meaning |
|---|---|
| 400 | Invalid audio format, duration, size, or missing consent |
| 403 | Consent not given (“true”) |
Example
curl -X POST https://api.60db.ai/songs/voices \
-H "Authorization: Bearer your-api-key" \
-F "name=My Brand Voice" \
-F "[email protected]" \
-F "consent=true"
const voiceFile = document.querySelector('input[type="file"]').files[0];
const voice = await client.music.createVoice({
name: 'My Brand Voice',
file: voiceFile
});
console.log('Voice ID:', voice.data.voice_id);
with open('voice-sample.wav', 'rb') as f:
voice = client.music.create_voice(
name='My Brand Voice',
file=f
)
print('Voice ID:', voice['data']['voice_id'])