Pyhtonで音を研究する.


先日までMNEで色々と試してみていた.

今回は音の解析にPythonを使用してみたい.今回は人の音声ではなく,トランペットの音だがコードを出してみた.

# 必要なライブラリのインポート
import librosa
import librosa.display
import matplotlib.pyplot as plt
import numpy as np

# 1. 音声ファイルの読み込み
# librosa 付属のサンプル音源(今回はトランペット音)を利用します。
# ※自分の音声ファイルを使う場合は、'audio_path' にそのファイルパスを指定してください。
audio_path = librosa.ex('trumpet')
y, sr = librosa.load(audio_path)

# 2. スペクトログラムの計算
# 短時間フーリエ変換(STFT)を用いて、周波数成分を抽出
D = librosa.stft(y)
# 振幅スペクトルをデシベル単位に変換
S_db = librosa.amplitude_to_db(np.abs(D), ref=np.max)

# 3. スペクトログラムの可視化
plt.figure(figsize=(12, 8))
librosa.display.specshow(S_db, sr=sr, x_axis='time', y_axis='hz', cmap='magma')
plt.colorbar(format='%+2.0f dB')
plt.title('Spectrogram (dB)')
plt.xlabel('Time (s)')
plt.ylabel('Frequency (Hz)')
plt.show()

# 4. MFCC の抽出と可視化(音響特徴量として言語学研究でよく利用される指標)
mfccs = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=13)
plt.figure(figsize=(12, 8))
librosa.display.specshow(mfccs, x_axis='time', cmap='viridis')
plt.colorbar()
plt.title('MFCC')
plt.xlabel('Time (s)')
plt.ylabel('MFCC Coefficients')
plt.show()

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です