FAQ

実践力の養成2

回答

 

 
 
まず状況を整理します。

Mac 上の JupyterLab → audioread + MP3 ファイル読み込み → 動作OK
Windows 上の JupyterLab → 同じコードで audioread.audio_open() 使用 → NoBackendError 発生
 
考えられる原因(Windows 上での audioread エラー)
audioread は、内部的に MP3 デコーダー(FFmpeg か GStreamer)を必要とします。
Mac では Homebrew 経由で ffmpeg が簡単にインストール・検出されますが、Windows では手動での導入とパス設定が必要です。
 
以下の2つの解決策(Windows)を提案させていただきます。
方法①:FFmpeg を手動でインストールして PATH に追加
  1. 公式サイトから FFmpeg をダウンロード
https://ffmpeg.org/download.html → Windows → gyan.dev などのビルドサイト
  1. ZIPを展開し、ffmpeg.exe が入っているフォルダ(例:C:\ffmpeg\bin)を確認
  1. 環境変数 PATH に追加
スタートメニューで「環境変数」と検索 → 「システム環境変数の編集」
「環境変数」→ Path を編集 → C:\ffmpeg\bin を追加
  1. コマンドプロンプトで確認
ffmpeg -version
→ バージョン情報が表示されればOK
 
方法②:librosa.load() に切り替える(FFmpeg依存を避ける)
前述した通り、librosa.load() は audioread のラッパーであり、内部的に他の読み込み手段(pysoundfile など)も使えます。
 
修正プログラム全文は以下の通りです。
 
import numpy as np import librosa import librosa.display import matplotlib.pyplot as plt from scipy.signal import butter, lfilter

#バンドパスフィルタを定義する

def bandpass_filter(data, lowcut, highcut, sr, order=5): nyq = 0.5 * sr # ナイキスト周波数 low = lowcut / nyq high = highcut / nyq b, a = butter(order, [low, high], btype=’band’) return lfilter(b, a, data)

#音声ファイルを読み込む(librosa使用:FFmpeg等の問題回避)

file_path = “/Users/K2013L/Desktop/「実践力の養成2」/BE5_1.mp3” # Windowsではパスを変更してください

# Windows例: file_path = “C:\Users\yourname\Desktop\BE5_1.mp3”

waveform, sr = librosa.load(file_path, sr=None) # sr=Noneで元のサンプリングレートを保持

#バンドパスフィルタを適用(例:1kHz〜5kHz)

y_filtered = bandpass_filter(waveform, lowcut=1000, highcut=5000, sr=sr)

#フィルタリングされた波形を表示

plt.figure(figsize=(10, 4)) librosa.display.waveshow(y_filtered, sr=sr) plt.title(‘Filtered Waveform (1kHz–5kHz)’) plt.xlabel(‘Time (s)’) plt.ylabel(‘Amplitude’) plt.tight_layout() plt.show()