我正在尝试使用scriptprocessor更改缓冲区样本的音高,但我需要使用哪种公式来执行此操作? 我不是在寻找精确的js代码,而只是为了一些通用的数学方法。我很想有一些代码,因为第一个答案有很多公式,我不知道关于如何在JS中实现它。
我知道这与时间有关,但根据this可以用FFT完成,但我不知道应该怎么做。
答案 0 :(得分:0)
对于使用FFT进行时间间距修改的一种方法,请查找phase vocoder。以下是相位声码器如何工作的一个解释(但搜索会发现许多其他声码器):http://www.guitarpitchshifter.com/algorithm.html
答案 1 :(得分:0)
我相信https://github.com/mikolalysenko/pitch-shift是合适的(质量不与其他代码相提并论,但这个库很容易理解/使用)。您可以在http://mikolalysenko.github.io/pitch-shift/听到演示。