我在每个 2048 个样本上应用音高同步算法来音高缩放一些音频文件,一切似乎都发生得很好,但我注意到每个边界帧之间存在一些故障、伪影和点击!
我在大型音频文件中离线测试(我正在逐帧处理),我试图做的是保持旧的、当前的和下一帧同步计算(然后我音高缩放 2048*3样本),但似乎没有按预期工作。
消除框架边界不连续性的已知方法有哪些?
我在每个 2048 个样本上应用音高同步算法来音高缩放一些音频文件,一切似乎都发生得很好,但我注意到每个边界帧之间存在一些故障、伪影和点击!
我在大型音频文件中离线测试(我正在逐帧处理),我试图做的是保持旧的、当前的和下一帧同步计算(然后我音高缩放 2048*3样本),但似乎没有按预期工作。
消除框架边界不连续性的已知方法有哪些?
开窗是第一道防线。您可能需要窗口是互补的,即所有窗口函数(在它们的各种帧延迟处)都加到 1。Hann 窗口就是一个例子。Hamming 窗口(可能比 Hann 具有更好的旁瓣行为)有点互补,但它增加了 1.08(只是一个简单的缩放问题)。
如果您的窗口仅用于分析(而不是用于综合),您可能不需要它是互补的,因此您可以使用 Kaiser 窗口或高斯窗口,它们在分析中都有一些有用的数学属性。
第二道防线是使用您的 2048 样本作为缓冲区,并按检测到的周期间隔您的帧(以及随附的分析窗口),并在每个帧过程中自适应地将帧位置提前一个周期。这有点奇怪,因为您需要先验地了解您的音高同步性所涉及的时期。
最奇怪的防线,是将每一帧推进一个精心挑选的“随机”值和(在哪里比最长的预期时间长)来争夺边界不连续性的任何影响。
正如我们在comp.dsp上所说的那样,“您必须为更多信息付费”。