下記の、
csvのリストを参照してフーリエ変換をかけ、スペクトログラム表示とcsv出力を行うコード
を動作させると発生するエラーを解決したいです。
python
1#!/usr/bin/env python 2# -*- coding: utf-8 -*- 3 4from __future__ import print_function 5import librosa 6import librosa.display 7import numpy as np 8import matplotlib.pyplot as plt 9import pandas as pd 10 11#DataList(wavファイルのリストを作成する) 12InDataList = pd.read_csv("InDataList.csv") 13OutDataList = pd.read_csv("OutDataList.csv") 14 15for i in range(len(InDataList)): 16 # ファイル読込 17 y, sr = librosa.load(InDataList.datalist[i]) 18 19 # ファイル読込 20 #y, sr = librosa.load('BRAVE JEWEL.wav') 21 22 # 短時間フーリエ変換 23 S = np.abs(librosa.stft(y)) 24 25 # 画像出力 26 plt.figure(figsize=(10,6)) 27 librosa.display.specshow(librosa.amplitude_to_db(S, ref=np.max), y_axis='log', x_axis='time') 28 plt.title('Power spectrogram') 29 plt.colorbar(format='%+2.0f dB') 30 31 #テラテイルよりアドバイス 32 #plt.yscale('linear') # 線形スケールに設定 33 #plt.yticks(np.arange(0, 10001, 1000)) # 目盛りを [0, 1000, 2000, ..., 10000] にする。 34 35 plt.tight_layout() 36 plt.show() 37 38 #Axesを描画する領域(Figure)を作成 39 fig = plt.figure(facecolor = "lightgray") 40 41 42 #https://jonkara.net/2018/10/07/librosa/ 43 #https://python.atelierkobato.com/matplotlib/ 44 45 ##np.savetxt("ab.csv", S, delimiter=",") 46 #np.savetxt("BRAVE JEWEL.csv", S, fmt="%.1f",delimiter=",") 47 ##%0.5fだと小数点以下5桁まで出力 48 49 #データ出力 50 np.savetxt(OutDataList.datalist[i], S, fmt="%.1f",delimiter=",") 51 #%0.5fだと小数点以下5桁まで出力 52
どうやらエラーの原因はffmpegがインストールされていないためのようで、インストールしたのち、パスを通し、コマンドラインでffmpegと入力するとバージョンが表示されるところまでは行いました。
しかし、上のコードを動作させるも、変わらず同じエラーが表示されます。内容は以下の通りです。
python
1Traceback (most recent call last): 2 File "spec_csv.py", line 17, in <module> 3 y, sr = librosa.load(InDataList.datalist[i]) 4 File "C:\Users\Owner\AppData\Local\Programs\Python\Python36\lib\site-packages\librosa\core\audio.py", line 119, in load 5 with audioread.audio_open(os.path.realpath(path)) as input_file: 6 File "C:\Users\Owner\AppData\Local\Programs\Python\Python36\lib\site-packages\audioread\__init__.py", line 116, in audio_open 7 raise NoBackendError() 8audioread.exceptions.NoBackendError
環境変数のパスは
変数: Path
値: C:\Program Files\ffmpeg\bin
で登録してあります。
よろしくお願いいたします。
10/07追記
作業環境がanacondaですので、Anaconda Promptを使って
conda install -c conda-forge ffmpeg でffmpegをインストールしましたが動作しませんでした。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/07 08:02 編集
2019/10/07 09:47