我正在尝试使用以下代码将音频文件加载到NumPy数组中
#%%
import librosa
import matplotlib.pyplot as plt
import IPython.display as ipd
import os, os.path
import time
import joblib
import numpy as np
#%%
fname = 'archive\\Actor_01\\03-01-01-01-01-01-01.wav'
data, sampling_rate = librosa.load(fname)
plt.figure(figsize=(15, 5))
librosa.display.waveshow(data, sr=sampling_rate)
ipd.Audio(fname)
# %%
lst = []
for subdir, dirs, files in os.walk('archive'):
for file in files:
try:
X, sample_rate = librosa.load(os.path.join(subdir, file), res_type='kaiser_fast')
mfccs = np.mean(librosa.feature.mfcc(y=X, sr=sample_rate, n_mfcc=40).T, axis=0)
file_class = int(file[7:8]) - 1
arr = mfccs, file_class
lst.append(arr)
except ValueError as err:
print(err)
continue
一切都运行正常,除了我在第25行得到一个错误
ModuleNotFoundError Traceback (most recent call last)
c:\Users\powellt1\Documents\COMP5500\NonGitSED\algorithm.py in line 7
23 for file in files:
24 try:
----> 25 X, sample_rate = librosa.load(os.path.join(subdir, file), res_type='kaiser_fast')
26 mfccs = np.mean(librosa.feature.mfcc(y=X, sr=sample_rate, n_mfcc=40).T, axis=0)
27 file_class = int(file[7:8]) - 1
File c:\Users\powellt1\AppData\Local\Programs\Python\Python311\Lib\site-packages\librosa\core\audio.py:193, in load(path, sr, mono, offset, duration, dtype, res_type)
190 y = to_mono(y)
192 if sr is not None:
--> 193 y = resample(y, orig_sr=sr_native, target_sr=sr, res_type=res_type)
195 else:
196 sr = sr_native
File c:\Users\powellt1\AppData\Local\Programs\Python\Python311\Lib\site-packages\librosa\core\audio.py:684, in resample(y, orig_sr, target_sr, res_type, fix, scale, axis, **kwargs)
675 y_hat = np.apply_along_axis(
676 soxr.resample,
677 axis=axis,
(...)
681 quality=res_type,
682 )
683 else:
--> 684 y_hat = resampy.resample(y, orig_sr, target_sr, filter=res_type, axis=axis)
我知道我已经正确安装了librosa,它在以前的单元格中工作。
我已经尝试重新安装和验证librosa的安装,我已经尝试使用
from librosa.core import load
但似乎没有任何东西能修复这个错误。
2条答案
按热度按时间0tdrvxhp1#
首先试试这个:
To check all the installed Python modules, we can use the following two commands with the 'pip': Using 'pip freeze' command. Using 'pip list command.
你应该用运行程序的方式运行pip,例如:python -m pip ...
如果你找不到librosa,试着用python -m
的方式安装。如果您找到了它,但它没有加载,请尝试将其加载到安装目录中。编辑:ModuleNotFoundError: No module named 'librosa'这篇文章指出,它也可能是一个依赖性错误,尝试安装这些太,与
python -m pip
vcudknz32#
正如您所看到的,ModuleNotFoundError根本不是针对Librosa模块的。它用于一个在librosa模块中使用的模块,或者您传入了错误的维度(不太可能,但请检查)。
另外,检查是否有任何过滤器名称'kaiser_fast',我认为这是导致错误的原因。