Train a neural network to replace LAME's psychoacoustic model for MP3 encoding.
make setup # Install dependencies
make download-gtzan # Download music (1.2GB)
make prepare # Convert to MDCT
make train # Train model
make test # Run 141 tests (verify code)
make evaluate # Compare vs LAME
make export # Export to ONNXTraditional MP3: Audio → LAME psychoacoustic model → scalefactors → quantize
notlame: Audio → Neural network (PsychoNet) → scalefactors → quantize
The neural network learns WHERE to spend bits for best perceptual quality.
- How To Train - Simple training guide
- Technical Details - Loss functions, architecture, research
- Improvements - Future enhancements planned
141 tests verify the training pipeline before you train:
make test # Run all tests
make test-beat-lame # Verify we beat LAME at all 9 bitratesCurrent status: Beats LAME on 8/9 bitrates (STFT), 9/9 bitrates (Mel)
- Python 3.8+
- CUDA GPU (recommended)
- LAME encoder (
apt install lame)
Copy the model to notlame encoder:
cp models/psycho_v1.onnx ../notlame-lib/models/MIT