#音源分離とは
ここら辺の文献がわかりやすかったです。
http://www.kecl.ntt.co.jp/people/kameoka.hirokazu/publications/Kameoka2019ASJSpecialIssue09_published.pdf
#使用した環境
Windows10
Python 3.8.2
#必要なもの
・Python→インストール方法は各自で検索してください。
・ffmpeg
・ibsndfile
・Spleeter
#①ffmpegのインストール方法
①ホームページ: http://ffmpeg.org
②ダウンロードをクリック
③Windows builds from gyan.devを選択する。
④サイトの下の方にreleaseがあるので最新バージョンをダウンロードする。
⑤ダウンロードしたファイルは「.7z」タイプの圧縮がされています。
解凍ソフト「7zip」をダウンロードする。
7zipダウンロードリンク: https://sevenzip.osdn.jp
⑥展開する
⑦展開すると「bin」というフォルダがあり、その中にffmpegのソフトが3種類入っています。ソフトは実行ファイル形式で、「ffmpeg.exe」・「ffplay.exe」・「ffprobe.exe」の3つがあります。
Cドライブにffmpegというフォルダーを作りそこにこの3つのソフトを移動します。
⑧Pathを通します。
ここはの説明は省きます。
Pathの通し方: https://opty-life.com/apps/ffmpeg-windows-install/
#②ibsndfileのインストール方法
①ホームページ: http://www.mega-nerd.com/libsndfile/
②下の方にダウンロードがあるので自分の環境に合わせてダウンロード
#③Spleeterのインストール方法
pipを利用すればインストールできます。
下のコードを実行する。
結構長いのであとはゆっくり待ちましょう🥱
pip install spleeter
#実行してみる
from spleeter.separator import Separator
import os
# 出力結果の保存場所をあらかじめ作っておく
for i in (2, 4, 5): # 2音源、4音源、5音源
outdir_path = './output/' + str(i) + 'stems'
os.makedirs(outdir_path, exist_ok=True)
# 分離対象となる音楽wav
# https://soundcloud.com/ballforest/sample
input_audio = "./input/sample.wav"
# 初回実行時はモデルをダウンロードするため、「待ち」の時間がかかる
# 事前にダウンロードすることも可能 (pretrained_model/2stems などに保存)
# ボーカルとそれ以外に分離する(2音源)
separator_2stem = Separator('spleeter:2stems')
separator_2stem.separate_to_file(input_audio, "./output/2stems")
# ボーカル、ベース、ドラムとそれ以外に分離する(4音源)
separator_4stem = Separator('spleeter:4stems')
separator_4stem.separate_to_file(input_audio, "./output/4stems")
# ボーカル、ピアノ、ベース、ドラムとそれ以外に分離する(5音源)
separator_5stem = Separator('spleeter:5stems')
separator_5stem.separate_to_file(input_audio, "./output/5stems")
#参考文献
https://gist.github.com/tam17aki/9248b758375091793b10be125d195f10#file-spleeter_demo-py