关于 music
这是用于 ElevenLabs 音乐生成的技能,可根据提示词创作纯音乐、带歌词歌曲,或按编曲计划生成音频;也能为上传的视频配背景音乐。
主要功能
- 01根据提示词生成音乐
- 02创建和修改编曲计划
- 03生成音频、计划及元数据
- 04为上传的视频生成配乐
- 05上传音频用于修补工作流
适用场景
- 01根据文字描述创作纯音乐
- 02用分段编曲计划调整曲目
- 03为视频片段生成背景音乐
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ connorads/ dotfiles --skill music安装后在 Claude Code 中输入/music确认已加载。
附带文件references/api_reference.mdreferences/installation.md
详细介绍
ElevenLabs 音乐生成
根据文本提示生成音乐——支持纯音乐、带歌词的歌曲,以及通过作曲计划进行精细控制。
**设置:**请参阅安装指南。对于 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 | 根据一个或多个上传的视频文件生成背景音乐 |
music.upload | 上传音频文件,以便后续用于修补工作流,并可选择提取其作曲计划 |
完整参数详情请参阅 API 参考。
具备修补功能访问权限的企业客户端可以使用 music.upload。
视频转音乐
根据一个或多个上传的视频片段生成与之相配的背景音乐。API 会按顺序合并视频,接受可选的自然语言描述,并允许使用最多 10 个标签(例如 upbeat 或 cinematic)来指定风格。
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-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