Python Scipy io读取文件错误

Python Scipy io读取文件错误,python,python-2.7,scipy,wav,audio-processing,Python,Python 2.7,Scipy,Wav,Audio Processing,每当我尝试读取.wav文件时,就会出现以下错误。 我到处都找过了,但没有任何进展。 代码: import scipy as sp import matplotlib.pyplot as plt sr, y = sp.io.wavfile.read(MY_FILENAME) print sr File "/usr/local/lib/python2.7/dist-packages/scipy/io/wavfile.py", line 252, in read fmt_chunk =

每当我尝试读取.wav文件时,就会出现以下错误。 我到处都找过了,但没有任何进展。
代码:

import scipy as sp
import matplotlib.pyplot as plt
sr, y = sp.io.wavfile.read(MY_FILENAME)
print sr
  File "/usr/local/lib/python2.7/dist-packages/scipy/io/wavfile.py", line 252, in read
    fmt_chunk = _read_fmt_chunk(fid, is_big_endian)
  File "/usr/local/lib/python2.7/dist-packages/scipy/io/wavfile.py", line 94, in _read_fmt_chunk
    raise ValueError("Unknown wave file format")
  ValueError: Unknown wave file format

错误:

import scipy as sp
import matplotlib.pyplot as plt
sr, y = sp.io.wavfile.read(MY_FILENAME)
print sr
  File "/usr/local/lib/python2.7/dist-packages/scipy/io/wavfile.py", line 252, in read
    fmt_chunk = _read_fmt_chunk(fid, is_big_endian)
  File "/usr/local/lib/python2.7/dist-packages/scipy/io/wavfile.py", line 94, in _read_fmt_chunk
    raise ValueError("Unknown wave file format")
  ValueError: Unknown wave file format
更新:

import scipy as sp
import matplotlib.pyplot as plt
sr, y = sp.io.wavfile.read(MY_FILENAME)
print sr
  File "/usr/local/lib/python2.7/dist-packages/scipy/io/wavfile.py", line 252, in read
    fmt_chunk = _read_fmt_chunk(fid, is_big_endian)
  File "/usr/local/lib/python2.7/dist-packages/scipy/io/wavfile.py", line 94, in _read_fmt_chunk
    raise ValueError("Unknown wave file format")
  ValueError: Unknown wave file format
在我尝试使用sox按照@velikodniy的建议转换我的文件后:

sox MY_FILENAME.wav MY_FILENAME.wav
但它也发出了另一个警告:

sox WARN wav: Premature EOF on .wav input file

现在,如果我尝试播放原始的.wav文件,它会显示媒体播放器中不支持的格式(以前它正在播放)

WAVs可能包含不同格式的音频数据。例如,MP3.
scipy.io.wavfile.read
目前只能读取PCM和浮点格式(确切地说,是WAVE_格式的PCM和WAVE_格式的IEEE_浮点)


因此,您必须使用音频编辑器(例如Audacity或sox)转换音频文件。

我尝试了许多解决方案,但仅通过以下步骤成功:

  • 转到站点:
  • 上传你的文件
  • 可选设置中更改将位分辨率更改为16位
  • 单击开始转换并下载转换后的文件
  • 再次尝试使用scipy.io.wavfile.read(…)打开
    @Velikodly,你的意思是使用sox从wav转换为wav?是的,我有。Sox支持多种内部WAV格式。如μ律、A律等。可能您的文件包含使用其中一个进行编码的数据。不幸的是,sox不支持WAVs中的mp3。它仍然会抛出一个警告,现在即使在媒体播放器中也无法播放该文件。你能用它测试你的程序吗?我刚刚测试过
    sp.io.wavfile.read
    可与
    11k16bitpcm.wav
    配合使用。