Increase Speed of MP3 With Command-Line Tool

I'm looking for a Windows command-line tool that will allow me to increase the playback speed of MP3 files (podcasts and audiobooks). Preferrably free or open source.

Update: I want to be able to listen to a 1 hour podcast in less than 60 minutes, but it would be nice if the pitch wasn't changed.

If necessary, I can convert the MP3 to WAV first and then back again.

4

4 Answers

SoX, the Swiss Army knife of sound processing programs, can do this without a hitch:

sox --show-progress input.mp3 output.mp3 tempo 1.5
7

the best:

1

You can do this by ffmpeg

ffmpeg -i input.mp3 -filter:a "atempo=1.5" -vn output.mp3

atempo maximum is 2; however, you can use the atempo filter more than once. Eg. to speed it up by 4:

ffmpeg -i input.mp3 -filter:a "atempo=2,atempo=2" -vn output.mp3

The default output bitrate of ffmpeg is 128kb/s. If you have a higher quality MP3 file and want the output to also be high quality use the ab flag Eg. to output with a bitrate of 320kb/s:

ffmpeg -i input.mp3 -filter:a "atempo=2,atempo=2" -ab 320k -vn output.mp3

Based on John T's answer I created a PowerShell script to convert all .wav files in a folder.

# Variables
$soxPath = "C:\Program Files (x86)\sox-14-4-2\sox.exe"
$wavFolder = "C:\temp\MyWavFiles"
$generatedFileFolder = $wavFolder + "\MyGeneratedWavFiles"
$tempo = 1.5
$newFileSuffix = "" # Optional
# Program
If(!(test-path $generatedFileFolder))
{ New-Item -ItemType Directory -Force -Path $generatedFileFolder
}
Get-ChildItem $wavFolder -Filter *.wav |
Foreach-Object { $newFile = $generatedFileFolder + "\" + $_.BaseName.ToString() + $newFileSuffix + $_.Extension.ToString() & $soxPath $_.FullName $newFile tempo $tempo Write-Host Converted $_.FullName to $newFile
}

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like