librosa
Pythonの楽曲分析ライブラリ。
https://github.com/tyiannak/pyAudioAnalysis/wiki
インストール
sudo apt install -y ffmpeg
pip3 install numpy matplotlib scipy sklearn hmmlearn simplejson eyed3 pydub
git clone https://github.com/tyiannak/pyAudioAnalysis.git
cd pyAudioAnalysis
pip3 install -e .
librosa
https://github.com/librosa/librosa
pip install librosa
pip3 install librosa
# Ubuntu用。mp3デコードに必要
apt-get install ffmpeg
倍音成分と打楽器成分に分解する
filename = librosa.util.example_audio_file()
y: np.ndarray;
y, sr = librosa.load(filename)
# 分解
y_harm, y_perc = librosa.effects.hpss(y)
# ファイル出力
librosa.output.write_wav('harm.wav', y_harm, sr)
librosa.output.write_wav('perc.wav', y_perc, sr)
前後の無音をトリミングする
filename = librosa.util.example_audio_file()
y: np.ndarray;
yt: np.ndarray;
y, sr = librosa.load(filename)
yt, index = librosa.effects.trim(y)
d = librosa.get_duration(y)
dt = librosa.get_duration(yt)
print(d, dt)
サンプリングレートを取得する
librosa.get_samplerate
を使う。
filename = librosa.util.example_audio_file()
sample = librosa.get_samplerate(filename)
print(sample) # 44100
曲の長さを取得する
分単位で取得する。
from __future__ import print_function
import librosa
import numpy as np
filename = librosa.util.example_audio_file()
y: np.ndarray
y, sr = librosa.load(filename)
dur = librosa.get_duration(y, sr)
print(dur)
http://np2lkoo.hatenablog.com/entry/2016/09/22/052354
データセット
https://github.com/arXivTimes/arXivTimes/blob/master/datasets/README.md#music
MIDIのデータセット
https://reddit.com/r/WeAreTheMusicMakers/comments/3ajwe4/the_largest_midi_collection_on_the_internet/ https://colinraffel.com/projects/lmd/#get
ライブラリ
- 音源分離 https://github.com/interactiveaudiolab/nussl
- ボーカル分離 https://github.com/f90/Wave-U-Net#test
- Melody extraction http://www.justinsalamon.com/news/melody-extraction-in-python-with-melodia
- Essentia https://github.com/MTG/essentia
Essentia
インストール
pip3 install essentia
sudo apt-get install build-essential libyaml-dev libfftw3-dev libavcodec-dev libavformat-dev libavutil-dev libavresample-dev python-dev libsamplerate0-dev libtag1-dev libchromaprint-dev python-six
sudo apt-get install python3-dev python3-numpy-dev python3-numpy python3-yaml
# グラフ表示に必要
pip3 install matplotlib
magenta/music
https://tensorflow.github.io/magenta-js/music/
参考
- Deep Learning for Audio Signal Processing https://arxiv.org/abs/1905.00078