我正在尝试实现时域重叠相加方法以拉伸(stretch) wav 文件中的数据。但我得到的结果有点令人失望。似乎我做错了什么 以下是我的TDOLA流程:
- 首先,我从输入信号中获取一 block
- 然后我将 block 与所选窗口(例如 Hann 窗口)相乘
- 最后,我将 block 添加到重叠的输出流
这个顺序有问题吗?也许需要在频域进行一些滤波?
最佳答案
尝试使用长度至少是基音周期的一小部分的 block 。您可以猜测源声音文件的平均音调周期,或者运行 DSP/软件音调估计器算法以获得更好的结果。
关于c - 时域重叠相加如何实现时间拉伸(stretch)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6470565/