I want to change the frequency of an audio file. Meaning: the whole file should sound (say) one octave higher or lower. How to do it? Using
ffmpeg or other command line open source tool would be preferable.
If you need a GUI, use Audacity, it's a free, open source, cross platform audio editing tool.
If you want to use the command line, try sox:
Something like that:
where gives the pitch shift as positive or negative ‘cents’ (i.e. 100ths of a semitone). There are 12 semitones to an octave, so that would mean ±
Find input audio rate beforehand thus:
Assuming input audio rate 44,100 Hz, this command will do the job:
The factor of 3/4 will change most female and skinny (chipmunk) voices into male and fat voices. Use 4/3 for the opposite:
Notice reversed filter order to prevent signal degradation. Whenever possible, lossless operation should come before lossy operation. I’m not 100% sure whether I’m not making some mistake here from misunderstanding FFmpeg filters.
For factors greater than 2 (such as 4/1 or 1/4), you must use multiple
I don’t know how to obtain skinny male voice and fat female voice.