更改音频缓冲区的音高
Posted
技术标签:
【中文标题】更改音频缓冲区的音高【英文标题】:Change pitch of audio buffer 【发布时间】:2014-02-04 17:51:23 【问题描述】:我正在尝试使用scriptprocessor 更改缓冲区样本的音高,但是我需要什么样的公式才能做到这一点? 我不是在寻找确切的 js 代码,而只是在寻找一些通用的数学方法。我很想为此提供一些代码,因为第一个答案有很多我不知道的公式关于如何在 JS 中实现它。
我知道这与时间有关,但根据this 可以用 FFT 完成,但我不知道应该怎么做。
【问题讨论】:
【参考方案1】:有关使用 FFT 进行时间间距修改的一种方法,请查阅 phase vocoder。这是相位声码器工作原理的一种解释(但搜索会出现许多其他的):http://www.guitarpitchshifter.com/algorithm.html
【讨论】:
这个文档看起来很有趣,虽然我只看懂了一半。我想我最好改变我的问题,因为我不知道如何实现它,所以一些 javascript 代码会很方便。【参考方案2】:我相信https://github.com/mikolalysenko/pitch-shift 是合适的(质量不如其他代码,但这个库很容易理解/使用)。您可以在http://mikolalysenko.github.io/pitch-shift/ 收听演示。
【讨论】:
这正是我要找的!谢谢。由于我的想法是从中学习,我将尝试找出它是如何工作的。以上是关于更改音频缓冲区的音高的主要内容,如果未能解决你的问题,请参考以下文章
HTML 5 音频:是不是存在在缓冲持续时间更改时触发的事件