クーの自由研究

素朴な疑問を実験します。ボクと一緒に螺旋階段を頂上まで登ってみませんか?貴方の影についていきます。

計算機音楽の自由研究(実験:その1.1)サウンドの機械学習ファーストインプレッション

はじめに

無理やりではありますが、サウンド自己符号化器機械学習することを開始しました。最初の印象はあとあと薄れていくので、この時点の「感触」を記録しておきます。実験報告に関する方向性も考えてみます。(内容はほぼ雑記です)

波形をそのまま扱うのはそれほど悪くない?

 音に関してはフーリエ変換ウェーブレット変換をしてから処理するのが当たり前のイメージがありました。予想外に波形そのものを扱っても「そこそこ」処理できそうな感触を得ました。

予想以上によかった点

S/N比はとても悪いが、自己符号化器で倍音「そこそこ」再現できるくらいに学習できています。

・昨年つくった自己符号化器は一部画像処理向けに改良している(つもり)だが、音(の波形)についても画像処理同様に扱える部分が多いです。

・ほとんどの聞く人にとっては、エンコードされた音は「気持ち悪い」音であると思いますが、ノイズや音の崩れ方が環境音楽」「アンビエント」「サウンドインスタレーション」の観点でみると(「気持ち悪さ」をある程度コントロールできる前提で)興味深いと感じました。(ボクが人類的な芸術の観点を持っている訳ではありませんが。(苦笑))

予想通りだった傾向

・しくみ上「重ね合わせ」で特徴を表現するため、重ね合わせで発生する誤差やノイズ(ある点をあわせようとすると、他の点があわない。デコードはほどよい重ねあわせを見つけているにすぎない)そこそこかなりあります。(未実施ですが、フーリエ変換などをして別空間で演算すれば、ノイズはかなり低減すると予想しています)

不協和音が聞こえること。(上記と本質は同じ内容)ボク的には、不協和音は案外好きな傾向です。(現代音楽は「ムーリー!」なのは皆さんと同じです)

改善のポイントなど

サウンドデータベース

・作成中のサウンドデータベースのピアノ部分(今回は6000音)を使用しましたが、ピアノだけでもそこそも実験になった感じがしました。ところがサウンドデータベー作成で意図して改善したことが裏目にでるところがありました。

→学習しやすいようにわざとエフェクトなどで「音をばらつかせて」いますが、2次加工をしようとしたときに逆に足枷になる。

→→一周まわって、サウンドデータベースの各音はエフェクトをかけないで(かけたほうがその楽器らしい場合はかけて)ばらつきなく録音し、粒がそろっていたほうが扱いやすい

→→→学習にばらつきが必要であれば、その必要時点でエフェクトをかえればよい。

→→→サウンドデータベースの音を使って「音楽」を形成する場合など、2次利用する場合音がばらついていると扱いにくい

学習のしやすさを優先していましたが、いざ使ってみると「手を加えていないほうがいい」ことがわかりました。(とはいえ、今回思いのほか良い結果になっているのは、「録音時に意図してばらつかせていたため、バリエーションが実質豊富であった」ことが大きいような気がします。)

サウンドデータベースについて、「7月に実験してみて」「8月に課題を調整する」もともとの予定にそって実施したいと思います。場合によっては「再録音」も覚悟です。(号泣)

自己符号化器

「画像処理」用として自己符号化器を調整したり、もともと参考にしたプログラムが「画像そのものを再現する」より「画像の明暗のコントラスト特徴を再現する」ことに重点がおかれているプログラムでした。

このため、波においても「元の波形」を忠実に再現することより「元の特徴」を再現することが優先されているプログラムになっている「気」がします。具体的には

振幅の再現は軽視(Epochが進むほど内部の(ウエイトの)振幅が大きくなる):軽視といっても相対的な幅は元と合致するように計算しています。

・図形として合致することを最優先しているので位相は非常に重視される。位相が絶対的に合致する方向で計算されます。

・波形としてのゼロ点についてまったく考慮されておらず、一定以上誤差が蓄積すると問題となっています(今回16768Epochでの波形の崩れ)逆に、ウエイトのレベルからこの点について制限をかければ「サウンドとして」よく学習可能と思われます。

ただし株価や為替の「波形」学習の場合はこんな機能を入れると逆に破綻なので汎用性を保つか、サウンド用に特化するか検討が必要(コアな部分については汎用性を崩しなくない。グラフィックでもサウンドでも文脈・理論解析でも使えるようにしたい。)モジュールを組み合わせて構成できるように検討したいです。(経済活動の波も「波」そのものに興味あります)

サウンド実験結果の報告の仕方を決めたい。昨年の「MNIST用のレポート」のようなレポートフォーマットを「サウンド・オートエンコーダ」用にも準備したいです。(昨年もレポートプログラム作成にかなり時間を割きました)

ちなみに昨年のMNISTの学習実験フォーマット例はこちら

f:id:np2LKoo:20170727014840p:plain

 結果はPNG画像で出力していましたが、PDF出力ファイルとして出力し、該当部分をクリックすると音が再生されるマルチメディア形式にできたらいいなぁ。(マルチメディア再生可能形式でPDF出力できるようにするライブラリはPythonといえども「ない」とおもわれます。Adobe 製品ならもちろんできますが、ボクにわけがありません。)

 googleがライバルなのか?

 昨年からサウンドの自己符号化器実験、または機械学習に関する話題を収集していますが、あまりめぼしいものがありません。「音」処理に関する論文はたくさんでているのですが、「画像」でよくあるような「この論文の技術で遊んでみました」的なものが「音」の場合ほとんどありません。ブログでは「人工知能に関する断層録」様が機械学習の観点での音の分野を牽引されていた感がありますが、「音」に関してはまだまだ、人類の草の根的な活動が少ない気がします。かえるも頑張ります。

あ、今年になってgoogleのmagentaプロジェクトが楽器音の機械学習についての情報を公開していますね。NSynthというようです。音が聞けるので、よかったらどうぞ。ブラス系は音が大きいのでご注意ください。

ボクの非力なマシンでは「テンソルはフローしない」ので来年(全力投入の)新マシンをかったらやってみたいと思います。

日本語の紹介記事はこちら~(後半はA.I. Duetの動画です)

A.I Duetもソース公開してる~。でもテンソルが、テンソルがぁぁぁぁ。

googleがライバルと大風呂敷をひろげましたが、おそらく目指している方向性は同じだと勝手に思っているので、頑張ってキャッチアップしたいです。