Génération de musique
Générez une chanson à partir d’une description, ou faites reprendre un morceau que vous avez déjà, en job asynchrone facturé au morceau.
/v1/music/generationsLa génération de musique est asynchrone : l'endpoint renvoie immédiatement un 202 avec un id de job, et le morceau se fabrique en arrière-plan. Interrogez GET /v1/jobs/:id (voir Jobs asynchrones) jusqu'à ce que status passe à completed ou failed. Le helper createAndWait(...) du SDK fait les deux en un appel.
La facturation est forfaitaire, au morceau. Le modèle a produit le fichier ou non, et cinq minutes coûtent le prix de trente secondes — il n'y a pas de paramètre de durée et rien à régulariser ensuite. Si un job échoue après facturation, les crédits sont intégralement remboursés.
| Modèle | Ce qu'il fait | Crédits par morceau |
|---|---|---|
minimax-music-2.6 | Écrit et interprète une chanson d'après une description, jusqu'à 5 min | 329,242 |
minimax-music-cover | Reprend un morceau que vous fournissez, dans le style décrit | 658,484 |
Générer une chanson
curl https://tchavi.com/api/v1/music/generations \
-H "Authorization: Bearer $TCHAVI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-music-2.6",
"prompt": "Afrobeats mid-tempo, guitare highlife et basse ronde, refrain joyeux"
}'{
"id": "0f3c…",
"object": "music.generation",
"status": "pending",
"model": "minimax-music-2.6",
"created_at": "2026-11-04T22:41:07.812Z",
"tchavi": {
"credits_used": 329.242,
"credits_remaining": 4821.5
}
}Interrogez ensuite GET /v1/jobs/0f3c… jusqu'à la fin. Un job de musique terminé répond avec output.audio_url — et non video_url, réservé à la vidéo — sans duration ni resolution, que la musique n'a pas à choisir.
Reprendre un morceau existant
minimax-music-cover garde la mélodie et change tout ce qui l'entoure — genre, voix, instruments, arrangement. Il exige source_audio_url, un MP3 ou un WAV accessible publiquement ; une requête sans source est refusée avant toute facturation.
curl https://tchavi.com/api/v1/music/generations \
-H "Authorization: Bearer $TCHAVI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-music-cover",
"prompt": "Version acoustique douce, voix féminine, guitare nylon",
"source_audio_url": "https://example.com/ma-maquette.mp3"
}'Paramètres
| Champ | Type | Remarques |
|---|---|---|
model | string | Obligatoire. |
prompt | string | Obligatoire. Le style et l'ambiance voulus. 2 000 caractères au plus. |
lyrics | string | Les paroles à chanter. Omis, un générateur écrit les siennes. 5 000 caractères au plus. |
instrumental | boolean | Aucune voix. Générateurs uniquement, et jamais avec lyrics. |
source_audio_url | string | Le morceau à reprendre. Exigé par minimax-music-cover, refusé par les générateurs. |
Trois combinaisons sont refusées avant toute facturation, parce que chacune demande au modèle quelque chose qu'il ne peut pas faire : une reprise sans source_audio_url, un source_audio_url envoyé à un générateur, et instrumental avec lyrics — l'un demande l'absence de voix, l'autre fournit les mots.
Avec le SDK
import Tchavi from '@tchavi/sdk';
const client = new Tchavi({ apiKey: process.env.TCHAVI_API_KEY });
// Soumet et interroge en un seul appel.
const job = await client.music.generations.createAndWait({
model: 'minimax-music-2.6',
prompt: 'Afrobeats mid-tempo, guitare highlife, refrain joyeux',
});
console.log(job.status, job.output?.audio_url);Ce que vous ne contrôlez pas
Vous ne choisissez pas la durée — le modèle décide, dans la limite de cinq minutes — et vous ne pouvez pas demander une voix précise. Personne ne peut garantir qu'un morceau généré ne ressemble à aucune musique existante, et reprendre un enregistrement qui ne vous appartient pas peut en violer les droits : le modèle ne vérifie pas, et nous non plus.