Slide 1

Slide 1 text

歌詞をコード進行に変換する 機械学習モデル 2021/10/27 @sera1250 Music×Analytics Meetup Vol.6

Slide 2

Slide 2 text

自己紹介 ◆ @sera1250 ◆ 仕事 ◆ 某企業でデータサイエンティスト NLP、画像 AI楽器開発に携わったり ◆ 音楽 ◆ Neko Hackerで編曲/ギター ◆ 趣味で音楽×AI ◆ 好きな音楽… メタル、邦ロック、エレクトロ、ゲームBGM 2

Slide 3

Slide 3 text

「言葉」を音楽に変換したい 3 ◆ 言葉から音楽を作りたい ◆ 普段何気なく使う「言葉」から音楽を作れたらおもしろそう… 日記、ツイート、週報… ◆ 言葉と音楽の関係 ◆ この世界の多くの音楽には歌詞が存在 ◆ 明るい歌詞⇔明るい音楽 切ない歌詞⇔切ない音楽 (もちろん例外も ◆ ではまず歌詞を入力としてみるのはどうだろう?

Slide 4

Slide 4 text

◆ コード進行 ◆ 楽曲における音のまとまりの遷移:楽曲・フレーズの印象を大きく左右する ◆ 言葉をなんとなく音楽として表現するのには向いてそう ◆ 歌詞とコード進行の関係 ◆ 明るい歌詞⇔明るい進行、切ない歌詞⇔切ない進行 ◆ 一意に決まるものではない→そこが面白そう コード進行を出力するのはどう? 4

Slide 5

Slide 5 text

データ収集 ◆ 既存の楽曲の歌詞とコード進行の関係を学習できれば、 言葉をコード進行に変換するモデルができるはず ◆ ギター弾き語り楽譜サイトを(恐れ入りながら)スクレイピングし、 約16,000曲、約450,000行の歌詞を取得 収集データ一例 5

Slide 6

Slide 6 text

モデルの選定 ◆ Attention付きSeq2Seq ◆ 機械翻訳等で使用されるモデル ◆ 歌詞・コード進行ともにSequentialな情報 ◆ 歌詞→コード進行の変換を学習 歌詞 Seq2Seq コード進行 たとえ, 世界, が, 終わる, 日, も G#m, C#, D#m https://jalammar.github.io/visualizing-neural-machine-translation-mechanics-of-seq2seq-models-with-attention/ 英語→フランス語への機械翻訳 6

Slide 7

Slide 7 text

学習 1,000円 7

Slide 8

Slide 8 text

変換① ◆ 入力:「あした地球がこなごなになって」 ◆ でんぱ組.inc – あした地球がこなごなになっても ◆ 原曲とは違うコード進行 ◆ 最後のF7が少し切ない 8

Slide 9

Slide 9 text

変換② ◆ 入力: 「いつも一緒にいた君はもう隣にはいない」 ◆ 架空の悲しい歌詞を入力してみる ◆ 思いのほか悲しい印象ではなく、切り取られた進行のような結果に 9

Slide 10

Slide 10 text

変換③ ◆ 入力: 「ねえ君の世界にわたしが魔法をかけるから」 ◆ Neko Hacker – Sweet Dreams ◆ 聞きなじみのあるコード進行 ◆ 原曲とほぼ同じコード進行に変換 10

Slide 11

Slide 11 text

変換④ ◆ 入力: 「ゴジラを間違えコブラと呼ぶ奴」 ◆ ZAZYのネタ ◆ なんだかコミカルな進行 11

Slide 12

Slide 12 text

変換⑤ ◆ 入力: 「Music×Analytics Meetup Vol.6」 ◆ テーマとなるコード進行を生成しようとましたが残念な結果に ◆ 今回sentence pieceを使用してtokenizeを行ったため、 英語の入力は今後の課題 12

Slide 13

Slide 13 text

まとめ ◆まとめ ◆ 歌詞→コード進行変換をAttention付Seq2Seqで学習 ◆ 弾き語りサイトのデータを使用 ◆ なんとも言えない結果になった ◆所感 ◆ 割と多様なコードに変換することができた ◆ 中にはほぼ原曲に近いコード進行に変換できたケースもあった ◆ 切ない歌詞だと切なくなるというわけでもない ◆ Attentionによる解釈性はあまり期待できない 13

Slide 14

Slide 14 text

今後の展望 ◆ モデルの改良 ◆ キーの統一 ◆ キーを取得しているものの、転調等が含まれうまく統一できていない(転調もしてほしいし…) ◆ 学習時にキーの情報も入力する? ◆ モデル学習のアイデア ◆ キー、男女、感情等を考慮して学習できれば結果を少しコントロールできそう? ◆ 生成のアイデア ◆ 長さ(4分、2分…)も扱えるようにしたい ◆ 複数行の歌詞を考慮できるようにしたい ◆ 評価方法の検討 ◆ 定量的な評価、定性的な評価…(そもそも正解とは…?) ◆ AIを用いた楽曲制作 ◆ 引き出し拡張に役立つ? 14

Slide 15

Slide 15 text

ご清聴ありがとうございました!! (懇親会よろしくお願いします) 15