【发布时间】:2021-05-23 18:19:17
【问题描述】:
我正在从音频文件中提取 Mel 频谱图,然后我想应用填充
y,sr = librosa.load(r"/content/test.WAV")
mel = librosa.feature.melspectrogram(y=y, sr=sr)
mel=np.mean(mel, axis=0)
mel=tf.keras.preprocessing.sequence.pad_sequences(mel,maxlen=1500)
但我收到 TypeError: 'numpy.float32' 类型的对象没有 len() 在处理上述异常期间,发生了另一个异常:
ValueError: 序列必须是一个可迭代的列表。发现不可迭代:0.0382184
我尝试更改mel=tf.keras.preprocessing.sequence.pad_sequences(list(mel),maxlen=1500)
它没有用 StackOverflow 上的 2 或 3 个问题类似于我的问题,没有一个对我有帮助,所以请不要费心建议他们
【问题讨论】:
-
不,mel=np.mean(Mel, axis=0) 不返回单个浮点数,它返回形状为 (4280,) 的 NumPy 数组
-
阅读错误信息,它说序列必须是可迭代的列表,numpy 数组 (4280,) 不是可迭代的列表,而是二维列表。
-
那么我使用它进行推理的解决方案是什么,所以当我在训练中使用 1300 列表的填充时,我只能提供 1 个列表
标签: python numpy tensorflow librosa