Scipy io读取wavfile错误
问题描述:
每当我尝试读取.wav文件时,出现以下错误。 我到处搜索,但没有任何进展。
CODE:Scipy io读取wavfile错误
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
更新:
后,我试着将我的文件通过@velikodniy使用SOX建议:
sox MY_FILENAME.wav MY_FILENAME.wav
但它抛出一个警告:
sox WARN wav: Premature EOF on .wav input file
现在,如果我尝试发挥原有的.wav文件,它说,在媒体播放器支持的格式(以前是玩)
答
WAV文件可能包含不同格式的音频数据。例如,MP3。 scipy.io.wavfile.read
此刻只能读取PCM和浮点格式(准确地说WAVE_FORMAT_PCM和WAVE_FORMAT_IEEE_FLOAT)。
所以你必须用音频编辑器(例如Audacity或sox)转换你的音频文件。
@velikodnly,你的意思是使用sox从wav转换为wav? – user5722540
是的,我喜欢。 Sox支持多种内部WAV格式。如μ律,A律等。也许你的文件包含用其中一个编码的数据。不幸的是,sox不支持WAV内的mp3。 – velikodniy
它仍然会引发警告,现在该文件即使在媒体播放器中也不会播放 – user5722540