joh*_*doe 8 audio mp3 sampling python-3.x librosa
我正在尝试使用该librosa库通过以下 Python 代码对 mp3 文件进行采样(将模拟转换为数字),但这需要太多时间(一个文件大约需要 4 秒)。我怀疑这是因为librosa不支持mp3,因此使用较慢audioread的采样mp3
代码:
import time
import librosa
s = time.time()
for i in mp3_list[:10]: # list of mp3 file paths, doing for 10 files
y, sr = librosa.load(i)
print('time taken =', time.time() - s)
Run Code Online (Sandbox Code Playgroud)
time taken = 36.55561399459839
我也收到此警告:
UserWarning: "PySoundFile failed. Trying audioread instead."
Run Code Online (Sandbox Code Playgroud)
显然,这对于任何实际应用来说都太长了。我想知道是否有更好的替代方案?
为了进行比较,1.2对 10 个相同大小的wav转换进行采样只需要大约几秒钟的总时间
所以警告有点暗示了。Librosa 开发人员在这个 GitHub 问题中解决了类似的问题:
加载 mp3 时总会出现此警告,因为 libsndfile(尚/当前)不支持 mp3 格式。Librosa 首先尝试使用 libsndfile,如果失败,它将依靠 audioread 包,该包速度稍慢且更脆弱,但支持更多格式。
这在Librosa 代码中得到了证实:try ... except RuntimeError ...
因此,在这种情况下,您可以做的是要么实现自己的库load(),直接使用audioread以避免在第一个块中浪费时间librosa.load(),或者您可以使用不同的库,例如pydub。或者,您可以在加载之前使用ffmpeg将mp3 转换为 Wave 。
| 归档时间: |
|
| 查看次数: |
6512 次 |
| 最近记录: |