优化下面代码:ile = 'MyDearest.wav' with wave.open(file, 'rb') as f: params = f.getparams() nchannels, sampwidth, framerate, nframes = f.getparams()[:4] str_data: bytes = f.readframes(nframes) # 将波形数据转换成数组格式 wave_data = np.fromstring(str_data, dtype=np.int16) # 将数组调整为左右声道 if nchannels == 2: wave_data.shape = -1, 2 wave_data = wave_data.T else: pass # 计算出采样周期对应的秒数 sample_duration = 1.0 / framerate # 计算出采样点数对应的时间长度 time_seq = np.arange(0, nframes) * sample_duration # 对音频波形数据进行快速傅里叶变换,得到频谱数据 freq_seq = np.fft.fftfreq(nframes, sample_duration) pidxs = np.where(freq_seq > 0) fft_freqs = freq_seq[pidxs] # 使用象限取反将FFT输出的第4象限移到第1象限,第3象限移到第2象限 fft_data = abs(np.fft.fft(wave_data))[pidxs] fft_data[100:]
时间: 2023-05-28 10:06:20 浏览: 205
alper-ile-vuejs:AlperİleVue.js Youtube视频系列源代码
可以优化如下:
file = 'MyDearest.wav'
with wave.open(file, 'rb') as f:
params = f.getparams()
nchannels, sampwidth, framerate, nframes = params[:4]
str_data = f.readframes(nframes)
阅读全文