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 に追加
- 公式サイトから FFmpeg をダウンロード
https://ffmpeg.org/download.html → Windows → gyan.dev などのビルドサイト
- ZIPを展開し、ffmpeg.exe が入っているフォルダ(例:C:\ffmpeg\bin)を確認
- 環境変数 PATH に追加
スタートメニューで「環境変数」と検索 → 「システム環境変数の編集」
「環境変数」→ Path を編集 → C:\ffmpeg\bin を追加
- コマンドプロンプトで確認
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()
