使用scipy.io.wavfile.read函数读取WAV文件报错求助
解决scipy.io.wavfile.read读取WAV文件报错的问题
嘿,我来帮你排查这个问题~虽然看不到你提供的报错截图,但结合scipy.io.wavfile.read的常见坑点,我整理了几个大概率的原因和对应的解决方案:
1. WAV文件格式不在scipy的支持范围内
scipy.io.wavfile.read只认未压缩的PCM格式WAV,如果你的A.wav是24位深度、带压缩编码(比如ADPCM,或者是用MP3转成的伪WAV),就会触发报错。
- 修复方案:
- 用Audacity这类免费音频工具打开文件,重新导出为16位PCM格式的标准WAV;
- 或者换用兼容性更强的
soundfile库来读取:
先通过import soundfile as sf data, fs = sf.read('A.wav')pip install soundfile安装这个库就行。
2. 实际工作路径和你以为的不一样
哪怕文件和脚本在同一文件夹,有些IDE(比如PyCharm)的默认工作目录可能是项目根目录,不是脚本所在的子目录,导致程序找不到文件。
- 验证&修复:
- 先打印当前工作目录确认:
import os print(os.getcwd()) - 如果路径不对,改用脚本所在目录的绝对路径读取:
from scipy.io.wavfile import read import os # 获取脚本所在目录的绝对路径 script_dir = os.path.dirname(os.path.abspath(__file__)) file_path = os.path.join(script_dir, 'A.wav') fs, data = read(file_path)
- 先打印当前工作目录确认:
3. WAV文件本身损坏
如果文件在下载、复制过程中出了问题,导致文件损坏,自然读不出来。
- 验证&修复:
- 用系统自带的播放器或者Audacity打开
A.wav,看看能不能正常播放; - 如果损坏,重新获取完好的文件即可。
- 用系统自带的播放器或者Audacity打开
你可以按这个顺序排查,应该能解决问题~
内容的提问来源于stack exchange,提问作者user4061624
相关产品推荐
相关产品推荐

