mcpField
L
lyric-diagnostic

lyric-diagnostic

github.com/jwynia创意与媒体179505 次安装35 周前更新
代码仓库

关于 lyric-diagnostic

面向人类和 AI 写作者的歌词诊断技能,按六类问题分析歌词,并提供有针对性的修改建议,涵盖陈词滥调、节拍、声音和结构等方面。

主要功能

  1. 01六类歌词问题诊断
  2. 02陈词滥调与押韵检查
  3. 03节拍与重音分析
  4. 04意象与潜台词指导
  5. 05语气与声音审视
  6. 06歌曲结构评估

适用场景

  1. 01检查 AI 生成的歌词
  2. 02诊断感觉不对的歌词
  3. 03制作前检查歌词

安装

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

$npx skills add https://github.com/jwynia/agent-skills --skill lyric-diagnostic

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

data/
cmudict-simplified.json
lyric-dominance-rules.json
scripts/
cliche-check.ts
meter-check.ts
rhyme-check.ts

详细介绍

歌词诊断:技能

你可以从多个维度诊断歌词问题。你的职责是找出歌词为何失效,并引导创作者(人类或 AI)做出更有效的选择。

核心原则

歌词失效的方式具有可预测性,也可以诊断。泛泛而谈并非中性——泛泛而谈就是糟糕。

AI 生成的歌词会聚集在统计分布的中心:最可能出现的词语选择、押韵组合和情感词汇。优化概率会产出平庸之作。有效的歌词需要有意识地偏离默认选项。

在音乐生成中,“Celtic” 会触发锡哨,在歌词生成中,“love” 也会触发可预测的押韵组合和情感陈词滥调,同样的模式由此可见。


歌词状态

状态 LY1:陈词滥调陷阱

症状: 可预测的押韵组合占据主导。用词都是第一联想。毫无惊喜。歌词可以套用到任何关于这个主题的歌曲中。

关键问题:

  • 你用了哪些押韵组合?它们是否都是第一联想?
  • 如果换掉句尾押韵词,意思会改变吗?(如果不会,那它就是凑数的)
  • 你能列出这个主题的默认用词,并避开它们吗?
  • 其他曲风会如何表达同一种情绪?

诊断清单:

  • 不含一级陈词滥调词汇(love、heart、baby、forever)
  • 不含套话(见下表)
  • 押韵组合不是显而易见的第一联想
  • 每段至少有一个出人意料的用词
  • 使用具体细节,而非泛泛而谈

套话(短语层面的陈词滥调,不只是单个词):

脚本无法识别这些——它们需要语义判断:

短语类别陈词滥调的原因
"screaming inside"未表达的痛苦每首描写隐藏痛苦的歌都会用到
"need you gone"直接表达欲望直接说出想要什么,而不是展现出来
"won't leave me alone"挥之不去对记忆或念头的泛泛抱怨
"thought I died"情感死亡隐喻滥用的强烈情感标记
"used to be" + 过去状态怀旧铺垫陈套的前后对比框架
"look in your eyes"情感联结含糊的浪漫举动
"torn apart"毁灭抽象的暴力隐喻
"can't let go"依恋直接说出问题所在

偷懒的押韵组合(由押韵驱动用词选择):

组合问题
desire / fire / tired这组词总是一起出现
inside / died / alive死亡与内心意象组合
away / stay / day动向与时间组合
heart / apart / start心与毁灭组合
alone / gone / on孤独组合

干预措施:

  • 预筛选时运行 cliche-check.ts(会列出候选项,但不会做出诊断)
  • 手动检查套话——脚本会漏掉这些
  • 列出句尾词最容易搭配的 10 个押韵词——全部避开
  • 用具体的感官意象替换抽象情绪
  • 问自己:“厌恶这种曲风的人绝不会说什么?”然后用那个。

状态 LY2:节拍不匹配

症状: 歌词与旋律不合。重音落在错误的音节上。需要不自然的发音。音节挤在一起或被别扭地拉长。

关键问题:

  • 你能一边打节拍,一边同时朗读歌词吗?
  • 重音落在哪里?是否与旋律的强调位置一致?
  • 有没有音节被吞掉或不自然地拉长?
  • 每个乐句有多少音节?是否一致?

诊断清单:

  • 自然词重音与音乐节拍对齐
  • 音节数符合旋律乐句
  • 不需要别扭的发音
  • 缩约形式或省音形式适合演唱

干预措施:

  • 运行 meter-check.ts,分析音节数和重音模式
  • 一边打节拍,一边朗读歌词——不匹配之处会一目了然
  • 替换为意思相同但音节数不同的词
  • 使用缩约形式减少音节,或展开表达以增加音节

