music について
ElevenLabsでインストゥルメンタルや歌詞付きの曲を生成するスキルです。作曲プランによる調整や、アップロードした動画に合わせたBGM生成にも対応します。
主な機能
- 01プロンプトから楽曲を生成
- 02作曲プランの作成と編集
- 03音声・プラン・メタデータの生成
- 04アップロード動画向けの楽曲生成
- 05インペインティング用の音声アップロード
活用シーン
- 01テキストの説明からインスト曲を作成
- 02セクション別の作曲プランで曲を調整
- 03動画クリップのBGMを生成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ connorads/ dotfiles --skill musicインストール後、Claude Code で/musicを入力して読み込まれたか確認します。
同梱ファイルreferences/api_reference.mdreferences/installation.md
詳細
ElevenLabs Music Generation
テキストプロンプトから音楽を生成します。インストゥルメンタルトラック、歌詞付きの楽曲、コンポジションプランによる細かな制御に対応しています。
セットアップ: インストールガイドを参照してください。JavaScript では
@elevenlabs/*パッケージのみを使用してください。
クイックスタート
Python
from elevenlabs import ElevenLabs
client = ElevenLabs()
audio = client.music.compose(
prompt="A chill lo-fi hip hop beat with jazzy piano chords",
music_length_ms=30000
)
with open("output.mp3", "wb") as f:
for chunk in audio:
f.write(chunk)
JavaScript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
import { createWriteStream } from "fs";
const client = new ElevenLabsClient();
const audio = await client.music.compose({
prompt: "A chill lo-fi hip hop beat with jazzy piano chords",
musicLengthMs: 30000,
});
audio.pipe(createWriteStream("output.mp3"));
cURL
curl -X POST "https://api.elevenlabs.io/v1/music" \
-H "xi-api-key: $ELEVENLABS_API_KEY" -H "Content-Type: application/json" \
-d '{"prompt": "A chill lo-fi beat", "music_length_ms": 30000}' --output output.mp3
メソッド
| メソッド | 説明 |
|---|---|
music.compose | プロンプトまたはコンポジションプランから音声を生成します |
music.composition_plan.create | 細かな制御ができる構造化プランを生成します |
music.compose_detailed | 音声、コンポジションプラン、メタデータを生成します |
music.video_to_music | アップロードした1つ以上の動画ファイルからBGMを生成します |
music.upload | 後続のインペインティングワークフロー用に音声ファイルをアップロードし、必要に応じてコンポジションプランを抽出します |
パラメーターの詳細については、API リファレンスを参照してください。
music.upload は、インペインティング機能を利用できるエンタープライズクライアント向けに提供されています。
動画から音楽を生成
アップロードした1つ以上の動画クリップに沿ったBGMを生成します。API は動画を順番に結合し、任意の自然言語による説明を受け付け、upbeat や cinematic など最大10個のタグでスタイルを指定できます。
Python
from elevenlabs import ElevenLabs
client = ElevenLabs()
audio = client.music.video_to_music(
videos=["trailer.mp4"],
description="Build suspense, then resolve with a warm cinematic finish.",
tags=["cinematic", "suspenseful", "uplifting"],
)
with open("video-score.mp3", "wb") as f:
for chunk in audio:
f.write(chunk)
cURL
curl -X POST "https://api.elevenlabs.io/v1/music/video-to-music" \
-H "xi-api-key: $ELEVENLABS_API_KEY" \
-F "[email protected]" \
-F "description=Build suspense, then resolve with a warm cinematic finish." \
-F "tags=cinematic" \
-F "tags=suspenseful" \
-F "tags=uplifting" \
--output video-score.mp3
現在の API スキーマにおける制約:
- 1回のリクエストでアップロードできる動画ファイルは1~10個です
- アップロードしたファイルの合計サイズは200 MB以下にしてください
- 動画の合計時間は600秒以下にしてください
- 大まかな音楽の方向性には
descriptionを、簡潔なスタイル指定にはtagsを使用してください
コンポジションプラン
細かな制御を行うには、まずコンポジションプランを生成して変更し、その後で音楽を生成します。
plan = client.music.composition_plan.create(
prompt="An epic orchestral piece building to a climax",
music_length_ms=60000
)
# Inspect/modify styles and sections
print(plan.positiveGlobalStyles) # e.g. ["orchestral", "epic", "cinematic"]
audio = client.music.compose(
composition_plan=plan,
music_length_ms=60000
)
コンテンツの制限
- 特定のアーティスト、バンド、または著作権で保護された歌詞は指定できません
bad_promptエラーには、別の表現を提案するprompt_suggestionが含まれますbad_composition_planエラーにはcomposition_plan_suggestionが含まれます
エラー処理
try:
audio = client.music.compose(prompt="...", music_length_ms=30000)
except Exception as e:
print(f"API error: {e}")
一般的なエラー:401(無効なキー)、422(無効なパラメーター)、429(レート制限)。
参考資料
コメント
Markdown 対応