[CCLab21秋]機械学習を用いた作品制作を通して

本記事は慶應義塾大学徳井研究室 — CCLabの2021秋学期の活動報告も兼ねたものとなっています。

目次

  1. はじめに
  2. x-dj
  3. 個人
  4. 最後に
  1. はじめに

慶應義塾大学環境情報学部2年の髙梨大です。

私は今学期(2021年度秋学期)からCCLabに所属し、機械学習やそれを伴う作品制作に携わってきました。チームではx-djチームに所属し、「Variable Flavor Remix」のアップデートや学会へのアプローチ等を行いました。個人では、興味のあった機械学習による楽曲の自動生成を行う傍らで、自然言語処理に興味を持ち始め、自然言語処理を100本ノックをやって勉強したり、対話文生成の作品作りを通して多くのことを学びました。

以下で、そのことについて詳しく話そうと思います。

2. x-dj

今学期、私はx-djチームに加わり、「Variable Flavor Remix」のアップデート等に加わりました。「Variable Flavor Remix」(VFR)とはspotify apiを通して観客(オーディエンス)のspotifyからお気に入りの楽曲を取得し、それをその場で即興でリミックスする作品です。今学期のx-djチームは9月の展示に向け実装されたVRFをパフォーマンス用に作り替え、学会へのアプローチを進めるという方針になりました。

より詳しく説明すると、展示のVFRでは来場者がspotifyを通して楽曲をシステムに送信し、送信された音源からループ音源を抽出します。その後に取得した音源のループを機械学習の音源分離により、Bass、Drums、Vocals、Otherに分離し、各トラックが4×4のトラックパッドに割り当てられます。展示ではそれを来場者が自由に操作できる体験型の作品となっていました。

秋学期からはライブパフォーマンスに向けてアップデートが行われ、具体的には4×4のトラックパッドではなく、8×8のAbleton Pushを使う方向性となりました。展示の際に、懸念点としてあがった楽曲のキーが異なることによる不協和音感を解消するために、キーによる分類もアップデート要素として加えられました。私は主にキーによる分類を行う処理などを実装を行いました。

展示時のVFR
アップデートを加えライブパフォーマンス用となったVFR

学会へのアプローチとしては、今学期x-djチームはSFCの研究奨励制度であるエキセントリックリサーチと情報処理学会に提出を行いました。結果としては、エキセントリックリサーチは不採択となってしまったものの、情報処理学会は採択される結果となりました。今学期プロジェクトに参加した私は背景やシステム設計の部分で書けることはなかったので調査やサーベイの部分を担当し、執筆を行いました。まだ、3月にNIMEのデモにも提出を行いたいと考えているので、アップデートや英訳等をこれから行っていく予定です。

3. 個人

個人発表の「やってみた」では、今学期行った音楽生成と自然言語処理の勉強成果の2つの成果発表を行いました。

周囲の影響(同期の二人など)を受け、危機感を感じた私はエキセントリックリサーチに自分の作品を提出しようと考え、11月ごろに音楽生成に関する作品づくりを始めました。普段私は、ストレスや葛藤などが自分の中にあると、それをピアノなどの音楽を通して発散しているなと感じ、それを簡単に体験できるような作品を作りたいなと思い、制作を始めました。具体的には、ユーザーが叫んだ叫び声を録音し、解析を行い、得られた振幅と周波数のパラメータから楽曲をの自動生成を行うウェブアプリケーションの制作を行いました。叫び声の解析はFFT解析を用いて、自動生成は三層のLSTMを用いました。作品制作を終え、パラメータの数が少ない点や各パラメータが楽曲生成にどのような影響を与えるか(曲の長さやテンポ)を私が恣意的に決めてしまっている点などが懸念点だなと感じました。そう言った懸念点やそもそも叫ぶのが「ハードルが高い」、「叫ぶ必要性」などのご指摘もあってエキセントリックリサーチは不採択という結果になりました。懸念点は他にもありましたが、作りたいものを機械学習を通して実装までできたのはとても良い経験でした。

エキセントリックリサーチで提出したスライド
エキセントリックリサーチで提出したデモ映像

先ほどの音楽生成などを勉強する傍らである自然言語処理に興味を持ち、日常の些細な面倒を解決できるようなものを作ろうと思い、自然言語処理の勉強を始めました。自然言語処理に興味を持った理由はもう一つ所属している古谷研究会でロジスティック回帰を用いたtweetのpositive、negativeの二値分類を行い面白いなと感じたことがきっかけです。そこから自然言語処理100本ノックや文章の生成モデルをいくつか試し(マルコフ連鎖やLSTMなど)、発表用の成果物制作を始めました。成果物としては、LINEの自動返信botを作ることにしました。「りんな」や「Air Friend」などかなり高品質の対話をできる既存のbotは複数存在するものの、個人にフォーカスし一個人の文章だけを学習させたモデルは存在していないなと考え、自分の文章を学習させ、自分の文体で返信を行える作品制作を始めました。始めた当初は「Neural Conversational Model」という割と新しいモデルを用いて対話文の生成を行いたいと考えていたのですが、大元となっている「seq2seq」というモデルとの違いがわからず、結局「seq2seq」で実装を行いました。「seq2seq」とは翻訳の分野などで活躍している自然言語処理のモデルです。「seq2seq」 はエンコーダとデコーダというものから構成されていて、エンコーダでは入力系列の各要素を処理し、「文脈」と呼ばれるベクトルにコンパイルします。その後、デコーダは出力系列の各要素を次々と生成していきます。学習時にはモデルは文脈を考慮した上で正しいシーケンスの交差エントロピーを最大化するように学習されるため、文脈を考慮した文章が生成されるモデルとなっています。実装した結果の反省点としては、文章のスクレイピングが大分雑に行なっていた点や、他により良いモデルがないのかサーベイを突き詰められなかった点です。今後はそれを意識し、作品制作をおこなっていきたいと思いました。

seq2seq (Sequence to Sequence) Ilya Sutskever, Oriol Vinyals, Quoc V. Le Google
seq2seqを簡略化した図
seq2seqを対話モデルに応用すると

4. 最後に

今学期、特に個人の作品制作などで痛感したのは自分のサーベイ不足でした。あまり、考えずにプロトタイプを作ろうとすることで、作品の質を圧倒的に下げてしまうのがすごく勿体無いように感じました。来学期以降はきちんと調べ、それを常に可視化して整理しながらコンセプトやシステム設計等を行いたいと思っています。

--

--