Визуализация аудиозаписи

Визуализация аудиозаписи

Кроме текстовых и других форматов для данных, существуют форматы файлов, разработанные для других задач. Например, для передачи звука разработано множество форматов. Один из простых форматов звуковых файлов - WAV (от англ. wave - волна).

from scipy.io import wavfile
u='d/eegfilt.wav'
freq,y = wavfile.read(u)
y.shape
(36344,)

Звук открылся в виде длинного массива чисел.

fig, (ax1,ax2) = subplots(2,1, figsize=(10,6), sharex=True)
x = arange(len(y))/freq
ax1.plot(x,y)
ax2.specgram(y,Fs=freq, cmap='jet');
xlabel('Время, с');
_images/i_wav_5_0.png

Вверху временная развертка сигнала, внизу - спектрограмма на той же временной оси. Чтобы точно выровнять оси для нескольких подрисунков мы использовали параметр sharex=True в команде subplots() для формирования сложносоставного рисунка. На спектрограмме по вертикальной оси показана частота, а цветом - спектральная плотность в данном временном окне и в данном частотном диапазоне.

Кому интересно, можно прослушать эту запись.

from IPython.display import Audio
Audio(u)