How to change audio tempo and pitch individuality using ffmpeg?

你说的曾经没有我的故事 提交于 2019-11-26 17:06:32

问题


I have managed to play audio files using ffmpeg and AudioTrack class in my android project. I can change the speed of audio using AudioTrack class setRate method. But it also change the pitch of audio, I want to change only Tempo of audio but I found no solution on net.

anyone can please help me on this as there is no support for this.


回答1:


Solution : I tried SoundTouch library. I compiled it successfully for android but then I failed to use its function because I don't know how to use this library to load audio.

But after that I tried library called Sonic. Its basically for Speech as it use PSOLA algo to change pitch and tempo. But its ok.




回答2:


You can use the atempo filter in ffmpeg 1.0 and later:

ffmpeg -i input.wav -f:a atempo=1.25 output.wav

atempo only accepts values between 0.5 and 2.0, but you can bypass the limitation by chaining multiple filters:

ffmpeg -i input.wav -f:a atempo=2,atempo=1.5 output.wav



回答3:


Pitch and tempo are very strongly linked. What you're trying to do is called "time stretching", and is a somewhat complicated algorithm. You can find information online about it, and a java library for it can be found here, along with a paper describing the process.



来源:https://stackoverflow.com/questions/11260043/how-to-change-audio-tempo-and-pitch-individuality-using-ffmpeg

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!