gpt4 book ai didi

audio - 以编程方式增加音频样本阵列的音高

转载 作者:行者123 更新时间:2023-12-04 00:29:17 25 4
gpt4 key购买 nike

您好,音频计算界的人,

我有一系列代表录音的样本。假设在44100Hz下为5秒。我将如何以更高的音调播放此音乐?是否可以动态增加和减少音高?就像让音高缓慢增加以使速度加倍,然后又降低。

换句话说,我想进行录制并播放,就好像它被d.j抓了一样。

伪代码始终受到欢迎。我将用C编写。

谢谢,

编辑1

请允许我阐明我的意图。我想将回放保持在44100Hz,因此在回放之前,我需要操作样本。这也是因为我想将音调增加的音频与以正常速率运行的音频混合。

换句话说,也许我需要以某种方式将音频压缩到相同数量的样本上?这样播放时听起来会更快吗?

编辑2

另外,我想自己做。请不要使用任何库(除非您觉得我可以仔细阅读代码并找到一些有趣的东西)。

编辑3

用C语言编写的示例代码片段需要2个参数(样本和音调因子的数组),然后返回新音频的数组,这真是太棒了!

附言:我已经开始为此悬赏,不是因为我认为已经给出的答案是无效的。我只是认为最好获得有关该主题的更多反馈。



奖励奖

老实说,我希望我可以将赏金分配给几个不同的答案,因为其中有很多我认为非常有帮助。特别向Daniel致敬,向我传递了一些代码,向AShelly和Hotpaw2致以了如此详尽的答复。

最终,尽管我使用了datageist引用的another SO question的答案,所以该奖项归他所有。

再次感谢大家!

最佳答案

看一下Nosredna对这个(非常相似的)SO问题的回答中的“大象”论文:
How do you do bicubic (or other non-linear) interpolation of re-sampled audio data?

从第37页开始提供示例实现,作为引用,AShelly的答案对应于线性插值(在同一页面上)。稍作调整,即可将本文中的任何其他公式插入该框架。

为了评估给定插值方法的质量(并了解使用“更便宜”方案的潜在问题),请查看以下页面:

http://www.discodsp.com/highlife/aliasing/

对于比您可能想要处理的更多理论(使用源代码),这也是一个很好的引用:

https://ccrma.stanford.edu/~jos/resample/

关于audio - 以编程方式增加音频样本阵列的音高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5156192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com