Librosa waveplot绘制时X轴时间显示错误如何解决?
问题原因及修复方案
错误原因
- 采样率参数传入不匹配是核心问题:你调用
librosa.load()加载音频时指定采样率为32000,返回的音频序列sig的真实采样率就是32000Hz - 调用
librosa.display.waveplot()绘制波形时,你传入的sr参数为3200,比真实采样率小了10倍。librosa计算X轴时间的逻辑是「总采样点数 / 传入的采样率」,因此显示时长会是真实时长的10倍,47秒的音频就会被计算为约470秒(接近8分钟)。
修复方法
将waveplot的sr参数修改为和加载时一致的采样率即可,推荐直接使用librosa.load()返回的rate变量,避免手动输入写错参数:
sig, rate = librosa.load(test_audio, sr=32000, offset=None) plt.figure(figsize=(15, 5)) librosa.display.waveplot(sig, sr=rate)
内容的提问来源于stack exchange,提问作者BenjaminFranklinGates
相关产品推荐
相关产品推荐

