LoginSignup
7
4

spleeterをdockerで実行できる環境を作った

Last updated at Posted at 2019-11-10

はじめに

  • 楽曲を機械学習を用いてヴォーカル、ドラムなどのパート分けを行うspleeterというツールが出ましたね。
  • こちらのツール、githubで公開されており、誰でも利用が可能となっています。
  • この記事では、Dockerを使ってローカル環境をほぼ汚さずspleeterを実行できる環境を作ったので、その紹介になります。

Dockerでspleeterを実行できる環境を作る

  • コード、サンプルの音楽ファイルなどは下記リポジトリに置いてあります。(サンプルの音楽ファイルは筆者が適当に作った4小節なので好きに使ってもらって構いません。)
Dockerfile
FROM continuumio/anaconda3:latest

RUN apt-get update \
 && apt-get install -y git

WORKDIR /work

RUN git clone https://github.com/Deezer/spleeter \
 && conda env create -f spleeter/conda/spleeter-cpu.yaml \
 && echo "conda activate spleeter-cpu" >> ~/.bashrc

Dockerfileの工夫点

  • anaconda3のインストールされているイメージがあるため、これをベースに作れば少ない記述量でDockerfileを書き終えられます。便利。
  • docker runのした場合、デフォルトだとcondaのactibateされている仮想環境がbaseになっており、実行の度に毎回仮想環境の切り替えのコマンドを入力する必要がありました。
    • 流石に面倒なので、.bashrcに下記を書き込むことで、docker runの際にactivateする手間を省きました。

echo "conda activate spleeter-cpu" >> ~/.bashrc

リポジトリのクローンから実行まで

  • コマンド5つ程で導入、分割まで可能です。
git clone https://github.com/fussy113/spleeterDock
cd spleeterDock
docker build -t spleeter-dock:lts ./
docker run --rm -it -v "#{APPLICATION_PATH}/spleeterDock/input:/work" spleeter-dock:lts bash

# Container内で実行
spleeter separate -i sounds/input/sample.wav -p spleeter:5stems -o sounds/output/
  • 実行後、sounds/output/sampleというディレクトリができていて、その中に分割された音声ファイルがあるかと思います。
  • 若干ドラムの音がこもってる気がする。

終わりに

  • 3分ほどの音声ファイルだとうまく処理されなかったり落ちるなどあるらしく、発展途上な所もまだまだありますが、個人的に成長が楽しみなツールです。(otherで分類されてしまう音声もどんどん分類できるようになると良いですね。。。!)
  • 耳コピなどをするバンドマン系エンジニアやサンプリングが欲しいトラックメイカー系エンジニアの方にはぜひ使ってみてください。(用法用量はきちんと守りましょうね)
  • 別な話ですが、spleeterをgoogleの力でさらに利用しやすくされてる方もおり、感服です。(こちら)
7
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
7
4