You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

音频文件预处理函数报错:librosa.feature.rms参数传递错误

问题解决:音频预处理函数的TypeError错误

错误原因

你遇到的TypeError: rms() takes 0 positional arguments but 1 positional argument (and 4 keyword-only arguments) were given是因为Librosa版本更新后,librosa.feature.rms的参数传递方式改变了。新版本的rms函数要求音频数据必须通过关键字参数y传递,不能直接用位置参数传入。

修复后的代码

修改预处理函数中调用Librosa特征提取函数的部分,将音频数据final_x通过关键字参数y传入:

def preprocess(file_path, frame_length = 2048, hop_length = 512):
    '''
    预测前对.wav音频文件进行的处理流程。
      参数:
      - file_path - 音频文件的系统路径。
      - frame_length - 计算语音特征的帧长,默认值:2048
      - hop_length - 每帧前进的样本数,默认值:512

      返回:
        'X_3D'变量,单文件的形状为:(batch, timesteps, feature)(batch = 1)。
    ''' 
    # 获取采样率
    _, sr = librosa.load(path = file_path, sr = None)
    # 加载音频文件
    rawsound = AudioSegment.from_file(file_path, duration = None) 
    # 归一化至5 dBFS 
    normalizedsound = effects.normalize(rawsound, headroom = 5.0) 
    # 将音频文件转换为样本的np数组
    normal_x = np.array(normalizedsound.get_array_of_samples(), dtype = 'float32') 
    # 降噪                 
    final_x = nr.reduce_noise(normal_x, sr=sr, use_tensorflow=True)
        
        
    # 修改:用y=final_x传递音频数据
    f1 = librosa.feature.rms(y=final_x, frame_length=frame_length, hop_length=hop_length, center=True, pad_mode='reflect').T # 能量 - 均方根(Root Mean Square)
    f2 = librosa.feature.zero_crossing_rate(y=final_x, frame_length=frame_length, hop_length=hop_length,center=True).T # 过零率(ZCR)
    f3 = librosa.feature.mfcc(y=final_x, sr=sr, S=None, n_mfcc=13, hop_length = hop_length).T # 梅尔频率倒谱系数(MFCC)   
    X = np.concatenate((f1, f2, f3), axis = 1)
    
    X_3D = np.expand_dims(X, axis=0)
    
    return X_3D

额外说明

  • 不止rms,Librosa 0.10.x版本后,大部分特征提取函数(比如zero_crossing_rate、mfcc)都要求音频数据通过y关键字参数传入,不再支持位置参数传递。
  • 若需兼容旧版本Librosa,可先检查版本(执行import librosa; print(librosa.__version__)),如果是0.9.x及以下,原代码可正常运行;如果是0.10+,必须使用关键字参数传递音频数据。

内容的提问来源于stack exchange,提问作者Rithesh VR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 09:08:13