python-3.x 使用librosa获取ModuleNotFoundError

pkln4tw6  于 2023-06-07  发布在  Python
关注(0)|答案(2)|浏览(389)

我正在尝试使用以下代码将音频文件加载到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

但似乎没有任何东西能修复这个错误。

0tdrvxhp

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

vcudknz3

vcudknz32#

正如您所看到的,ModuleNotFoundError根本不是针对Librosa模块的。它用于一个在librosa模块中使用的模块,或者您传入了错误的维度(不太可能,但请检查)。
另外,检查是否有任何过滤器名称'kaiser_fast',我认为这是导致错误的原因。

相关问题