音楽生成AIを利活用した即興演奏の実践

今年も残すところ一週間と少し。

2022年にIT界隈で何が一番盛り上がったかといえば、やっぱりStable DiffusionやDall-Eなど拡散モデルによる生成AIじゃないだろうか。

いま注目を浴びているのは”画像”だが、拡散モデルは生成用の機械学習モデルなので、当然他領域の生成にも使われる。

そんな中Stable DifussionをリリースしたStability.AIが9月、「音」の領域で新たな生成AI「HarimonAI」を発表した。www.harmonai.org

いよいよこれは音楽生成AIが面白くなるぞと思い、今の段階で楽曲生成AIがどのくらいできるか試そう、そして実際に楽曲を作ってみようというのがこの記事の趣旨となる。

 

なお本記事の内容は第2回創作+機械学習LT会で発表したプレゼン資料を記事化したものです。

connpass.com

スライド形式で見たいよー、って人は↓を参照。

docs.google.com

「創作+機械学習 Advent Calendar 2022」23日目の記事です。

adventar.org

■目次

自己紹介

↓のようなピアノ即興演奏を弾いている人。

普段は情報共有システムに関する研究開発をしている。

www.youtube.com

www.youtube.com

 

私自身即興演奏に強い関心があり、音楽生成AIとも相性が良さそうと思ったことからテーマを「音楽生成AIを利活用した即興演奏の実践」と設定した。

 

即興演奏とは

wikipediaから引用。

楽譜などに依らず音楽を即興で作曲または編曲しながら演奏を行うこと。

楽譜に依らないというと完全自由で何も決まりがないように思うがそんなことはない。

しかし現在では自由即興を除けば、ある一定の決まりごとの中で即興的に演奏されることを即興演奏と呼ぶことが多く、その決まりごとの内容や範囲がジャンルやスタイルによって異なる。

つまり自由度は高いが、ある程度ルールやガイド線のようなものがある。

ジャズにはインタープレイ(Interplay)という概念があり、(諸説あるが)意味としては互いに触発し合いながら素晴らしいインプロビゼーションつまり即興やアドリブを生み出すことを指す。

今回、音楽生成AIと人が互いに影響し合うことで良い即興を生み出すことができるんじゃないかという観点で楽曲作成をトライしてみた。

具体的には下記3つの方向性で試した。

  1. AI先攻、人後攻
  2. 先攻、AI後攻
  3. AIと人によるリアルタイム・インタラクティブ演奏

1は先にAIが音を作って、それを人が聴いて即興演奏をする。

2は先に人が即興演奏して、それをAIが聴いて(学習して)、楽曲を生成する。

3はリアルタイムに人とAIが演奏しながら影響を与え合う即興演奏。

つまりは下記スライドの3つ。

音楽生成AIを利活用した即興演奏の3つのパターン

