在用librosa和soundfile写音频时,报错:'numpy.ndarray' object is not callable
报错代码如下:
import librosa
def noise(song):
pass
if "__name__" == "__main__":
y1, _ = librosa.load("D:/songs/summer.wav")
noise = noise(y1)
...
y2, _ = librosa.load("D:/songs/jazz.wav")
noise = noise(y2) # 报错
...
因为在上述代码中,笔者 将变量名
和函数名
设置成一样的了,导致在noise(y2)
这句代码执行时,程序以为这里的noise
是变量
,而不是函数名
,因此而报错。
变量名和函数名尽量不要设置为一样的,否则程序执行时会犯迷糊!
因此,将变量名
重新修改一下,和函数名
区分开,如下:
if "__name__" == "__main__":
y1, _ = librosa.load("D:/songs/summer.wav")
song_noise1 = noise(y1)
...
y2, _ = librosa.load("D:/songs/jazz.wav")
song_noise2 = noise(y2)
...
报错解决!
参考:出现’numpy.ndarray’ object is not callable报错,此类错误一般是由于内部函数被用作变量名时发生。