■ざっとお勉強
文献[1]をざっと見た感じ機械学習による音源分離は…音響信号を短時間フーリエ変換によって「スペクトログラム」というX軸:時間、Y軸:周波数、色:強さ(振幅)で表した画像にして、オリジナルのスペクトログラムと楽器毎のスペクトログラムを学習データとしてニューラルネットワークに入力し学習モデルを作成。学習モデルをもとに入力された音源をソース分離、音響信号を出力する。…という感じで行われているようです。
その他にもサンプリング周波数を44100Hzから22050Hzにしたり楽曲を11.88秒間隔のセグメントに区切って楽曲毎にランダムな1セグメントを選んで使用とかイントロアウトロ20秒は使わないとか。ざっと読んでもわからない事たくさんです。
■実際に音源分離やってみた
実際にSpleeterで音源ソース分離を行ってみました。転載可能な楽曲で。
以上な感じ。雰囲気掴めたでしょうか?J-POPでもいくつか試していますが同様に分離してくれました(クラムボンのベースとかいい感じです)。ドラムとベースの抽出が優れているように思いました。一方でピアノやボーカルはシャワシャワ言ったり一部抽出できなかったりしていました。でもすごいです。耳コピとかする人には大変ありがたい技術だと思います!
今後もPython・機械学習の勉強で面白いの見つけたら取り上げたいと思います。
【参考文献】
[1] Z. Rafii, A. Liutkus, F. Stöter, S. I. Mimilakis, D. FitzGerald and B. Pardo, "An Overview of Lead and Accompaniment Separation in Music," in IEEE/ACM Transactions on Audio, Speech, and Language Processing, vol. 26, no. 8, pp. 1307-1335, Aug. 2018, doi: 10.1109/TASLP.2018.2825440.
[2] Romain Hennequin, Anis Khlif, Felix Voituret, Manuel Moussallam, "SPLEETER: A FAST AND STATE-OF-THE ART MUSIC SOURCE
SEPARATION TOOL WITH PRE-TRAINED MODELS", in ISMIR 2019 Late-Breaking/Demo 2019