LoginSignup
2
4

More than 1 year has passed since last update.

Spleeterを使って音源分離に挑戦

Posted at

音源分離とは

ここら辺の文献がわかりやすかったです。

使用した環境

Windows10
Python 3.8.2

必要なもの

・Python→インストール方法は各自で検索してください。
・ffmpeg
・ibsndfile
・Spleeter

①ffmpegのインストール方法

①ホームページ: http://ffmpeg.org
②ダウンロードをクリック
スクリーンショット 2021-07-30 22.25.44.png
③Windows builds from gyan.devを選択する。
スクリーンショット 2021-07-30 22.31.48.png
④サイトの下の方にreleaseがあるので最新バージョンをダウンロードする。
スクリーンショット 2021-07-30 22.34.17.png
⑤ダウンロードしたファイルは「.7z」タイプの圧縮がされています。
解凍ソフト「7zip」をダウンロードする。
7zipダウンロードリンク: https://sevenzip.osdn.jp
スクリーンショット 2021-07-30 22.38.48.png
⑥展開する
1627652606820.png
⑦展開すると「bin」というフォルダがあり、その中にffmpegのソフトが3種類入っています。ソフトは実行ファイル形式で、「ffmpeg.exe」・「ffplay.exe」・「ffprobe.exe」の3つがあります。
Cドライブにffmpegというフォルダーを作りそこにこの3つのソフトを移動します。
1627653127486.png

⑧Pathを通します。
ここはの説明は省きます。
Pathの通し方: https://opty-life.com/apps/ffmpeg-windows-install/

②ibsndfileのインストール方法

①ホームページ: http://www.mega-nerd.com/libsndfile/
②下の方にダウンロードがあるので自分の環境に合わせてダウンロード
スクリーンショット 2021-07-30 23.06.02.png

③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")

参考文献

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4