我有声音文件,我想以1倍速,2倍速和3倍速播放。它应该是音调校正。有许多解决方案可以脱机更改文件,简单地有三个文件。但这意味着我的应用占用了更多的磁盘空间。
是否有一种直接的在线速度提升方式,因此我只需要在我的应用程序中包含一个版本的文件?
我的应用程序是封闭源代码,因此我无法使用GLP库。
答案 0 :(得分:1)
您可能正在寻找的功能是音频时间延长。简单地改变采样率不是一种选择,因为它会引起音高变化(类似于模拟唱片或录音带产生的效果)
如果您想要实时拉伸,请尝试使用实时数字信号处理库。如果您愿意为项目添加额外的库,TarsosDSP是默认情况下在Android上运行的本机Java框架。
https://github.com/JorenSix/TarsosDSP
甚至还有Audio Time Stretching示例代码包含在他们的存储库中,甚至还带有swing接口。
编辑:TarsosDSP是GPL' d。音频时间延伸是音频行业的一个大交易,所以使用的许多算法都是专有的或GPL&#d; d。如果您愿意学习一些DSP,我建议您退房 https://github.com/philburk/jsyn 它属于Apache许可证并支持Android。