Guide · Plugins
How to change your voice in real time on Mac
Whether you want to sound like someone else on a live call, mask your real voice while streaming, or just mess around in a recording, it is completely doable on Mac. The setup is a little more involved than just installing an app, but once it is working it just works.
What you need
To change your voice in real time on a Mac, you need a real-time voice changer that runs as an audio plugin (Audio Unit or VST3) inside an app that can host it.
Mac does not have a built-in voice changer, so the work falls to a plugin. Audio Units are the native format on macOS and the one with the broadest app support. VST3 works fine too, but you will need a compatible host for it. Either way, the plugin is what does the processing.
The host app is the piece that bridges your microphone to everything else. It receives your mic input, runs it through the plugin in real time, and outputs the processed audio to whatever you are recording into or calling from. Some DAWs handle this natively. If you want the changed voice to show up in a call or stream, you will also need a virtual audio device to route the output, more on that in the next section.
What you do not need: a separate hardware box, a subscription to some cloud service, or a beefy machine. A modern Mac handles this processing fine at low latency.
Set it up
Getting real-time voice changing working on Mac is a two-part job: load the plugin in a host, then route the output to wherever you need it.
First, we install the plugin. Audio Unit plugins go into /Library/Audio/Plug-Ins/Components/ on your Mac. Most installers drop it there automatically, so we usually just run the installer, relaunch our host app, and the plugin shows up.
Next, we open the host app and set our microphone as the input. We load the voice changer plugin on the input channel or as an insert effect. At this point, if we are just recording into the DAW, we are done. Hit record, speak, and the recorded audio will be the processed voice.
If we want the changed voice in a call or stream, we need one more step: a virtual audio device. This creates a software audio output on our Mac that other apps (Zoom, Discord, OBS, Etc) can select as their microphone source. We set the DAW or host to output to the virtual device, then in the call or streaming app we pick that virtual device as the mic. Boom, the changed voice goes out live.
The routing takes a few minutes to figure out the first time, but once it clicks it is straightforward.
Dial in a voice
A good real-time voice changer gives you pitch, formant, and texture controls so you can build a voice that sounds intentional rather than like a broken mic.
Pitch shifts how high or low the voice sounds. Formant shifts the resonance independently, which is the difference between "chipmunk at the wrong speed" and an actually believable higher or lower voice. The two together are where things get interesting. First time I heard myself as a chipmunk on a live call I nearly lost it, but dial the formant back up and suddenly it sounds like a real person, just not me.
Beyond pitch and formant, a lot of voice changers add texture controls: breathiness, roughness, or character presets you can start from. Start with a preset close to what you want, then nudge the pitch and formant until it sits right. Give it a go through a set of headphones or earbuds so you are hearing exactly what goes out, not your own voice bouncing off the room.
Latency is worth keeping an eye on. Most setups run fine at 64 or 128 samples buffer size. If you hear your own voice echoing back delayed, lower the buffer in your host or check the monitoring settings. The processing itself is not the bottleneck, the routing usually is.
We built one for exactly this. It's called Incognito.
Incognito is a real-time voice changer Audio Unit for Mac. It loads into the audio host you already use, handles pitch and formant processing at low latency, and installs in a couple of minutes. Free trial to try it out, and you only buy if it does what you need.
Free trial available.
The routing is the annoying part, but you only figure it out once.