Audio Converter
Convert audio files between popular formats with control over quality settings. Supports batch processing and maintains metadata where possible.
Quick Start
from scripts.audio_converter import AudioConverter
# Simple conversion
converter = AudioConverter("input.wav")
converter.convert("output.mp3")
# With quality settings
converter = AudioConverter("input.flac")
converter.bitrate(320).sample_rate(44100).convert("output.mp3")
# Batch convert directory
AudioConverter.batch_convert("./input_folder", "./output_folder", format="mp3", bitrate=192)
Features
- Format Support: MP3, WAV, FLAC, OGG, M4A/AAC, AIFF
- Quality Control: Bitrate, sample rate, channels
- Metadata Preservation: Copy tags when possible
- Batch Processing: Convert entire directories
- Normalization: Optional volume normalization
API Reference
Initialization
# From file
converter = AudioConverter("audio.wav")
Settings
converter.bitrate(192) # kbps (for lossy formats)
converter.sample_rate(44100) # Hz
converter.channels(2) # 1=mono, 2=stereo
converter.normalize(True) # Normalize volume
Conversion
# Convert to format (inferred from extension)
converter.convert("output.mp3")
# Explicit format
converter.convert("output", format="mp3")
Batch Processing
# Convert all files in directory
AudioConverter.batch_convert(
input_dir="./wavs",
output_dir="./mp3s",
format="mp3",
bitrate=320
)
CLI Usage
# Simple conversion
python audio_converter.py --input song.wav --output song.mp3
# With quality settings
python audio_converter.py --input song.flac --output song.mp3 --bitrate 320 --sample-rate 44100
# Batch convert
python audio_converter.py --input-dir ./wavs --output-dir ./mp3s --format mp3 --bitrate 192
# Normalize during conversion
python audio_converter.py --input song.wav --output song.mp3 --normalize
CLI Arguments
| Argument |
Description |
Default |
--input |
Input audio file |
Required |
--output |
Output file path |
Required |
--input-dir |
Input directory for batch |
- |
--output-dir |
Output directory for batch |
- |
--format |
Output format |
From extension |
--bitrate |
Bitrate in kbps |
192 |
--sample-rate |
Sample rate in Hz |
Original |
--channels |
Number of channels |
Original |
--normalize |
Normalize volume |
False |
Supported Formats
| Format |
Extension |
Type |
Notes |
| MP3 |
.mp3 |
Lossy |
Most compatible |
| WAV |
.wav |
Lossless |
Large files |
| FLAC |
.flac |
Lossless |
Compressed lossless |
| OGG |
.ogg |
Lossy |
Open format |
| M4A |
.m4a |
Lossy |
AAC codec |
| AIFF |
.aiff |
Lossless |
Apple format |
Examples
Convert WAV to MP3
converter = AudioConverter("recording.wav")
converter.bitrate(320).convert("recording.mp3")
Convert FLAC to Multiple Formats
source = AudioConverter("album.flac")
# High quality MP3
source.bitrate(320).convert("album_hq.mp3")
# Standard MP3
source.bitrate(192).convert("album_std.mp3")
# OGG for streaming
source.bitrate(128).convert("album.ogg")
Batch Convert for Podcast
# Convert all WAV recordings to MP3 with podcast settings
AudioConverter.batch_convert(
input_dir="./raw_episodes",
output_dir="./episodes",
format="mp3",
bitrate=128,
sample_rate=44100,
channels=1 # Mono for podcasts
)
Dependencies
pydub>=0.25.0
soundfile>=0.12.0
Note: Requires FFmpeg installed on system for MP3/M4A support.
Limitations
- Requires FFmpeg for MP3 and M4A formats
- Metadata transfer is best-effort
- Some format combinations may not preserve all tags