Blog
ブログ

2020年06月04日

第13回社内勉強会

 

 

5月29日、5月最後の平日であるこの日、13回目となる勉強会が開催されました。

 

テーマは「WebRTC」、そして、「AIと芸術」でした。

 

ブラウザー間での通信を実現させるWebRTC。

そして近年注目を集める、AIによる芸術、創作について。

 

この春に入社した、新入社員のお二人から発表が行われました。

 

WebRTC

 

WebRTC(Web Real Time Communication)とは、Webブラウザ間でリアルタイムなコミュニケーションを実装することを目的としたオープンソースプロジェクトです。

 

これを実現するために、P2PやICEといった技術が利用されています。

 

P2P通信

そもそもP2P(Peer-to-Peer)通信とは、特定のサーバーを介さずに、端末同士がやりとりをする通信方式のことです。

 

一般に、ネットワークというと、中心となるサーバーがあって、そのサーバーを介してクライアント同士がやりとりをする、いわゆるclient-server型のネットワークが思い浮かぶかもしれません。

 

しかし、P2P通信とは、クライアント同士がサーバーを介さずに直接やり取りする通信方式のことです。

 

Signalingサーバー

P2Pでは、接続したい端末のIPアドレスといった、接続相手の情報が既知である必要があります。

 

そこで、多くの場合、通信者同士の情報を交換する(シグナリング)ためのサーバを用意しておくことが一般的です。

 

これをSignalingサーバーといいます。

 

ちなみにWebRTCでは、Signalingサーバーとクライアント間の通信方式は特に定められていません。

   

このSignalingサーバーを経由して、クライアントは通信相手と接続するための情報を送受信することができます。

 

ICE

実際に、クライアント同士での通信を実現させるために、WebRTCでは、ICEというフレームワークを利用しています。

ICEのイメージ
 

ICEは、通信したいクライアント同士の、あらゆるネットワークの状況を想定し、接続を試みるためのフレームワークです。

 

例えば、同一ネットワークに所属しているなどの特殊な場合を除いて、 通信者同士はそれぞれ別のNAT配下にいることがほとんどでしょう。この場合は、NATを超えて通信をする必要があります。

 

ICEにおいて、これを実現するために登場してくるのが、StunサーバーTurnサーバーです。

 

Stunサーバーは、リクエストを送ると、外側(インターネット)から見た自分のIPを返すサーバーです。

ICEではまず、Stunサーバーから返ってきたIPを使い、クライアント同士の通信を試みます。

 

これでも接続ができなかった場合は、Turnサーバーを経由して接続を試み、以後全ての通信をTurnサーバー経由で行います。

 

勉強会では、社員によるWebRTCのサンプルを使った実演が行われました。

AIと芸術

音楽生成サービス

ここで、作品一般の創作の流れを仮に「創作」→「編集」→「発表」とします。

音楽について当てはめてみると、「(作詞)作曲」→「編曲」→「演奏・音源配信など」となります。

 

すでに、この各段階に関わるAIサービスが存在しており、以下のようなものがあります。

Amper Music

ジャンル、曲の雰囲気、長さを指定することで、楽曲が自動生成される。

BGMを作るのに向いており、大手通信社ロイターのサービスにも採用された。

Amadeus code

日本語による自然言語処理技術を音楽に応用した機械学習アルゴリズム群を利用した自動作曲AI。

iOSのスマホアプリとして提供されており、アプリ版では、歴史上のヒット曲600曲をAIに学習・分析させたデータベースを使い、メロディに特徴量を付与して生成している。

ローマ教皇の来日イベントである「POPE IN JAPAN 2019」のオフィシャルテーマソング「PROTECT ALL LIFE 〜 時のしるし 〜」の作曲にも使われた。

AWS DeepComposer

専用キーボードもしくはコンソールによってメロディを入力し、ジャンルを選択すると、事前トレーニング済みモデルによって自動で編曲してくれるAI(作曲ではない)。

GANを使って伴奏を生成し、独自のモデルを作成することもできる。

楽曲制作のほか、AWS DeepComposerを通して機械学習について学習する「ラーニングカプセル」というサービスも提供している。

 

Music Transformer

Music Trainsformerとは、Google社が開発した、MIDIデータ(音楽の演奏情報をデータ化したもの)を生成するAIです。

 

RNNを用いないSelf-Attention の導入により圧倒的な性能を見せた、自然言語処理AIであるTransformer(google翻訳に使われている)が先行しています。

Transformerとは要するに、「過去の自然言語処理(NLP)で多く使われる再帰型ニューラルネットワーク(RNN)や畳み込みニューラルネットワーク(CNN)を 「Self-Attention Layer」に入れ替えたモデル」です。

 
Attention

RNNの中で使われる、過去の重要な点に着目するための手法で、各隠れ層を重み付けする。

context vectorによって重み付けすることで、各単語が参照すべき重要な単語を見分けることで、 説明可能なAIを作成する。(AIがどこに注意したのか可視化できるため)

 
RNN(Recurrent Neural Network)

時系列データを扱うニューラルネットワークであり、前の単語から抽出された重みを次の単語に引き継ぐ構造になっている。

前後のデータに関係性がある時系列データを分析するのに適す。

 

Transformerの音楽への応用

Transformerを使って、与えられたMIDIデータから、その先に来るMIDIデータを予測、作曲していくことができます。

 

音楽には小節という繰り返し構造や、モチーフを再利用することがありますが、 Transformerは直前だけではなく、長いスパンでの参照も可能であるため、より音楽らしいデータを作ることができます。

 

AIと作曲

最後に、社員によるAIの作曲についての考察が紹介されました。

 
  • 音楽の聞き方に、「作品の向こうに人間を見る聞き方」と、「作品の向こうに人間を見ない聞き方」の二つがあるとするのであれば、 前者の場合、AIが作った音楽は「捉えどころがない」ように聞こえるのではないか。
 
  • 作曲という過程は、アイデアの取捨選択、楽器の選択、フレージングの選択といった様々な選択の集合だとみなせるのでは?
 
  • 人間が音楽を作る場合、ほとんどの作曲者が、自分なりの「美学」によってそのような選択を行っているとするのなら、様々な選択の根拠=個々の「美学」の集約点としての「人格」がオリジナリティの源泉だと言えるのではないか?
 
  • 逆に言えば、AIがそのような「美学」を持つことによって、「作品の向こうに人間を見る聞き方」にも耐えうるような作曲が可能になるのではないか?
 
  • また、人間の個々の「美学」が偏ったものであるように、AIの持つ「美学」も偏っている必要がある。

ちなみに、現状ではAIはある美学を持つ個人(あるいは集団)のデータを学習することによって、データ元の「美学」を再現することが可能になっています(AIが作ったビートルズ風の楽曲など)。

このページの先頭へ