music-creator

AI 音乐创作全流程技能。根据主题和风格创作歌词,通过 MiniMax AI 生成音乐和封面图,ASR 精准对齐歌词时序,生成带歌词同步的播放页面并部署。触发词:创作歌曲、写首歌、生成音乐、AI 音乐、music creator、帮我写首歌、创作音乐、做个音乐。

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "music-creator" with this command: npx skills add tomtrije/music-creator

Music Creator — AI 音乐创作技能

从主题到成品播放页面的一站式 AI 音乐创作流程。

初始化配置

首次使用前必须完成以下配置。 Agent(即你)在首次接到音乐创作任务时,应主动引导用户完成配置。


🤖 Agent Prompt — 首次使用时对用户说的话

在你第一次使用音乐创作功能前,需要完成以下初始化配置:

1. MiniMax API 密钥 我需要一个 MiniMax API Key 来生成歌词、音乐和封面图。请提供你的 API Key。 获取地址:https://platform.minimaxi.com

2. 创作人信息 请告诉我以下信息,用于封面图署名和播放页展示:

  • 艺术家名 / 歌手名
  • 作词人(默认同上)
  • 作曲人(默认同上)
  • 演唱者(默认同上)
  • 制作人(默认同上)

其他依赖(whisper、ffmpeg、Pillow)我会自行检查并安装,不需要你操作。

用户提供 API Key 后,Agent 执行以下命令完成初始化:

# 安装 mmx CLI
npm install -g mmx-cli
# 登录 API Key
mmx auth login --api-key <用户提供的API_KEY>
# 验证
mmx text chat --model MiniMax-M2.7 --message "test" --output json

用户提供创作人信息后,Agent 在技能目录创建 config.json

{
  "artist": "<艺术家名>",
  "credits": {
    "lyrics": "<作词人>",
    "compose": "<作曲人>",
    "sing": "<演唱者>",
    "produce": "<制作人>"
  }
}

如果某个角色与艺术家不同,单独设置对应字段;相同则默认填艺术家名。


🔧 技术依赖(Agent 自行检查)

以下依赖 Agent 首次运行时自行检测,缺失则自动安装,无需用户参与:

依赖检查命令安装命令
mmx CLImmx text chat --helpnpm install -g mmx-cli
whisperwhisper --helppip install openai-whisper
ffprobeffprobe -versionapt install ffmpeg
Pillow + 中文字体python3 -c "from PIL import Image"pip install Pillow

中文字体检查:ls /usr/share/fonts/google-noto-cjk/NotoSansCJK-Black.ttc

依赖

工具用途检查命令
mmx CLI歌词创作、音乐生成、封面图生成mmx text chat --help
whisperASR 歌词时序识别whisper --help
ffprobe获取音频时长ffprobe -version
Pillow (PIL)封面图文字合成python3 -c "from PIL import Image"
report-expert播放页面模板 + 部署技能目录 music_player_builder.py

文件目录结构

每首歌创建独立目录,所有相关文件放在一起:

