Notes

メモ書き雑記ブログ(テニス・ガジェット・音楽活動など)

Spleeter (音楽素材分割エンジン) を繰り返し実行するシェルスクリプトをつくってみた(自分用)

 

以前 Speeter をインストールして使ってみるところまでをこちらの記事で書かせて頂きました。

 

ちょっと使ってみて。

当たり前ですが完全にボーカルだけを抜き切ることはできず。

どうしたものかと考え試しに何回か繰り返し掛けてみたところ、回数を重ねるごとに若干ですが伴奏部分が削れてきている気がしました。

これはもしかしたら100回くらい掛けたら結構きれいになるのでは?!

ということで、手動で何回もコマンドを実行するのも手間だったので、自動で繰り返し実行するシェルスクリプトを書いてみました。

 

結論からいうと、曲にもよると思いますが100回やってもあんまり変わらず。

まぁ10回とか20回くらいでいいのかなという気がしました。

回数を重ねると削れるというより音が丸くなるような印象でした。

 

環境

MacBook Air (Retina, 13-inch, 2019)

macOS Big Sur 11.3.1(20E241)

 

スクリプト

スクリプト

本当に自分用に簡単に書いたものなので、不具合や使い勝手などは考慮してません。

使う場合は、シェルスクリプトがわかる方がご自身の環境に合わせてカスタマイズして使って頂いた方が良いかと思います。

ご了承ください。

 

Spleeter.sh

#!/bin/bash

 

count=0
while true
do
  count=`expr $count + 1`
  echo ">>>>>" $count "times"

 

  spleeter separate sound/vocals_`expr $count`.wav -p spleeter:2stems -o sound
  mv sound/vocals_`expr $count`/vocals.wav sound/vocals_`expr $count + 1`.wav
  rm -R sound/vocals_`expr $count`

 

  if [ $count -eq 100 ]; then
    exit 0
  fi
done 

 

スクリプトでやってること

Spleeter でボーカルを抽出した音声ファイルに対して再度 Spleeter でボーカルを抽出する、というのを繰り返し実行します。

 

カレントディレクトリの構成はこんなイメージです。

f:id:cask-st:20210517173140j:plain

 

n回Spleeterを実行したものが "vocal_n.wav" となります。

例えば、3回Spleeterを実行したものは "vocal_3.wav" になります。

 

以下実行の流れの例です。 

わかりやすく、1回実行したファイル(vocal_1.wav)に対しての流れを書いていきます。

 

  spleeter separate sound/vocals_`expr $count`.wav -p spleeter:2stems -o sound

vocal_1.wav に対して”spleeter separate”を実行します。

すると"sound/vocal_1"フォルダに"vocals.wav"ファイルが出力されます。

 

  mv sound/vocals_`expr $count`/vocals.wav sound/vocals_`expr $count + 1`.wav

"sound/vocal_1"フォルダに出力された"vocals.wav"ファイルを”sound/”に移動します。

そして、ファイル名を"vocals.wav"→"vocals_2.wav"に変更します。

 

  rm -R sound/vocals_`expr $count`

"sound/vocal_1"フォルダはもういらないので削除します。

 

 

  if [ $count -eq 100 ]; then

上で説明した動作をここに書いてある回数分繰り返します。

この書き方だと100回繰り返します。

 

使う前の注意点

使用前の注意点として、以下をやっておいてください。

  1. conda activate spleeter-cpu を実行しておいてください。
  2. spleeter separate を事前に手動一度実行して、"pretrained_models"フォルダと、"sound/vocals_1.wav"ファイルがある状態にしておいてください。
  3. ターミナルのカレントディレクトリはSpleeter.shがあるところ(上のディレクトリの図の場所)に移動しておいてください。

 

使い方

普通のシェルスクリプトの実行と同じです。

以下のコマンドを実行するだけ。

bash Spleeter.sh

 

 

ざっと書いてしまいましたが、とりあえずこんな感じです。

余裕があったらスクリプト・記事ともにもう少しちゃんと書くかもです。

 

mac に Spleeter (音楽素材分割エンジン) をインストールして実行してみる

音楽データからボーカル・ドラム・ベースの音を個別に抽出できる「spleeter」

ざっくりな機能は以下を見てもらえればわかるかと。

 

mac にインストールして使えるようにしてみます。

※実施日は 2021/04/08 

 

環境

MacBook Air (Retina, 13-inch, 2019)

macOS Big Sur 11.2.3(20D91)

 

インストール

Miniconda インストール (※Python環境構築済みの場合は不要)

spleeter は Python で動くので、まずその環境を作ってあげる必要があります。

すでにPython環境構築済みの場合は不要です。

今回は Python 3.9 をインストール。

 

