Vai alla navigazione

Guida rapida a Music

Scopri come generare musica con la Music API.

Questa guida ti mostrerà come generare musica con la nostra Music API.

Usa la skill per la musica di ElevenLabs per generare brani musicali dal tuo assistente di coding IA:

npx skills add elevenlabs/skills --skill music
La Music API è disponibile solo per gli utenti a pagamento.

Usare la Music API

1

Crea una chiave API

Crea qui una chiave API nella dashboard, che userai per accedere all’API in modo sicuro.

Archivia la chiave come secret gestito e passala agli SDK come variabile d’ambiente tramite un file .env oppure direttamente nella configurazione della tua app, a seconda delle tue preferenze.

.env
ELEVENLABS_API_KEY=<your_api_key_here>
2

Installa l'SDK

Useremo anche la libreria dotenv per caricare la nostra chiave API da una variabile d’ambiente.

pip install elevenlabs
pip install python-dotenv
3

Effettua la richiesta API

Crea un nuovo file denominato example.py o example.mts, a seconda del linguaggio che preferisci, e aggiungi il codice seguente:

# 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)

Poi eseguilo:

python example.py

Dovresti sentire la musica generata in riproduzione.

Piani di composizione

Un piano di composizione è un oggetto JSON che descrive con maggior dettaglio la musica che vuoi generare. Usa i prompt di testo per la prototipazione rapida e i piani di composizione quando ti serve una struttura specifica dei chunk, una tempistica precisa per il testo o arrangiamenti complessi.

Generare un piano di composizione

Puoi generare un piano di composizione da un prompt usando 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)

Quanto sopra genererà un piano di composizione simile al seguente:

{
"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"
}
]
}

Usare un piano di composizione

Puoi usare un piano di composizione per generare musica passandolo al metodo 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)

Generare musica con dettagli

Per ogni generazione musicale viene creato un piano di composizione dal prompt. Puoi scegliere di recuperare questo piano usando l’endpoint di risposta dettagliata.

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

Il tentativo di generare musica o un piano di composizione che contenga materiale protetto da copyright genererà un errore. Ciò include menzionare per nome una band o un musicista oppure usare testi protetti da copyright.

In questi casi, l’API restituirà un errore bad_prompt contenente un suggerimento per un prompt alternativo.

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

Se usi stili che includono materiale protetto da copyright durante la generazione di un piano di composizione, verrà restituito un errore bad_composition_plan. Analogamente ai prompt musicali, l’errore includerà un piano di composizione suggerito in composition_plan_suggestion.

Nel caso di un piano di composizione o di un prompt che contiene materiale dannoso, non verrà restituito alcun prompt suggerito.

Passaggi successivi