你好音频计算世界的好心人,
我有一组代表录音的样本。假设它在 44100Hz 时为 5 秒。我将如何以更高的音调回放这个?是否可以动态增加和减少音高?就像让音高慢慢增加到两倍的速度,然后再降下来。
换句话说,我想录制并播放它,就好像它被 dj '刮擦'
伪代码总是受欢迎的。我将用 C 来写这个。
谢谢,
编辑 1
请允许我澄清我的意图。我想将播放保持在 44100Hz,因此我需要在播放前操作样本。这也是因为我想将音高增加的音频与以正常速率运行的音频混合。
以另一种方式表达,也许我需要以某种方式在相同数量的样本上缩小音频?这样播放时声音会更快吗?
编辑 2
另外,我想自己做这件事。请不要使用库(除非您觉得我可以通过代码挑选并找到有趣的东西)。
编辑 3
一段用 C 编写的示例代码,它接受 2 个参数(样本数组和音高因子),然后返回一个新音频数组,这太棒了!
PS我已经开始赏金不是因为我认为已经给出的答案是无效的。我只是认为获得有关该主题的更多反馈会很好。
赏金
老实说,我希望我可以将赏金分配给几个不同的答案,因为它们有很多我认为非常有帮助的。特别感谢 Daniel 向我传递了一些代码,以及 AShelly 和 Hotpaw2 提供了如此详细的回复。
最终,尽管我使用了datageist 引用的另一个 SO 问题的答案,因此该奖项归他所有。
再次感谢大家!