def process(self, wave):
wave.check_mono()
wave = wave.zero_pad(self.half_window, self.half_window)
num_frames = int(1 + np.ceil((wave.shape[0] - self.window_size) /
float(self.hop_size)))
col_size = wave.strides[0]
frames = stride_tricks.as_strided(wave, shape=(num_frames, self.window_size),
strides=(col_size*self.hop_size, col_size)).copy()
frames *= self.window
transform = np.fft.rfft(frames, self.fft_size)
return audio.Spectrogram(transform.T,
wave.sample_rate, len(self.window), self.hop_size)
评论列表
文章目录