我正在申请大学音乐专业。我正在考虑的一个功能是减慢音乐播放速度而不改变其音调。我已经在商业软件中看到了这一点,但找不到任何库或开源应用程序可以执行类似的操作。

  1. 那里有图书馆吗?
  2. 如何从头开始从各种文件格式完成此操作?

笔记:我正在使用java工作,但不反对改变语言。

有帮助吗?

解决方案

时间拉长是相当困难的。您减慢或加快声音的速度越多,获得的伪影就越多。如果您想了解它们的声音,请聆听 Fat Boy Slim 的“The Rockafeller Skank”。有很多方法可以做到这一点,但都有各自的优点和缺点。数学可能会变得非常复杂。这就是为什么有这么多专有算法。

这个页面比我更清楚地解释了一些事情,并链接到狄拉克图书馆。http://www.dspdimension.com/admin/time-pitch-overview/

我找到了 java 代码的链接来进行变调/时间拉伸http://www.adetorres.com/keychanger/KeyChangerReadme.html

其他提示

我用 声音延伸 加速播客的速度效果很好,但还没有在音乐上尝试过。

该网站解释了它在现实世界中是如何完成的:http://www.wendycarlos.com/other/Eltro-1967/index.html

我不知道你会如何在软件中模拟它......我会继续寻找

一种方法是将采样率加倍,而不改变源的采样率。(示例质量低,但易于实现。笔记:您也可以降低采样率)。

查看与相位声码器相关的数学。

另一种常见的方法是创建一个 fft bin 数组,用于存储声音预定间隔的数据。然后,您可以选择迭代数据箱的速度,并且可以根据您选择的时间重新合成音频数据,从而使您能够根据需要延长声音的一小段。

audacity 开箱即用,而且免费。还有一些免费的 MP3 播放器插件。显然,使用 mp3 很容易做到这一点,因为它已经在频域中进行了编码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top