Miniconda の mac用 pkg をダウンロード。

pkgファイルを実行して画面に従えばインストールできます。

 

spleeter インストール

ターミナルを開いて以下のコマンドを実行していく。

まずは github から spleeter をダウンロード。

 

git clone https://github.com/deezer/spleeter

 

以下を実行して使えるようにしていく。

 

conda install -c conda-forge spleeter (注1)

conda env create -f spleeter/conda/spleeter-cpu.yaml (注2)

 

注1:conda install -c conda-forge spleeter でエラーの場合

こんなエラーが出た場合、

$ conda install -c conda-forge spleeter
Collecting package metadata (current_repodata.json): done
Solving environment: done


==> WARNING: A newer version of conda exists. <==
  current version: 4.9.2
  latest version: 4.10.0

Please update conda by running

    $ conda update -n base -c defaults conda

 

# All requested packages already installed.

書いてある通りターミナルで

 

conda update -n base -c defaults conda

 

を実行する。 

 

注2: conda env create -f spleeter/conda/spleeter-cpu.yaml でエラーの場合

こんなエラーが出た場合、

EnvironmentFileNotFound: '/Users/*****/spleeter/conda/spleeter-cpu.yaml' file not found

 

エラー内容の通り、 spleeter-cpu.yaml がないので作ります。

テキストエディタを開いて以下をコピペ。

ファイル名を spleeter-cpu.yaml で保存して、/Users/*****/spleeter/conda/ に置きます。

name: spleeter-cpu

channels:
- conda-forge
- anaconda

dependencies:
- python=3.7
- tensorflow=1.14.0
- ffmpeg
- pandas==0.25.1
- requests
- pip
- pip:
- museval==0.3.0
- musdb==0.3.1
- norbert==0.2.1
- spleeter

 

これで成功するはず。

 

Spleeter の実行

ターミナルで以下のコマンドを実行。

 

conda activate spleeter-cpu

spleeter separate 変換前の音楽ファイル.mp3 -p spleeter:2stems -o 出力フォルダ名

 

-p spleeter: のところで以下のように分割方法を変えられる。

2stems:ボーカル/伴奏に分類。

4stems:ボーカル/ドラム/ベース/その他の楽器

5stems:ボーカル/ドラム/ベース/ピアノ/その他の楽器

 

注意点として spleeter separate -i で紹介されている記事が多いけど、逆に -i があるとエラーになります。

ヘルプの記載が以下になってるので仕様が変わったみたい。

Options:
  -i, --inputs TEXT              (DEPRECATED) placeholder for deprecated
                                  input option

 

オプションをいじると色々細かいこともできそうですが、本日はここまで。

 

Android Chrome の不要なストレージを削除して空き容量を増やす

自分は Google Pixel3 を愛用しております。

カメラもきれいで非常にコスパのいい機種なので気に入っているのですが、容量が64GBしかないのが難点。(それで価格を下げていると思うので仕方ないのですが)

なのでしばしば端末の容量不足に悩まされます。。

 

本記事では、そんな日々から得た空き容量を増やすノウハウについて書きたいと思います。

 

 

はじめに

Google様 公式の空き容量の増やし方

Google公式で以下の記事があります。

Pixel端末ではない方も基本的には同じ考え方なので参照ください。

 

 Pixel スマートフォンの空き容量を増やす

 

不要なアプリ・写真・ファイルの削除については、上の記事でわからなくても、ググればすぐにわかりやすい記事が出てくるので割愛します。

 

本記事ではChromeアプリのストレージを削除して空き容量を増やす方法について、注意点含めて記載します。

 

ストレージ削除の注意点

容量を減らしたいからといって何でもかんでもストレージ削除してしまうと大切なデータを削除してしまう可能性があるので危険です。

例えばLINEのストレージを削除してしまうと、全てのトークデータが消えてしまう惨事になります。。

 

ストレージ削除 

以下やり方のご紹介になります。

※一応自己責任でお願いします!笑

Chrome のストレージ削除

[設定] > [アプリと通知] > [すべて表示] からChromeを選択。

アプリ情報画面で [ストレージとキャッシュ] を選択して開いたストレージ画面(以下)で [ストレージを消去]を選択。

f:id:cask-st:20210226170241p:plain

 

以下 Google Chrome ストレージ画面で一番上の [容量を開ける] を選択すると重要度が低いであろうデータを削除できます。

必要に応じて真ん中の [管理] からサイト毎のデータを削除してもいいですが、基本的に一番上の [容量を開ける] だけやれば結構容量空きます。

 

注意点として、一番下の [すべてのデータを削除] は安易に実行しないこと!

設定などの必要であろう情報が消えてしまいます。 

f:id:cask-st:20210226170246p:plain