scipy io读取wavfile错误

use*_*540 6 python wav scipy audio-processing python-2.7

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

import scipy as sp
import matplotlib.pyplot as plt
sr, y = sp.io.wavfile.read(MY_FILENAME)
print sr
Run Code Online (Sandbox Code Playgroud)


错误:

  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
Run Code Online (Sandbox Code Playgroud)

更新:

在我尝试使用 sox 按照 @velikodniy 的建议转换我的文件后:

sox MY_FILENAME.wav MY_FILENAME.wav
Run Code Online (Sandbox Code Playgroud)

但它引发了另一个警告:

sox WARN wav: Premature EOF on .wav input file
Run Code Online (Sandbox Code Playgroud)

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

vel*_*niy 5

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

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