今回は1と2を試してみたのでそれぞれ実例を紹介する。
3は良い感じの楽曲ができなかったので、LT会での実演形式で体験してもらう形式にした。(ただ当日時間を設けることができず実演できませんでしたm(_ _)m また次の機会に。

 

音楽生成の例

音楽生成AIを使った即興演奏を紹介する前に、AIでどんな音楽を生成できるかざっくり紹介する。

音楽生成AIの現状と可能性については、Qosmoさんがまとめたwhite paperが参考になる。2022年度版なので最新動向が盛り込まれており、実際の音も聞けるのでぜひ。

qosmo.jp

 

現状、音楽生成でできることについてユーザ視点から言うと、入力形式はMIDI(音楽ファイル形式)や波形/オーディオだけでなくテキストや画像も対応してきているところが面白いと思う。

楽器演奏者なら自身で弾いた演奏をMIDIファイルや波形にして学習させる、みたいなことはできるが、楽器演奏したことがない人にとっては難しい。だが今は言葉で自身のイメージを表現すればAIがそれに合った楽曲を作ってくれる。そういう意味では以前から選択肢を選んで楽曲作成するツールはあったが、ユーザが求める音楽のイメージをより明確に伝えるためにはテキスト/画像/etc.のような何かのモダリティベースで指定できるほうが良いだろう。よりイメージにマッチした曲を作れるようになることでツールがより一般に普及していくように思う。

音楽生成AIの具体例として、↓のスライドではText to Music、Image to Musicの例を紹介している。

音楽生成AI:Text to Image、Text to Music 

例えば、

a photo of bright sunny forest, humid, strong golden lighting, Nikon D4 and Nikon Lens 50mm F1.4

というテキストからText to Music(Mubert)で作ってみた音楽が↓。

次に、同じテキストをDALL・EでText to Imageして、生成した画像をImage to Musicしたのが↓。

DALL・Eで生成した画像

↓Image to Musicで生成した音楽。

 

それなりの音楽をこんなにさくっと生成できる時代になったのは隔世の感がある。

では本題に戻り「音楽生成AIを使った即興演奏」について述べる。

1.生成された音(リズム等)をベースに即興演奏

<AI先攻、人後攻>

まずはAIが先に音を作って、それを人が聴いて即興演奏するパターンから。

「AIが先に音を作る」上で、適当に作ってもらうのもありだが、何らかの方向性を指定して音を作ってもらえると人にとってありがたい気がする。即興演奏の説明にもあった「ある一定の決まりごと」のようなものを楽曲生成者の意向に沿って決められたら個人的に嬉しいと思ったのでそうしてみた。

ただ当初、上の章で紹介したText to MusicやImage to Musicで生成した音を使おうと思ったが、コード進行やリズムなど音楽要素がすでに含まれている音だと即興演奏の味が出せない!と気づいた。これは個人の嗜好の問題だが、テンポやコード進行をその場で決められる自由さがないと、なんというか即興演奏という感じがしない。

なのでどうしたものかと思ったところ「Imaginary Soundscape」を見つけた。

qosmo.jp


その名の通り、写真から"空間"に合わせた音「サウンドスケープ」を生成するツール。

"海岸の写真は打ち寄せる波のざわめきを想起させ、混雑する交差点の写真からは車のクラクションや街頭広告の音が聞こえてくる"、といった感じ。

こういった環境音ならテンポやコード進行といった部分は自由に演奏できるし、場の雰囲気が表現されているので情景説明をしてもらえているという意味でありがたい。

そこで私がまずテーマを指定し、それを元に環境音を生成、その音を聴いて演奏し、合わせることで楽曲生成する、というフローで音楽生成AIを利活用した即興演奏というのをやってみた。

テーマは「明るく強い金色の陽が差す湿った森」。さきほどDALL・Eに入力したテキストと同じなので、生成した画像を入力してImaginary Soundscapeで音を出力した。生成された環境音が↓。

↑の音を人(私)が聴いて、弾いた演奏が↓。

最後に、合成して楽曲にしたのが↓。

 

演奏して思ったのは、鳥の鳴き声や空気感があるおかげでだいぶ情景がイメージできた。その影響でコードはメジャー調が良さそうだなとか、テンポはゆったりめが合いそうだな、など方向性を決められた印象があった。

ある種、AIと人がお互い役割分担して楽曲制作コラボできたと言えると思うし、こういう作曲の仕方もありだと感じた。

 

2.即興演奏を学習させて音楽生成

<人先攻、AI後攻>

今度は、先に人が弾いた即興演奏をAIが学習して生成するパターン。

これは冒頭でも述べた拡散モデルDance DiffusionHarmonAI, Stability.Ai)を使った。

github.com

 

ファインチューニング用の学習元音源は↓。10分×4曲分。

www.youtube.com

 

↑を入力してDance Diffusionで生成した音源が↓

 

所感として、Dance Diffusionは情景や雰囲気がちゃんと学習されていると感じた。

MIDIだと音の高さ、長さ、強さといった情報をベースに学習されるが、Dance Diffusionは波形で学習されているので、使われている音源(楽器)やエフェクト、生音を学習元音源にしていたら録音環境も畳み込まれて学習される。

DTMで作った曲より生音を学習してくほうが面白みが増すかも、という感じ。

 

3. AIと人によるリアルタイム・インタラクティブ演奏

この章は紹介だけです🙏

ドラム自動生成

GoogleのMagentaプロジェクトが出したDrumify。

端的に紹介すると、MIDI音源(ベースラインやピアノソロ演奏など)を入力することでリズムや調子に合ったドラムパターンを生成してくれるツール。

magenta.tensorflow.org

 

どんなツールかというのは↓の動画をご覧あれ。

www.youtube.com

 

実際にVSTが公開されているのでAbleton Liveで試してみたところ、短い小節数なら数秒で生成できた。※MAX for Liveが必要みたい

これなら、ループで音楽を流しながら人がベースやピアノを演奏→Drumifyでリズムを生成→それに合わせて人が演奏→またDrumifyでリズム生成→…といったサイクルでどんどん音を作り出せる。

良い感じの作品ができたらまた紹介しようと思う。

 

他、スライドのp.13, 14, 16で関連情報を紹介しているのでご興味があれば。

docs.google.com

最後に

LT会がなければここまで試してまとめようと思わなかったので大変感謝です。

「3. AIと人によるリアルタイム・インタラクティブ演奏」はもっと深堀りできそうで、一番のおもしろエッセンスはここにあると思うのでいろいろ試してみようと思います。

ある程度紹介できるネタがたまったらまた発表or記事化します。