トレーニングセットの音楽に基づいて、ノンストップで新しい音楽を構成する "Neural Network Music Radio"のようなものを作りたいと思います。ニューラルネットワークによる音楽生成
私が見た他のプロジェクトではノートノートで音楽を作っています(つまり、http://www.hexahedria.com/2015/08/03/composing-music-with-recurrent-neural-networks/)が、音楽を生成する可能性がより高いために事前処理されたmp3ファイルでネットワークをトレーニングしたいと考えています。
最初のアイデアは、次の時間枠で機能を「予測」するために、各時間枠の特徴セットによって音楽を記述し、ニューラルネットワークを訓練することでした。
フィーチャがマグニチュードスペクトル係数である4層LSTMニューラルネットワークに基づいて非常に基本的なシステムを作成しました。
したがって、モデル入力は、各時間フレーム(私の場合は約50ms)の時変マグニチュードスペクトル係数に設定され、モデル出力は、ニューラルネットワークが次に予測するマグニチュードスペクトル係数でもあります。 位相計算にはシントラッキングシステムを使用します(https://www.coursera.org/learn/audio-signal-processing/lecture/gjiP7/sinusoidal-model-1)
このプロトタイプは、低品質の結果をもたらします。 生成された音楽は、非常に原始的で、騒々しい、時には不名誉な笑い声です。
結果を改善する方法について質問し、議論したいと思います。
1)どのような機能を使用できますか?私はニューラルネットワークがメル周波数ケプストラム係数(MFCC)などの信号の高レベルの依存関係を見つけるのを助けるいくつかの高レベルの機能を追加すると思いますが、私は何か他のものを取るかもしれません。あるいは、スペクトルに基づいた機能を完全に拒絶して、何か他のものに賛成する。 長年のオーディオ機能を追加すると、ニューラルネットワークは音楽の長年の「スタイル」を考えるのに役立ちます。
2)音声合成にはどのようなモデルを使用できますか? 私の考えは、音楽の確率的部分を生成するために白色雑音に適用されたマグニチュードスペクトル+フィルタに基づいて追跡された正弦波からモデルを合成することです。おそらくそれは合成の最善の方法ではありません。 ボコーダーのようなものがあるかもしれませんが、音声合成だけではなく、幅広い種類のオーディオシンセシス用です。
3)具体的なフィーチャ予測ではなく、フィーチャ予測の確率的な正規分布のパラメータを出力として与えることをお勧めします。
4)「予測的ニューラルネットワーク」は、音楽をノンストップで作成するアイデアを実装する良い方法ではないかもしれません。例えば、次のフレームの音楽を正確に "予測"しないが、小さな次元の入力ベクトルから音楽を "再構成"しようとする再構成制限付きボルツマンマシンのようなものを使用することは可能ですか?
5)ニューラルネットワークの出力を非常に高レベルに制御するにはどのような方法がありますか?たとえば、平均的な音声のエネルギーは約5秒ごとに約70dbであり、音楽のビートがあります。どのようにして、ニューラルネットワークの仕事を制御して、アプリリッドの制限がある予測をすることができますか?
私はあなたではなく、最初からすべての機能を設計するよりも、オーディオ入力にシステムを制限したい場合、あなたはおそらくmadmonライブラリを使用して検討することもでき
興味深いプロジェクト!その部分については機械学習について十分には分かりませんが、オーディオのフロントでは、いくつかの考え方があります。スペクトルの一般的なエンベロープのようなものは、オーディオ信号の分類には役立ちますが、それらを合成する。おそらく、特定のしきい値以上のすべての特定の正弦波を検出し、その周波数と平均振幅を「表現」として時間枠に渡って検出しようとするなら、おそらく最良の運があります。まだ自然には聞こえませんが、音楽的に意味のある情報を抽出することができます。 – Linuxios
私は正確なクラスにリンクしていることを実感しました。私が示唆しているのは、正確にSerra教授の "Sine Model"です。 – Linuxios