Python:具有重叠和汉明窗口的音频分割

问题描述

我想做这样的思考:

  1. 对音频文件进行分段(将其划分为帧)- 为避免信息丢失,帧应重叠。
  2. 在每一帧中,应用窗口函数(Hann、Hamming、Blackman 等) - 以尽量减少开头和结尾的不连续性。

我设法将音频文件保存为一个 numpy 数组:

def wave_open(path,normalize=True,rm_constant=False):
    path = wave.open(path,'rb')
    frames_n = path.getnframes()
    channels = path.getnchannels()
    sample_rate = path.getframerate()
    duration = frames_n / float(sample_rate)
    read_frames = path.readframes(frames_n)
    path.close()
    data = struct.unpack("%dh" % channels * frames_n,read_frames)
    if  channels == 1:
        data = np.array(data,dtype=np.int16)
        return data
    else:    
        print("More channels are not supported")

然后我对整个信号做了一个汉明窗口:

N = 11145
win = np.hanning(N)
windowed_signal = (np.fft.rfft(win*data))

但我不知道如何在使用汉明窗口之前将我的信号分成帧(段)。 请帮助我:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)