1 import wave
2
3 import pylab as pl
4
5 import numpy as np
6
7 # 打开WAV文档
8
9 f = wave.open(r”flag.wav”, “rb”)
10
11 # 读取格式信息
12
13 # (nchannels, sampwidth, framerate, nframes, comptype, compname)
14
15 params = f.getparams()
16
17 nchannels, sampwidth, framerate, nframes = params[:4]
18
19 print(params)
20
21 # 读取波形数据
22
23 str_data = f.readframes(nframes)
24
25 f.close()
26
27 #将波形数据转换为数组
28
29 wave_data = np.fromstring(str_data, dtype=np.short)
30
31 wave_data.shape = –1, 2
32
33 wave_data = wave_data.T
34
35 time = np.arange(0, nframes) * (1.0 / framerate)
36
37 # 绘制波形
38
39 pl.subplot(211)
40
41 pl.plot(time, wave_data[0])
42
43 pl.subplot(212)
44
45 pl.plot(time, wave_data[1], c=“g”)
46
47 pl.xlabel(“time (seconds)”)
48
49 pl.show()
50
黑科技。。