如何使用ffmpeg改变音频节奏和音调个性?

Vip*_*hit 5 audio android ffmpeg android-ndk audiotrack

我已经设法在我的android项目中使用ffmpeg和AudioTrack类播放音频文件.我可以使用AudioTrack类setRate方法更改音频的速度.但它也改变了音频的音调,我想只改变音频的速度,但我发现网上没有解决方案.

任何人都可以帮助我,因为没有这方面的支持.

Vip*_*hit 8

解决方案: 我试过SoundTouch库.我成功编译了android但后来我没能使用它的功能,因为我不知道如何使用这个库来加载音频.

但之后我尝试了名为Sonic的库.它主要用于演讲,因为它使用PSOLA算法来改变音高和节奏.但没关系.


Lri*_*Lri 7

您可以在ffmpeg 1.0及更高版本中使用atempo过滤器:

ffmpeg -i input.wav -f:a atempo=1.25 output.wav
Run Code Online (Sandbox Code Playgroud)

atempo 只接受介于0.5和2.0之间的值,但您可以通过链接多个过滤器来绕过限制:

ffmpeg -i input.wav -f:a atempo=2,atempo=1.5 output.wav
Run Code Online (Sandbox Code Playgroud)

  • 在版本 N-77870 的 Windows 上,至少看起来你需要拼出单词过滤器,如`ffmpeg -i input.wav -filter:a atempo=1.25 output.wav` (5认同)
  • 或者`ffmpeg -i input.wav -af atempo=1.25 output.wav` (3认同)