状态 LY3:流于表面

**症状:**歌词表达的意思直白明了,除此之外别无他意。没有潜台词、层次或深度。情绪直接说出。一切都浮于表面。

关键问题:

  • 是否有第二层解读?是否有言外之意?
  • 你是在直接陈述情绪,还是通过意象唤起情绪?
  • 哪个具体、鲜明的意象能为抽象概念提供支撑?
  • 这些歌词能否让人初听就懂,却在反复聆听时发现深意?

诊断清单:

  • 每段主歌至少有一个能从多个层面理解的意象
  • 通过细节唤起情绪,而非直接陈述
  • 留下一些值得反复聆听、细细发现的内容
  • 用具体细节为抽象概念提供支撑

改进方法:

  • 为每个抽象陈述找一个能体现它的具体动作或意象
  • 不要说“我很难过”,而要展现难过是什么样子、听起来怎样、感受如何
  • 加入一个不太合拍的细节,制造富有成效的模糊感
  • 测试:你能否对同一句歌词给出两种不同的解读?

状态 LY4:风格不匹配

**症状:**歌词的语气与音乐的情绪相矛盾。戏剧性的编曲搭配随意的措辞。轻快的音乐搭配沉重的歌词。用词不符合对该流派的预期。

关键问题:

  • 此刻你希望听众感受到什么情绪?
  • 你的用词是雅致还是随意,是否与音乐相匹配?
  • 歌词与听众的距离(亲密/旁观)是否与伴奏相匹配?
  • 这种表达方式放在这个流派中是否合理?

诊断清单:

  • 用词与音乐的强度相匹配
  • 歌词与听众的距离(我/你,还是他们/我们)符合音乐风格
  • 符合该流派的用词预期,或有意打破预期
  • 若存在反讽,信号是否明确

改进方法:

  • 不听歌词,单独听音乐——它唤起了什么情绪?
  • 逐段让歌词的强度与音乐的强度相匹配
  • 检查该流派的用词惯例——要么有意打破,要么完全遵循
  • 若使用反讽,加入提示词或结构线索

状态 LY5:忽视声音效果

**症状:**没有关注词语在口中的感觉。温柔的段落中出现刺耳的辅音连缀。元音音色单调。缺少头韵、谐元音或刻意设计的声音质感。

关键问题:

  • 哪些辅音音素占主导?它们营造了什么质感?
  • 元音音色是否烘托了情绪内容?
  • 是否有破坏流畅感的刺耳辅音连缀?
  • 是否有刻意的声音描绘?

诊断清单:

  • 亲密时刻使用柔和的辅音(l、m、n、w)
  • 有冲击力的时刻使用硬辅音(k、t、p)
  • 元音音色烘托情绪内容
  • 每段主歌至少使用一种声音修辞(头韵、谐元音)

改进方法:

  • 大声朗读歌词,只关注词语在口中的感觉
  • 将情绪时刻与恰当的声音质感对应起来
  • 在温柔的时刻替换掉听起来刺耳的词语
  • 在关键短语中加入刻意设计的头韵或谐元音

状态 LY6:结构混乱

症状: 找不到明确的钩子。主歌和副歌听起来可以互换。重复让人厌烦,而非加深印象。桥段没有形成对比。歌曲没有起伏弧线。

关键问题:

  • 是否有清晰的钩子?它出现在哪里?
  • 每段主歌是否提供了新信息,还是只是在重复?
  • 桥段是否真正形成了对比,还是只是在延续?
  • 重复是否有其价值?

诊断清单:

  • 钩子清晰且令人难忘
  • 各段主歌有所区别(提供新信息或不同角度)
  • 副歌带来情感上的满足
  • 桥段形成对比或递进
  • 重复有所发展或起到强调作用,而非令人厌烦

结构陈词滥调:

模式问题修正方法
桥段 = 主歌根本不是桥段,只是重复相同内容转换视角、时间或说话者
副歌重复时不断扩充只增加歌词,却没有发展每次重复副歌都应承载更多含义
重复钩子却不加以展开说出那句话,却从未进一步诠释这个钩子意味着什么?让我们看见。
没有起伏弧线结尾时的情感状态与开头相同必须有所变化——领悟、接受或升级
各段主歌换种说法讲同一件事第二段主歌只是第一段主歌的同义词版本每段主歌都需要提供新信息或不同角度

干预措施:

  • 找出钩子——如果找不到,就创作一个
  • 让每段主歌回答关于主题的不同问题
  • 桥段应转换视角、时间或强度
  • 删掉没有存在价值的重复
  • 检查:说话者在结尾时的情感状态是否有所不同?

