我正在尝试对一堆声音文件执行STFT,但出现此错误。 我尝试执行STFT的文件的路径正确,但是仍然出现此错误。
import librosa
import io
import numpy as np
import tensorflow as tf
import os
import glob
path_te = "C:\Users\aanum\OneDrive\Documents\Deep Learning\timit-homework\te"
files = os.listdir(path_te)
for file in sorted(files):
if file.startswith("tex"):
file_path = path_te2 + "/" + file
#file_path = 'r' + "'" + str(file_path) + "'"
print(file_path)
st, sr=librosa.load(file_path, sr=None)
输出:
C:/Users/aanum/OneDrive/Documents/Deep Learning/timit-homework/te/tex0000.wav
---------------------------------------------------------------------------
NoBackendError Traceback (most recent call last)
<ipython-input-54-4df25548d204> in <module>
7 #file_path = 'r' + "'" + str(file_path) + "'"
8 print(file_path)
----> 9 st, sr=librosa.load(file_path, sr=None)
10 X=librosa.stft(st, n_fft=1024, hop_length=512)
11 X_abs = abs(X)
~\Anaconda3\envs\DeepLearning\lib\site-packages\librosa\core\audio.py in load(path, sr, mono, offset, duration, dtype, res_type)
117
118 y = []
--> 119 with audioread.audio_open(os.path.realpath(path)) as input_file:
120 sr_native = input_file.samplerate
121 n_channels = input_file.channels
~\Anaconda3\envs\DeepLearning\lib\site-packages\audioread\__init__.py in audio_open(path, backends)
114
115 # All backends failed!
--> 116 raise NoBackendError()
NoBackendError
谁能告诉我为什么出现此错误?
答案 0 :(得分:1)
当Librosa无法加载文件时,可能会发生此错误,主要是因为librosa无法读取文件格式(例如mp3格式),并且它试图查找其他后端,例如ffmpeg。因此,安装ffmpeg可能有助于解决此问题。另外,在某些情况下,根据所使用的操作系统,可能必须将ffmpeg添加到操作系统路径。如果问题实际上是由于文件格式引起的,则正确安装ffmpeg可以解决此问题。
答案 1 :(得分:1)
确保您的.wav
文件未损坏。可以使用音频文件阅读器(可以读取WAV文件)打开文件吗?如果不是,则文件已损坏。如果您从开源数据集中下载了音频文件,则在您手动解压缩文件夹时,它们可能会损坏。我建议您再次下载数据集,并使用命令行工具解压缩它。
答案 2 :(得分:0)
就在你写完这行之后:
import usb.core
你需要写
import usb.backend.libusb1
希望对你有帮助,如果不行就告诉我!