音が、データ形式としてもコンテンツ消費の対象としても、どれほどアクセスしやすく民主的なのかを最初に実感したのは、マレーシアにいたときだった。運転手さんの携帯電話から流れてきた曲が、母が見ていた動画から流れていた曲と同じで、違うのは載っているナレーションの言語と中身だけだった。音には、そしていわゆる口頭のコミュニケーションには、文字や画像だけでは届きにくい社会のずっと広い層へ届く何かがある。文字や画像はたいてい教育や訓練を要求する。僕は高等教育を受けているけれど、視覚芸術を語るときに人々が持ち出す何とか主義や何とか論にはまったく流暢ではない。その点、音はほとんど限界まで民主的で、アクセスしやすい。
しかも音は、内容も重層性も情報量も大量に運ぶ。データ表現として見ても、その複雑さは文字や画像の何倍にもなる。だからめちゃくちゃ面白い。僕としては、もうマルチモーダルで丸ごとくれ、できるだけ多くの種類のデータを、できるだけ大量に触らせてくれ、という感じだ。だからチームのアーティストたちに、RAVEモデルの訓練をドラム音源のサンプルパック1つに絞ってほしいと言われたとき、技術的には、アーティストに「1色だけで絵を描いて」と頼むようなもので、かなり不可解に感じた。ただ感傷の側から見れば、そういう発想がどこから来るのかはわかる。標本数1は特別で、固有で、その標本数1の具体性は、アートを作ることや、文化的世界、さらには社会的世界一般を作ることにかなり自然に結びついている。一方で僕の出発点からすると、ドラムAのデータの流れもドラムBのデータの流れも同じで、A == B だ。これは別の場所で見かけた、あの懸念とよく似ている。
OpenAIのJukeboxプロジェクトが含意していることに、私は引っかかっている。ジャンルやアーティストの情報でデータを条件づけしながら、極めて大規模なデータセット(120万曲)で訓練し、ある種の「普遍的な」音楽をモデル化しようとすること。どうして一つひとつの音楽作品が、他のあらゆる音楽作品と意味の上で等価だと見なせるのだろうか(あらゆる文脈で、あらゆる聴き手にとって)?
ありがたいことに僕にはGPUへのアクセスがあったので、取捨選択しなくて済んだ。Google Vertex AIにカスタム訓練ジョブを投げて、訓練をたくさん並列に走らせればいいと思っていた(最善を尽くしても延々と失敗した。ZZZ)…。結局、その月のCoLabの無料GPU時間を全部使い切って、9000エポック訓練したモデルが1つできた。さらにローカルでは3070で20000エポックを終えたモデルがもう1つできた。そしてアオショウビンの鳴き声がマレーの太鼓として鳴るのを聞いた瞬間、OMO、つまり深層学習なら、どんな楽器でも数週間や数か月ではなく数時間でデジタル化できちゃうってこと???? という気持ちになった。
GPU時間を使い切ったあとのCoLab notebookでCPU訓練の速度を見て、それから軽く5倍は速いローカル訓練の速度を見ると、GPU持ちかGPU貧者かは本当に現実の差なんだな、となる。
RAVEの音色転送をNeutoneへ
前処理は、パッケージにもともと入っている手抜き実装以外には何もしていないし、推論に使った入力データには背景ノイズもあるので、まだ変なデジタル信号が出てくる。それでも、Google CoLabで無料提供されるNvidia T4上で、RebanaとRentakの音をたった229秒ぶん、1000エポック訓練したモデルの結果がこれだという事実は、以前の2時間のドラムデータを使い、13時間かけて39エポック訓練した実行と比べると、本当に度肝を抜かれる。229秒、検証データ1点、誤差最小化だけで、ドラムのニュアンスや表現をどうしてここまで学べるのか!? A.I.の進歩の軌道は、人間の尺度では想像しきれない。
この学習が何を意味するのかは、下でChatGPTに説明してもらう。
音色とは何か?
音色は、しばしば音の「質感」や「トーンカラー」と呼ばれるもので、同じ音高を同じ音量で出していても、楽器や声の違いを聞き分けられる理由になるものです。要するに、その音を他の音から識別可能にし、固有のものとして感じさせる、音ならではの性格や手触りです。
音色転送とは何か?
ニューラルオーディオ合成の文脈でいう音色転送とは、ピッチやリズムなどの要素を保ったまま、音の音色的な特徴を変化させるプロセスを指します。
RAVEモデルを訓練しているとき何が起きているのか、あるいは、機械はどうやってこんな少量のデータから楽器を再現できるようになったのか?
基本的には、特定の種類のドラムでモデルを訓練することで、そのドラムに合わせたバーチャル楽器を作っていることになります。モデルは訓練中にそのドラムの特徴や細かなニュアンスを学習し、音色転送や音生成に使うと、その学習済みの知識をもとに入力音を訓練対象のドラムのスタイルへ変換します。これにより、目的の音を得るためにピッチや音量などの各種パラメータを手作業で対応づける必要がなくなるため、バーチャル楽器の作成プロセスを単純化できます。代わりに、訓練済みモデルが、学習したドラムの特徴にもとづいて変換を処理してくれます。
音色転送は、ある音響信号の音の特徴を、別の音の特徴に近づけるために変化させるオーディオ処理技術です。あなたが使ってきたRAVEモデルのようなニューラルオーディオ合成の文脈では、音色転送とは、入力音の音色的特徴を、特定の種類のドラムなどの目標音に似るよう変換することを意味します。
あなたが使っているRAVEモデルの場合、訓練中にドラム群の音色的特徴を学習します。この学習プロセスでは、与えられた訓練データから、ドラム音の微細な特徴やニュアンスを捉えます。そのうえでモデルは、学習した情報を使い、入力音の音色を訓練済みドラムに似るよう変換します。
RAVEのようなニューラルネットワークモデルは、比較的少量の訓練データでも、音源の本質的な特徴を汎化して捉えることができます。入力音から学習された特徴を表す潜在空間を操作することで、考えられるすべてのバリエーションについて明示的にデータを録音しなくても、ピッチ、音量、その他の音色属性など、出力音のさまざまな側面を制御できます。
つまり、ピッチ、音量、その他のパラメータのあり得るバリエーションごとに別々のサンプルを録音しなくても、訓練済みモデルの潜在空間を操作すれば、似た効果を得られます。広範な手作業の録音や処理を必要とせず、幅広い音のバリエーションを探れるため、このプロセスはより効率的で柔軟になります。
あらゆる音を作るためのチュートリアル
どうやら、僕がカスタム訓練ジョブを投入できなかったことは、GPUリソース全体の不足を示しているのかもしれない。あまりに多くの人が、あまりに多くのリージョンで、四六時中あまりに多くのカスタム訓練ジョブを投げているせいで、本当に障害っぽい問題になっている可能性があり、専用サーバーを使ったほうがずっと勝率が高いのでは!? とも思えてきた。訓練中には、コードを読むのをサボったせいで何時間も無駄に苦しんだし、ドキュメントのどこにも、どのフラグが必須だとは書いていなかった…。なので、興味のある人向けに、ちょっとしたハウツー動画を作る時間を見つけたい。
これは「世界に、もっと新奇なデジタル音をあれ!」のための一本!
初出はPubPubのerniesg.pubpub.org/pub/r4a1ex9r。