本文详解 librosa 0.10.1+ 版本中 `librosa.resample` 的调用规范,重点解决因参数传递方式错误(如误用位置参数)导致的 “takes 1 positional argument but 3 were given” 报错,并提供完整、健壮的多通道音频重采样实践代码。
在使用 librosa 对音频进行重采样(如将原始采样率统一为 16 kHz 以适配 wav2vec2 模型输入)时,一个常见且易被忽视的陷阱是:新版 librosa(≥0.8.0,尤其 0.10.1+)已将 resample 函数改为仅接受关键字参数(keyword-only arguments)。这意味着 orig_sr 和 target_sr 必须显式以命名参数形式传入,而不能再像旧版那样作为位置参数顺序传递。
你遇到的报错:
resample() takes 1 positional argument but 3 were given
正是源于以下错误写法:
librosa.resample(audio_signal, original_sr, 16000) # ❌ 错误:后两个参数被当作位置参数
而正确调用方式必须严格遵循函数签名(注意 * 分隔符):
librosa.resample(y=audio_signal, orig_sr=original_sr, target_sr=16000) # ✅ 正确 # 或简写(y 是第一个参数,可省略名称;但 orig_sr/target_sr 必须带名) librosa.resample(audio_signal, orig_sr=original_sr, target_sr=16000) # ✅ 推荐
以下是修复后的完整、生产就绪的重采样代码(兼容单/双通道,含异常处理与类型安全):
import librosa
import numpy as np
# 假设 database['audio'] 是 list of np.ndarray(每个元素为 waveform),database['psr'] 是原始采样率列表
new_sr = []
resampled_audios = []
for i, (audio_signal, original_sr) in enumerate(zip(database['audio'], database['psr'])):
try:
# 确保输入为 numpy 数组且为浮点型(librosa.resample 要求)
audio_signal = np.asarray(audio_signal, dtype=np.float64)
# 处理多通道:逐通道重采样并堆叠
if audio_signal.ndim > 1:
resampled_channels = []
for ch in audio_signal:
ch_res = librosa.resample(ch, orig_sr=original_sr, target_sr=16000)
resampled_channels.append(ch_res)
resampled_audio = np.stack(resampled_channels, axis=0)
else:
# 单通道直接重采样
resampled_audio = librosa.resample(audio_signal, orig_sr=original_sr, target_sr=16000)
resampled_audios.append(resampled_audio)
new_sr.append(16000)
except Exception as e:
print(f"⚠️ 索引 {i} 音频重采样失败(原始采样率 {original_sr} Hz): {e}")
# 可选:保留原音频或跳过,此处设为 None 便于后续排查
resampled_audios.append(None)
new_sr.append(None)
# 更新数据库
database['audio'] = resampled_audios
database['newsr'] = new_sr✅ 关键注意事项:
掌握这一参数规范,不仅能解决当前报错,更是安全集成 librosa 到语音预处理流水线的重要基础。
# word
# app
# ios
# pytorch
# batch
# 整型
# 循环
# float32
# 报错
# 采样率
# 这是
# 这一
# 第一个
# 浮点
# 设为
# 而不
# 更高
# 可选
相关文章:
沈阳制作网站公司排名,沈阳装饰协会官方网站?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
如何在IIS服务器上快速部署高效网站?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
如何将凡科建站内容保存为本地文件?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
微信小程序制作网站有哪些,微信小程序需要做网站吗?
建站之星后台密码遗忘?如何快速找回?
济南专业网站制作公司,济南信息工程学校怎么样?
广德云建站网站建设方案与建站流程优化指南
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
C#怎么创建控制台应用 C# Console App项目创建方法
装修招标网站设计制作流程,装修招标流程?
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
独立制作一个网站多少钱,建立网站需要花多少钱?
巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成
建站之家VIP精选网站模板与SEO优化教程整合指南
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
如何选择服务器才能高效搭建专属网站?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
建站之星微信建站一键生成小程序+多端营销系统
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
如何选择香港主机高效搭建外贸独立站?
存储型VPS适合搭建中小型网站吗?
如何在香港免费服务器上快速搭建网站?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
已有域名如何免费搭建网站?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
浅析上传头像示例及其注意事项
如何快速上传建站程序避免常见错误?
网站制作软件有哪些,制图软件有哪些?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
如何快速搭建高效WAP手机网站吸引移动用户?
手机网站制作与建设方案,手机网站如何建设?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
如何在阿里云购买域名并搭建网站?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
建站VPS选购需注意哪些关键参数?
如何快速打造个性化非模板自助建站?
如何通过宝塔面板实现本地网站访问?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
如何解决ASP生成WAP建站中文乱码问题?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
如何在Windows 2008云服务器安全搭建网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。