Files
skills/minimax-music-codex/SKILL.md
T

80 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: minimax-music
description: 调用 MiniMax music-3.0 生成音乐(带唱歌曲、纯音乐、自动作词、翻唱),并裁成定长无缝循环 BGM。触发关键词:「生成音乐」「做首歌」「写首歌」「AI 作曲」「生成 BGM」「背景音乐」「配乐」「纯音乐」「器乐」「MiniMax 音乐」「music-3.0」「翻唱」「循环 BGM」「游戏配乐」「短片配乐」。
---
# MiniMax 音乐生成
调用 MiniMax music-3.0 生成音乐并下载到本地;需要定长循环 BGM 时用 `loopify.py` 后期处理。
## 脚本
- `scripts/generate.py`:调 API 生成音乐(Python 3 标准库)
- `scripts/loopify.py`:裁成定长无缝循环 + 客观验收(依赖 ffmpeg + numpy
## API Key
优先读环境变量 `MINIMAX_API_KEY`,否则读 `~/.config/minimax_api_key`。不要把 key 写进代码或提交。
⚠️ 区域必须匹配:国内 key 配 `api.minimaxi.com`(脚本内置),海外 key 要改成 `api.minimax.io`,否则报鉴权失败。
## 计费
`music-3.0` / `music-2.6` / `music-cover` 约 ¥1/首;对应 `-free` 模型免费但 RPM 3。试风格、调 prompt 一律先用 `--free`,定稿再跑付费模型。
## 用法
```bash
S=~/.codex/skills/minimax-music/scripts
# 纯音乐(游戏 BGM 常用)
python3 $S/generate.py "中世纪奇幻大地图探索,鲁特琴+竖琴+木笛,中慢速,无鼓" --instrumental -o bgm.mp3
# 带唱:lyrics 必填
python3 $S/generate.py "独立民谣,忧郁内省" -l @lyrics.txt -o song.mp3
# 自动作词
python3 $S/generate.py "抒情流行,夏夜告别,遗憾但释然" --auto-lyrics -o auto.mp3
# 翻唱:参考音频 6s-6min、<=50MB
python3 $S/generate.py "" --cover ref.mp3 -l "[Verse]\n新歌词..." -o cover.mp3
# 任何模式加 --free 免费试跑
python3 $S/generate.py "..." --instrumental --free -o test.mp3
```
常用参数:`-l/--lyrics``--instrumental``--auto-lyrics``--cover``-m/--model``--free``-o/--output``--sample-rate``--bitrate``--format``--hex`
## 定长无缝循环 BGM
接口没有 duration 参数,时长不可控。游戏/短片要定长循环必须后期处理:
```bash
python3 $S/loopify.py raw.mp3 -o bgm_loop.mp3 -L 45 --preview 3
```
它会测速并对齐整数小节、扫描最优接缝、交叉淡化、峰值留余量,并输出客观验收。`--preview 3` 额外导出连播三遍的文件,循环 BGM 必须循环听至少 3 分钟。
若验收有项未通过(常见为接缝前后 RMS 差),换 `-L 30` / `-L 60` 等循环长度重试。
## 写 prompt 的要点
循环 BGM 要写「稳定」:全曲同调性、同速度、同织体密度,明确不要前奏尾奏、不要渐强、不要淡出结尾。
- 写死速度和拍号:「中慢速约 80 BPM,6/8 摇曳律动,自然小调」
- 逐件点名配器:「古筝分解和弦作骨架,三味线点缀,尺八吹主旋律,柔和弦乐铺底」
- 一定写否定项:「严格不要:人声、歌词、吟唱、现代流行元素、电子合成器、重鼓组、密集打击乐」
- 中英混写没问题,关键风格用英文直接写:`Japanese traditional, wafuu orchestral, instrumental, loopable, game soundtrack`
## 工作流
1. 明确用途和时长要求
2. 先用 `--free` 试 1-2 版确认方向
3. 方向对了跑付费模型定稿
4. 要循环就接 `loopify.py`,看验收是否全项通过
5. 成品路径告诉用户;循环 BGM 一并给 `--preview` 试听文件
## 错误码
HTTP 200 不代表成功,看 `base_resp.status_code``0` 成功、`1002` 限流、`1004` 鉴权失败、`1008` 余额不足、`1026` 敏感内容、`2013` 参数错。