Démarrage rapide de Music

Découvrez comment générer de la musique avec l’API Music.

Ce guide vous montre comment générer de la musique avec notre API Music.

Utilisez la compétence Music d’ElevenLabs pour générer des morceaux avec votre assistant de programmation IA :

npx skills add elevenlabs/skills --skill music
L’API Music est réservée aux utilisateurs payants.

Utiliser l’API Music

1

Créer une clé API

Créez une clé API dans le Dashboard ici, que vous utiliserez pour accéder à l’API de manière sécurisée.

Stockez la clé comme secret géré et transmettez-la aux SDK soit en tant que variable d’environnement via un fichier .env, soit directement dans la configuration de votre application, selon vos préférences.

.env
ELEVENLABS_API_KEY=<your_api_key_here>
2

Installer le SDK

Nous utiliserons également la bibliothèque dotenv pour charger notre clé API depuis une variable d’environnement.

pip install elevenlabs
pip install python-dotenv
3

Effectuer la requête API

Créez un fichier nommé example.py ou example.mts, selon le langage choisi, puis ajoutez le code suivant :

# example.py
from elevenlabs.client import ElevenLabs
from elevenlabs.play import play
import os
from dotenv import load_dotenv
load_dotenv()
elevenlabs = ElevenLabs(
api_key=os.getenv("ELEVENLABS_API_KEY"),
)
track = elevenlabs.music.compose(
prompt="Create an intense, fast-paced electronic track for a high-adrenaline video game scene. Use driving synth arpeggios, punchy drums, distorted bass, glitch effects, and aggressive rhythmic textures. The tempo should be fast, 130–150 bpm, with rising tension, quick transitions, and dynamic energy bursts.",
music_length_ms=10000,
model_id="music_v2_5",
)
# Save the track to a file
with open("path/to/music.mp3", "wb") as f:
for chunk in track:
f.write(chunk)

Exécutez-le ensuite :

python example.py

Vous devriez entendre la musique générée.

Plans de composition

Un plan de composition est un objet JSON qui décrit plus précisément la musique à générer. Utilisez des prompts textuels pour le prototypage rapide et des plans de composition lorsque vous avez besoin d’une structure de segments spécifique, d’un minutage précis des paroles ou d’arrangements complexes.

Générer un plan de composition

Vous pouvez générer un plan de composition à partir d’un prompt via l’API.

from elevenlabs.client import ElevenLabs
from elevenlabs.play import play
import os
from dotenv import load_dotenv
load_dotenv()
elevenlabs = ElevenLabs(
api_key=os.getenv("ELEVENLABS_API_KEY"),
)
composition_plan = elevenlabs.music.composition_plan.create(
prompt="Create an intense, fast-paced electronic track for a high-adrenaline video game scene. Use driving synth arpeggios, punchy drums, distorted bass, glitch effects, and aggressive rhythmic textures. The tempo should be fast, 130–150 bpm, with rising tension, quick transitions, and dynamic energy bursts.",
music_length_ms=10000,
model_id="music_v2_5",
)
print(composition_plan)

Cela génère un plan de composition similaire au suivant :

{
"chunks": [
{
"text": "[Intro]",
"durationMs": 3000,
"positiveStyles": [
"electronic",
"fast-paced",
"rising synth arpeggio",
"glitch fx",
"filtered noise sweep",
"soft punchy kick building tension",
"high adrenaline"
],
"negativeStyles": ["soft pads", "melodic vocals", "ambient textures"],
"contextAdherence": "high"
},
{
"text": "[Peak Drop]",
"durationMs": 4000,
"positiveStyles": [
"full punchy drums",
"distorted bass stab",
"aggressive rhythmic hits",
"rapid arpeggio sequences"
],
"negativeStyles": ["smooth transitions", "clean bass", "slow buildup"],
"contextAdherence": "high"
},
{
"text": "[Final Burst]",
"durationMs": 3000,
"positiveStyles": [
"glitch stutter",
"energy burst vox chopped sample",
"quick transitions",
"snare rolls"
],
"negativeStyles": ["long reverb tails", "fadeout", "gentle melodies"],
"contextAdherence": "high"
}
]
}

Utiliser un plan de composition

Vous pouvez générer de la musique à partir d’un plan de composition en le transmettant à la méthode compose.

# You can pass in composition_plan or prompt, but not both.
composition = elevenlabs.music.compose(
composition_plan=composition_plan,
model_id="music_v2_5",
)
play(composition)

Générer de la musique avec des détails

Pour chaque génération musicale, un plan de composition est créé à partir du prompt. Vous pouvez choisir de récupérer ce plan en utilisant le point de terminaison de réponse détaillée.

track_details = elevenlabs.music.compose_detailed(
prompt="Create an intense, fast-paced electronic track for a high-adrenaline video game scene. Use driving synth arpeggios, punchy drums, distorted bass, glitch effects, and aggressive rhythmic textures. The tempo should be fast, 130–150 bpm, with rising tension, quick transitions, and dynamic energy bursts.",
music_length_ms=10000,
model_id="music_v2_5",
)
print(track_details.json) # json contains composition_plan and song_metadata. The composition plan will include lyrics (if applicable)
print(track_details.filename)
# track_details.audio contains the audio bytes

Contenu protégé par le droit d’auteur

Toute tentative de générer de la musique ou un plan de composition contenant du contenu protégé par le droit d’auteur entraînera une erreur. Cela inclut la mention du nom d’un groupe ou d’un musicien, ou l’utilisation de paroles protégées par le droit d’auteur.

Prompts contenant du contenu protégé par le droit d’auteur

Dans ces cas, l’API renvoie une erreur bad_prompt qui contient une suggestion de prompt à utiliser à la place.

try:
# This will result in a bad_prompt error
track = elevenlabs.music.compose(
prompt="A song that sounds like 'Bohemian Rhapsody'",
music_length_ms=10000,
model_id="music_v2_5",
)
except Exception as e:
if e.body['detail']['status'] == 'bad_prompt':
prompt_suggestion = e.body['detail']['data']['prompt_suggestion']
print(prompt_suggestion) # Prints: An epic rock ballad with dramatic tempo changes, operatic harmonies, and a narrative structure that blends melancholy with bursts of theatrical intensity.
# Use the prompt suggestion to generate the track instead

Plans de composition contenant du contenu protégé par le droit d’auteur

Si des styles utilisant du contenu protégé par le droit d’auteur sont employés lors de la génération d’un plan de composition, une erreur bad_composition_plan est renvoyée. Comme pour les prompts musicaux, un plan de composition suggéré composition_plan_suggestion est renvoyé dans l’erreur.

Lorsqu’un plan de composition ou un prompt contient du contenu préjudiciable, aucune suggestion de prompt n’est renvoyée.

Étapes suivantes