DJ
(末に関連AWS問題のリンクがあります)
最近MLS,MLA,AIFという機械学習のAWS3資格をとりました。機械学習について幅広くキャッチアップできました。
知識を活用していきたい。
機械学習の中の一分野、Deep learningを使って、
音源のボーカル、キック、その他、を分離できることを知り、
Demucsというツールを使ってやってみました。
機械学習の中の一分野、Deep learning
勉強する前は、機械学習とDeep learningを同じようなものと思ってた気もするので、こういう言い回しができるだけで進歩ですね。
DJをやっている人はわかると思うのですが、
ボーカルと、ビートをわけたいときってありますよね。
普通にDJのテクニックでできますが、
機械学習をせっかくなので使ってみよう。
ということでやってみました。
まずは結果からです。
結果
結果としては次のような感じになって、感動しました。
bass.mp3
drums.mp3
other.mp3
vocals.mp3
聞いてみると、
音源分離特有の味わいが得られます。
カセットテープのような手触りとでもいいましょうか。
微妙に分離されきっていない部分がよく感じられました。
試行錯誤
最終的に実行していたコマンドはこちらです。
python3 -m demucs -d cpu -mp3 ファイルパス
これで、separatedというディレクトリに写真のような分離後のファイルが生成されるようになりました。
他にいくつか試行錯誤がありました。
試行錯誤① モデルを変える
-n htdemucs_ft
の引数をつけるとより良いモデルになるようです。
しかし、手持ちのM3 macbook airでは、実行時間がかなり長くなってしまいました。
試行錯誤② より自動化する
ファイルパスを引数で渡し、ファイル指定するため、次のようなコマンドで、
ファイルパスを取得していました。
realpath {{ ファイルをドラッグアンドドロップする }}
そして表示されるのをコピペする、というのが手間でした。
ここで, MacbookにはAutomatorというものがあり、アクション化できることを知りました。
すごい。AWSのステップファンクションやSSM automator みたいなことがローカルでできるんですね。
これでアクション化しました。
来年弊社でも、Macbookを社用PCとして利用できるようになるとのことで、
楽しみですね。
勉強 demucsで使われてる技術
Machine learning Specialtyに合格したので、色々わかるはず。
まずDemucsはこれです。
star 8.4k えぐい。
Facebookの機械学習に関する研究所が開発したようです。
U-net(Wave netに基づく畳み込みニューラルネットワーク)
畳み込みニューラルネットワーク
畳み込みフィルタで特徴抽出し、階層的にパターン学習するニューラルネットワーク
Convolutional neural networkでCNNと略される。
関連するAWSの問題
ドロップアウト
過学習を防ぐためにするやつ
関連するAWSの問題
バッチサイズ
学習中に一度に処理するデータサンプルの数
関連するAWSの問題
層の数
layerはDNNを行う時の最小単位
関連するAWSの問題
最後に
ピアノ音だけ分離するとか、まだまだ色々できそうなので、やってみたい。