我设法在我的Android项目发挥使用的ffmpeg和AudioTrack类的音频文件。 我可以使用AudioTrack类setRate方法改变音频的速度。 但它也改变声音的音高,我只想改变音频节奏,但我发现净无解。
任何人都可以请帮我在这,因为对此没有支持。
我设法在我的Android项目发挥使用的ffmpeg和AudioTrack类的音频文件。 我可以使用AudioTrack类setRate方法改变音频的速度。 但它也改变声音的音高,我只想改变音频节奏,但我发现净无解。
任何人都可以请帮我在这,因为对此没有支持。
解决办法:我想SoundTouch库。 我成功编译它为Android后来我没有使用它的功能,因为我不知道如何使用这个库加载音频。
但在那之后我试图库调用声波 。 它基本上是语音,因为它使用PSOLA算法中改变音高和节奏。 但没关系。
您可以使用安腾普公司过滤器中的ffmpeg 1.0及更高版本:
ffmpeg -i input.wav -f:a atempo=1.25 output.wav
atempo
只接受值0.5和2.0之间,但可以通过链接多个过滤器绕过限制:
ffmpeg -i input.wav -f:a atempo=2,atempo=1.5 output.wav
音高和节奏都十分密切相关。 你现在要做的就是所谓的“时间伸缩”,是一个比较复杂的算法。 你可以在网上找到关于它的信息,并为它一个Java库,可以发现在这里 ,与描述过程中的纸一起。