AI歌曲创作核心技能:合辙押韵歌词、MiniMax mmx-cli 调用、歌词验证、全流程歌曲生成。支持古诗词谱曲、主题歌曲创作及多渠道文件投递。
AI歌曲创作核心技能是一项面向实际任务的技能,主要用于八层门禁链路(GATED WORKFLOW);所有歌曲创作必须严格按 8 层顺序执行;
不能边写边改韵脚;GATE 0:调研背景;目标 :收集主。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
所有歌曲创作必须严格按 8 层顺序执行。每层是一个硬门禁(HARD GATE)——失败/不通过不得进入下一层。
GATE 0: RESEARCH → 调研背景信息 GATE 1: OUTLINE → 分段主题大纲 + 韵脚预分配 GATE 2: RHYME_BANK → 逐段韵脚字库 + 词语释义 GATE 3: WRITE → 反推造句(受预分配尾字约束) GATE 4: VERIFY → pypinyin 全量验证 + 修复 GATE 5: PRONUNCIATION → 生僻字扫描 + 替换 + --extra 拼音 GATE 6: CONFIRM → 用户确认歌词 GATE 7: GENERATE → mmx music generate + 发送 GATE 8: QA → 听审 + 迭代修复
⚠️ 核心原则:每层产出必须验证通过后才能进入下一层。在 GATE 3 写词前,GATE 2 的韵脚字库必须已经 100% 确定(44字全局唯一)。不能边写边改韵脚。
目标:收集主题相关的历史、事件、特点、典故,输出调研笔记。
# 企业/公司 mmx search query --q "公司名称 成立 历史 里程碑 产品" --limit 10 --non-interactive --quiet --output json # 景点/地点 mmx search query --q "景点名称 历史 典故 特色 名人" --limit 10 --non-interactive --quiet --output json # 特定领域(如六代机) mmx search query --q "关键词 最新进展 2024 2025" --limit 10 --non-interactive --quiet --output json
产出:调研笔记(关键时间节点、人物、事件、数据)
门禁检查:时间线是否完整?核心技术/事件是否覆盖? □
目标:将叙事线拆为 11 段,预分配每段的韵脚组和 44 个全局唯一定位字。
| 模式 | 规则 | 适用 |
|---|---|---|
| 中东辙合韵(默认) | ing/eng/ong/iong 通押为 'eng' 组 | 用户偏好,中文歌曲习惯 |
| 严格分韵 | ing/eng/ong 各自独立 | 学术验证 |
| AABA | L1=L2=L4 同韵,L3 白脚异韵 | 主题/企业歌曲 |
| 全韵统一 | 所有句同韵 | 短歌/儿歌 |
段韵分配(不可变):4ang + 5eng + 2ong = 11段 L3白脚分配(不可变):全部 en 组 = 11个白脚字 尾字总量(不可变):12ang + 15eng + 6ong + 11en = 44字全局唯一
产出格式:
| 段 | 标签 | 主题 | 段韵 | L1 | L2 | L4 | L3(en) | 核心内容 |
|---|---|---|---|---|---|---|---|---|
| 1 | Intro | xxx | ang | 航 | 光 | 翔 | 间 | xxx |
| ... | ... | ... | ... | ... | ... | ... | ... | ... |
门禁检查:
目标:为每个预分配的韵脚字提供常用词语和释义,供 GATE 3 造句参考。
产出格式(每段一组):
### 段1【主题】韵母 ang — 航/光/翔/间(白脚) | 韵脚字 | 常用词语(供造句参考) | 释义 | |--------|---------------------|------| | 航 | 启航、远航、领航、航空 | 出发;引领方向 | | 光 | 荣光、曙光、光芒、追光 | 光辉;荣耀 | | 翔 | 翱翔、飞翔 | 展翅高飞 | | 间 | 瞬间、天地间、弹指间 | (白脚) 时段、空间 |
门禁检查:
目标:用 GATE 2 的预分配尾字反向造句。每段 AABA,L1/L2/L4 尾字必须是指定的段韵字,L3 尾字必须是指定的白脚字。
硬约束:
产出:44 句完整歌词(无结构标签 — 纯文本,一行一句)
门禁检查:44 句是否写完?尾字是否与 GATE 2 分配一致(肉眼核对)? □
目标:用 Python 脚本逐句验证韵母归属 + AABA 结构 + 尾字全局唯一性。
必须用 pypinyin 而不能用硬编码集合:
| 字 | 硬编码判断 | pypinyin 正确结果 |
|---|---|---|
| 穷 | ong | eng (iong) |
| 穹 | ong | eng (iong) |
| 雄 | ong | eng (iong) |
| 逢 | ong | eng (ong→介音u,归eng) |
| 崧 | eng | ong |
import re
from pypinyin import pinyin
from collections import Counter
def get_rhyme_group(ch):
"""返回 'ang'|'eng'|'ong'|'en' 韵母组"""
py = pinyin(ch, style=0)[0][0].lower()
m = re.findall(r'[bpmfdtnlgkhjqxzcsryw]+', py)
initial = m[0] if m else ''
final = py[len(initial):]
if final in ['ang','iang','uang']: return 'ang'
if final in ['eng','ing','ueng','iong']: return 'eng'
if final in ['ong']: return 'ong'
if final in ['en','in','un','ün','uen','ian','an','uan']: return 'en'
return f'other({final})'
# AABA 验证
def validate_aaba(lines, seg_rhymes):
"""lines: 44个字符串, seg_rhymes: 11个段韵列表"""
errors = []
tails = []
for si in range(11):
s = si * 4
g1,g2,g3,g4 = [get_rhyme_group(lines[s+j][-1]) for j in range(4)]
sr = seg_rhymes[si]
tails.extend([lines[s+j][-1] for j in range(4)])
if not (g1==g2==g4==sr and g3=='en'):
errors.append(f"S{si+1}: {g1}/{g2}/{g3}/{g4} (期望 {sr}/{sr}/en/{sr})")
dups = {k:v for k,v in Counter(tails).items() if v>1}
return errors, dups
验收标准:
修复原则:发现重复尾字→优先替换高频字;发现韵脚错误→换尾字(必须同组且全局唯一)。
门禁检查:以上三项是否全部通过? □
目标:扫描生僻字,替换高危字,为保留字准备 --extra 拼音提示。
| 字级 | 定义 | 策略 | 示例 |
|---|---|---|---|
| 乙级(超纲) | HSK词汇表外 | 强制替换,不保留 | 筚、缕、旌 |
| 丙级(低频) | HSK丙级 | 优先替换;不可替换时加 --extra | 峥、嵘、霆、铭、铸 |
| 多音字 | 有多个读音 | --extra 标注正确读音 | 藏(cáng/zàng)、行(xíng/háng) |
--extra 拼音提示产出:修复版歌词 + --extra 拼音提示字符串
门禁检查:
目标:将歌词提交用户确认,未经确认不得生成音频。这是硬规则。
产出:
门禁检查:用户是否明确确认? □
目标:用正确参数调用 mmx music-2.6,生成后发送文件。
| 场景 | 是否含结构标签 | 原因 |
|---|---|---|
| 用户确认 | ❌ 纯文本 | 阅读体验 |
| mmx API | ✅ [Intro][Verse][Chorus]等 | 帮助AI理解结构,提升生成质量 |
| 歌曲类型 | --prompt 关键词 | --vocals | --bpm | --key |
|---|---|---|---|---|
| 航空/军工/史诗 | Epic cinematic orchestral, Chinese national style, military grandeur, soaring brass, timpani, building from solemn to triumphant | Powerful male choir, heroic baritone solo | 105-115 | D/G major |
| 企业/品牌 | Warm positive corporate, steady rhythmic, modern, hopeful, choir climax | Choir, uplifting chorus | 100-110 | C major |
| 古诗词 | Traditional Chinese, slow tempo, guqin, xiao flute, sparse and elegant | Sweet child/古风女声 | 60-80 | E minor |
| 景点/山水 | Cinematic ancient style, dizi flute, guzheng, flowing water imagery | 古风女声, sweet and ethereal | 70-90 | D minor |
| 温馨/亲情 | Gentle acoustic, piano-driven, warm and intimate | Warm male baritone | 80-95 | F major |
调用 mmx 前确保 PATH 包含 mmx 所在目录(安装位置取决于环境,常见于 ~/.hermes/node/bin/ 或 ~/.local/bin/)。用 which mmx 或查找确认路径后 export。
# 确保 mmx 在 PATH 中(根据实际安装位置调整) export PATH=":$PATH" mmx music generate --prompt "风格描述" --lyrics-file <歌词文件路径> --vocals "人声描述" --genre "流派" --mood "情绪" --instruments "乐器" --tempo "速度" --bpm 110 --key "D major" --use-case "使用场景" --extra "Pronunciation: 生僻字=拼音, ..." --model music-2.6 --out <输出路径>.mp3 --non-interactive --quiet
⚠️
--async不能用于 music generate。 ⚠️--lyrics-file比--lyrics更稳定(避免命令行字符串过长)。 ⚠️ 不要硬编码绝对路径到技能中——让 agent 在运行时动态确认 mmx 位置。
send_message(
action="send",
target=":",
message="🎵 歌曲描述 MEDIA:/tmp/song.mp3"
)
门禁检查:
目标:听取生成结果,发现发音错误→回到 GATE 5 替换→GATE 4 重新验证→GATE 7 重新生成。
常见问题:
| 问题 | 修复 | 迭代路径 |
|---|---|---|
| 某字发音不准 | 替换为同韵脚常用字 | GATE 5 → 4 → 7 |
| 某段情绪不对 | 调整结构标签或 --prompt | GATE 7 |
| 整体气场不够 | 换 --genre/--mood/--bpm | GATE 7 |
| 时长太短 | 加 repeat 或扩展段落 | GATE 1 → ... → 7 |
门禁检查:用户是否满意? □
预估时长 ≈ 歌词总句数 × 3.2秒/句 24句 → 约77秒(不够) 44句 → 约141秒(单遍不够,repeat ≈ 4.7分钟 ✅) 56句 → 约179秒(边缘) 60~92句 → 推荐交付区间
硬规则:单遍不足 3 分钟必须 repeat 或扩写。 补足优先级:repeat 完整结构 > 增加 Verse > 增加 Bridge。
| 用户反馈 | 信号级别 | 处理 |
|---|---|---|
| "尾字重复太多不好听" | FIRST-CLASS | 立即检查重复字 > 换韵脚分组 > 换不同意象字 |
| "发音不对,xx字读错了" | HIGH | GATE 5 替换该字 → GATE 4 → GATE 7 |
| "气场不够" | MEDIUM | 调 --prompt/--genre/--bpm → GATE 7 |
| "某段歌词改一下" | LOW | 局部替换 → GATE 4 验证 |
| 任务 | 模型 | 命令 |
|---|---|---|
| 歌曲生成 | music-2.6 | mmx music generate --model music-2.6 |
| 歌词生成(备用) | MiniMax-M2.7 | mmx text chat --model MiniMax-M2.7 --region cn |
| 图片生成 | image-01 | mmx image generate --model image-01 |
| 视频生成 | hailuo-2.3 | mmx video generate --model hailuo-2.3 |
⚠️
lyrics_generation不可靠(经常超时),用 MiniMax-M2.7 作为歌词生成的备用模型。 ⚠️music-2.6-free需要付费计划,不用。
| 期望声线 | --vocals |
|---|---|
| 男声合唱 | Powerful male choir with heroic baritone solo |
| 女声独唱 | Bright female soprano |
| 童声 | Sweet innocent child vocal |
| 合唱 | Choir, uplifting chorus |
| 男声独唱 | Warm male baritone |
[Intro] [Verse] [Pre Chorus] [Chorus] [Interlude] [Bridge] [Outro] [Build Up] [Solo]
□ GATE 0: 调研笔记是否完整? □ GATE 1: 11段大纲是否通过用户确认? □ GATE 2: 44字韵脚库是否 100% 确定? □ GATE 3: 44句是否严格用预分配尾字造句? □ GATE 4: pypinyin 验证是否 0 错误 + 0 重复 + AABA 全对? □ GATE 5: 乙级生僻字是否全部替换?保留字是否加了 --extra? □ GATE 6: 歌词是否已发给用户确认? □ GATE 7: --model music-2.6?结构标签是否保留在 API 调用中? □ GATE 8: 用户是否满意最终音频?
| 问题 | 解法 |
|---|---|
| 尾字重复 | 替换韵脚分组(ang↔eng↔ong轮换)→ 替换不同意象字(航→长/途) |
| 生僻字发音不准 | 三层防线:扫描替换 → --extra 拼音 → 听审迭代 |
| 硬编码韵母集合不可靠 | 强制用 pypinyin 逐字验证 |
| lyrics_generation 返回空 | 换用 MiniMax-M2.7 作为备用 |
| 48句+ 长歌词超时 | Python subprocess 后台运行,等待约 160 秒 |
| 粤语不支持 | music-2.6 输出仍为普通话 |
references/rhyme-table-20260522.md — 实测押韵表references/session-20260522-chengfei.md — 成飞案例完整复盘相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.9万人学习
共49课时 | 82.5万人学习
最新文章