Szybki start z Music API

Dowiedz się, jak generować muzykę za pomocą Music API.

Ten przewodnik pokaże ci, jak generować muzykę za pomocą naszego Music API.

Użyj umiejętności muzycznej ElevenLabs, aby generować utwory muzyczne z pomocą swojego asystenta AI do programowania:

npx skills add elevenlabs/skills --skill music
Music API jest dostępne tylko dla płatnych użytkowników.

Korzystanie z Music API

1

Utwórz klucz API

Utwórz klucz API w panelu tutaj, aby bezpiecznie uzyskać dostęp do API.

Przechowuj klucz jako zarządzany sekret i przekaż go do SDK jako zmienną środowiskową przez plik .env lub bezpośrednio w konfiguracji aplikacji — zależnie od preferencji.

.env
ELEVENLABS_API_KEY=<your_api_key_here>
2

Zainstaluj SDK

Użyjemy też biblioteki dotenv, aby wczytać klucz API ze zmiennej środowiskowej.

pip install elevenlabs
pip install python-dotenv
3

Wyślij żądanie API

Utwórz nowy plik o nazwie example.py lub example.mts, zależnie od wybranego języka, i dodaj poniższy kod:

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

Następnie uruchom kod:

python example.py

Powinna zacząć grać wygenerowana muzyka.

Plany kompozycji

Plan kompozycji to obiekt JSON, który dokładniej opisuje muzykę, jaką chcesz wygenerować. Używaj promptów tekstowych do szybkiego prototypowania, a planów kompozycji, gdy potrzebujesz konkretnej struktury fragmentów, precyzyjnego czasu tekstu piosenki lub złożonych aranżacji.

Generowanie planu kompozycji

Plan kompozycji można wygenerować z promptu za pomocą 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)

Powyższy kod wygeneruje plan kompozycji podobny do poniższego:

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

Korzystanie z planu kompozycji

Możesz użyć planu kompozycji do generowania muzyki, przekazując go do metody 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)

Generowanie muzyki ze szczegółami

Dla każdego wygenerowanego utworu z promptu tworzony jest plan kompozycji. Możesz pobrać ten plan, używając endpointu szczegółowej odpowiedzi.

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

Materiały chronione prawem autorskim

Próba wygenerowania muzyki lub planu kompozycji zawierających materiały chronione prawem autorskim spowoduje błąd. Dotyczy to między innymi podania nazwy zespołu lub muzyka albo użycia tekstów chronionych prawem autorskim.

Prompty z materiałami chronionymi prawem autorskim

W takich przypadkach API zwróci błąd bad_prompt z sugestią promptu, którego możesz użyć zamiast tego.

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

Plany kompozycji z materiałami chronionymi prawem autorskim

Jeśli podczas generowania planu kompozycji użyjesz stylów zawierających materiały chronione prawem autorskim, zwrócony zostanie błąd bad_composition_plan. Podobnie jak w przypadku promptów muzycznych, błąd będzie zawierał sugerowany plan kompozycji composition_plan_suggestion.

W przypadku planu kompozycji lub promptu zawierającego szkodliwe treści nie zostanie zwrócona sugestia promptu.

Kolejne kroki