第一篇文章!我已经查看了很多关于此问题的其他帖子,但无法找到适用于我的代码的任何内容。
我试图读取音频文件,然后找到样本数组的最大值和最小值x
。
wavread()
是我导入的另一个模块中定义的函数
它返回fs, x
x
是一维数组(x.shape = (150529,)
。)
def minMaxAudio(inputFile):
(fs, x) = wavread(inputFile)
max_val = numpy.amax(x)
min_val = numpy.amin(x)
return (min_val, max_val)
当我将这些行分别输入ipython时,我得到了我想要的结果。但是当我从导入的.py文件中调用此函数时,我收到错误:
ValueError: The truth value of an array with more than one element is ambiguous.
Use a.any() or a.all()
它突出显示最后一行(return语句)作为错误的位置。
我所看到的其他帖子在代码中包含了某种评估或比较运算符。我没有......是吗?!
谢谢!
答案 0 :(得分:0)
您是否注意到如果您的WAV文件有多个频道,请说它是立体声,min_val和max_val本身就是数组?
这样的代码会触发您遇到的错误:
min, max = minMaxAudio('acdc.wav')
# Assuming floats
if max > 1:
print('saturation')
以下内容适用:
min, max = minMaxAudio('acdc.wav')
# Assuming floats
if np.any(max > 1):
print('saturation')