scipy.io.wavfile.read无法读取16位.wav文件

时间:2019-06-30 04:30:06

标签: python scipy wave

我在读取2字节的wav文件时遇到问题。我看到了scipy.io.wavfile.read cannot read 24-bits .wav files  和Unexpected end of file wavfile.read python 。但是它们都与读取wavfile.read无法支持的24位文件有关。这是我从文件中获取信息时的代码

sample width

这是当我想阅读但我有一个错误的意外文件时。

cannot read 16-bits

编辑:这是我的示例.wav文件 Uploaded File

1 个答案:

答案 0 :(得分:0)

可以重现您的错误。按照建议的here,我通过运行sox 50.wav -r 44100 resampled_50.wav对文件进行“重新采样”。

结果在这里:

>>> from scipy.io import wavfile
>>> wavfile.read("50.wav")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/scipy/io/wavfile.py", line 246, in read
    raise ValueError("Unexpected end of file.")
ValueError: Unexpected end of file.
>>> wavfile.read("resampled_50.wav")
(44100, array([[-2171, -2025],
       [-1306,  -510],
       [ -550,   591],
       ..., 
       [ -157,  -155],
       [ -166,  -170],
       [ -164,  -164]], dtype=int16))
>>>

看起来这种方法可行。希望对您有帮助!