每当我尝试读取.wav文件时,都会出现以下错误。
我到处搜索,但没有进展。
的 CODE:
rule_sets = DBSession.query(ProductSortRuleSet).all()
rules = set()
for i in rule_sets:
for j in i.rules:
rules.update(j)
错误:
import scipy as sp
import matplotlib.pyplot as plt
sr, y = sp.io.wavfile.read(MY_FILENAME)
print sr
更新
我尝试按照@velikodniy的建议使用sox转换我的文件:
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 MY_FILENAME.wav MY_FILENAME.wav
现在,如果我尝试播放原始的.wav文件,它会说媒体播放器中的格式不受支持(之前它正在播放)
答案 0 :(得分:3)
WAV可能包含不同格式的音频数据。例如,MP3。scipy.io.wavfile.read
目前只能读取PCM和浮点格式(确切地说是WAVE_FORMAT_PCM和WAVE_FORMAT_IEEE_FLOAT)。
因此,您必须使用音频编辑器(例如Audacity或sox)转换音频文件。
答案 1 :(得分:0)
我尝试了许多解决方案,但仅通过以下步骤就获得了成功: