Я не знаю, почему scipy.io.wavfile
не может прочитать файл - там может быть недействительный кусок, который другие читатели просто игнорируют.Обратите внимание, что даже когда я читаю «хороший» файл с scipy.io.wavfile
, генерируется предупреждение (WavFileWarning: Chunk (non-data) not understood, skipping it.
):
In [22]: rate, data = wavfile.read('fearful_song_strong_dogs_act10_f_1.wav')
/Users/warren/mc37/lib/python3.7/site-packages/scipy/io/wavfile.py:273: WavFileWarning: Chunk (non-data) not understood, skipping it.
WavFileWarning)
Я могу прочитать 'fearful_song_strong_dogs_act06_f_0.wav'
, используя wavio
(исходный код на github: wavio
), пакет, который я создал, который оборачивает стандартную библиотеку Python wave
функциями, которые понимают массивы NumPy:
In [13]: import wavio
In [14]: wav = wavio.read('fearful_song_strong_dogs_act06_f_0.wav')
In [15]: wav
Out[15]: Wav(data.shape=(198598, 1), data.dtype=int16, rate=48000, sampwidth=2)
In [16]: plot(np.arange(wav.data.shape[0])/wav.rate, wav.data[:,0])
Out[16]: [<matplotlib.lines.Line2D at 0x117cd9390>]