Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【muana_vol6】歌詞をコード進行に変換する機械学習モデル

sera1250
October 28, 2021

 【muana_vol6】歌詞をコード進行に変換する機械学習モデル

sera1250

October 28, 2021
Tweet

Other Decks in Research

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  7. 学習
    1,000円
    7

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide