AI でボーカル抽出! – Spleeter on Ubuntu 18.04

Spleeter すごいよ!
使い方
基本的には公式のドキュメントとGigazineを参照した.というかGigazine の説明が分かりやすいからそれを見ながらやるのがいいかな?
1 Conda
をインストール
Conda
のインストール方法は適当にやったら上手く行ってしまったので,ちゃんと分かってるわけじゃないんだけど… いちおうここに書いてある内容を試したら上手く行きました.
python を僕は使ったことがないし,miniconda
を使ったのも初めてなのでよく分からないんだけど,環境を作ってその中でSpleeterを実行することになるらしいね.難しい.

上の画像の行頭の (my_env)
が実行環境を表示してるっぽい.よく分かってない笑
ちなみに環境から出る (終了する?) には $ conda deactivate
と入力すればいいのかな? $ . deactivate
は $ source deactivate
の代替表記です (さっきも紹介したこのページを参照).

2 Spleeter を実行
これは簡単.このコードを環境内で実行するだけ.
$ git clone https://github.com/Deezer/spleeter
$ conda install -c conda-forge spleeter
$ spleeter separate -i spleeter/audio_example.mp3 -p spleeter:2stems -o output
これをそれぞれ書く.3行目の spleeter separate
が spleeter
でソース分離するためのコマンド.
-i
の部分に入力したい音声ファイルを-p spleeter:
に分離オプションを2stems
:ボーカル/伴奏に分類。4stems
:ボーカル/ドラム/ベース/その他の楽器5stems
:ボーカル/ドラム/ベース/ピアノ/その他の楽器
-o
に出力先を
例えば下の画像は次のコマンドをホームディレクトリで実行した結果. ~/ouptut/help
というディレクトリに,ボーカルとその他の演奏が2つのファイルに分離されてるね.
spleeter separate -i ~/Downloads/help.mp3 -p spleeter:2stems -o output

Spleeter – ソース分離エンジン
Spleeter というソフトウェアがあることを Gigazine の記事で知った.ソース分離というのはボーカルやギターやドラムなどがミックスされた音楽データから,ボーカルやギターやドラムなどの楽器別に分離する技術だそうだ.
Spleeter は深層学習を用いたソフトウェアで,本当に声らしい部分を抜き出せるように訓練されている. Audacity で周波数ベースでボーカル抽出をする方法もなくはないけど,Spleeter のほうが品質は圧倒的にいい.やっぱり機械学習は強力だ.
僕の用途
もちろん Beatles の Help! のソース分離は僕にとってテストでしかない.本当にしたいことは,昔録音した音源が雑音だらけだから,その音声データを綺麗にするために使いたい.何年か前に声ブログと称して思ってることをただ話すだけの録音とかを録ったりしてたからね.
無駄な努力だということは百も承知なんだけど,僕はこういう「質の低いオリジナルデータをポストプロセスで直す」というのが好きなんだよね.変な言い方だけど「ポストプロセスマニア」なんです (マニアと言うほど色々と凝ってるわけじゃないけど).

今回の目的の音声から Spleeter を使って背景の演奏 (?) 部分を抜き出すことには成功した.でもその音声はまだ質が低くて,音割れが酷い.音割れを適当に補って修正する深層学習ベースのエンジンを誰かが作って公開しれくれないかなぁ.