Python + librosaでオーディオファイルからドラム音を抜き出す
今回試すこと
- Python パッケージの librosa を使って曲の中からドラムの音を抽出したオーディオファイルを作成する。
- また曲の中からドラム音を除去したオーディオファイルを作成する。
今回作成した内容はこちらで公開しています。
librosaとは?
オーディオ解析を分析するためのPythonパッケージです。
非常に多機能なのですが、今回はその中のHPSS(Harmonic/Percussive Sound Separation)を使って、ドラムとメロディを分離します。
librosa のドキュメントはこちら。
インストール
$ pip install librosa
分離した音源をファイルに出力
import librosa
import soundfile
# オーディオファイルを読み込む
y, sr = librosa.load('オーディオファイルのパス')
# メロディとドラムを分離する
y_harmonic, y_percussive = librosa.effects.hpss(y)
# 分離したドラムの音をファイルに出力する
# 第2引数に y_harmonic を設定するとドラムを除去したメロディを出力する
soundfile.write('ファイル名を含めた出力先のパス', y_percussive, sr, format='wav', subtype='PCM_16')分離結果
librosa のサンプル音源を分離してみました。