Long before AI voice cloning, traditional audio tools could alter pitch, tone, and timbre characteristics. These techniques are well-understood and leave detectable signatures — but they're fast, accessible, widely used, and can still be combined with newer AI tools.
We're representing the voice modification pipeline here as six steps, but real-world chains can be longer or shorter depending on the goal. Only Input and Output are required — EQ/Filter, Pitch Shift, Formant, and FX Chain are all optional stages you can mix and match to manipulate the audio.
Click each step below to see common tools for that stage. All tools referenced are already preinstalled.
Record or obtain an audio file and convert it into a format your tool chain can work with. This is the starting point for any voice modification workflow.
# Preinstalled on Call Center Village laptops # sudo apt install sox libsox-fmt-all # Navigate to shared working directory cd ~/callcentervillage/voice-cloning # Record from default mic (16kHz mono, stop with Ctrl+C) rec -r 16000 -c 1 input.wav # Convert format sox input.wav output.mp3 && play output.mp3
Here are a few ready-made effect chains to try. You can also pipe tools together (e.g. FFmpeg into SoX) to chain different tools in a single command. Copy them into your terminal, swap in your own audio file, and experiment — tweak the values, stack them differently, or combine techniques. The best way to learn this stuff is to play around and hear what happens.
sox input.wav output.wav \ pitch 500 \ equalizer 250 2q -6 \ equalizer 4000 1q 5 \ && play output.wav
sox input.wav output.wav \ pitch -400 \ equalizer 200 2q 4 \ equalizer 3500 1q -5 \ && play output.wav
ffmpeg -i input.wav \ -af "vibrato=f=12:d=0.8,chorus=0.7:0.9:30:0.6:0.3:3,aecho=0.8:0.6:6:0.5,highpass=f=200,lowpass=f=4000" \ output.wav && play output.wav
sox input.wav output.wav \ gain -6 \ highpass 300 \ lowpass 3400 \ compand 0.3,1 6:-70,-60,-20 -5 -90 0.2 \ gain -n -1 \ && play output.wav
ffmpeg -i input.wav \ -af "highpass=f=500,lowpass=f=4000,volume=0.4,afftdn=nf=-20" \ output.wav && play output.wav
sox input.wav output.wav \ lowpass 600 \ reverb 80 \ gain -n -1 \ && play output.wav
sox input.wav output.wav \ pitch -200 \ overdrive 8 \ equalizer 800 2q 4 \ reverb 20 \ gain -n -1 \ && play output.wav
sox input.wav -t wav - pitch 300 \ | sox -t wav - output.wav \ highpass 300 \ lowpass 3400 \ gain -n -1 \ && play output.wav
sox input.wav -t wav - pitch 500 \ | sox -t wav - output.wav \ reverb 40 \ gain -n -1 \ && play output.wav
ffmpeg -i input.wav \ -af "vibrato=f=6:d=0.3" \ -f s16le -ar 16000 -ac 1 - \ | sox -t raw -r 16000 -e signed -b 16 -c 1 - output.wav \ equalizer 3000 1q 4 \ gain -n -1 \ && play output.wav