mcpField
M
music-generation

music-generation

github.com/bytedance创意与媒体84.6k297 次安装今天更新
代码仓库

关于 music-generation

使用 MiniMax music generation API,根据 JSON 规格生成歌曲,可制作有人声或纯器乐版本。输入风格、情绪和场景提示词,还可提供歌词或让模型自动创作。

主要功能

  1. 01根据 JSON 规格生成歌曲
  2. 02指定风格、情绪和场景
  3. 03提供歌词或自动生成歌词
  4. 04制作纯器乐曲目
  5. 05输出 MP3 音频

适用场景

  1. 01根据场景提示创作歌曲
  2. 02用提供的歌词生成演唱曲目
  3. 03制作纯器乐音乐

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/bytedance/deer-flow --skill music-generation

安装后在 Claude Code 中输入/music-generation确认已加载。

附带文件scripts/generate.py

详细介绍

音乐生成技能

概述

此技能使用结构化 JSON 规范,通过 MiniMax 音乐生成 API(/v1/music_generation)生成歌曲(人声或纯音乐)。在 prompt 中描述风格/情绪/场景,可选提供 lyrics,脚本会返回 MP3 文件。

工作流

步骤 1:了解需求

确定所需的风格、情绪、场景、语言,以及用户想要人声还是纯音乐。决定是否提供歌词,或让模型创作歌词。

步骤 2:创建规范 JSON

在 /mnt/user-data/workspace/ 中创建名为 {descriptive-name}.json 的 JSON 文件:

{
  "title": "Rainy Night Cafe",
  "prompt": "indie folk, melancholic, introspective, walking alone, cafe",
  "lyrics": "[verse]\nStreetlights glow the night wind sighs\n[chorus]\nPush the wooden door warm air inside"
}

字段:

  • title(可选):便于阅读的名称。
  • prompt(必填):风格、情绪和场景。它决定音乐的特征。
  • lyrics(可选):歌曲歌词。使用 \n 分隔各行,并使用 [Intro]、[Verse]、[Pre Chorus]、[Chorus]、[Bridge]、[Outro] 等结构标签。
  • is_instrumental(可选,布尔值):设为 true 可生成纯音乐(无需歌词)。

行为:

  • 提供 lyrics → 演唱这些歌词。
  • is_instrumental: true → 生成纯音乐,不含人声。
  • 两者均未提供 → 模型根据 prompt 自动创作歌词(lyrics_optimizer)。
步骤 3:执行生成
python /mnt/skills/public/music-generation/scripts/generate.py \
  --prompt-file /mnt/user-data/workspace/rainy-night-cafe.json \
  --output-file /mnt/user-data/outputs/rainy-night-cafe.mp3

参数:

  • --prompt-file:JSON 规范的绝对路径(必填)。
  • --output-file:输出 MP3 文件的绝对路径(必填)。

[!NOTE] 请勿读取 Python 文件,只需使用这些参数调用它。

环境

  • MINIMAX_API_KEY(必填):你的 MiniMax 接口密钥。
  • MINIMAX_API_HOST(可选):默认值为 https://api.minimaxi.com。
  • MINIMAX_MUSIC_MODEL(可选):默认值为 music-2.6-free(适用于所有 API 密钥用户);付费用户/Token-Plan 用户可设置为 music-2.6,以获得更高的使用限额。

输出处理

  • 音乐会保存为 MP3(通常位于 /mnt/user-data/outputs/)。
  • 返回的音频必须解码为非空字节,并且带有 ID3 标签头或 MPEG 帧签名。这是对文件头的基本检查,并非完整的音频解码。
  • 在创建输出目录或打开输出文件之前,会拒绝格式错误、为空或无法识别的音频;已有输出文件会保留。
  • 缺少音频时,会报告 "MiniMax returned no audio data";仅含空白字符的十六进制字符串会报告 "MiniMax audio decoded to empty bytes"。
  • 使用 present_files 工具将生成的文件分享给用户。
  • 如果需要调整,可提出修改风格或歌词。

注意事项

  • 让 prompt 专注于风格/情绪/场景;将实际演唱的歌词写在 lyrics 中。
  • 对于非英语歌曲,请使用目标语言撰写 lyrics。

评论

支持 Markdown