Scipy io 读取 wavfile 错误
Scipy io read wavfile error
每当我尝试读取.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
更新:
在我尝试使用 sox 按照@velikodniy 的建议转换我的文件后:
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)转换您的音频文件。
我尝试了很多解决方案,但只有通过以下步骤才成功:
- 转到站点:https://audio.online-convert.com/convert-to-wav ;
- 上传您的文件;
- 在可选设置中将更改位分辨率更改为16位;
- 单击开始转换并下载转换后的文件;
- 尝试使用 scipy.io.wavfile.read(...);
再次打开
我使用代码将 wav 文件转换为特定格式,错误得到解决。
import soundfile as sf
y, s = librosa.load(pwd+'\ans.wav', sr=48000)
sf.write('audio_test_1.wav', y, s, "PCM_24")
rate, data = read(pwd+'\audio_test_1.wav')
每当我尝试读取.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
更新:
在我尝试使用 sox 按照@velikodniy 的建议转换我的文件后:
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)转换您的音频文件。
我尝试了很多解决方案,但只有通过以下步骤才成功:
- 转到站点:https://audio.online-convert.com/convert-to-wav ;
- 上传您的文件;
- 在可选设置中将更改位分辨率更改为16位;
- 单击开始转换并下载转换后的文件;
- 尝试使用 scipy.io.wavfile.read(...); 再次打开
我使用代码将 wav 文件转换为特定格式,错误得到解决。
import soundfile as sf
y, s = librosa.load(pwd+'\ans.wav', sr=48000)
sf.write('audio_test_1.wav', y, s, "PCM_24")
rate, data = read(pwd+'\audio_test_1.wav')