Python Scipy io读取文件错误
每当我尝试读取.wav文件时,就会出现以下错误。 我到处都找过了,但没有任何进展。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 =
代码:
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)转换音频文件。我尝试了许多解决方案,但仅通过以下步骤成功:
@Velikodly,你的意思是使用sox从wav转换为wav?是的,我有。Sox支持多种内部WAV格式。如μ律、A律等。可能您的文件包含使用其中一个进行编码的数据。不幸的是,sox不支持WAVs中的mp3。它仍然会抛出一个警告,现在即使在媒体播放器中也无法播放该文件。你能用它测试你的程序吗?我刚刚测试过
sp.io.wavfile.read
可与11k16bitpcm.wav
配合使用。