加载多个音频文件时出现 Python/Librosa 问题

Loading multiple audio files with Python/Librosa issue

我希望有人能帮助我解决我遇到的问题。我正在尝试加载多个(即 3 个)音频文件并使用 Python 的 Librosa 库绘制它们。我无法在这里发现错误。

def main():
pathAudio = "~/Project Data/Practice/Train Music/"
files = librosa.util.find_files(pathAudio, ext=['ogg']) 
files = np.asarray(files)
for y in files: 
    y = librosa.load(y, sr = 16000,mono = True)        
    librosa.display.waveplot(y)

以上产生错误:

ParameterError: data must be of type numpy.ndarray

有人指出可能是 y 的类型导致了这个问题,但我在这里找不到任何明显的错误。

欢迎任何建议,因为事实证明这对我来说是一个巨大的时间消耗。

我尝试打印数据,这是 load 函数的输出:

(array([ 1.4347234e-04,  3.3454646e-04,  2.9680674e-04, ...,
        4.7093499e-06, -1.5776950e-05,  0.0000000e+00], dtype=float32), 16000)

这是一个tuple。您将需要使用 data = data[0] 来获取波形数据数组。

一个快速的解决方法是:

pathAudio = "~/Project Data/Practice/Train Music/"
files = librosa.util.find_files(pathAudio, ext=['ogg']) 
files = np.asarray(files)
for y in files: 
    data = librosa.load(y, sr = 16000,mono = True)   
    data = data[0]     
    librosa.display.waveplot(data)

这是我得到的: