我一直在网上寻找有关声码器或自动调谐的资料,但没有得到任何满意的答案。有人可以用简单的方式解释一下如何使用载体声音文件自动调整给定的声音文件吗? (我熟悉 ffts、窗口化、重叠等,我只是不明白当我们有载体的 ffts 和必须调制的原始声音文件时我们要做什么)
编辑:再四处看看后,我终于确切地知道我在寻找什么——一个 channel 声码器。它的工作方式是,它需要两个输入,一个是语音信号,另一个是频率丰富的音乐信号。音乐信号经过语音信号的包络调制,输出信号听起来像是人声在乐音中吟唱。
感谢您的帮助!
最佳答案
使用相位声码器调整音高基本上是音高估计加上频域内插。
相位声码器重建方法可能会以新的 FFT bin 间距对频谱进行重新采样,以将所有频率向上或向下移动某个比率。相位声码器算法还使用相邻 FFT 帧之间共享的信息来确保此插值结果可以跨帧边界创建连续波形。例如它调整插值结果的相位,以确保连续的正弦波重建是连续的,而不是在帧之间有中断或不连续或相位抵消。
频谱上移或下移多少由音调估计决定,并计算源音调的估计音调与目标音调的估计值之间的比率。同样,相位声码器使用有关 FFT 帧之间任何相位差的信息来帮助更好地估计音高。这可以通过使用比单个本地 FFT 帧可用的更多的全局信息来实现。
当然,这种频率和相位变化会抹掉 transient 细节并导致各种其他失真,因此实际的相位声码器产品可能会另外采用各种自定义(通常是专有)特例技巧来尝试解决其中的一些问题。
关于audio - 自动调谐/声码器背后的理论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10739229/