如何解决librosa中waveshow()参数错误:仅接受1个位置参数却传入2个?
解决方案
问题原因
- 第一个错误:Librosa 0.9.0版本起正式移除了
waveplot()方法,官方用waveshow()替代了原有波形绘制功能。 - 第二个错误:
waveshow()不支持直接将采样率作为第二个位置参数传入,必须通过**关键字参数sr**指定采样率。
修正后的代码
import librosa import librosa.display import matplotlib.pyplot as plt from IPython.display import Audio e = "happy" plt.figure(figsize=(14,4)) # 核心修正:用sr关键字参数传入采样率 librosa.display.waveshow(data, sr=sampling_rate) create_spectrogram(data, sampling_rate, e) Audio(path)
补充说明
- 先确认Librosa版本:执行
pip show librosa查看版本,若低于0.9.0建议升级:pip install --upgrade librosa waveshow()支持自定义波形颜色、透明度等参数,可根据需求添加,比如librosa.display.waveshow(data, sr=sampling_rate, color='red', alpha=0.5)
内容的提问来源于stack exchange,提问作者RMD
相关产品推荐
相关产品推荐

