librosa无法打开由librosa创建的.wav?

我试图使用librosa通过从60s持续时间的一些.wav文件中剪切1s件来生成一些数据。librosa无法打开由librosa创建的.wav?

这部分作品中,我创造我的所有文件,我也可以通过任何球员听取他们的意见,但如果我尝试与librosa.load打开他们,我收到此错误:

>>> librosa.load('.\\train\\audio\\silence\\0doing_the_dishes.wav', sr=None) 

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

File "C:\Users\gionata\AppData\Local\Programs\Python\Python36\lib\site\packages\librosa\core\audio.py", line 107, in load

with audioread.audio_open(os.path.realpath(path)) as input_file: File "C:\Users\gionata\AppData\Local\Programs\Python\Python36\lib\site-packages\audioread\__init__.py", line 116, in audio_open

raise NoBackendError()

audioread.NoBackendError

你有任何建议?我创建了file.wav使用此项功能:

def create_silence(): 

path=DB+"_background_noise_/"

sounds = [x[len(DB):] for x in glob.glob(path+ '*.wav')]

for elem in enumerate(sounds):

sound=elem.split('\\')[1]

print(sound)

for j,i in enumerate(np.arange(0.0, 59.0, 0.3)):

y, sr=librosa.load(DB+elem, sr=None, offset=i, duration=1.0)

librosa.output.write_wav(DB+'silence/'+str(j)+sound, y, sr=sr, norm=False)

该问题只提出了自己与librosa创建的文件,librosa.load已与其他文件与工作完全没有问题。

回答:

我solvede此,Librosa输出值,因为它们是在我的情况下np.array其中FLOAT32但标准是每个值是16位,所以改变类型并达到目的:

def create_silence(): 

path=DB+"_background_noise_/"

maxv = np.iinfo(np.int16).max

sounds = [x[len(DB):] for x in glob.glob(path+ '*.wav')]

for elem in sounds:

sound=elem.split('\\')[1]

print(sound)

for j,i in enumerate(np.arange(0.0, 59.0, 0.3)):

y, fs=librosa.load(DB+elem, sr=None, offset=i, duration=1.0, mono=False)

librosa.output.write_wav(DB+'silence/'+str(j)+sound, y=(y*maxv).astype(np.int16), sr=fs, norm=False)

以上是 librosa无法打开由librosa创建的.wav? 的全部内容, 来源链接: utcz.com/qa/264110.html

回到顶部