【Python】LibROSA ~ 音声分析ライブラリ ~

■ はじめに

Python の 音声分析ライブラリ 「LibROSA (リブロサ)」をメモ。

目次

【1】環境設定
【2】サンプル
 例1:音声波形描画
 例2:音声の特徴量を抽出する

【1】環境設定

pip

pip install librosa

Anaconda環境

conda install -c anaconda cffi
pip install pysoundfile
conda install -c conda-forge librosa

【2】サンプル

例1:音声波形描画

import librosa
import librosa.display
import matplotlib.pyplot as plt

# 音声波形を描画する
# wave : 波形データ, sampling_frequency : サンプリング周波数
wave, sampling_frequency = librosa.load(r'C:\tmp\sample.wav')
librosa.display.waveplot(wave, sampling_frequency)
plt.show()

例2:音声の特徴量を抽出する

import numpy as np
import librosa
import librosa.display
from scipy import fftpack

# 音声の特徴量を抽出する
# wave : 波形データ, sampling_frequency : サンプリング周波数
wave, sampling_frequency = librosa.load(r'C:\tmp\sample.wav')

# Case1 : FFT
#fft_wave = fftpack.rfft(wave, n=sampling_frequency)
#fft_freq = fftpack.rfftfreq(n=sampling_frequency, d=1/sampling_frequency)
#y = librosa.amplitude_to_db(fft_wave, ref=np.max)

# Case2 : 短時間フーリエ変換(Short -Term Fourier Transformation; STFT)
#y = np.abs(librosa.stft(wave))

# Case3 : メル周波数ケプストラム係数(Mel Frequency Cepstral Coefficient; MFCC)
y = librosa.feature.mfcc(y=wave, sr=sampling_frequency)

print(y)

参考文献

http://misaki-yuyyuyu.hatenablog.com/entry/2020/03/09/155645
https://np2lkoo.hatenablog.com/entry/2016/09/22/052354
https://memo.koya-it.com/library/librosa.html
https://www.wizard-notes.com/entry/music-analysis/librosa
https://sja-analysis.org/python-librosa-tips/
https://qiita.com/Nelca/items/8c0aaaf2a8452352ffe4

関連記事

scikit-learn ~ 機械学習用ライブラリ・入門編 ~
https://dk521123.hatenablog.com/entry/2020/03/02/233902