Real pitch shifting in semitones that keeps the recording the same length, with speed as a separate control. Nine presets plus ring modulation, distortion, filters and echo.
Initializing in your browser…
Change tempo from 0.25x to 4x with WSOLA, holding pitch to within half a cent, or let pitch move with it like tape. Measures the output and shows how far the pitch actually went.
Shift pitch by semitones and cents with WSOLA, keeping the length or changing it like tape speed. Measures its own output and reports the error in cents: a perfect fifth lands within 0.5 cents.
Read text aloud with any voice your system provides, with sentence-by-sentence progress that works even for voices that report no word boundaries, and a reading-time estimate calibrated from the voice you pick.
You want a deeper voice for a narration without the delivery slowing down.
Input
narration.wav (3.0s, 150 Hz fundamental) · -8 semitones · low-pass 3 kHz
Output
Same 3.0s length, fundamental moved to 94.4 Hz, harmonics intact
Pitch and duration are independent: time is stretched with WSOLA and then resampled by the reciprocal amount, so the two length changes cancel. Simply slowing playback would drop the pitch but stretch the take as well. Measured on this input the shift is accurate to under a percent and the second and third harmonics keep their 0.5 and 0.25 relative levels.
Change a voice with real pitch shifting: move it up or down in semitones and the recording stays exactly as long as it was. Speed is a separate control that leaves the pitch alone, or can be linked to it for the classic tape effect. Nine presets, plus ring modulation, distortion, filters and echo.
Load Deep, which sets -8 semitones with a low-pass at 3 kHz. The recording keeps its original pace, so the words still land where they did, and only the voice moves down. Setting the speed to 0.95 adds a little weight without slowing the speech noticeably.
Clear the effects, leave pitch at 0 and set speed to 0.5x with the link off. A three second clip becomes six seconds at exactly the same pitch, which measured 150.01 Hz against a 150 Hz source.
Load Robot: ring modulation at 55 Hz multiplies the voice by a sine, and a little distortion adds edge. Because it is true ring modulation rather than tremolo, you get the metallic sideband sound rather than a wobble.
Shift the pitch several semitones and add a filter so the speaker is not recognisable, without the recording sounding sped up.
Build a monster, robot or chipmunk for a video, game or podcast, keeping the original timing so it still fits the picture.
Slow speech to half speed at the original pitch, which is far easier to follow than a pitched-down version.
Speed a take up or down slightly to hit a duration, with the pitch held so nobody can hear you did it.
The pitch control here shifts pitch and leaves the duration alone, which is the thing most browser voice changers cannot do. The usual trick is to change the playback rate: that does raise the pitch, but it speeds the recording up at the same time, so a chipmunk voice is always a fast one. This tool instead stretches time with WSOLA (waveform similarity overlap-add), which slides each output frame to the position where it best continues the previous one so periodic material like speech keeps its waveform shape, then resamples by the reciprocal amount. The two length changes cancel and only the pitch moves. Measured on a synthetic voice with a 150 Hz fundamental, shifting up seven semitones lands the fundamental at 224.7 Hz against a theoretical 224.7 Hz, and the file stays 3 seconds long. The harmonics keep their relative levels too: a second harmonic at half the fundamental comes out at 0.499 of it, and a third at a quarter comes out at 0.249.
Pitch is set in semitones from -24 to +24, with the musical interval named beside it, because semitones are what people actually mean (an octave is 12, a fifth is 7). Speed is a separate control from 0.25x to 4x and by default leaves the pitch where it is, so you can slow a recording down to transcribe it without everyone sounding like a monster. A link button restores the old tape machine behaviour where speed drags pitch along with it, for when that is the effect you want; in that mode 2x speed measured 1.5 seconds and 300 Hz from a 3 second 150 Hz source, exactly as a tape machine would.
On top of that sits an effect chain: a true ring modulator (the carrier drives a gain resting at zero, so the signal is multiplied by a full sine, which is the robot sound; the previous build left the gain at 0.5 and added the carrier on top, giving tremolo with a DC offset instead), a soft clipping waveshaper with 4x oversampling, high-pass and low-pass filters, and a feedback delay with separate mix, time and feedback controls. The delay tail is calculated rather than guessed, so an export runs on long enough for the echo to decay 60 dB instead of being chopped off mid repeat.
Nine presets cover the familiar characters, and each one is now expressed in semitones so you can see what it is doing: Chipmunk is up an octave, Helium up 17 semitones, Deep down 8, Monster down an octave with distortion and a low-pass, Robot is ring modulation at 55 Hz, and so on. Pitch and speed are the only settings that touch the sample data, so they are computed once and cached; every effect control after that runs on live Web Audio nodes and responds immediately. A bypass switch plays the untouched original for comparison. Export writes a 16-bit WAV or a 192 kbps MP3, rendered offline through the same chain used for preview.
No. Pitch and duration are independent here. Time is stretched with WSOLA and then resampled by the reciprocal amount, so the two length changes cancel and only the pitch moves. A three second clip shifted up an octave is still three seconds.
Pitch moves the voice up or down in semitones and keeps the timing. Speed makes the recording longer or shorter and, by default, keeps the pitch where it was. The link button ties them together so speed drags pitch along, which is what a tape machine or a plain playback-rate change does.
Because semitones are the unit people actually think in: an octave is 12, a fifth is 7. A multiplier like 1.5 is harder to reason about and does not tell you it is a fifth. Chipmunk is +12, Helium is +17, Monster is -12.
On speech, roughly a fifth in either direction holds up well, and an octave is usable for a deliberate character voice. Beyond that, or on dense material like a full music mix, the time stretching starts to show its seams. Try it and use the bypass switch to judge.
The voice is multiplied by a sine wave, which produces sum and difference frequencies rather than the original ones, giving the metallic robot sound. It is not the same as tremolo, which only varies the volume; multiplying by a sine that swings fully negative is what creates the sidebands.
No. Decoding, pitch shifting, effects and export all run in your browser. The file never leaves your device.
Audio is decoded and processed locally with the Web Audio API. Your files are never uploaded to a server.