TuxVoice

Change your voice. Fire clips into any call.

A free, open-source voice changer and soundboard for Linux. It puts a virtual microphone into the PipeWire graph, so Discord, a game or a browser hears your processed voice without knowing TuxVoice exists.

$ flatpak install --from https://tuxvoice.vercel.app/tuxvoice.flatpakref

One command, any distribution with Flatpak. Or build it from source.

The TuxVoice window: five pages down the left, a board of clips with their lengths, and a panel on the right for tuning the selected one.

A board you can actually fill

Add your own files, or search a catalogue of clips without leaving the application. Bind one to a key and it fires while a game has focus — which is the only time it matters.

A grid of soundboard cards, each with artwork, a name and its length.
Every clip shows how long it runs. Click to fire, click again to cut.
The catalogue search field with category chips beneath it: Popular, Memes, Games, Music, Movies, TV, Reactions, Viral, Sports, Pranks, Politics.
Popular, ten categories, or a search. Scroll to the bottom and the next page loads by itself.

Twenty effects, in any order

A voice is a chain you assemble rather than a fixed preset. Add effects in any order, as many as you like, and switch one off to hear what it was doing.

Fourteen voice presets laid out in a grid: Natural, Female, Male, Chipmunk, Deep, Robot, Cyborg, Alien, Telephone, Radio, Cave, Ghost, Monster, Singer.
Fourteen presets to start from. Pick one and it opens as a chain you can take apart.
VOICE
PitchFormant VocoderAuto-tune Harmonizer
TONE
EqualizerFilter DistortionBitcrush Ring mod
MOVEMENT
ChorusFlanger PhaserVibrato Tremolo
SPACE & LEVEL
EchoReverb CompressorNoise gate Gain
Pitch corrects formants. Shifting the whole spectrum moves them with it, which is why the naive version sounds like a chipmunk rather than like a different person.
Hear it before anyone else does. A recorded sample plays through the chain you are editing — into your headphones only. Move a slider while it runs and the sound changes as you drag.

One device to pick, everywhere

Applications do not need to support TuxVoice. They only need to record from a microphone — and TuxVoice is one.

Pick it once, in the app

Select TuxVoice Virtual Mic as the input in Discord, a game or a browser. Everything after that is decided here.

Decide what leaves

Your voice, the board, the audio from your other applications, or any combination. Monitor yourself on a device of your choosing.

Survives the graph moving

The routing is re-checked and repaired every two seconds. Unplugging a device, or a Bluetooth headset changing profile, does not drop you out of the call.

Install

Needs PipeWire and WirePlumber. GTK4, libadwaita and ffmpeg come with the package.

Flatpak — one command

Works on any distribution with Flatpak. Updates arrive with flatpak update.

$ flatpak install --from https://tuxvoice.vercel.app/tuxvoice.flatpakref

Build it

Rust, plus the GTK4 and libadwaita development files.

$ git clone https://github.com/Behruzbek34/tuxvoice
$ cd tuxvoice
$ cargo build --release
$ ./target/release/tuxvoice

Arch

A PKGBUILD is in the repository and builds cleanly. It is not in the AUR yet — registration for new accounts is paused there — so for now it is makepkg -si from packaging/aur/.

Global shortcuts need one grant. Wayland gives no way to catch a key while a game has focus, so the keyboard is read from /dev/input. Run sudo usermod -aG input $USER once, then log out and back in.
Games with no microphone picker. CS2 and others only read the system default input. TuxVoice can point that at itself, which is what makes those games hear the board.

Questions

The ones that get asked before anyone installs it.

Is there a Voicemod for Linux?

Voicemod ships builds for Windows and macOS only, and running it under Wine does not give you a microphone the rest of the system can record from. TuxVoice is written for Linux instead: it is a native voice changer and soundboard that registers a real input device in the PipeWire graph, so it covers the same ground without an emulation layer.

Does the voice changer work with Discord?

Yes. Discord, Zoom, OBS, Telegram, TeamSpeak, Mumble, a browser tab, a game — anything that records from a microphone. Select TuxVoice Virtual Mic as the input once and every effect and clip after that is decided inside TuxVoice.

For games with no microphone picker of their own, such as CS2, TuxVoice can make itself the system default input, which is what makes those games hear the board.

Which Linux distributions does it run on?

Any distribution running PipeWire and WirePlumber — Ubuntu, Fedora, Debian, Arch, Linux Mint, Pop!_OS, openSUSE, EndeavourOS and the rest. The Flatpak is one command and carries GTK4, libadwaita and ffmpeg with it, so there is nothing else to install. Arch users can build the PKGBUILD in the repository.

Is it free?

Yes, and it stays free. TuxVoice is released under the GPL-3.0-or-later: no account, no subscription, no paid tier holding voices back, and the whole source is on GitHub.

Does it need PipeWire, or will PulseAudio do?

PipeWire with WirePlumber is required — the virtual microphone and the routing are built on it. That is the default on Fedora since 34, Ubuntu since 22.10, and on current Arch, Debian and Mint, so on a recent system you almost certainly already have it. pactl info will say PulseAudio (on PipeWire) if you do.

How is it different from the older Linux voice changers?

Clownfish, and the usual pile of hand-written pactl scripts, leave you assembling modules and null sinks yourself and start over when a device is unplugged. TuxVoice builds the graph for you, re-checks and repairs it every two seconds, and gives you twenty effects you can stack in any order with a soundboard in the same window.

Can I use my own sounds on the soundboard?

Add any audio file from disk, or search the built-in catalogue and pull clips in without leaving the application. Bind one to a key and it fires while a game has focus.