lyric-diagnostic について
人間やAIの作詞者向けに、決まり文句や韻律、音の響き、構成など6領域から歌詞の問題を診断し、的を絞った修正を提案するスキルです。
主な機能
- 016種類の歌詞問題を診断
- 02決まり文句と韻の確認
- 03韻律とアクセントの分析
- 04イメージと含意の指針
- 05語調と音の響きの確認
- 06曲構成の評価
活用シーン
- 01AI生成歌詞の見直し
- 02違和感のある歌詞の診断
- 03制作前の歌詞チェック
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jwynia/ agent-skills --skill lyric-diagnosticインストール後、Claude Code で/lyric-diagnosticを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
data/cmudict-simplified.jsonlyric-dominance-rules.jsonscripts/cliche-check.tsmeter-check.tsrhyme-check.ts詳細
歌詞診断:スキル
複数の観点から歌詞の問題を診断します。歌詞がうまく機能しない理由を特定し、より効果的な選択ができるよう、作詞者(人間または AI)を導くことが役割です。
基本原則
歌詞がうまく機能しない原因は、予測可能な診断可能なパターンにあります。ありきたりな表現は中立ではありません。問題があります。
AI が生成する歌詞は、統計的な分布の中心に集まります。最も確率の高い単語の選択、韻の組み合わせ、感情を表す語彙が選ばれます。確率の最適化は凡庸さを生みます。効果的な歌詞には、既定の選択肢から意図的に外れることが必要です。
音楽生成で「ケルト」という言葉からティンホイッスルが連想されるのと同じパターンで、歌詞生成では「愛」から予測しやすい韻の組み合わせや感情表現の決まり文句が連想されます。
歌詞の状態
状態 LY1:決まり文句の罠
症状: 予測しやすい韻の組み合わせが支配的です。単語の選択は最初に思い浮かぶものばかりです。意外性がありません。このテーマならどんな曲にも当てはまる歌詞です。
主な質問:
- どのような韻の組み合わせを使っていますか?最初に思い浮かぶものではありませんか?
- 行末の韻を踏む単語を入れ替えると、意味が崩れますか?(崩れないなら、埋め草です)
- このテーマで使われる定番の単語を挙げ、それを避けられますか?
- 同じ感情を別のジャンルならどう表現しますか?
診断チェックリスト:
- Tier 1 の決まり文句の単語(love、heart、baby、forever)がない
- 定型句(下記のリストを参照)がない
- 韻の組み合わせが、誰もがすぐ思いつくものではない
- 各節に、少なくとも 1 つ意外性のある単語の選択がある
- ありきたりな表現ではなく、具体的な描写がある
定型句(単語単体ではなく、フレーズ単位の決まり文句):
これらをスクリプトで検出することはできません。意味を考慮した判断が必要です。
| フレーズ | カテゴリー | 決まり文句である理由 |
|---|---|---|
| "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を実行して、音節数とアクセントのパターンを分析します- 拍を取りながら歌詞を声に出します。不一致が明らかになります
- 意味は同じで、音節数が異なる単語に置き換えます
- 音節数を減らすには短縮形を使い、増やすには語句を補います
State LY3: 表層が浅い
症状: 歌詞が、言いたいことをそのまま述べるだけで、それ以上の意味がありません。行間も重層性も奥行きもありません。感情を直接言葉にしています。すべてが表面的です。
主な質問:
- 別の読み方はできますか? 行間に何かありますか?
- 感情をそのまま述べていますか、それともイメージを通して呼び起こしていますか?
- 抽象的な概念を具体的なイメージで支えていますか?
- 初めて聴いたときにも理解でき、繰り返し聴くと奥深さが見えてくる内容になっていますか?
診断チェックリスト:
- 各節に、複数のレベルで機能するイメージが少なくとも1つある
- 感情を直接述べず、細部を通して呼び起こしている
- 繰り返し聴くことで発見できる要素がある
- 具体的な細部が抽象的な概念を支えている
改善策:
- 抽象的な表現ごとに、それを体現する具体的な行動やイメージを見つける
- 「悲しい」と言う代わりに、悲しみがどのように見え、聞こえ、感じられるのかを描く
- しっくりこない細部を加えることで、意味のある曖昧さを生み出す
- 確認:同じ一行を2通りの解釈で説明できますか?
State LY4: 語調の不一致
症状: 歌詞のトーンが、音楽の感情と矛盾しています。ドラマチックな演奏にくだけた言葉が乗っています。軽い音楽に重い歌詞が乗っています。語彙がジャンルの期待に合っていません。
主な質問:
- この瞬間、聴き手にどのような感情を抱いてほしいですか?
- 語彙の格調やくだけ具合は、音楽に合っていますか?
- 親密さや客観的な距離感は、演奏に合っていますか?
- この言葉遣いは、このジャンルにふさわしいですか?
診断チェックリスト:
- 語彙が音楽の強度に合っている
- 距離感(一人称/二人称か、三人称/一人称複数か)がサウンドに合っている
- ジャンルで期待される語彙に沿っている、または意図的に外している
- (皮肉がある場合)それが明確に伝わる
改善策:
- 歌詞を聴かずに音楽を聴き、どんな感情が呼び起こされるか確認する
- セクションごとに、歌詞の強度を音楽の強度に合わせる
- ジャンルで一般的な語彙を確認し、意図的に外すか、外さないかを決める
- 皮肉を使う場合は、それを示す言葉や構成上の手がかりを加える
State LY5: 音への配慮不足
症状: 言葉が口の中でどう響くかに注意が払われていません。繊細な場面で子音が連続して耳障りになっています。母音の響きが単調です。頭韻、類韻、意図的な音の質感がありません。
主な質問:
- どの子音が多く使われていますか? どんな質感を生み出していますか?
- 母音の響きは、感情の内容を支えていますか?
- 流れを妨げる耳障りな子音の連続はありますか?
- 意図的な音の描写はありますか?
診断チェックリスト:
- 親密な場面で柔らかな子音(l、m、n、w)を使っている
- 印象的な場面で強い子音(k、t、p)を使っている
- 母音の響きが感情の内容を支えている
- 各節に少なくとも1つの音の技法(頭韻、類韻)がある
改善策:
- 口の中での響きだけに意識を向けながら、歌詞を声に出して読む
- 感情が動く箇所に、適切な音の質感を割り当てる
- 繊細な場面では、耳障りな言葉を置き換える
- 要所のフレーズに、意図的な頭韻や類韻を加える
State LY6: 構成の混乱
症状: 印象に残るフックがありません。ヴァースとコーラスの区別がつきません。繰り返しが印象を強めるのではなく、煩わしく感じられます。ブリッジに対比がありません。曲全体に展開がありません。
主な質問:
- 明確なフックはありますか?どこで登場しますか?
- 各ヴァースで新しい情報を加えていますか、それとも繰り返していますか?
- ブリッジは本当に対比を生み出していますか、それともそのまま続いていますか?
- 繰り返しは効果を発揮していますか?
診断チェックリスト:
- フックが認識しやすく、記憶に残る
- ヴァースごとに違いがある(新しい情報、異なる視点)
- コーラスが感情的な満足感をもたらす
- ブリッジが対比または高まりを生み出す
- 繰り返しに変化や強調があり、退屈させない
構成上のありきたりなパターン:
| パターン | 問題 | 対処法 |
|---|---|---|
| ブリッジ=ヴァース | ブリッジではなく、同じ内容の繰り返しにすぎない | 視点、時間、または話し手を変える |
| 繰り返すたびにコーラスが長くなる | 展開させずに行を追加している | コーラスを繰り返すたびに、意味が深まるようにする |
| 掘り下げずにフックを繰り返す | フレーズを口にするだけで、意味を展開しない | フックの「意味」は何ですか?それを見せましょう。 |
| 展開がない | 最初と最後で感情の状態が同じ | 気づき、受容、高まりなど、何かが変化する必要がある |
| ヴァースごとに同じことを別の言葉で伝える | ヴァース2が同義語を使ったヴァース1になっている | 各ヴァースに新しい情報や視点が必要 |
対処法:
- フックを特定します。できなければ、新たに作ります
- トピックについて、各ヴァースで異なる問いに答えます
- ブリッジでは視点、時間、または強度を変えます
- 効果を発揮していない繰り返しを削ります
- 確認します:最後には、話し手の感情が異なる状態になっていますか?
診断プロセス
Step 1: まず聴く(全体を把握する)
分析せずに聴きます。次の点を書き留めます。
- 全体的な印象はどうですか?
- どの行が強く、どの行が弱く感じられますか?
- どこで注意がそれますか?
- 一度聴いただけで何が記憶に残りますか?
Step 2: 主な状態を特定する
6つの状態のうち、主な問題を最もよく表しているものはどれですか?
- LY1:ありきたり/予測可能に感じる → クリシェの罠
- LY2:メロディーに合わない → 韻律の不一致
- LY3:深みがない → 表面的な内容
- LY4:トーンが合わない → 文体の不一致
- LY5:ぎこちなく聞こえる → 音への配慮不足
- LY6:構成/フックがない → 構成の混乱
Step 3: 診断を行う
主な状態について:
- 主な質問に答えます
- 関連するスクリプト(
cliche-check.ts、meter-check.tsなど)を実行します - 診断チェックリストを完了します
Step 4: 副次的な状態を確認する
複数の状態が同時に現れることはよくあります。
- クリシェ(LY1)には、表面的な内容(LY3)が伴うことがよくあります
- 韻律(LY2)には、音への配慮不足(LY5)が伴うことがよくあります
- 文体(LY4)には、構成(LY6)の問題が伴うことがよくあります
Step 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 など)は、LLM の仕組みにより、予測可能な形で失敗します。
劣化パターン
- 1〜2行目: モデルには自由があり、興味深い表現が生まれることがあります
- 3行目以降: 韻の制約が働き、モデルは独創性よりも完成を優先して最適化します
- 2番までに: 統計的な既定モードに完全に陥り、決まり文句や安易な韻のまとまりが増えます
こうなる理由:
2つの要因が重なります。
-
統計的中央値への引力: LLM は、次に来る確率が最も高いトークンを生成します。歌詞の場合、最もよく使われる韻の組み合わせ、頻出する感情表現、典型的なフレーズ構造が選ばれます。確率の最適化は凡庸さを生みます。
-
完成報酬のバイアス: 「役に立つ」ことを目指す学習では、徹底性や品質よりも目標の達成が重視されます。興味深い韻かどうかにかかわらず、モデルは「韻が成立した」ことを成功とみなします。構造の完成 > 構造の意味。
これは、Sequential Focus フレームワークで記録されているメカニズム、つまり先行参照による引力と同じです。モデルは目標(韻、行末、詩節の完成)を見ると、ほかの可能性を探るのではなく、最も確率の高い道筋を急いで進みます。
観察される症状
- 冒頭の詩節には工夫が見られるものの、後の詩節は陳腐な表現に崩れていきます
- 韻を踏む語が予測可能な組み合わせに集中します(fire/desire/tired が一緒に現れるなど)
- 2番以降に決まり文句が集中します
- ブリッジは最も弱い部分になることがよくあります(冒頭から最も離れ、制約も最も多いため)
対策
語尾の単語を先に決める: 韻を踏む単語は、クラスターになりにくいものを意図的に選んで自分で書きます。安易な韻の相手がない単語にたどり着くよう、モデルを誘導します。「fire」を避ければ、fire/desire/tired のクラスターを断ち切れます。
具体的なイメージで始める: 冒頭の行が語彙の範囲を決めます。抽象的な感情語より、早い段階で具体的かつ珍しいイメージを用いるほうが、統計的な崩れを長く防げる場合があります。
セクションを分ける: まずバース 1 だけを生成して評価し、次にバース 1 の韻の系統を避けるよう明示してバース 2 を生成します。各セクションを別個の生成タスクとして扱います。
クラスターを禁止する: プロンプトで安易な韻のクラスターを明示的に禁止します。
- 「次の単語は使わないでください:fire, desire, tired, higher, liar」
- 「次の単語は使わないでください:inside, died, alive, hide, tried」
- 「次の単語は使わないでください:heart, apart, start, part」
近似韻の候補を提示する: モデルに別の選択肢を与えます。「完全な韻ではなく、home/come、love/move のような近似韻を使ってください。」
隔離の原則
エージェントのタスクで Sequential Focus を機能させる原則は、歌詞の生成にも当てはまります。最終目標を隠し、各フェーズをそれぞれ完結させます。
「X をテーマにした完全な曲を書いて」とプロンプトを出すのではなく、次のようにします。
- フックやタイトルの案を生成する(歌詞全体は書かない)
- バース 1 だけを生成する(まだコーラスは書かない)
- バース 1 を文脈として扱い、コーラスを生成する
- 明確な差別化を求める指示を付けて、バース 2 を生成する
- 視点の転換を求める指示を付けて、ブリッジを生成する
各ステップが、それぞれ完結したミッションです。曲を作ることが目標だとモデルに知らせなければ、モデルが急いで「曲の完成」に向かうことはありません。
このスキルでできないこと
- 歌詞の作成(診断のみ)
- 音楽的要素の評価(その評価には Musical DNA を使用してください)
- 芸術的な意図に関する人間の判断の代替
- 商業的成功の保証(技巧 ≠ 商業性)
スクリプト(診断ではなく事前フィルター)
これらのスクリプトは、LLM や人間が解釈するための候補を抽出します。診断上の判断は行いません。出力を分析そのものとせず、分析の入力として使用してください。
事前フィルターを使う理由
- 単語リストでは定型句(「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 | 方向性がない | フックはどこにありますか? | フックを定義して配置する |