I have a python script that reads in all the *.wav files in a directory and saves them in a folder called output after it adjusts their volume.
lower.py:
import os
from pydub import AudioSegment as ass
# get the current working directory
current_working_directory = os.getcwd()
all_files = os.listdir();
while len(all_files) > 0:
file = all_files.pop()
song = ass.from_wav(file)
song = song - 16
song.export('out\'+file)
https://github.com/tibberous/ChangeWavVolume/tree/fixed
The problem is (and this took me a LONG time to figure out), after the files are output once, if you try to read them again with AudioSegment ::from_wav(file), ffmpeg throws an error saying it can’t decode the file. The output wav files play in Windows Media Player, and even have their audio adjusted, but I am guessing there somehow an error either in the file data itself or the file headers.
I put the code on github. Checkout the branch ‘fixed’.
Btw, I just installed everything, so I should have the current versions of everything. I am using the Chocolatey package manager for Windows 10. Read README.txt (in progress) to see how I setup my dev environment.
Python 3.12.2
Chocolatey v2.2.2
C:Usersmoren>C:ProgramDatachocolateybinffmpeg
ffmpeg version 7.0-essentials_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
configuration: –enable-gpl –enable-version3 –enable-static –disable-w32threads –disable-autodetect –enable-fontconfig –enable-iconv –enable-gnutls –enable-libxml2 –enable-gmp –enable-bzlib –enable-lzma –enable-zlib –enable-libsrt –enable-libssh –enable-libzmq –enable-avisynth –enable-sdl2 –enable-libwebp –enable-libx264 –enable-libx265 –enable-libxvid –enable-libaom –enable-libopenjpeg –enable-libvpx –enable-mediafoundation –enable-libass –enable-libfreetype –enable-libfribidi –enable-libharfbuzz –enable-libvidstab –enable-libvmaf –enable-libzimg –enable-amf –enable-cuda-llvm –enable-cuvid –enable-dxva2 –enable-d3d11va –enable-d3d12va –enable-ffnvcodec –enable-libvpl –enable-nvdec –enable-nvenc –enable-vaapi –enable-libgme –enable-libopenmpt –enable-libopencore-amrwb –enable-libmp3lame –enable-libtheora –enable-libvo-amrwbenc –enable-libgsm –enable-libopencore-amrnb –enable-libopus –enable-libspeex –enable-libvorbis –enable-librubberband
libavutil 59. 8.100 / 59. 8.100
libavcodec 61. 3.100 / 61. 3.100
libavformat 61. 1.100 / 61. 1.100
libavdevice 61. 1.100 / 61. 1.100
libavfilter 10. 1.100 / 10. 1.100
libswscale 8. 1.100 / 8. 1.100
libswresample 5. 1.100 / 5. 1.100
libpostproc 58. 1.100 / 58. 1.100
Universal media converter
I opened the wav files the program generated with Media Player, VLC Media Player and Audacity, thinking they might throw an error, but the only thing that can’t seem to read the exported wav files is the script that created them!
Trent Tompkins is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.