claw/music/{slug}/
├── index.html          # 播放页面(从模板复制,无需修改)
├── song.json            # 歌曲元信息(标题、副标题、创作人)
├── song.mp3             # 音乐文件
├── cover.jpg            # 封面图(Pillow 合成后)
├── lyrics.txt           # 纯文本歌词(无时间)
└── lyrics-timed.json    # 带时序的歌词 JSON
  • slug:歌曲名的小写英文/拼音 slug(如 nanchangcheng-love
  • 部署方式:通过 report-expert 技能的 deploy 命令部署(见 Step 7)
  • index.html 是模板的副本,不需要修改,播放页从 song.jsonlyrics-timed.json 动态加载所有信息
  • 所有资源通过相对路径引用,不使用 base64

完整工作流

按以下 7 个步骤顺序执行:

Step 1:确认主题与风格

读取 config.json 获取创作人信息。

与用户确认以下信息:

参数必填说明示例
主题歌曲主题/歌名"我爱小微"、"春天的故事"
风格音乐风格"甜蜜浪漫流行"、"摇滚"、"民谣"
参考信息参考图片或文本用户提供的灵感素材

如果用户已提供主题和风格,直接进入下一步。如果信息不完整,询问补充。

生成 slug(用于目录名):将歌名转小写,用连字符连接。

Step 2:收集参考信息(可选)

如果用户提供了:

  • 参考图片:描述图片内容,提取可用于歌词创作的意象和情感元素
  • 参考文本:提炼关键信息、情感基调、故事线索

将参考信息整理为歌词创作的参考摘要(不直接展示给用户)。

Step 3:创作歌词

使用 MiniMax 文本模型生成歌词:

mmx text chat --model MiniMax-M2.7 --message "PROMPT" --output json

Prompt 模板:

请为一首{风格}风格的中文歌曲写歌词,主题是《{主题}》。
要求:
1. 歌曲结构标签:[Intro] [Verse 1] [Pre Chorus] [Chorus] [Verse 2] [Pre Chorus] [Chorus] [Bridge] [Chorus] [Outro]
2. 每段 4-6 行,总时长控制在 2-4 分钟
3. {如果有参考信息:参考以下素材融入歌词:{参考摘要}}
4. 歌词要有画面感和故事性,朗朗上口
5. **尽可能押韵**:同一段落内相邻句子尽量押韵(如 AABB、ABAB 或 AAAA),Chorus 部分尤须押韵工整,这是歌曲朗朗上口的关键。优先使用常见韵脚(如 ao/iao、an/ian、eng/ing、ou/iu 等),韵脚要自然不生硬
6. 只输出歌词,不要其他内容

将歌词保存到歌曲目录:{MUSIC_DIR}/lyrics.txt

Step 4:生成音乐 + 封面图(并行)

音乐生成:

mmx music generate \
  --prompt "{风格}风格的中文歌曲,主题{主题}" \
  --lyrics-file {MUSIC_DIR}/lyrics.txt \
  --out {MUSIC_DIR}/song.mp3

封面图生成(无文字纯画面):

mmx image generate \
  --prompt "A beautiful album cover art, absolutely no text no words no letters, {风格对应画面的英文描述}, artistic watercolor style, 1:1 square format" \
  --out {MUSIC_DIR}/cover-raw.jpg

两者并行执行,节省时间。

封面图文字合成:

python3 scripts/make_cover.py \
  --input {MUSIC_DIR}/cover-raw.jpg \
  --title "{主题}" \
  --artist "{config.artist}" \
  --output {MUSIC_DIR}/cover.jpg

重要:AI 图像生成对中文文字渲染会乱码,必须用 Pillow 叠加文字。

Step 5:ASR 歌词时序识别

whisper {MUSIC_DIR}/song.mp3 \
  --model tiny --language zh \
  --word_timestamps True \
  --output_format json \
  --output_dir /tmp/whisper-{slug} \
  --device cpu

对齐歌词时序:

python3 scripts/align_lyrics.py \
  --asr /tmp/whisper-{slug}/{slug}.json \
  --lyrics {MUSIC_DIR}/lyrics.txt \
  --mp3 {MUSIC_DIR}/song.mp3 \
  --output {MUSIC_DIR}/lyrics-timed.json

注意:歌曲有重复段落(Chorus 出现多次),对齐脚本只处理首次出现。需要手动修正后半段(Bridge、Chorus 2/3、Outro)的时间:

  1. ffprobe 获取歌曲总时长
  2. 根据 ASR 原始输出找到每个重复段落对应的 segment 起始时间
  3. 按比例分配该段内歌词行的时间
  4. 更新 lyrics-timed.json

Step 6:生成播放页面

使用 report-expert 技能中的 music_player_builder.py 模板(需安装 report-expert 技能):

python3 {REPORT_EXPERT_DIR}/music_player_builder.py \
  --mp3 {MUSIC_DIR}/song.mp3 \
  --cover {MUSIC_DIR}/cover.jpg \
  --title "{主题}" \
  --subtitle "{副标题}" \
  --lyrics {MUSIC_DIR}/lyrics-timed.json \
  --output {MUSIC_DIR}/index.html \
  --download-filename "{主题}.mp3"

{REPORT_EXPERT_DIR} 为 report-expert 技能的安装目录,通常是 ~/.openclaw/workspace/skills/report-expert/

文件引用方式:模板生成的 HTML 通过相对路径 song.mp3cover.jpg 引用同目录文件,不使用 base64 嵌入。

Step 7:部署(需安装 report-expert 技能)

将歌曲的所有文件(播放页 + 静态资源)复制到 report-expert 的 dist/ 工作目录,然后通过 deploy.py 注册索引并 sync_to_deploy() 统一推送。

REPORT_DIR="{REPORT_EXPERT_DIR}/dist/music/{slug}"
mkdir -p "$REPORT_DIR"

# 复制所有歌曲文件到 report-expert dist/
cp {MUSIC_DIR}/index.html "$REPORT_DIR/"
cp {MUSIC_DIR}/song.mp3 "$REPORT_DIR/"
cp {MUSIC_DIR}/cover.jpg "$REPORT_DIR/"
cp {MUSIC_DIR}/song.json "$REPORT_DIR/"
cp {MUSIC_DIR}/lyrics.txt "$REPORT_DIR/"
cp {MUSIC_DIR}/lyrics-timed.json "$REPORT_DIR/"

# 注册到索引并同步部署
cd {REPORT_EXPERT_DIR}
python3 deploy.py add "music/{slug}/index.html" \
  --title "{主题} - 原创音乐" \
  --desc "AI 创作{风格}歌曲:{主题}" \
  --category other

python3 -c "from lib.config import sync_to_deploy; sync_to_deploy()"

部署的站点地址和 URL 由 report-expert 技能的配置(TOOLS.md)决定,本技能不耦合具体站点信息。

sync_to_deploy() 会将 dist/ 下所有文件(包括 mp3、jpg 等静态资源)同步到部署目录,无需单独处理。

输出

完成后的交付物:

  1. 播放页面:由 report-expert 部署,具体 URL 取决于 report-expert 配置
  2. MP3 文件{MUSIC_DIR}/song.mp3(可单独发送)
  3. 封面图{MUSIC_DIR}/cover.jpg(可单独发送)

封面图画面风格映射

音乐风格画面描述(英文 Prompt)
流行/甜蜜dreamy romantic scene, pink purple gradient, cherry blossom petals, couple silhouette
摇滚electric energy, dark stage, neon lights, guitar silhouette, dramatic lighting
民谣peaceful countryside, sunset, acoustic guitar, warm golden light
古风Chinese ink painting style, mountains mist, bamboo, plum blossom, moon
电子/DJfuturistic neon city, abstract light trails, geometric shapes, cyberpunk
嘻哈urban street scene, graffiti wall, boombox, bold colors
R&Bsmooth jazz club, saxophone, warm candlelight, velvet curtains
儿歌/欢快colorful playground, balloons, sunshine, cartoon animals, bright colors

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

vwu.ai MiniMax Models

Call minimax models MiniMax-Hailuo series on vwu.ai with OpenAI-compatible chat completions using your configured API key.

Registry SourceRecently Updated
2850Profile unavailable
General

Pixshop MCP — 28+ AI Creative Tools

Pixshop MCP 集成 — 28+ AI 图片视频创意工具,Claude 直接调用 / Pixshop MCP — 28+ AI creative tools for image & video generation, editing, effects in Claude. Use when user wa...

Registry SourceRecently Updated
3960Profile unavailable
General

ACE-Step Music Generation

Generate high-quality music on Apple Silicon Macs using ACE-Step 1.5 with MLX backend, supporting custom prompts, durations, and output formats.

Registry SourceRecently Updated
4400Profile unavailable
General

雀影

AI 视频创意伙伴,生成分镜脚本和 Seedance 提示词

Registry SourceRecently Updated
2090Profile unavailable