0

我有想要以 1x 速度、2x 速度和 3x 速度播放的声音文件。应该进行音高校正。有很多解决方案可以离线更改文件并且简单地拥有三个文件。然而,这意味着我的应用程序需要更多的磁盘空间。

有没有一种直接的方法可以提高在线速度,这样我只需在我的应用程序中包含一个版本的文件?

我的应用程序是封闭源代码,所以我不能使用 GLP 库。

4

1 回答 1

1

您可能正在寻找的功能是音频时间拉伸。简单地改变采样率不是一种选择,因为它会导致音高变化(类似于模拟唱片或磁带产生的效果)

如果您想要真正的时间拉伸,请尝试使用实时数字信号处理库。如果你愿意为你的项目添加一个额外的库,TarsosDSP 是一个原生 Java 框架,默认在 Android 上运行。

https://github.com/JorenSix/TarsosDSP

他们的存储库中甚至还包含音频时间拉伸示例代码,甚至还带有一个摇摆界面。

编辑: TarsosDSP 是 GPL 的。音频时间延长在音频行业是一件大事,因此使用的许多算法要么是专有的,要么是 GPL 的。

如果您愿意学习一些 DSP,我建议您查看 https://github.com/philburk/jsyn 它在 Apache 许可下并支持 Android。

于 2017-01-17T01:44:29.850 回答