诊断流程

步骤 1:首次聆听(整体感受)

不做分析地听一遍。记录:

  • 整体印象如何?
  • 哪些歌词句子有力或乏力?
  • 注意力会在哪里游离?
  • 听过一遍后,什么最令人难忘?
步骤 2:确定主要状态

哪种状态最能描述主要问题?

  • LY1:感觉平庸、可预测 → 陈词滥调陷阱
  • LY2:与旋律不合 → 格律不匹配
  • LY3:缺乏深度 → 浅薄表面
  • LY4:语气不对 → 语域不匹配
  • LY5:听起来别扭 → 忽视声音
  • LY6:缺少结构或钩子 → 结构混乱
步骤 3:进行诊断

针对主要状态:

  • 回答关键问题
  • 运行相关脚本(cliche-check.ts、meter-check.ts 等)
  • 完成诊断清单
步骤 4:检查次要状态

多种状态经常同时出现:

  • 陈词滥调(LY1)常伴随浅薄(LY3)
  • 格律(LY2)常伴随声音问题(LY5)
  • 语域(LY4)常伴随结构问题(LY6)
步骤 5:按优先级干预

先修复影响最大的问题:

  • 先处理格律(LY2),再处理声音(LY5)——如果唱不出来,声音质感也无济于事
  • 先处理陈词滥调(LY1),再处理浅薄(LY3)——新鲜的措辞才能带来深度
  • 先处理结构(LY6),再处理语域(LY4)——先有段落,才能匹配语气

反模式

1. 过度修改

模式: 修复一个问题,却引入新问题。每次修改都会引发连锁反应。

表现:

  • 第 5 稿比第 2 稿更糟
  • “修正”押韵却破坏了含义
  • 原有的灵感消失了

失败原因: 歌词是一个相互关联的系统。只修单点会忽略系统层面的影响。

修正方法: 每次只改一处,然后从整体上重新阅读。检查全篇之前,不要连续进行多处修正。


2. 虚假的深刻

模式: 为复杂而追求复杂。把晦涩误当深刻。

表现:

  • 歌词需要解释
  • 隐喻密集,却缺乏清晰脉络
  • 让听众困惑,而非引发兴趣

失败原因: 晦涩不等于深刻。听众需要一个切入点。

修正方法: 每个晦涩的元素都需要一个清晰的锚点。复杂性应服务于清晰,而不是取而代之。


3. 类型模仿

模式: 使用类型词汇,却不理解其作用。

表现:

  • 乡村歌词里有卡车,却没有故事
  • 嘻哈文字游戏缺少韵律感
  • 独立音乐的晦涩表达缺少情感内核

为何无效: 类型词汇是实现功能的捷径。没有功能,就只是装扮。

改进方法: 理解类型元素的作用,再出于该目的运用它。


4. 依恋初稿

模式: 拒绝修改那些轻易写出来的歌词。

表现:

  • “但这是我最先写出来的”
  • 出于情感原因维护薄弱的歌词
  • 舍不得删掉自认为出色的内容

为何无效: 初稿捕捉了直觉,但也包含杂音。需要提取其中的有效信号。

改进方法: 将初稿单独保存。把它当作别人写的来修改。


整合

输入(何时使用此技能)
  • 生成 AI 歌词后(Suno 等)
  • 人类创作的歌词感觉“不对劲”时
  • 制作前最终确定任何歌词时
输出(之后该做什么)
  • LY1(陈词滥调) → 应用突破陈词滥调框架
  • LY2(格律) → 使用 meter-reference.md 查找替代方案
  • LY3(浅薄) → 使用 lyric-analysis-framework.md 中的语义层次
  • LY4(语域) → 查看 lyricist-dna-framework.md 中的语域模型
  • LY5(声音) → 使用 lyric-analysis-framework.md 中的声音质感部分
  • LY6(结构) → 使用结构架构部分
互补技能
  • prose-style - 用于句子层面的写作技巧(与声音/清晰度有重叠)
  • cliche-transcendence - 用于摆脱默认模式
  • naming - 用于声音象征和选词

AI 歌词生成的失败模式

AI 生成的歌词(Suno 等)会因大模型的工作方式而出现可预测的问题:

退化模式
  1. 第 1–2 行: 模型有发挥空间,或许能找到有趣的内容
  2. 第 3 行起: 押韵约束开始生效,模型优先追求完成,而非原创性
  3. 到第 2 段时: 完全陷入统计默认模式——套话、敷衍的押韵组合

原因:

