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 のサンプル音源を分離してみました。