Python TypeError:reduce_noise() 得到了一个意外的关键字

Posted

技术标签:

【中文标题】Python TypeError:reduce_noise() 得到了一个意外的关键字【英文标题】:Python TypeError: reduce_noise() got an unexpected keyword 【发布时间】:2021-09-23 11:55:42 【问题描述】:

大家好,我正在尝试使用 python 进行音频分类,我安装了一个包,当我尝试使用这些函数时,它说“TypeError: TypeError: reduce_noise() got an unexpected keyword argument 'audio_clip' 听到代码功能。

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

def save_STFT(文件、名称、活动、主题): #读取音频数据 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 book 中运行,但它没有在 pycharm 中运行。 我在 PYcharm 中安装了 conda 环境,但它不起作用。你能帮我知道如何解决这个错误吗?

【问题讨论】:

【参考方案1】:

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

"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

【讨论】:

谢谢。是的,我正在使用降噪库。我会试试这个。 @REDALPHA97 进展如何? 哦!对不起,谢谢。它奏效了。【参考方案2】:

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

from noisereduce.noisereducev1 import reduce_noise

现在你可以重复使用你的代码了

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

【讨论】:

以上是关于Python TypeError:reduce_noise() 得到了一个意外的关键字的主要内容,如果未能解决你的问题,请参考以下文章

Python - TypeError:需要可迭代参数

TypeError:实例Python之间不支持'<'

python fbprophet错误,TypeError:'module'对象不可调用

TypeError:“NoneType”对象在 Python 中不可迭代

“TypeError:'WebElement'对象不可迭代”错误代码python爬取

TypeError:'int'对象不可迭代,使用 Python 3 [关闭]