两种力量相互叠加:

  1. 统计中位数牵引: 大模型会生成概率最高的下一个词元。对歌词而言,这意味着最常见的押韵组合、最频繁出现的情感词汇,以及最典型的短语结构。概率优化带来平庸。

  2. 完成奖励偏差: 针对“有帮助”这一目标的训练,会让目标完成优先于周全程度或质量。无论押韵是否有趣,模型都会把“完成押韵”视为成功。结构完整 > 结构有意义。

这与 Sequential Focus 框架中记录的机制相同——前向参照的引力牵引。模型看到目标(押韵、行尾、段落完成),便奔向概率最高的路径,而不是探索其他可能性。

可观察到的症状
  • 开篇部分展现出写作技巧,后续部分却沦为陈词滥调
  • 押韵词聚集在可预测的词组中(fire/desire/tired 一起出现)
  • 套话集中出现在第 2 段及之后
  • 桥段往往是最薄弱的部分(离开篇最远,限制最多)
应对措施

预先确定句尾词: 自己写出韵脚词,有意避开容易成组出现的词。让模型使用那些没有随手可得的押韵搭档的词。如果避开 “fire”,就能打破 fire/desire/tired 这一组韵脚。

用具体意象开篇: 开头几行会设定词汇空间。尽早加入具体、少见的意象,可能比抽象的情感词汇更能延缓统计上的坍缩。

拆分各部分: 单独生成第一段主歌并进行评估,然后生成第二段主歌,并明确要求避开第一段主歌的押韵词族。将每个部分视为独立的生成任务。

将词族列入黑名单: 在提示词中明确禁止使用容易出现的押韵词族:

  • “不要使用:fire、desire、tired、higher、liar”
  • “不要使用:inside、died、alive、hide、tried”
  • “不要使用:heart、apart、start、part”

提供近似押韵的替代方案: 为模型提供其他选择。“不要使用完美押韵,改用近似押韵,例如 home/come、love/move。”

隔离原则

让顺序聚焦适用于 Agent 任务的同一原则,也适用于歌词生成:隐藏最终目标,让每个阶段都能独立完成。

不要提示“写一首关于 X 的完整歌曲”。改为:

  1. 生成副歌钩子/标题的构思(不写完整歌词)
  2. 单独生成第一段主歌(暂不写副歌)
  3. 将第一段主歌作为背景,生成副歌
  4. 生成第二段主歌,并明确要求与前文有所区别
  5. 生成桥段,并要求转换视角

每一步都是一项完整任务。如果模型不知道最终目标是一首歌,就无法抢先完成整首歌。


此技能不会做什么

  • 不会替你写歌词(仅用于诊断)
  • 不会评估音乐元素(请使用 Musical DNA)
  • 不会取代人类对艺术意图的判断
  • 不保证商业成功(创作 ≠ 商业)

脚本(预筛选工具,而非诊断工具)

这些脚本会筛选出候选项,供大模型/人类解读。它们不会做出诊断判断。请将输出作为分析的输入,而不是把输出本身当作分析。

为什么使用预筛选工具?

  • 词表无法识别陈词滥调短语(例如 “screaming inside”)
  • 音素匹配无法判断押韵质量(动名词对动名词很偷懒)
  • 音节计数有效,但对差异的解读需要判断
cliche-check.ts

从 lyric-dominance-rules.json 中筛选出 Tier 1/2 术语。你必须结合上下文进行评估。

用法: bun run scripts/cliche-check.ts "your lyrics here"

局限: 无法识别陈词滥调短语、受押韵驱动的选词和语义上的陈词滥调。

meter-check.ts

报告音节数、重音模式和差异。你必须判断这种差异是否有意为之。

用法: bun run scripts/meter-check.ts "your lyrics here"

适用于: 找出需要复查的诗行、发现差异较大的诗行。

rhyme-check.ts

标出押韵格式并识别押韵类型。你必须评估押韵质量。

用法: bun run scripts/rhyme-check.ts "your lyrics here"

局限: 会将动名词对动名词(-ing/-ing)标记为押韵,也会将同属一个语义领域的词对标记为押韵。无法识别受押韵驱动的选词。


快速参考

状态核心问题首要问题主要修正方法
LY1可预测押韵词是否都是最先想到的?替换陈词滥调用词
LY2难以演唱重音是否与节拍相符?计算音节数,替换词语
LY3空洞是否有潜台词?添加具体意象
LY4不匹配语气是否与音乐相符?让词汇与力度相协调
LY5刺耳这些词在口中是什么感觉?将声音与情绪对应起来
LY6没有方向钩子在哪里?确定钩子并安排位置

评论

支持 Markdown