自动调谐/声码器背后的理论

时间:2012-05-24 14:13:18

标签: audio core-audio audio-processing

我一直在网上寻找关于声码器或自动调谐的材料,但没有得到任何满意的答案。有人可以用简单的方式解释如何使用载体声音文件自动调谐给定的声音文件? (我熟悉fft,窗口,重叠等等,当我们有载体的fFT和原始声音文件必须调制时,我​​只是不知道我们该做什么)

编辑:看了一下之后,我终于确切地知道我在寻找什么 - 一个声道声码器。它的工作方式是,它需要两个输入,一个是语音信号,另一个是频率丰富的音乐信号。音乐信号由语音信号的包络调制,输出信号听起来像音调中的语音。

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

使用相位声码器来调整音调基本上是音调估计加上频域中的插值。

相位声码器重建方法可能重新对频谱进行重新采样,可能是新的FFT频段间隔,以将所有频率向上或向下移位某个比率。相位声码器算法另外使用在相邻FFT帧之间共享的信息以确保该插值结果可以跨帧边界创建连续波形。例如它调整插值结果的相位,以确保连续的正弦波重建是连续的,而不是在帧之间有中断或不连续或相位取消。

通过音高估计和计算源的估计音高与目标音高的音高之间的比率来确定向上或向下移动频谱的程度。同样,相位声码器使用有关FFT帧之间任何相位差的信息来帮助更好地估计音调。通过使用比单个本地FFT帧更多的全局信息,可以实现这一点。

当然,这种频率和相位变化可以抹去瞬态细节并引起各种其他失真,因此实际的相位声码器产品可以另外做各种定制(通常是专有的)特殊情况技巧来尝试并解决这些问题中的一些。

答案 1 :(得分:3)

第一步是音高检测。在维基百科中简要介绍了许多音高检测算法:http://en.wikipedia.org/wiki/Pitch_detection_algorithm 音调检测可以在频域或时域中实现。两个域中的各种技术存在各种属性(延迟,质量等)。在F域中,重要的是要意识到由于时间/频率权衡,天真的方法是非常有限的。你可以解决这个限制,但它需要工作。

一旦你确定了音高,你就可以将它与所需的音高进行比较,并确定实际音高变换需要多少。

最后一步是音高变换,与音高检测一样,可以在T或F域中完成。其他人提到的“相位声码器”方法是F域方法。 T域方法包括(按质量递增顺序)OLA,SOLA和PSOLA,其中一些您可以在这里阅读:http://www.scribd.com/doc/67053489/60/Synchronous-Overlap-and-Add-SOLA

答案 2 :(得分:1)

基本上你进行FFT,然后在频域中将信号移动到最接近的完美半音音高。