Python TypeError: reduce_noise() got an unexpected keyword

Python TypeError: reduce_noise() got an unexpected keyword

大家好,我正在尝试使用 python 进行音频分类,我安装了一个包,当我尝试使用这些函数时,它说“TypeError: TypeError: reduce_noise() got意外的关键字参数 'audio_clip' 听到函数代码。

导入库 将 numpy 导入为 np 将降噪导入为 nr

def save_STFT(文件,名称,activity,主题): #读取音频数据 audio_data, sample_rate = librosa.load(文件) 打印(文件)

 #noise reduction
  noisy_part = audio_data[0:25000]
  reduced_noise = nr.reduce_noise(audio_clip=audio_data, noise_clip=noisy_part, verbose=False)

 #trimming
  trimmed, index = librosa.effects.trim(reduced_noise, top_db=20, frame_length=512, hop_length=64)

 #extract features
  stft = np.abs(librosa.stft(trimmed, n_fft=512, hop_length=256, win_length=512))
 # save features
  np.save("STFT_features/stft_257_1/" + subject + "_" + name[:-4] + "_" + activity + ".npy", stft)

此代码 运行 在具有 Conda 环境的 jupyternote 书中,但在 pycharm 中不是 运行。 我在 PYcharm 中安装了 conda 环境,但它不起作用。你能帮我知道如何解决这个错误吗?

您问题的答案在错误消息中。

"TypeError: TypeError: reduce_noise() got an unexpected keyword argument 'audio_clip' 

我猜您正在使用 noisereduce Python 库。如果您查看文档,它在参数列表中没有 audio_clip

正确代码示例:

reduced_noise = nr.reduce_noise(y=audio_data, y_noise=noisy_part, sr=SAMPLING_FREQUENCY) # check the SAMPLING_FREQUENCY

可能您指的是较新版本库的旧 API
在较新版本的库中使用旧 API 的解决方法是

from noisereduce.noisereducev1 import reduce_noise

现在您可以将您的代码重用为

reduced_noise = reduce_noise(audio_clip=audio_data, noise_clip=noisy_part, verbose=False)