soundtouch变速wsola算法之改进
2015-10-13 15:36
1236 查看
soundtouch变速算法很类似sola算法,细看才知道是wsola算法。
上个星期有个需求,将该变速应用到直播的包处理,有点类似于webrtc的netEQ处理机制。
直接使用soundtouch,会存在一些问题:
1.一段正常,一段变速,中间会出现不连续,有冲击。或者不同速率的切换。
越频繁,现象更明显,有de,de的声响。
2.soundtouch每次处理,会有残余,如果用flush,音质会受到影响,一般到结尾采用该函数。
也就是说输入样本有残余。
3.soundtouch变速的长度不能精确到样本点级别,因为拼接的时候回寻找一个最佳的位置,所以这个是变化的,
最终的变速长度还是可能存在几百毫秒的偏差。
通过一个星期的研究,终于解决了上述三个问题。
不会出现连续,输入样本点一次完全处理,不会有残余,精确输出长度到样本点级。
图一:原始,图二:soundtouch不同速率之间的切换 图三:改进后的效果。
上个星期有个需求,将该变速应用到直播的包处理,有点类似于webrtc的netEQ处理机制。
直接使用soundtouch,会存在一些问题:
1.一段正常,一段变速,中间会出现不连续,有冲击。或者不同速率的切换。
越频繁,现象更明显,有de,de的声响。
2.soundtouch每次处理,会有残余,如果用flush,音质会受到影响,一般到结尾采用该函数。
也就是说输入样本有残余。
3.soundtouch变速的长度不能精确到样本点级别,因为拼接的时候回寻找一个最佳的位置,所以这个是变化的,
最终的变速长度还是可能存在几百毫秒的偏差。
通过一个星期的研究,终于解决了上述三个问题。
不会出现连续,输入样本点一次完全处理,不会有残余,精确输出长度到样本点级。
图一:原始,图二:soundtouch不同速率之间的切换 图三:改进后的效果。
相关文章推荐
- hdu 4738 Caocao's Bridges 图的割边
- maven环境配置
- HttpClient请求服务器代码优化版
- Slow count(*) 绕开源代码解决 通过外部解决
- 审核流(3)低调奢华,简单不凡,实例演示-SNF.WorkFlow--SNF快速开发平台3.1
- Win10 Build 10565 Edge浏览器更新日志和已知问题
- String 转 BigDecimal
- 静态链表的学习
- 从头到尾彻底理解KMP
- 数据库索引
- Redis 集群方案
- ZCS 开源版管理员指南
- setDescendantFocusability,在父View和子View间处理焦点关系
- ClouderaManager安装hive后执行sql时写hdfs无权限
- 关于Android TouchDelegate源码解析
- Eclipse闪退/打不开/无法启动/一闪而过
- IE兼容模式下 SCRIPT1028: 缺少标识符、字符串或数字
- Java基础知识强化之多线程笔记04:并行和并发 区别
- mkdir命令详解
- Hibernate 学习入门2