Python繪制wav文件音頻圖(靜態)[matplotlib/wave]
阿新 • • 發佈:2019-04-13
使用 靜態 第一個 .get arange 1.0 表示 adf 一個
#!/usr/bin/env python # -*- coding: utf-8 -*- """ 繪制波形圖 plottingWaveform.py """ import wave import pylab as pl import numpy as np print(‘working‘) # 打開wav文檔 file = wave.open(r"mic4.wav", "rb") # 讀取格式信息 # (nchannels, sampwidth,framerate, nframes, comptype, compname) params = file.getparams() nchannels,sampwidth,framerate,nframes= params[:4] # 讀取波形數據 str_data = file.readframes(nframes) # 文件使用完畢,關閉文件 file.close() # 將波形數據裝換成數組 wave_data = np.fromstring(str_data, dtype=np.short) wave_data.shape = (-1, 2) wave_data = wave_data.T # 矩陣轉置 time = np.arange(0, nframes) * (1.0 / framerate) print ("time:", len(time)) print("wave_data:", len(wave_data[0][0:len(time)])) # 繪制波形 """ subplot(mnp) / (m,n,p)是將多個圖畫到一個平面上的工具. 其中,m表示是圖排成m行,n表示圖排成n列,也就是整個figure中有n個圖是排成一行的,一共m行, 如果m=2就是表示2行圖.p表示圖所在的位置,p=1表示從左到右從上到下的第一個位置. """ pl.subplot(2, 1, 1) # 這裏也可以使用pl.subplot(211) pl.plot(time, wave_data[0][0:len(time)]) pl.subplot(2, 1, 2) #這裏也可以使用pl.subplot(212) pl.plot(time, wave_data[1][0:len(time)], c="g") pl.xlabel("time (seconds)") pl.show()
Python繪制wav文件音頻圖(靜態)[matplotlib/wave]