目标是获得 200 毫秒的音频信号衰减延迟,同时保留攻击的锐度以模仿人类对声音的感知。我正在关注的论文将一个 200 毫秒的半汉宁窗与每个频带进行卷积来模拟它。
我正在使用 numpy.hanning() 因为没有半汉宁,并且尝试将汉宁窗口的前半部分设置为 0,将前半部分设置为 1,或者将其切掉并仅使用后半部分。我也在规范化窗口以保持比例相同。
既然我真的不知道,其中哪一个是“正确的”半汉宁?
对我来说似乎最有可能的截断版本有效,但向左偏移了 100 毫秒。我是否应该将其向右移动 100 毫秒并称之为好?
dataMasked = np.zeros(data.shape)
for i in xrange(freqs.size): # Loop through each frequency band
winSize = round(0.4/(length/bins.size)) #Calc win size
hann = np.hanning(winSize)
halfPoint = np.argmax(hann)
hann = hann[halfPoint:] #Chop at half
hann = normHann(hann)
dataMasked[i,:] = np.convolve(data[i,:],hann,mode='same')
这是我得到的图(蓝色是原始响度曲线,而绿色是调整过的)。
我正在关注的论文显示了这一点:
谢谢!