使用librosa加载文件夹和子文件夹时发生类型转换错误



我在使用librosa可视化用于深度学习的文件夹和子文件夹中包含的WAV文件的mel频谱图时遇到了一些困难。。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from glob import glob
import librosa as lr
import librosa.display
import IPython.display as ipd
pathAudio = 'Sounds'
files = librosa.util.find_files(pathAudio, ext=['WAV'])
files = np.array(files, dtype=float)
sr = 22050
for y in files:

ipd.Audio(files, rate=22050)
scale, sr = lr.load(files)
filter_banks = lr.filters.mel(n_fft=2048, sr=22050, n_mels=10)
filter_banks.shape
plt.figure(figsize=(25, 10))
librosa.display.specshow(filter_banks,
sr=sr,
x_axis="linear")
plt.colorbar(format="%+2.f")
plt.show()
mel_spectrogram = lr.feature.melspectrogram(scale, sr=sr, n_fft=2048, hop_length=512, n_mels=10)
mel_spectrogram.shape
log_mel_spectrogram = lr.power_to_db(mel_spectrogram)
log_mel_spectrogram.shape
plt.figure(figsize=(25, 10))
librosa.display.specshow(log_mel_spectrogram,
x_axis="time",
y_axis="mel",
sr=sr)
plt.colorbar(format="%+2.f")
plt.show()

这里,我收到一条错误消息:

files = np.array(files,dtype=float)
ValueError: could not convert string to float

我试着为一个WAV文件可视化频谱图,没有得到任何错误。。

import librosa
import librosa.display
import IPython.display as ipd
import matplotlib.pyplot as plt
scale_file = "audio/scale.wav"
ipd.Audio(scale_file)
# load audio files with librosa
scale, sr = librosa.load(scale_file)
filter_banks = librosa.filters.mel(n_fft=2048, sr=22050, n_mels=10)
filter_banks.shape
plt.figure(figsize=(25, 10))
librosa.display.specshow(filter_banks, 
sr=sr, 
x_axis="linear")
plt.colorbar(format="%+2.f")
plt.show()
mel_spectrogram = librosa.feature.melspectrogram(scale, sr=sr, n_fft=2048, hop_length=512, n_mels=10)
mel_spectrogram.shape
log_mel_spectrogram = librosa.power_to_db(mel_spectrogram)
log_mel_spectrogram.shape
plt.figure(figsize=(25, 10))
librosa.display.specshow(log_mel_spectrogram, 
x_axis="time",
y_axis="mel", 
sr=sr)
plt.colorbar(format="%+2.f")
plt.show()

但当我尝试为文件夹和子文件夹中的大量波形文件制作mel频谱图时。。我弄错了!!如果有人能找到解决这个问题的方法,那将是一个巨大的帮助。。。

要启动,请更换

files = np.array(files, dtype=float)
[...]
ipd.Audio(files, rate=22050)
scale, sr = lr.load(files)

带有

files = np.asarray(files)
[...]
ipd.Audio(y, rate=22050)
scale, sr = lr.load(y)

之后可能会有更多的发行。

另一个问题可能也会有所帮助。

最新更新