Music Generation
v0.4.0Générez de la musique originale par IA à partir d'un simple texte. Morceaux instrumentaux WAV 48 kHz stéréo de 5 à 60 secondes, moteur, tempo et graine au choix.
Base URL :
https://api.s33d.fr
POST /v1/music
Génère un morceau de musique original à partir d'une description textuelle : un fichier audio WAV (base64).
Paramètres (JSON body)
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| prompt | string | oui | Description du morceau à générer (2-500 caractères). Ex: "ambient electronic chill with soft synths" |
| duration | integer | non | Durée exacte en secondes (5-60, défaut: 15) |
| length | string | non | Durée approximative : "1min", "2min" ou "3min" (à la place de duration). Le morceau dure de 90 à 100 % de la durée choisie. Durées proposées par chaque moteur : GET /v1/music/engines |
| engine | string | non | Moteur de génération : "studio-hd" (qualité maximale, défaut) ou "studio" (rapide). Liste, durées et moteur par défaut : GET /v1/music/engines |
| bpm | integer | non | Tempo visé (40-220). Sans tempo : 110, ou choisi par la réécriture |
| seed | integer | non | Graine : la même graine et la même description redonnent le même morceau ; sans graine, chaque appel produit une variante |
| enhance | boolean | non | Réécriture de la description en direction musicale détaillée ; tempo, tonalité et mesure choisis d'après elle s'ils ne sont pas imposés (défaut: false : la description est seulement traduite en anglais). Le texte envoyé au moteur revient dans caption |
| key | string | non | Tonalité imposée, ex. "C major", "A minor", "F# minor" (défaut : "C major", ou choisie par la réécriture) |
| planner | boolean | non | Esquisse du morceau (mélodie, rythme, structure, instruments) écrite par le modèle interne du moteur avant le rendu (défaut: true). Entraînée sur des morceaux arrangés, elle peut ajouter un accompagnement. false : rendu d'après le texte seul |
| master | boolean | non | Mastering : égalisation, compression douce, −14 LUFS sans dépasser −1,2 dB de crête (défaut: false : volume normalisé à −1,5 dB de crête) |
Exemple
curl -X POST https://api.s33d.fr/v1/music \
-H "Content-Type: application/json" \
-H "Authorization: Bearer VOTRE_CLÉ" \
-d '{
"prompt": "upbeat jazz with saxophone and piano",
"duration": 15
}'
Réponse
{
"audio_base64": "UklGRi...",
"sample_rate": 48000,
"duration_seconds": 15.0,
"format": "wav",
"generation_time_ms": 7773,
"engine": "studio-hd",
"seed": 972114511,
"bpm": 120,
"keyscale": "G major",
"caption": "Piano solo. Slow and calm piece...",
"bpm_source": "request",
"key_source": "request",
"enhanced": false, "mastered": false,
"steps": 50, "guidance": 7.0, "takes": 1
}
💡 Utilisation du résultat :
Le champ
audio_base64 contient le fichier WAV encodé en base64. Décodez-le côté client pour le jouer directement dans un lecteur HTML5 Audio ou l'enregistrer en fichier.
🚀 Exemples d'intégration
🐍 Python
import requests, base64
resp = requests.post(
"https://api.s33d.fr/v1/music",
headers={"Authorization": "Bearer VOTRE_CLÉ"},
json={
"prompt": "lo-fi hip hop chill beats",
"duration": 10
}
)
data = resp.json()
# Sauvegarder le fichier WAV
with open("output.wav", "wb") as f:
f.write(base64.b64decode(data["audio_base64"]))
📦 JavaScript
const res = await fetch(
"https://api.s33d.fr/v1/music",
{
method: "POST",
headers: {
"Authorization": `Bearer ${KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
prompt: "epic orchestral cinematic",
duration: 15
})
}
);
const { audio_base64 } = await res.json();
// Jouer directement dans le navigateur
const audio = new Audio(
`data:audio/wav;base64,${audio_base64}`
);
audio.play();