Time-stretch audio between 0.5× (half speed) and 2× (double speed) while keeping the original pitch intact. The same kind of processing your DAW does when you warp a sample or your DJ software does when it sync-locks two tracks at different tempos. Useful for transcribing solos, slowing down lyrics, speeding up podcasts, or matching tempos.
Music, voice, anything. Decoded locally.
Up to 200 MB
0.5× — half speed, useful for transcribing fast passages. 0.75× — slow practice tempo. 1.25-1.5× — most podcast listeners' preferred speed-up. 2× — double speed for skim listening.
ffmpeg filter: atempo=X · time-domain stretch
ffmpeg's atempo filter rearranges short audio frames (~20 ms each) — repeating or skipping them — to change duration without changing pitch. Quality is transparent within 0.5-2× for music; outside that range artifacts become noticeable.
Output: 16-bit WAV at original sample rate
If you sped up audio the way a record player does (raising playback rate), pitch goes up too. Time-stretching uses overlap-add windowing instead — it splits audio into short frames and either repeats them (slowing down) or drops some (speeding up). The frame-level pitch content is preserved, only the timeline changes.
At 0.5× and 2× the artifacts are subtle — slight echo or warble on transient sounds (drums, percussion, plucked strings). Below 0.5× or above 2× artifacts become obvious. This tool caps at 0.5-2× for that reason. For more extreme stretching, dedicated tools like RubberBand do better.
Speed changer changes how long the audio plays, keeping pitch the same. Pitch shifter changes the pitch (key) without changing how long the audio plays. Use speed for transcription/practice/playback rate; use pitch shift to transpose a song into a different key.
ffmpeg's atempo only accepts 0.5-2.0 in a single application. For wider ranges you can chain (e.g., atempo=2.0,atempo=2.0 for 4×), but artifacts compound. The 0.5-2× single-stage range is where time-stretching stays transparent for most material.