Voice Effects Studio
This voice changer shows its working. Robot, Radio and Wobble are starting points for an effect chain you can see and edit: a band-pass filter, a ring modulator, tanh distortion, a feedback delay, a wet and dry mix and a playback rate, applied in that order to a recording you open from your device, record here, or the built-in synthetic voice. The stage prints what the chain does, down to where a 440 Hz tone ends up, how long the echo tail runs and how many samples clip. The Preview chip switches between the dry recording and the processed one at the same moment, Download WAV writes the result as 16-bit PCM, and the whole chain saves and loads as plain JSON. It is creative sound processing, not voice cloning or disguise, and the audio is decoded and processed in this browser tab without being uploaded.
Open a voice recording
· ·
or drop an audio file anywhere on this panel
- Preset
- Robot
- Ring mod
- 80 Hz
- Export
- no audio yet
- WAV
- no audio yet
Ready. Open a recording, record a clip or try the built-in voice.
Effect chain
The voice runs through these in order, top to bottom. Every change renders again straight away. Arrow keys step a field up or down; Enter or leaving the field applies what you typed.
- keeps a band around the center, unity gain there
- multiplies by a sine at 80 Hz: 440 Hz becomes 360 Hz and 520 Hz
- tanh(drive x) / tanh(drive): full scale stays full scale
- echoes kept until they fall below -60 dB, 5 s at most
- 5 Mix100% wet, 0% dry
- 6 Ratepitch 0.00 semitones, length x1.00: they move together
- off: the level is left exactly as the chain makes it
Settings JSON
The chain above as plain JSON, to keep, share or load back later. Loading settings changes the chain, never the recording.
{
"tool": "voice-effects-studio",
"version": 1,
"chain": {
"bandpass": {
"on": true,
"centerHz": 1000,
"q": 0.7
},
"ringMod": {
"on": true,
"hz": 80
},
"distortion": {
"on": false,
"drive": 4
},
"delay": {
"on": true,
"ms": 12,
"feedback": 0.5
},
"mixPercent": 100,
"rate": 1,
"normalize": false
}
}Open a recording up to 50 MiB and 5 minutes, record one here, or try the built-in voice, which is synthesised in this tab. Press Play or Space to hear it, and the Preview chip to switch between A, the recording as it came in, and B, the effect chain, at the same moment. Download WAV writes the finished result B plays as 16-bit PCM. Nothing is uploaded, and only the chain settings are remembered in this browser, never the audio.
Common questions
- How do I make my voice sound like a robot?
- Open or record your voice and keep the Robot preset, which is the chain the page opens with the first time. It is three stages working together. A band-pass centered on 1,000 Hz with a Q of 0.7 thins the voice to its middle. A ring modulator multiplies every sample by an 80 Hz sine, which replaces each frequency in your voice with two new ones 80 Hz either side of it, so a 440 Hz tone comes out as 360 Hz and 520 Hz and the natural pitch turns into a metallic buzz. A 12 ms delay with feedback 0.5 then rings at about 83 Hz, which is the hollow, tinny part. Change the ring mod frequency to move the character: single figures give a wobble, a few hundred hertz sounds harsher and more bell-like.
- Can I record my voice here, or do I need a file?
- Either. Record a clip asks for the microphone and records up to 5 minutes in this tab; when you press Stop and use it, the clip is opened exactly like a file. Choose a file opens anything your browser can play, such as MP3, WAV, M4A, OGG or WebM, up to 50 MiB and 5 minutes. Try the built-in voice loads a 2.4 second sample synthesised in the page, three sung vowels, so you can hear every effect before using your own voice. Recordings are never uploaded, and only the chain settings are remembered in this browser.
- Can I use this voice changer live on Discord, Zoom or in a game?
- No. This page changes recordings, not a live microphone. There is no virtual microphone and no live routing, so other apps never hear the effect while you speak. Record or open a clip, let it render, and download the WAV, which you can then share or play anywhere a sound file is accepted.
- Will this make my voice anonymous?
- It is not built or tested for that, and the page does not claim it. The effects are creative sound processing: a filter, a ring modulator, distortion, a delay and a rate change, all deterministic and all written out in the settings. They change how a voice sounds without being designed to stop anyone recognising it. There is no neural voice conversion, speaker cloning or accent change here.
- Why does changing the rate make the voice higher and shorter at the same time?
- Because the rate resamples the result, the way a tape played faster does. Rate 2 keeps the sample rate and writes half as many samples, so the recording lasts half as long and every frequency doubles, one octave up; rate 0.5 doubles the length and drops everything an octave. The Rate row shows both: the pitch change in semitones, which is 12 times the base-two logarithm of the rate, and the length multiplier. A speed-up is low-pass filtered first, so high frequencies are attenuated rather than folding back as noise. To change the speed while holding the pitch, use the audio speed changer instead.
- Why is the exported file longer than my recording?
- Because the echoes are kept. When the delay is on, the render carries on past the end of the recording until each repeat has fallen below -60 dB. With feedback 0.5 that is ten repeats, because 0.5 to the power 10 is 0.00098, just under one thousandth, so at 12 ms each the robot adds 0.120 s. The tail line on the stage prints the count and the length for your settings. No tail runs past 5 seconds: a long, high-feedback echo is stopped there with a 50 ms fade rather than a click. With the delay off, or the mix at 0% wet, the export at rate 1 is exactly as long as the recording.
- What happens if the effect is too loud and clips?
- Nothing is hidden. After each render the clipping line counts the samples past full scale and gives the peak in dBFS, and the WAV clamps them at full scale rather than letting them wrap around, which would crack. Delay feedback is the usual cause, because a short delay with high feedback resonates, and a high distortion drive raises the level it feeds into the delay. Normalize is off unless you turn it on. When it is on, the whole result is scaled so its loudest sample sits at -1 dBFS, which removes the clipping without changing the shape of the sound.
- Which files can I open, and how large can they be?
- Anything your browser itself can play, checked before the decode: the page asks the browser whether it can open the file type, then reads the length from the file's metadata without decoding it. The ceilings are 50 MiB of file and 5 minutes of sound, plus one on memory: the decoded audio and the result may each take at most 128 MiB as 32-bit samples. Five minutes of stereo at 48 kHz is about 110 MiB, so it fits; at rate 0.5 the same file would make a result of about 220 MiB, and the page says so and asks for a higher rate or a shorter clip rather than running out of memory. Files are decoded at 48,000 Hz where the browser allows it.
- What is the settings JSON for?
- It is the whole chain as text: each stage on or off with its values, the mix, the rate and Normalize. Copy it, or download it as a .json file, to keep a voice you built, share it, or bring it back later with Open .json or Apply settings. It never contains any audio. Settings from another tool, from a newer version of this page, or with a value outside a control's range are refused with a message naming the problem, and the chain on screen stays as it was.
Deterministic effects, not AI: in the same browser, the same recording and settings always give the same WAV, echoes are kept until they fall below -60 dB (5 seconds at most), and clipping is counted rather than hidden. Changing the rate moves pitch and length together, and there is no neural voice conversion, cloning, accent change, disguise of who is speaking or live microphone routing. Audio up to 50 MiB and 5 minutes is decoded in your browser after a format check and is never uploaded.