端点效应的问题解决——终结篇

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/SPESEG/article/details/102729574

End effects就是分帧处理中问题,群里大佬都说加窗能解决,好,本大佬刚才看到一个博文说,铺地板,这个比较生动形象,我觉得也是,不妨试试看了。

效果复现如下,源码在此https://github.com/speechdnn/end_effects

注意这里面有个COLA条件,请不要用对称窗,选择周期性的。其实在实现上与“标准差”的概念差不多,总体标准差啥之类的,只是N与N-1的区别,就是个概念问题。寡人自己写的hanning窗函数,很好写的,我就不公开了,哈哈,毕竟是劳动成果。

刚才听了下台湾刘教授的声讯方面的课,可以,视频做的不错,很666.

目前先采用hopsize=win//2的情况,其他情况后续再考虑。似乎拼接处仍旧有畸变出现,并没有完全消除啊,我了个天啊。

咋回事呀??真是人生艰难啊。不妨先试试,没有任何处理的帧之间的拼接,只为证明这样做是否合适。

似乎没有问题,出现这种问题的原因可能是butter滤波器本身是递归的原因,它依赖于信号的所有样点。

【早上看到群里一个傻逼,说什么比你有钱的多了,

老子立刻骂回去,你这傻逼拿别人的威风灭别人的志气,厉害啊,有钱也是人家有钱啊,你有个毛啊,还不是照样每天搬砖】

第一个图我是先对每一帧的信息加窗然后再进行的每一帧的滤波,这个效果不好,后来我先每一帧直接滤波,然后对滤波结果进行加窗处理,当然我分帧时有hopsize,这种结果比较好,如图下,其他参数与第一个图保持一致。

这个效果比较理想,可能就是群里所说的情况,但是当我窗长降低为1000时,因为上面的是8000.

这个结果实在不能令人满意啊,,难道hopsize应该再大点???hopsize为一半时是符合COLA的。

当hopsize=win*3/4时,结果如下:此时也是符合COLA的

这种情况下的累加就有点复杂了,似乎也不符合实时处理的要求了,当一半的overlap还可以忍受,这特么每次只前进1/4窗长,这个处理时间就是原来的4倍了。保留的处理结果就是4帧的了,处理完后的第一帧只能输出1/4,剩下的3/4都要保留,处理后的第二帧,将其1/4与上一帧的2/4相加并输出,保留后面的3/4,以此类推,就是这么做。

这里面的3/4需要保留一个数组,并且在循环中不断更新,当来新的3/4要错位相加,然后抛出1/4,继续。。。。。。

老子下午又捋了一遍,梳理清楚了,写代码实现:当hop_size为3/4*frame_size时的确可以恢复更好的结果,端点问题削弱到更小了,这估计是最好的效果了吧。再不行就得换方法了,其他OLA

这个图片比上个图片好很多吧,参数一样,但时间也上来了,这特么就是个折中问题。。。。

另外有相关问题可以加入QQ群讨论,不设微信群

QQ群:868373192 

语音深度学习群

猜你喜欢

转载自blog.csdn.net/SPESEG/article/details/102729574