OrpheusBB: Human-in-the-loop型の 自動作曲システム

OrpheusBB:
Human-in-the-loop型の
自動作曲システム
北原 鉄朗* 深山 覚** 片寄 晴弘***
嵯峨山 茂樹** 長田 典子***
(*日本大学 **東京大学 ***関西学院大学)
いま、自動作曲システムがアツイ(!?)
●
人工知能的興味
●
人間が行う知的活動を数理的にモデル化したい
様々な自動作曲研究が行われた
●
UGC, CGMの盛り上がり
●
●
●
自分が作った映像作品にオリジナルなBGMをつけたい
自分が書いた詩や文章に
メロディをつけたい
自分が調教したミクに
オリジナルな歌を歌わせたい
自動作曲が
注目を集める
でも、実際にはあんまり使われていない
Why?
自動で出来上がった楽曲に不満な部分があっても、
それを直すのが難しい
●
設定を変えてやり直す → 全く別の曲になってしまう
●
別ソフトで自分で編集する → 音楽の専門知識が必要
楽曲編集ソフトの例
でも、実際にはあんまり使われていない
Why?
自動で出来上がった楽曲に不満な部分があっても、
それを直すのが難しい
●
設定を変えてやり直す → 全く別の曲になってしまう
●
別ソフトで自分で編集する → 音楽の専門知識が必要
なぜ専門知識が必要?
メロディと伴奏の調和を考慮する必要があるから
●
メロディを適当にいじると、伴奏がメロディと合わなくなる
●
伴奏を適当にいじると、メロディが伴奏と合わなくなる
ユーザと作曲エンジンが協力しあって
楽曲を完成させるメカニズムが必要
Human-in-the-loop型の自動作曲
ユーザとインタラクションをとりながら、
自動作曲を繰り返すアプローチ
ここはこう
変えたいな
「こういう曲をつくってよ。」
「ここの部分は、こうしてよ。」
だったら、こっちも
変えないと・・・
「こっちもこう変えておきましたよ。」
「作りました。どうぞ。」
ユーザ
(音楽プロデューサ役)
コンピュータ
(作曲・編曲家役)
Human-in-the-loop型の自動作曲
初期条件
を指定
楽曲を 生成 楽曲を
試聴
気にいれば
完成
メロディを
編集
伴奏を 再生成 伴奏を
編集
メロディを 再生成 技術的課題
メロディ/伴奏が編集されたときに
・ それによって音楽的妥当性が失われるかを判定
・ 音楽的妥当性を維持できる改変方法を推論
メロディを
編集
伴奏を
再推論
Autonomous Maintenance
of Musical Consistency
メロディと伴奏の依存関係を何らかの知識表現体系の下で記述
・ True Maintenance System ・・・ 論理推論がベースで音楽には不適
・ Bayesian Network
・・・ 確率推論がベース
Bayesian Networkとは
●
●
●
●
●
複数の確率事象から
なる有向グラフ
ノード ・・・ 確率変数
矢印 ・・・ 依存関係
各ノードが条件付確率
表(CPT)を持つ
「草が濡れている」こと
が分かったときに、「雨」
と「スプリンクラー」の
状態をCPTに基づいて
推論
Bayesian NetworkによるAMMC
メロディ、コードなどの
依存関係を
条件付確率の形で
記述しておく
メロディの第5音が「レ」にされたら、上のM5の値を「レ」に変更し、
その条件下で確率が最大になるように、他のノードの値を決める
OrpheusBB
●
ユーザによる初期入力として 「歌詞」 を採用
●
●
歌詞の韻律に沿うようにメロディを生成
Bayesian NetworkによるAMMC機能を搭載
やってみましょう
『名詩の絵本』川口晴美(編)
(ナツメ社)
『畳』(山之口貘)
やってみましょう
ココを「ファ・ファ」から「ファ#・ソ」
にしてみましょう。
現在のコード
Dm(レ・ファ・ラ)ーG(ソ・シ・レ)
不適
修正例
D (レ・ファ#・ラ)
etc.
やってみましょう
ココを「F」から「Fm」にして
みましょう。
現在のメロディ
ド・ラ・ラ
不適
修正例
「ラ」を「ラ♭」(ソ#)に
する
考察
コンテンツの制作I/Fはどうあるべきか
操作の具体性
操作の省力性
どこをどう編集したいか
具体的に指示できる
全パーツを個々に編集しなくても
全体として適切なものになる
音符を直接いじりたい
全部の音符をいじるのはメンドー
BNにフィードバック
残りの箇所の最適な音符を推論
音楽構造
音符
音符レベルで
編集すると・・・
音符
抽象度の高いレベルでコンテンツを操作できること
=directability
OrpheusBBは、directabilityの一実現法といえる
まとめ
Human-in-the-loop型の自動作曲システム
「OrpheusBB」を開発
「こういう曲をつくってよ。」
「ここの部分は、こうしてよ。」
Human-in-the-loop型とは・・・
ユーザとシステムが
インタラクションをとりながら
自動作曲を行うアプローチ
これを実現するために・・・
「作りました。どうぞ。」
「こっちもこう変えておきましたよ。」
Bayesian Network による AMMC
of musical consistency) を実現
(autonomous maintenance
今度の課題
楽曲編集I/Fの改善/より複雑な編曲への対応/etc.