はじめに
Demucs とは
・AI技術を利用して楽曲の各パートを分離・出力できるソフトウェアライブラリ
・開発元はMeta(Facebook)。オープンソースPJのため、無償で公開されている [2021年4月公開]
Demucsを用いて私がやりたいこと
- 楽曲データから直接Sampling! DJing & Mixingに活用したい
- 各パートを聴き込むことで、より繊細なchoreographが出来るようになりたい
- 各パートを聴き込むことで、楽器演奏の練習効率をあげたい
所見
・各パートの音域が綺麗に別れているのであれば、既存の音声データ編集ソフトでも同様のことが出来ると思います。しかし、そう単純ではない為そういった手段では分離をすることがこれまで出来ませんでした(※私が知る限り)
そういった経緯より、この技術は斬新かつ魅力的と感じます。
検証01
Demucs動作環境
(上述のGitHubより)
言語: Python 3.7 + 各種パッケージ (PyPI もしくは anaconda )
※ ソースコード: pip/conda どちらからもインストール出来るとのこと
検証環境
Colaboratory (Googleが機械学習の教育及び研究用に無償で提供しているPython実行環境)
実行環境がセットアップ済みのHybrid Demucs from Colab、こちらを利用して検証を進めてみます
準備/実行
01) Google Drive に 対象となる音楽データを格納
検証用楽曲データ①:
Title: fncy stream (skit)
Time: 1:27
Size: 2.9 MB
Bit rate: 256 kbps
Sample rate: 44,100 kHz
CH: Stereo
Format: AAC(.m4a)
Original
公式のYouTubeCHより
▽ 当該楽曲の大まかな構成
0:02 飛行機の離陸音
0:11 CAのアナウンス
0:17 警報音
0:22 Organ
0:24 Poetry reading (ラストまで。伴奏としてOrgan、chorus、tweet of bird、synthesizer)
※ 私の主観より
02) ソースコードのビルド・デプロイ
・ソースコードを一部改修
extensions = ["mp3", "wav", "ogg", "flac","m4a"]
# 対応する拡張子に「.m4a」の記述がなかったため、このように改修しました。
・Colaboratory上に定義したコードを順次実行していく
・所要時間
無償なのにも関わらずColaboratoryのスペックは高いようで、ここまで数分で完了しました。
※ demoサイトはスペックが低いのか、解析・分離にとても時間が掛かったことからも
確認
Demucsでは下記4種類に音声を分離。また、デフォルト出力形式は 320kbps の mp3とのこと
実際に聴いてみて、どのように分離されたか確認
・チェック用の動画は後述
time | description | type | result |
---|---|---|---|
0:02 | 飛行機の離陸音 | Drums | 💦 |
0:11 | CAのアナウンス | Vocal | 😊<OK |
0:17 | 警報音 | Other | 🚨<OK |
0:22 | piano | Other | ♪<OK |
0:24 | Poetry reading | Vocal | 😊<OK |
0:24 | piano | Other | ♪<OK |
0:24 | chorus | Vocal | 😊<OK |
0:24 | tweet of bird | Vocal | 😊<OK |
0:24 | synthesizer as bass | Bass | 👍<OK |
・分離した各音声データをDJソフトを使って聴き比べた動画は下記
結果
飛行機の離陸音がDrumと解釈された以外は、概ね人の認識どおりに分析されていた 🍀✨
※ (推測) Drum音が含まれない楽曲だったため、取捨選択でそのような結果になったのかもしれません。そうだとしたら、それはそれで賢いですね。
検証02
今度はもっとシンプルな楽曲を解析・分離してみる
検証用楽曲データ②:
Title: はじめてのチュウ(Rasmus Faber ver.)
Time: 3:59
Size: 8.2 MB
Bit rate: 256 kbps
Sample rate: 44,100 kHz
CH: Stereo
Format: AAC(.m4a)
Original
公式のYouTubeCHより
結果
・チェック用の動画は後述
type | time | impression |
---|---|---|
Vocal | 0:17 | アカペラみたいでカッコいい♪ (※01) |
Bass | 0:01 | いい感じ♪😊 |
Drum | 0:01 | こちらもいい感じ♪ ハイハット、スネア、その他 がクリアに聴こえる。(※02) |
Other | 0:01 | Horn隊、Pianoがクリアに聴こえ、心も身体もswingしちゃう感じ♪ |
(※01) しかし2:30 ぐらいに、Hornか何かの音が混じっている。流石に完璧に分離とまではいかないようだ
(※02) syntheっぽい音が混じっている箇所もあるが、全然使えるレベル◎
・分離した音声データを聴き比べ
結論
目標に掲げた3点、いずれもdemucsを利用することで実現出来そうです◎
おわりに
私からのお願い
・上記検証データの参考としてYouTubeのリンクを掲載しましたが、既存の楽曲を利用する際はMusicianに敬意を表し、キチンと対価を支払って取得したものをご利用ください。DJを始めようと模索していた数年前、とある練習会で出会った方の中に違法DL(=劣化音源)でDJしているってのが居て、唖然としたことがありマス。。
我々のQoLを上げてくれるMusic & Musicianにリスペクトを😊
気軽に試してみましょう
・著作権の関係から今回利用した楽曲および分離したデータを直接公開することが出来ないのが残念ですが、デモサイトを利用して頂くことでdemucsの凄さを体験して頂けると思います。お試しあれ ◎
デモサイト
→ 画面左下に[test.mp3]とあります。そちらを使って体験してみてください
・因みに、このソフトに出会う前に私が作成したMixはコチラで公開しています。
折角Mixをつくるならば他の方とは違ったものをつくりたいと思い、フリーで公開されている環境音などをMixすることで全体を通してストーリー性を表現してみたものになります (2021年頃の2作品)
次に試してみたいAI技術
・写真データ(2次元データ)から 3DモデリングできるAIソフト
特殊な機材がなくとも写真一枚から3Dモデリングが出来る模様。個人的にコチラにも興味があり近々検証したいと考えています。
(ソースコードは5日前に公開されたばかり ['23/02/15(wed)時点])