如何使用librosa.load修复“ PosixPath”对象没有属性“ encode”的错误?

时间:2019-09-07 13:14:21

标签: python-3.x librosa pathlib

我开始使用librosa学习基本特征提取,并尝试使用pathlib读取和存储十个脚鼓,但是由于我总是遇到编码错误,所以没有用,因为没有pathlib就没有错误。

我尝试更改路径,经常使用wav而不是mp3更新每个导入的库,但是没有进一步的想法。

我的代码:

%matplotlib inline
from pathlib import Path
import numpy, scipy, matplotlib.pyplot as plt, sklearn, urllib, IPython.display as ipd
import librosa, librosa.display
kick_signals = [
    librosa.load(p)[0] for p in Path().glob('audio/drum_samples/train/kick_*.mp3')
]

错误消息:

RuntimeError: Error opening 'audio/techno-nine_o_three.mp3': File contains data in an unknown format.

AttributeError: 'PosixPath' object has no attribute 'encode'

如果您能并且可以帮助我,我将非常感激。

1 个答案:

答案 0 :(得分:0)

尝试:

kick_signals = [
    librosa.load(p.absolute())[0] for p in Path().glob('audio/drum_samples/train/kick_*.mp3')
]

这样,您可以将字符串而不是PosixPath传递给librosa。

如果仍不能解决问题,请检查您的mp3文件。它可以在常规播放器中播放吗?如果没有,请发布整个错误消息(stacktrace)。也许librosa的依赖项没有正确安装。