def __init__(self, path, time_wnd = 25, time_off = 10):
wave_src = wave.open(path, "rb")
para_src = wave_src.getparams()
self.rate = int(para_src[2])
self.cur_size = 0
self.tot_size = int(para_src[3])
# default 400 160
self.wnd_size = int(self.rate * 0.001 * time_wnd)
self.wnd_rate = int(self.rate * 0.001 * time_off)
self.ham = np.hamming(self.wnd_size+1)
self.ham = np.sqrt(self.ham[0:self.wnd_size])
self.ham = self.ham / np.sqrt(np.sum(np.square(self.ham[range(0,self.wnd_size, self.wnd_rate)])))
self.data = np.fromstring(wave_src.readframes(wave_src.getnframes()), dtype=np.int16)
self.upper_bound = np.max(np.abs(self.data))
评论列表
文章目录